Commit Graph

566 Commits

Author SHA1 Message Date
Ethan Buchman be1a16a601 p2p/pex: simplify ensurePeers 2017-11-16 04:30:38 +00:00
Ethan Buchman 8e044b0e6d p2p/addrbook: some comments 2017-11-16 04:30:23 +00:00
Ethan Buchman 40e93a5f9e p2p/addrbook: fix addToOldBucket 2017-11-16 04:08:46 +00:00
Ethan Buchman 435eb6e2b3 p2p/addrbook: add non-terminating test 2017-11-16 04:04:54 +00:00
Ethan Buchman 8c88cc017a p2p/addrbook: addAddress returns error. more defensive PickAddress 2017-11-16 03:59:54 +00:00
Ethan Buchman ed95cc160a p2p/addrbook: simplify PickAddress 2017-11-16 02:31:47 +00:00
Ethan Buchman 2f067a3f65 p2p/addrbook: addrNew/Old -> bucketsNew/Old 2017-11-16 02:28:11 +00:00
Ethan Buchman 498a82784d p2p/addrbook: comments 2017-11-16 02:25:00 +00:00
Guanghua Guo b5708825a7
Failed to compile comment code 2017-11-16 09:45:58 +08:00
caffix a724ffab25 added changes based on PR comments to the proposal 2017-11-15 17:59:48 -05:00
Emmanuel Odeke 3f9dff9aac
p2p: netPipe for <Go1.10 in own file with own build tag
Follow up of 283544c7f3
putting <Go1.10 implementation of netPipe in its own
file and protect it with its separate build tag.
2017-11-14 22:23:48 -07:00
Emmanuel Odeke 283544c7f3
p2p: use fake net.Pipe since only >=Go1.10 implements SetDeadline
Fixes https://github.com/tendermint/tendermint/issues/851

Go1.9 and below's net.Pipe did not implement the SetDeadline
method so after commit
e2dd8ca946
this problem was exposed since now we check for errors.

To counter this problem, implement a simple composition for
net.Conn that always returns nil on SetDeadline instead of
tripping out.

Added build tags so that anyone using go1.10 when it is released
will be able to automatically use net.Pipe's net.Conns
2017-11-14 22:03:23 -07:00
Ethan Buchman 49faa79bdc
Merge pull request #848 from tendermint/p2p-catch-conn.SetDeadline-errors
p2p: peer should respect errors from SetDeadline
2017-11-15 03:34:58 +00:00
Emmanuel Odeke 7b0fa6c889
p2p: peer should respect errors from SetDeadline
Noticed while auditing the code that we aren't respecting
(*net.Conn) SetDeadline errors which return after
a connection has been killed and is simultaneously
being used.

For example given program, without SetDeadline error checks
```go
package main

import (
  "log"
  "net"
  "time"
)

func main() {
  conn, err := net.Dial("tcp", "tendermint.com:443")
  if err != nil {
    log.Fatal(err)
  }
  go func() {
    <-time.After(400 * time.Millisecond)
    conn.Close()
  }()
  for i := 0; i < 5; i++ {
    if err := conn.SetDeadline(time.Now().Add(time.Duration(10 * time.Second))); err != nil {
      log.Fatalf("set deadline #%d, err: %v", i, err)
    }
    log.Printf("Successfully set deadline #%d", i)
    <-time.After(150 * time.Millisecond)
  }
}
```

erraneously gives
```shell
2017/11/14 17:46:28 Successfully set deadline #0
2017/11/14 17:46:29 Successfully set deadline #1
2017/11/14 17:46:29 Successfully set deadline #2
2017/11/14 17:46:29 Successfully set deadline #3
2017/11/14 17:46:29 Successfully set deadline #4
```

However, if we properly fix it to respect that error with
```diff
--- wild.go 2017-11-14 17:44:38.000000000 -0700
+++ main.go 2017-11-14 17:45:40.000000000 -0700
@@ -16,7 +16,9 @@
    conn.Close()
  }()
  for i := 0; i < 5; i++ {
-   conn.SetDeadline(time.Now().Add(time.Duration(10 * time.Second)))
+   if err := conn.SetDeadline(time.Now().Add(time.Duration(10 *
time.Second))); err != nil {
+     log.Fatalf("set deadline #%d, err: %v", i, err)
+   }
    log.Printf("Successfully set deadline #%d", i)
    <-time.After(150 * time.Millisecond)
  }
```

