01be6fa309
Fix WSClient blocking in the readRoutine after Stop() as it tries to write to ResultsCh
2017-10-24 13:31:24 +01:00
5504920ba3
rpc/lib/client: add jitter for exponential backoff of WSClient
...
Fixes https://github.com/tendermint/tendermint/issues/751 .
Adds jitter to our exponential backoff to mitigate a self DDOS
vector. The jitter is a randomly picked percentage of a second
whose purpose is to ensure that each exponential backoff retry
occurs within (1<<attempts) == 2**attempts, but with the delay
each client will have a random buffer time before it tries to
reconnect instead of all at once reconnections that might even
bring back the previous conditions that might have caused the
dial to the WSServer to have failed e.g
* Network outage
* File descriptor exhaustion
* False positives from firewalls
etc
2017-10-24 02:00:20 -07:00
ac2ef9e0ea
Merge pull request #750 from tendermint/feature/cleanup
...
Cleanup of code and code docs
2017-10-23 11:14:15 -04:00
7a6876bc62
Merge pull request #768 from tendermint/feature/merkleeyes-to-iavl
...
Feature/merkleeyes to iavl
2017-10-23 11:07:21 -04:00
036d3b59a3
Address reviews
2017-10-23 11:04:45 -04:00
782a836db0
Cleanup of code and code docs
...
This cleans up some of the code in the state package
2017-10-23 11:04:45 -04:00
60b7f2c61b
Merge pull request #767 from silasdavis/do-not-swallow
...
Make RPCError an actual error and don't swallow its companion data
2017-10-23 01:51:40 -04:00
3e3d53daef
Make RPCError an actual error and don't swallow its companion data
2017-10-22 15:14:21 +01:00
b234f7aba2
Merge pull request #741 from tendermint/client-compile-time-assertions
...
rpc/client: use compile time assertions instead of methods
2017-10-17 03:41:24 -04:00
5f218a43fd
rpc/client: use compile time assertions instead of methods
2017-10-13 14:30:54 -06:00
7518c4a9be
[rpc] update comment [ci skip]
2017-10-13 15:03:21 +04:00
db413aadfd
fixes from @cloudhead review
2017-10-13 15:03:21 +04:00
5433e5771e
support historical abci queries (Refs #482 )
2017-10-13 15:03:20 +04:00
e2e50bc0fc
rpc: use /iavl repo in test ( #713 )
2017-10-11 10:35:22 -04:00
9fb45c5b5a
remove a stale comment
2017-10-10 10:52:26 -04:00
aae4e94998
make RPCRequest params not a pointer
...
https://github.com/tendermint/tendermint/pull/724#issuecomment-335362927
2017-10-10 13:50:06 +04:00
d935a4f0a8
recover from panic in WS JSON RPC readRoutine
...
https://github.com/tendermint/tendermint/pull/724#issuecomment-335316484
2017-10-10 13:48:56 +04:00
5c331d8276
log a notification to help debug user issues
2017-10-10 13:01:25 +04:00
13b9de6778
return missing package declaration
2017-10-10 12:48:36 +04:00
dc0e8de9b0
extract some of the consensus types into ./types
...
so they can be used in rpc/core/types/responses.go.
```
So, it seems like we could use the actual structs here, but we don't want to have to import consensus to get them, as then clients are importing too much crap. So probably we should move some types from consensus into consensus/types so we can import.
Will these raw messages be identical to:
type ResultDumpConsensusState struct {
RoundState cstypes.RoundState
PeerRoundStates map[string]cstypes.PeerRoundState
}
```
https://github.com/tendermint/tendermint/pull/724#discussion_r143598193
2017-10-10 12:39:21 +04:00
d6a87d3c43
[rpc] DumpConsensusState: output state as json rather than string
...
Before:
```
{
"jsonrpc": "2.0",
"id": "",
"result": {
"round_state": "RoundState{\n H:10 R:0 S:RoundStepNewHeight\n StartTime: 2017-10-09 13:07:24.841134374 +0400 +04\n CommitTime: 2017-10-09 13:07:23.841134374 +0400 +04\n Validators: ValidatorSet{\n Proposer: Validator{EF243CC0E9B88D0161D24D733BDE9003518CEA27 {PubKeyEd25519{2E0B9301334FCDAB193D514022F81BA09BBEC028685C96602BE9DD0BD4F9E202}} VP:10 A:0}\n Validators:\n Validator{EF243CC0E9B88D0161D24D733BDE9003518CEA27 {PubKeyEd25519{2E0B9301334FCDAB193D514022F81BA09BBEC028685C96602BE9DD0BD4F9E202}} VP:10 A:0}\n }\n Proposal: \u003cnil\u003e\n ProposalBlock: nil-PartSet nil-Block\n LockedRound: 0\n LockedBlock: nil-PartSet nil-Block\n Votes: HeightVoteSet{H:10 R:0~0\n VoteSet{H:10 R:0 T:1 +2/3:\u003cnil\u003e BA{1:_} map[]}\n VoteSet{H:10 R:0 T:2 +2/3:\u003cnil\u003e BA{1:_} map[]}\n }\n LastCommit: VoteSet{H:9 R:0 T:2 +2/3:947F67A7B85439AF2CD5DFED376C51AC7BD67AEE:1:365E9983E466 BA{1:X} map[]}\n LastValidators: ValidatorSet{\n Proposer: Validator{EF243CC0E9B88D0161D24D733BDE9003518CEA27 {PubKeyEd25519{2E0B9301334FCDAB193D514022F81BA09BBEC028685C96602BE9DD0BD4F9E202}} VP:10 A:0}\n Validators:\n Validator{EF243CC0E9B88D0161D24D733BDE9003518CEA27 {PubKeyEd25519{2E0B9301334FCDAB193D514022F81BA09BBEC028685C96602BE9DD0BD4F9E202}} VP:10 A:0}\n }\n}",
"peer_round_states": []
}
}
```
After:
```
{
"jsonrpc": "2.0",
"id": "",
"result": {
"round_state": {
"Height": 1691,
"Round": 0,
"Step": 1,
"StartTime": "2017-10-09T14:08:09.129491764+04:00",
"CommitTime": "2017-10-09T14:08:08.129491764+04:00",
"Validators": {
"validators": [
{
"address": "EF243CC0E9B88D0161D24D733BDE9003518CEA27",
"pub_key": {
"type": "ed25519",
"data": "2E0B9301334FCDAB193D514022F81BA09BBEC028685C96602BE9DD0BD4F9E202"
},
"voting_power": 10,
"accum": 0
}
],
"proposer": {
"address": "EF243CC0E9B88D0161D24D733BDE9003518CEA27",
"pub_key": {
"type": "ed25519",
"data": "2E0B9301334FCDAB193D514022F81BA09BBEC028685C96602BE9DD0BD4F9E202"
},
"voting_power": 10,
"accum": 0
}
},
"Proposal": null,
"ProposalBlock": null,
"ProposalBlockParts": null,
"LockedRound": 0,
"LockedBlock": null,
"LockedBlockParts": null,
"Votes": {},
"CommitRound": -1,
"LastCommit": {},
"LastValidators": {
"validators": [
{
"address": "EF243CC0E9B88D0161D24D733BDE9003518CEA27",
"pub_key": {
"type": "ed25519",
"data": "2E0B9301334FCDAB193D514022F81BA09BBEC028685C96602BE9DD0BD4F9E202"
},
"voting_power": 10,
"accum": 0
}
],
"proposer": {
"address": "EF243CC0E9B88D0161D24D733BDE9003518CEA27",
"pub_key": {
"type": "ed25519",
"data": "2E0B9301334FCDAB193D514022F81BA09BBEC028685C96602BE9DD0BD4F9E202"
},
"voting_power": 10,
"accum": 0
}
}
},
"peer_round_states": {
"75EC8F15D244A421202F9725CD4DE509EE50303670310CF7530EF25E2B7C524B": {
"Height": 1691,
"Round": 0,
"Step": 1,
"StartTime": "2017-10-09T14:08:08.563251997+04:00",
"Proposal": false,
"ProposalBlockPartsHeader": {
"total": 0,
"hash": ""
},
"ProposalBlockParts": null,
"ProposalPOLRound": -1,
"ProposalPOL": null,
"Prevotes": null,
"Precommits": null,
"LastCommitRound": 0,
"LastCommit": null,
"CatchupCommitRound": -1,
"CatchupCommit": null
}
}
}
}
```
2017-10-09 14:09:26 +04:00
a3adac3787
[rpc] do not try to parse params if they were not provided (Refs #708 )
2017-10-09 13:30:52 +04:00
3702cb7e7c
restore rpc/lib readme as doc.go (Refs #710 ) [ci skip]
...
I don't want to lose any documentation. Correct me if I am wrong, but we
don't have this docs anywhere else.
2017-10-05 11:44:02 +04:00
136b6a7673
rpc/lib: remove dead files, closes #710
2017-10-04 17:45:15 -04:00
d56b44f3a5
all: no more anonymous imports
2017-10-04 16:40:45 -04:00
45ff7cdd0c
rewrite ws client to expose a callback instead of a channel
...
callback gives more power to the publisher. plus it is optional
comparing to a channel, which will block the whole client if you won't
read from it.
2017-10-02 13:00:20 -04:00
ce36a0111a
rpc: subscribe on reconnection ( #689 )
...
* rpc: subscribe on reconnection
* rpc: fix unit tests
2017-10-02 13:00:20 -04:00
b61f5482d4
Fix broken reference to ABCI
2017-10-02 13:00:20 -04:00
382bead548
rpc: fix client websocket timeout ( #687 )
2017-09-29 13:32:30 +04:00
f9479b34cb
sleep time should be greater than readTimeout (5 sec)
...
otherwise, we're not testing ping/pongs.
see https://github.com/tendermint/tendermint/pull/687#issuecomment-332494735
2017-09-27 15:44:19 +04:00
8311f5c611
abci.Info takes a struct; less merkleeyes
2017-09-22 11:42:40 -04:00
ddb3d8945d
p2p: allow listener with no external connection
2017-09-22 10:13:23 -04:00
779c2a22d0
node: NewNode takes DBProvider and GenDocProvider
2017-09-21 15:54:33 -04:00
4382c8d28b
fix tests
2017-09-21 15:52:25 -04:00
7dd3c007c7
Refactor priv_validator
...
Users can now just pass an object that implements the Signer interface.
2017-09-21 15:50:43 -04:00
3089bbf2b8
Amount -> Power. Closes #166
2017-09-21 14:59:27 -04:00
f8b152972f
return method not found error
...
if somebody tries to access WS method in non-ws context
2017-09-18 16:36:03 -04:00
95875c55fc
ID must be present in both request and response
...
from the spec:
This member is REQUIRED.
It MUST be the same as the value of the id member in the Request Object.
If there was an error in detecting the id in the Request object (e.g. Parse error/Invalid Request), it MUST be Null.
2017-09-18 16:36:03 -04:00
7fadde0b37
check for request ID after receiving it
2017-09-18 16:36:03 -04:00
e36c79f713
capitalize RpcError
2017-09-18 16:36:03 -04:00
b700ed8e31
remove check for non-empty message as it should always be present
2017-09-18 16:36:03 -04:00
f74de4cb86
include optional data field in error object
...
```
data
A Primitive or Structured value that contains additional information about the error.
This may be omitted.
The value of this member is defined by the Server (e.g. detailed error information, nested errors etc.).
```
2017-09-18 16:36:02 -04:00
6c1572c9b8
fix invalid memory address or nil pointer dereference
2017-09-18 16:36:02 -04:00
60a1f49a5c
updated json response to match spec by @davebryson
2017-09-18 16:35:50 -04:00
aea8629272
peer interface
2017-09-15 18:40:59 -04:00
ec3c91ac14
Merge pull request #618 from tendermint/historical_validators
...
Historical validators
2017-09-06 01:46:31 -04:00
cc2b418f7f
p2p: test fix
2017-09-05 17:10:11 -04:00
9deb647303
fixes from review
2017-09-04 18:29:51 -04:00
f0f1ebe013
rpc: Block and Commit take pointers; return latest on nil
2017-09-03 16:07:37 -04:00
e2e8746044
rpc: historical validators
2017-09-03 16:07:37 -04:00