properly catches any problems and gives
```shell
$ go run main.go
2017/11/14 17:43:44 Successfully set deadline #0
2017/11/14 17:43:45 Successfully set deadline #1
2017/11/14 17:43:45 Successfully set deadline #2
2017/11/14 17:43:45 set deadline #3, err: set tcp 10.182.253.51:57395:
use of closed network connection
exit status 1
```
2017-11-14 18:01:51 -07:00
caffix 8b7649b90c enhancements made in response to PR full review comments 2017-11-14 18:26:06 -05:00
caffix 687834c99e added initial trust metric test routines 2017-11-14 18:26:06 -05:00
caffix 54c25ccbf5 integrated trust metric store as per PR comments 2017-11-14 18:26:06 -05:00
caffix e160a6198c added initial trust metric design doc and code 2017-11-14 18:26:06 -05:00
Ethan Buchman e69d36d54f some more robust sleeps 2017-11-14 22:31:23 +00:00
Emmanuel Odeke 62c1bc0a20
p2p: comment on the wg.Add before go saveRoutine()
Just noticed while auditing the code in p2p/addrbook.go,
wg.Add(1) but no subsequent defer.
@jaekwon and I had a discussion offline and we agreed to
comment about why the code was that way and why
we shouldn't move the wg.Add(1) into .saveRoutine() because
if go a.saveRoutine() isn't started before anyone invokes
a.Wait(), then we'd have raced a.saveRoutine().
2017-11-13 18:14:58 -07:00
Petabyte Storage 3863885c71 WIP: begin parallel refactoring with go-wire Write methods and MConnection 2017-11-12 22:11:15 -08:00
Anton Kaliaev a1cdc2b68a
set logger for peer's MConnection 2017-11-09 14:57:40 -05:00
Ethan Buchman c931279960 p2p: some fixes re @odeke-em issues #813,#816,#817 2017-11-08 17:54:29 +00:00
Ethan Buchman 9f6a09277e
Merge pull request #812 from tendermint/808-make-connected-switches
MakeConnectedSwitches: connect first switch to others
2017-11-08 00:54:23 +00:00
Ethan Buchman dd47884661
Merge pull request #820 from tendermint/790-use-tickers-instead-of-time-Sleep
prefer tickers to time.Sleep
2017-11-08 00:53:42 +00:00
Petabyte Storage 51c9211cf4 add test for MConnection TrySend and Send 2017-11-07 23:35:25 +00:00
Anton Kaliaev 7869e541f6
change MakeConnectedSwitches to not connect to itself
and a test for it
2017-11-07 18:33:00 -05:00
Anton Kaliaev e0daca5693
fixes from Bucky's review 2017-11-07 18:20:24 -05:00
Ethan Buchman 37ce171061 p2p/connetion: remove panics, test error cases 2017-11-07 23:00:52 +00:00
Ethan Buchman e01986e2b3 p2p: update readme, some minor things 2017-11-07 23:00:49 +00:00
Anton Kaliaev 2d4ad02356
prefer tickers to time.Sleep (Refs #790) 2017-11-07 15:38:25 -05:00
Anton Kaliaev e785697a64
connect first switch to others (Refs #808) 2017-11-06 23:43:40 -05:00
Petabyte Storage fe9ff62297 fix comment typos 2017-10-28 22:01:45 -07:00
Petabyte Storage 6b366b2443 fix test using uncommon names 2017-10-28 20:29:11 -07:00
Petabyte Storage ceedd4d968 remove unnecessary plus [ci skip] 2017-10-25 22:28:20 -04:00
Ethan Buchman 0bbf38141a blockchain/pool: some comments and small changes 2017-10-23 10:13:46 -04:00
Zach Ramsay 136b6a7673 rpc/lib: remove dead files, closes #710 2017-10-04 17:45:15 -04:00
Zach Ramsay f23d47e5d2 upnp: keep a link 2017-10-04 17:19:49 -04:00
Zach Ramsay d56b44f3a5 all: no more anonymous imports 2017-10-04 16:40:45 -04:00
Emmanuel Odeke 925696ca65 Merge branch 'p2p-prune-unused-IPRangeCount-funcs' into develop 2017-09-22 21:09:41 -06:00
Ethan Buchman ddb3d8945d p2p: allow listener with no external connection 2017-09-22 10:13:23 -04:00
Ethan Buchman b50339e8e7 p2p: sw.AddPeer -> sw.addPeer 2017-09-21 15:47:41 -04:00
Ethan Buchman aea8629272 peer interface 2017-09-15 18:40:59 -04:00
Emmanuel Odeke 5138bcb1c7
p2p: delete unused and untested *IPRangeCount functions
Fixes #602

Delete unused and untested functions:
- AddToIPRangeCounts
- CheckIPRangeCounts
2017-09-15 14:03:01 -06:00
Ethan Buchman 54c63726b0 p2p: minor comment fixes 2017-09-06 16:40:21 -04:00
Ethan Buchman cb80ab2965 Merge remote-tracking branch 'orijtech/p2p-full-test-PeerSet' into develop 2017-09-06 16:40:07 -04:00
Emmanuel Odeke c48e772115
p2p: fully test PeerSet, more docs, parallelize PeerSet tests
* Full test PeerSet and check its concurrent guarantees
* Improve the doc for PeerSet.Has and remove unnecessary
defer for a path that sets a variable, make it fast anyways.
* Parallelize PeerSet tests with t.Parallel()
* Document functions in peer_set.go more.
2017-09-06 02:47:31 -06:00
Ethan Buchman cc2b418f7f p2p: test fix 2017-09-05 17:10:11 -04:00
Ethan Buchman 88138c38cf mempool: reactor test 2017-09-05 16:25:02 -04:00
Ethan Buchman daa258ea6d p2p: put maxMsgPacketPayloadSize, recvRate, sendRate in config
Updates #628
2017-09-01 21:44:15 -04:00
caojingqi 086544e367 p2p: sw.peers.List() is empty in sw.OnStart 2017-07-10 20:43:38 -04:00
Ethan Buchman 75df0d91ba comments from review 2017-07-10 13:39:23 -04:00
Ethan Buchman 5f6b996d22 breakup some long lines; add more comments to consensus reactor 2017-07-09 18:38:59 -04:00
Ethan Buchman 74a3a2b56a fix comments 2017-07-09 18:01:25 -04:00
Adrian Brink b07d01f102 Add more comments on public functions and extra logging during 'enterPrevote'
Signed-off-by: Adrian Brink <adrian@brink-holdings.com>
2017-07-09 20:35:48 +02:00
Ethan Buchman e6cecb9595 p2p: fix test 2017-07-07 13:33:15 -04:00
Ethan Buchman 3c10f7a122 add p2p flush throttle to config 2017-07-07 13:08:52 -04:00
Ethan Buchman 0d1fa8e884 fixes from review 2017-06-28 11:12:45 -04:00
Ethan Buchman 2750343de5 Merge branch 'apply-megacheck' into unstable 2017-06-23 21:38:22 -04:00
Ethan Buchman 3c0128a680 undo some megacheck suggestions 2017-06-23 21:36:47 -04:00
Anton Kaliaev b4ece65726
standardize key for errors (should be "err") 2017-06-14 12:50:49 +04:00
zramsay bf5181d9ca address PR comments 2017-05-30 13:27:08 -04:00
zramsay cf31f8d06f core: apply megacheck vet tool (unused, gosimple, staticcheck) 2017-05-29 23:11:40 -04:00
Anton Kaliaev 4fe67652ff
move SetLogger down 2017-05-14 00:24:58 +02:00
Anton Kaliaev c5bccc5474
set missing logger on switch
```
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x882cec]

goroutine 328 [running]:
github.com/tendermint/tendermint/p2p.(*Switch).DialPeerWithAddress(0xc42000a500, 0xc4202088d0, 0xc420403500, 0x0, 0x0, 0x0)
        /home/vagrant/go/src/github.com/tendermint/tendermint/p2p/switch.go:324 +0x2fc
github.com/tendermint/tendermint/p2p.(*PEXReactor).ensurePeers.func1(0xc4201663f0, 0xc4202088d0)
        /home/vagrant/go/src/github.com/tendermint/tendermint/p2p/pex_reactor.go:280 +0x3e
created by github.com/tendermint/tendermint/p2p.(*PEXReactor).ensurePeers
        /home/vagrant/go/src/github.com/tendermint/tendermint/p2p/pex_reactor.go:284 +0x5d4
```
2017-05-13 17:05:44 +02:00
Anton Kaliaev f8fdbe3dbc
changes as per Bucky's review 2017-05-13 16:22:51 +02:00
Anton Kaliaev c9cd8de9c6
set logger 2017-05-13 10:25:00 +02:00
Anton Kaliaev bc4e6566e7
[p2p] refactor upnp to use new logger 2017-05-13 10:24:59 +02:00
Ethan Buchman 16509ac3db
p2p: fix race by peer.Start() before peers.Add() 2017-05-13 10:24:59 +02:00
Anton Kaliaev f803544195
new logging 2017-05-13 10:24:58 +02:00
Ethan Frey 57527f9f67 One silly tests passes on osx, fails on linux... comment out so i can develop 2017-05-05 18:48:39 +02:00
Ethan Buchman 46151720f8 fix tests 2017-05-04 22:46:41 -04:00
Ethan Frey 604bf03f3a Pulled out all config structs (except p2p.PeerConfig) into config package 2017-05-04 22:46:40 -04:00
Ethan Buchman 92bafa7ecd consensus: fix tests 2017-05-04 22:46:13 -04:00
Ethan Buchman 57151d6043 p2p: use cmn instead of . 2017-05-04 22:43:55 -04:00
Ethan Buchman 5d660e073a remove viper from p2p 2017-05-04 22:43:55 -04:00
Ethan Buchman 75b6c5215f fewer structs. remove viper from consensus 2017-05-04 22:43:55 -04:00
Ethan Buchman fcf78a5da7 cleanup go-config/viper and some unnamed imports 2017-04-25 14:54:56 -04:00
Ethan Buchman 56c60fba23 go-p2p -> tendermint/p2p 2017-04-21 18:19:41 -04:00
Ethan Buchman 93c58d0b24 remove glide and license from rpc and p2p 2017-04-21 18:08:25 -04:00
Ethan Buchman 23a6a6f8fc move into p2p package 2017-04-21 18:07:52 -04:00
Jae Kwon c4ed55d801 Refactor to move common libraries out of project 2015-10-22 17:39:06 -07:00
Jae Kwon fa956596dc Merge remote-tracking branch 'origin/config' into develop 2015-10-11 18:18:53 -07:00
Ethan Buchman cccb722ba8 mempool tests 2015-09-29 12:30:46 -04:00
Ethan Buchman bb662b8861 more config options 2015-09-25 11:58:11 -04:00
Jae Kwon 4e6ea7f9f7 Merge pull request #143 from tendermint/versioning
more versioning
2015-09-22 18:48:07 -07:00
Ethan Buchman b54522c60f more versioning 2015-09-16 05:08:06 +00:00
Ethan Buchman 555ecb095d precommit nil if locked and no POL 2015-09-15 14:25:50 -04:00
Jae Kwon 1c17ea3b14 blockchain parameter && log tweaks 2015-09-11 21:09:27 -07:00
Jae Kwon 21d45023d3 various bug fixes 2015-09-11 21:09:01 -07:00
Jae Kwon 625f23af13 Blockpool better timeouts, download rate observation, quicker switching to consensus; Id -> ID (sorry, this doesn't belong here) 2015-09-11 21:09:00 -07:00
Jae Kwon afc3e3b6c7 mconnection constants adjustment 2015-08-12 22:36:06 -07:00
Jae Kwon 1b9fd811a1 RPCResponse.Result && EventData are registered interfaces; -skip_upnp option 2015-08-11 11:01:18 -07:00
Jae Kwon 908fd11665 more explicit _, err := Start() checking 2015-08-11 11:01:17 -07:00
Jae Kwon e86073ec96 Use rpc/client/ws_client; OnStart() returns error 2015-08-11 11:01:17 -07:00
Jae Kwon 3be3647dc8 tendermint/binary -> tendermint/wire 2015-07-28 12:18:17 -07:00
Jae Kwon f91bc8d8c3 Retries for net.Listen to account for MacOSX socket close delay 2015-07-23 17:56:12 -07:00
Jae Kwon e7c1febb65 Simplify Service/Reactor pattern 2015-07-22 06:21:21 -07:00
Ethan Buchman 8e50bf15de panic wrapper functions 2015-07-21 10:46:05 -04:00
Jae Kwon 3a9b465c75 Fix MConnection race condiiton 2015-07-20 17:02:18 -07:00
Jae Kwon c0a64d74be Service log prettify 2015-07-20 17:02:18 -07:00
Jae Kwon 1d362a71ed Stop the peer to stop the mconn 2015-07-20 15:02:12 -07:00
Jae Kwon 571a134318 BaseService and BaseReactor refactor and unification 2015-07-20 14:52:24 -07:00
Jae Kwon c30d38270c base_service draft and some samples 2015-07-19 17:42:01 -07:00
Ethan Buchman a28d924966 move some logs to debug 2015-07-19 22:44:40 +00:00
Ethan Buchman bb4ca1407f info->notice, debug->info 2015-07-19 22:44:40 +00:00
Ethan Buchman e087284a4f update logger package for new level 'notice' 2015-07-19 22:43:58 +00:00
Ethan Buchman 95765db7eb actually stop peer on failed Add 2015-07-19 22:41:19 +00:00
Ethan Buchman dc7b912881 crypto byte arrays are fixed length 2015-07-17 17:19:16 -04:00
Ethan Buchman ba70bffa23 add handshakeTimeout, bound chunkLength, comments 2015-07-17 03:58:57 -04:00
Jae Kwon 84705caefb fix nil-pointer error in SecretConnection handshake 2015-07-16 01:08:07 -07:00
Jae Kwon 9e2b138c35 Added link to doc above MakeSecretConnection 2015-07-15 15:38:29 -07:00
Jae Kwon 9ef79e59bb Godeps <- golang.org/x/crypto/nacl etc 2015-07-15 14:56:52 -07:00
Jae Kwon e4c351f5fc UUID -> PubKeyEd25519 2015-07-15 14:31:03 -07:00
Jae Kwon fd64547ce7 Put a SecretConnection before the MConnection; Node Priv/PubKeys 2015-07-15 14:17:20 -07:00
Jae Kwon a8d03bddc9 added sts-final doc 2015-07-15 14:16:30 -07:00
Jae Kwon d13a593afd Parallel syntax change; SecretConnection implements net.Conn 2015-07-15 12:13:10 -07:00
Jae Kwon 5b41cc4fa5 Added secret_connection benchmark test 2015-07-15 04:07:03 -07:00
Jae Kwon 4981a5993d fixed handshake test; wrote broken read/write test 2015-07-14 22:35:32 -07:00
Jae Kwon dbef516659 failing tests for secret_connection 2015-07-14 18:41:24 -07:00
Jae Kwon 402b3a3e52 draft of secret_connection 2015-07-14 17:52:54 -07:00
Jae Kwon d91f073676 uuid branch tidying 2015-07-13 16:00:01 -07:00
Jae Kwon bdc2711f27 p2p comment prettify 2015-07-13 13:17:47 -07:00
Ethan Buchman f2ccfff18e respect maxNumPeers. closes #59 2015-07-12 18:31:24 +00:00
Ethan Buchman 0728539bc1 limit num connections per ip range 2015-07-12 17:54:34 +00:00
Ethan Buchman af5b763112 avoid connection to self 2015-07-12 16:49:12 +00:00
Ethan Buchman fca9e7f9ce send pexRequest to random peer in ensurePeers if no addrs to dial 2015-07-12 02:16:33 +00:00
Ethan Buchman 555dab4fd6 limit number of allowed connections per ip 2015-07-12 02:16:33 +00:00
Ethan Buchman d0610845dc peers use uuid to avoid duplicate connections 2015-07-12 02:16:33 +00:00
Ethan Buchman 9521e4e4e7 add peer to addrbook on AddPeer, after handshake 2015-07-12 02:16:33 +00:00
Ethan Buchman fadfc673e3 better upnp error msgs 2015-07-12 02:16:33 +00:00
Ethan Buchman 3f7f3dd37f add git commit hash to nodeInfo 2015-07-12 02:16:33 +00:00
Jae Kwon 5107988fb5 Call peer.stop() if we're not going to start() it 2015-07-11 13:25:42 -07:00
Jae Kwon d95234435a Fix bug in merkle/iavl_proof; TODO maybe read zero length slices as nil? 2015-07-08 18:27:16 -07:00
Jae Kwon 1f34236948 Limit binary data to 21MB 2015-07-07 18:35:21 -07:00
Jae Kwon e4435a8d1e Log embellishment 2015-07-05 17:07:45 -07:00
Jae Kwon 7983113024 logging of base p2p messages 2015-07-05 16:31:25 -07:00
Jae Kwon 6781b21d32 Split ReadBinary into ReadBinary/ReadBinaryPtr. 2015-06-26 16:43:41 -07:00
Jae Kwon 9965dd5de6 uint* to int* whereever appropriate; https://www.reddit.com/r/golang/comments/2q5vdu/int_vs_uint/ 2015-06-25 20:28:34 -07:00
Ethan Buchman 33566375af don't trust peer's node info 2015-06-17 17:55:16 -04:00
Ethan Buchman 57ff919d50 godep 2015-06-09 23:17:19 -04:00
Ethan Buchman 8a2d9525f0 network > chain_id, put in genesis.json 2015-05-29 18:14:19 -04:00
Jae Kwon 75ef479547 Config is passed into each module. Remove tendermint/confer 2015-05-17 16:19:57 -07:00
Jae Kwon ae171ba134 random dialing 2015-05-06 10:50:57 -07:00
Jae Kwon cfb4a40855 adding more debug logs 2015-05-04 22:22:39 -07:00
Jae Kwon 3c96890d2d All numbers are in BigEndian 2015-05-03 17:42:46 -07:00
Ethan Buchman 4f94e0f200 only allow one connection per ip 2015-05-01 18:06:15 -07:00
Jae Kwon d0fa3918ec NewTicker -> NewTimer, to fix a memory leak 2015-04-27 10:58:49 -07:00
Jae Kwon fcc26d7355 Resolve host for NetAddressFromString(). Test fix. 2015-04-23 18:41:14 -07:00
Jae Kwon f1703249ff ... 2015-04-23 18:40:44 -07:00
Jae Kwon d9bfe82d93 rpc.StartHTTPServer listener bug fix 2015-04-23 18:33:20 -07:00
Jae Kwon 66ff985cd2 Added a registry to Barak. 2015-04-23 16:56:46 -07:00
Ethan Buchman 0e80059e79 versioning 2015-04-23 16:53:28 -07:00
Jae Kwon 4bcfc1e4bb Merge pull request #55 from tendermint/sync
Sync
2015-04-22 11:15:31 -07:00
Jae Kwon 9513f601de Removed Log.File, all log goes out to stdout. 2015-04-22 11:07:34 -07:00
Ethan Buchman 67ea49c5fb Merge branch 'develop' of https://github.com/tendermint/tendermint into develop
Conflicts:
	p2p/peer.go
	rpc/core/net.go
	rpc/core/types/responses.go
2015-04-21 02:00:58 -07:00
Jae Kwon 2ba6f86f2e Add Network to SignBytes, to prevent network clashes 2015-04-20 23:59:52 -07:00
Jae Kwon df026f64fa Remoted bytes from logging messages 2015-04-20 18:51:20 -07:00
Jae Kwon dc1fddd1d8 Added NodeInfo (still need to add to AddrBook); Proper Handshake 2015-04-20 15:29:01 -07:00
Ethan Buchman 882a82bad4 more crawler work 2015-04-20 14:00:19 -07:00
Jae Kwon da9f4118a7 Atomic write to addrbook and privvalidator 2015-04-18 12:53:45 -07:00
Jae Kwon a9467414d6 Merge remote-tracking branch 'origin/websockets' into develop 2015-04-17 13:20:47 -07:00
Jae Kwon c72eb1be99 fix for{go func} scope issue 2015-04-17 11:08:03 -07:00
Jae Kwon 44565872ae Fixed BlockchainMessage{} Decode issue.
Fixed Warn(UnknownMessage) issues.
2015-04-16 17:53:33 -07:00
Jae Kwon 89cfedeb73 Make all messages be registered as pointer receivers,
Warn on unknown messages.
2015-04-16 17:46:27 -07:00
Ethan Buchman d27e0bbad5 event cache and fireable interace 2015-04-16 00:08:58 -07:00
Jae Kwon e5d34befde Remote TypeByte() 2015-04-14 15:57:16 -07:00
Jae Kwon 5b1c1eb0e0 ProposalMessage wrapper, warn on unknown messages 2015-04-13 08:40:37 -07:00
Jae Kwon 6d6f061f19 Support nil pointers for Binary.
If the thing does not already have a typebyte declared,
a fake one will be given (0x01).
A TypeByte of 0x00 is reserved for nil things.
No nil-dogs.
2015-04-12 17:46:16 -07:00
Jae Kwon 675dbf0e9c Merge branch 'rpc_jae' into develop
Conflicts:
	node/node.go
	rpc/core/accounts.go
	rpc/core_client/client.go
	rpc/handlers.go
	rpc/http_server.go
	rpc/test/helpers.go
	rpc/test/http_rpc_test.go
	rpc/test/json_rpc_test.go
2015-04-08 14:27:03 -07:00
Jae Kwon 7356556938 Some renames and small fixes. 2015-04-08 12:30:49 -07:00
Jae Kwon a09051438c Intermediate... working on debora 2015-04-08 11:35:17 -07:00
Ethan Buchman 474bf31400 events: integrate event switch into services via Eventable interface 2015-04-07 00:34:26 -05:00
Jae Kwon f271ab7256 various changes. removed debora temporarily 2015-04-03 16:15:52 -07:00
Jae Kwon 13b6508ecd Package import path change 2015-04-01 17:30:16 -07:00
Jae Kwon c74b5522a1 fixied IsListening() 2015-04-01 14:52:25 -07:00
Ethan Buchman 9ce75fe755 add debora support 2015-03-31 17:04:53 -07:00
Ethan Buchman 60f166e823 tendermint2 2015-03-31 15:33:31 -07:00
Jae Kwon 1a4aab4c35 When using JSONRPC, do not double-encode JSON. 2015-03-30 15:14:33 -07:00
Jae Kwon af3c418ea9 comment fixes 2015-03-26 00:52:07 -07:00
Jae Kwon 7171823fc6 Fix blockpool bugs and clean up log messages. 2015-03-25 23:04:17 -07:00
Jae Kwon bd6d9d646d start peer before AddPeer() on reactors. 2015-03-25 13:22:46 -07:00
Jae Kwon 788f9bfb93 started/stopped -> running; contiguous vs fast forward ConsensusState
updates.
2015-03-25 13:01:28 -07:00
Jae Kwon 94c3a51760 bug fix in daemon -- network name only, no chain hash 2015-03-25 12:13:32 -07:00
Jae Kwon cebfae60c7 BlockchainReactor syncs first before ConsensusReactor. 2015-03-25 11:50:28 -07:00
Jae Kwon aed4bbf0f0 Fix switch tests 2015-03-25 02:36:59 -07:00
Jae Kwon 08a83aa9fb Reactors can be stopped or started at any time. 2015-03-25 00:15:18 -07:00
Jae Kwon 0237d284cc Channel bytes are spelled fully, "XXXChannel" 2015-03-24 12:00:27 -07:00
Jae Kwon b25915ee41 Minor cleanup 2015-03-21 19:01:13 -07:00
Jae Kwon 43a0c253f8 Merge pull request #39 from tendermint/development
Development
2015-03-21 17:41:41 -07:00
Ethan Buchman a2938fd35b p2p: fix switch test for Broadcast returning success channel 2015-03-18 23:27:28 -07:00
Ethan Buchman 21530bf00f p2p: broadcast spawns goroutine to Send on each peer and times out after 10 seconds. Closes #7 2015-03-18 23:27:27 -07:00
Ethan Buchman 65a232bd9d p2p: fix switch_test to account for handshake 2015-03-18 23:27:27 -07:00
Ethan Buchman 4abca6e963 p2p: push handshake containing chainId for early disconnect. Closes #12 2015-03-18 23:27:27 -07:00
Ethan Buchman 7aa1d67c97 rpc: add status and net info 2015-03-18 23:23:56 -07:00
Jae Kwon 5c8e69d6de Log adding of addresses to book 2015-01-21 14:18:25 -08:00
Jae Kwon 85110224b4 Fix PeerSet.Remove() bug. 2015-01-21 13:40:26 -08:00
Jae Kwon 29cff9ff48 updated dialing logs 2015-01-20 15:52:30 -08:00
Jae Kwon 687815f6ed Less log lines to STDOUT 2015-01-20 15:31:31 -08:00
Jae Kwon 3f159dab69 proper string formatting for txs 2015-01-16 00:31:34 -08:00
Jae Kwon 135894ea88 Dot import -> named import
Changed modulename_ to short module names
Also removed Unreader, replaced with PrefixdReader in select locations
2015-01-14 20:34:53 -08:00
Jae Kwon 44a60a89c6 fixed #11 2015-01-14 00:02:34 -08:00
Jae Kwon 491970639d fix & log ping/pong; fixes #10 2015-01-13 18:22:41 -08:00
Jae Kwon 51c70dd8ac Write log also to a file. 2015-01-08 17:24:04 -08:00
Jae Kwon 05c642a84c Changed config to confer, TOML format. 2015-01-08 16:40:23 -08:00
Jae Kwon 40fec4f319 Stop peer routines upon connection failure 2014-12-30 16:49:23 -08:00
Jae Kwon 2ca882a9b6 Log which commits are being sent for catchup 2014-12-29 19:59:06 -08:00
Jae Kwon 3215cbf0d5 use tendermint/log15 2014-12-29 19:44:38 -08:00
Jae Kwon 07b5b7a8f2 various log fixes 2014-12-29 18:39:19 -08:00
Jae Kwon 0bfb389b35 change logger to log15 2014-12-29 18:09:06 -08:00
Jae Kwon 591d84947b Handle errors in DecodeMessage, added logging 2014-12-29 16:04:38 -08:00
Jae Kwon 5bace5cce8 Unreader to unread bytes 2014-12-29 15:14:54 -08:00
Jae Kwon b0755c938a Better debug output 2014-12-28 16:26:53 -08:00
Jae Kwon fa7c83166f P2P docs 2014-12-23 19:31:24 -08:00
Jae Kwon bff93107ef UPNP + hairpin probing 2014-12-23 17:20:52 -08:00
Jae Kwon 61d1635085 Fixed tests 2014-12-21 21:47:38 -08:00
Jae Kwon 83d313cbe5 Refactor Tx, Validator, and Account structure 2014-12-16 05:45:40 -08:00
Jae Kwon 8e9c060e6d Begin writing RPC HTTP Server 2014-12-16 05:43:23 -08:00
Jae Kwon 93979300be made cmd/, removed crypto/ 2014-11-07 23:27:03 -08:00
Jae Kwon 8718bd52a4 made ValidatorSet.Hash deterministic; fix off-by-1 bugs 2014-11-05 03:12:07 -08:00
Jae Kwon c3fc1a39ea BitArray sub fix 2014-11-05 03:11:38 -08:00
Jae Kwon 13d70e4112 stack trace in p2p/connection panics, bitArray fix 2014-11-05 03:11:37 -08:00
Jae Kwon 647d26f7a0 consensus cleanup, privValidator config 2014-11-05 03:11:37 -08:00
Jae Kwon b615e51f95 basic main.go completion 2014-11-05 03:11:37 -08:00
Jae Kwon 335b7a5984 ... 2014-10-06 01:46:39 -07:00
Jae Kwon 1ae9ecd2a9 fix basic tests. 2014-10-04 19:16:49 -07:00
Jae Kwon 8e452aa0d2 fixed algorithm 2014-10-03 01:09:26 -07:00
Jae Kwon 9c1795a04d add mempool to consensus 2014-09-11 22:44:59 -07:00
Jae Kwon 6a84b2e6aa p2p README update 2014-09-11 11:17:59 -07:00
Jae Kwon 8b606f9e66 s/Manager/Agent/g 2014-09-11 10:55:32 -07:00
Jae Kwon 4c961bd565 updated readme, implementing mempool. 2014-09-10 02:43:16 -07:00
Jae Kwon e53b148acf refactor from Binary centric model to global method model 2014-09-03 20:41:57 -07:00
Jae Kwon a8ece216f0 fix test cases 2014-08-31 01:48:40 -07:00
Jae Kwon d300a67bb1 saving development state... 2014-08-30 04:17:10 -07:00
Jae Kwon 8db5b7b614 move everything to blockManagerState; sim 2014-08-03 15:50:28 -07:00
Jae Kwon 666122861c implementing block_manager. currently only supports one datatype. 2014-07-29 23:53:35 -07:00
Jae Kwon 34fe442514 Connection -> MConnection, huge refactor. True multiplexing. 2014-07-28 01:41:25 -07:00
Jae Kwon 197c8328c9 ... 2014-07-24 14:20:33 -07:00
Jae Kwon c5732f9374 Moved PEX logic to PeerManager where it belongs. 2014-07-19 16:40:49 -07:00
Jae Kwon 6750d05b05 Message is wrapped by TypedMessage. 2014-07-18 21:21:42 -07:00
Jae Kwon 9464241c02 don't add our listener address into addrbook. 2014-07-17 16:06:34 -07:00
Jae Kwon 9f7765d334 cleanup log messages 2014-07-17 16:06:34 -07:00
Jae Kwon e50e14ddf5 switch events, node listens for new peers to ask for new addrs. 2014-07-17 16:06:34 -07:00
Jae Kwon 162bff99b2 addrbook key is more secure 2014-07-17 16:06:33 -07:00
Jae Kwon 45adb24d43 TMROOT env variable. Panic less. 2014-07-16 13:15:18 -07:00
Jae Kwon 92ea6c626f addrbook key is a string 2014-07-15 22:07:33 -07:00
Jae Kwon 1603d6f385 pretty print addrbook json 2014-07-15 21:53:39 -07:00
Jae Kwon ac668d4d14 Don't dial dupes 2014-07-15 15:54:33 -07:00
Jae Kwon c9114a677c fix off by one. 2014-07-15 14:57:22 -07:00
Jae Kwon 087a7b9a31 peeking when debug is on 2014-07-14 16:17:42 -07:00
Jae Kwon f53e6d1a33 replace logger with go-logging 2014-07-14 16:15:13 -07:00
Jae Kwon bbfdef5ea7 log external address 2014-07-14 14:09:18 -07:00
Jae Kwon 0ced862290 outgoing -> outbound, incoming -> inbound 2014-07-14 14:06:12 -07:00
Jae Kwon 56a92b512f Send external addresses upon new outbound peer 2014-07-14 14:04:26 -07:00
Jae Kwon 78663a09fe configure laddr & seed node from command line. 2014-07-12 18:37:55 -07:00
Jae Kwon cc9ea407aa with seed node 2014-07-12 14:52:31 -07:00
Jae Kwon b531597a53 show listener external address in log 2014-07-10 22:19:58 -07:00
Jae Kwon 0b1265dc10 . 2014-07-10 22:14:23 -07:00
Jae Kwon 442cae1f3f addrbook cleanup 2014-07-10 02:19:50 -07:00
Jae Kwon 1b59caf950 created "Node" 2014-07-09 18:33:44 -07:00
Jae Kwon 237b3dc7ff . 2014-07-09 14:32:45 -07:00
Jae Kwon 2d39e463a5 cleanup 2014-07-09 14:27:32 -07:00
Jae Kwon dca79ab5c1 bug fixes in binary 2014-07-08 15:33:26 -07:00
Jae Kwon 04eb07c26f fixed a bug 2014-07-08 08:34:49 -07:00
Jae Kwon ce51af9d4d PeerSet is for fast iteration of peers 2014-07-08 00:02:04 -07:00
Jae Kwon 61224f86c9 package rename peer -> p2p 2014-07-07 20:03:50 -07:00