Commit Graph
217 Commits
Author SHA1 Message Date
Callum WatersandGitHub 6f6ac5c04e state sync: reverse sync implementation (#6463) 2021-06-08 19:23:52 +02:00
Sam KleinmanandGitHub a855f96946 p2p: renames for reactors and routing layer internal moves (#6547) 2021-06-08 08:17:09 -04:00
MarkoandGitHub 7cc32f3f0f docs: logger updates (#6545)
## Description

Update for logging changes
2021-06-07 13:31:02 +00:00
Aleksandr BezobchukandGitHub 3635c7a382 logger: refactor Tendermint logger by using zerolog (#6534) 2021-06-07 08:30:48 -04:00
Sam KleinmanandGitHub 00c284d9d7 node: change package interface (#6540) 2021-06-04 11:36:30 -04:00
Aleksandr BezobchukandGitHub 7ec123c968 improvement: update TxInfo (#6529)
Remove `Context` from the `TxInfo` type and instead require the caller to pass a `Context` to `CheckTx` which is idiomatic.

closes: #6497
2021-06-02 13:53:57 +00:00
Aleksandr BezobchukandGitHub 1e4bc04cd6 mempool: v1 implementation (#6466) 2021-06-01 11:17:45 -04:00
Sam KleinmanandGitHub 7bf84d9d7f config: seperate priv validator config into seperate section (#6462)
Addresses a beginning component of #6255
2021-05-31 13:16:46 +00:00
Sam KleinmanandGitHub e2a26c732c e2e: prevent non-viable testnets (#6486) 2021-05-24 14:10:56 -04:00
Sam KleinmanandGitHub fa891c5a4b node: cleanup pex initialization (#6467) 2021-05-14 10:05:59 -04:00
Callum WatersandGitHub a91680efee test: create common functions for easily producing tm data structures (#6435) 2021-05-07 17:00:02 +02:00
Callum WatersandGitHub ec5e3b0b02 p2p: wire pex v2 reactor to router (#6407) 2021-05-05 18:46:51 +02:00
Aleksandr BezobchukandGitHub 09a6ad7b1e types: Refactor EventAttribute (#6408) 2021-04-30 09:27:51 -04:00
Callum WatersandGitHub 3c50c5a845 github actions: fix e2e-nightly-master.yml (#6398) 2021-04-28 12:22:18 +02:00
Callum WatersandGitHub be2ac87ab0 e2e: split out nightly tests (#6395) 2021-04-27 21:34:08 +02:00
Callum WatersandGitHub 5bafedff17 evidence: fix bug with hashes (#6375) 2021-04-21 18:50:39 +02:00
Sam KleinmanandGitHub d36a5905a6 statesync: improve e2e test outcomes (#6378)
I believe that this, in my testing seems to help the e2e state-sync
tests complete more reliably, by fixing some potential, range-related
slice building, as well as the way the test app hashes snapshots.

Additionally, and I'm not sure if we want to do this, but I added this
hook to the reactor that re-sends the request for snapshots during the
retry. This helps in tests prevent systems from getting stuck, but I
think in reality, it might create more traffic, and operators would
just restart a state-syncing node to get a similar effect.
2021-04-21 16:00:15 +00:00
Callum WatersandGitHub 8e8de2b2fb node: use db provider instead of mem db (#6362) 2021-04-16 19:07:18 +02:00
Sam KleinmanandGitHub 4d03d7516b test/e2e: produce structured reporting from benchmarks (#6343) 2021-04-14 10:12:46 -04:00
Aleksandr BezobchukandGitHub 47b28fd6aa p2p: minor cleanup + update router options (#6353) 2021-04-14 09:35:43 -04:00
JayT106andGitHub ca7dbea05b Set cache control in the HTTP-RPC response header (#6265) 2021-04-14 14:05:27 +02:00
Callum WatersandGitHub 2b8aa65e4f e2e: tx load to use broadcast sync instead of commit (#6347) 2021-04-13 17:59:15 +02:00
Sam KleinmanandGitHub 0f41f7465c p2p: extend e2e tests for new p2p framework (#6323) 2021-04-08 11:09:21 -04:00
Callum WatersandGitHub 358d1a28b8 node: remove mode defaults. Make node mode explicit (#6282) 2021-04-02 09:31:25 +02:00
Callum WatersandGitHub cbae3613dd e2e: add evidence generation and testing (#6276) 2021-03-29 20:00:20 +02:00
Aleksandr BezobchukandGitHub a554005136 p2p: revised router message scheduling (#6126) 2021-03-25 16:58:46 -04:00
Callum WatersandGitHub 7d53cb232c e2e: fix perturbation of seed nodes (#6272) 2021-03-25 15:50:27 +01:00
Aleksandr BezobchukandGitHub 003f394512 rpc: index block events to support block event queries (#6226) 2021-03-22 11:47:35 -04:00
9f7051d38a node: implement tendermint modes (#6241)
Co-authored-by: dongsam <dongsamb@gmail.com>
Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
2021-03-18 11:17:53 +01:00
Callum WatersandGitHub fa781e6bb7 e2e: fix light client generator (#6236) 2021-03-15 13:04:33 +01:00
Callum WatersandGitHub 6b4024ad75 fix e2e app test (#6223) 2021-03-10 10:32:51 +01:00
Callum WatersandGitHub 418e2c140f e2e: integrate light clients (#6196) 2021-03-05 14:24:45 +01:00
Callum WatersandGitHub 0566bea8b2 e2e: add benchmarking functionality (#6210) 2021-03-05 13:26:18 +01:00
Aleksandr BezobchukandGitHub be88fd3e63 mempool/rpc: log grooming (#6201) 2021-03-03 19:45:35 -05:00
Callum WatersandGitHub cab10db725 e2e: adjust timeouts to be dynamic to size of network (#6202) 2021-03-03 18:41:07 -05:00
Callum WatersandGitHub 90fe178b52 mempool: don't return an error on checktx with the same tx (#6199) 2021-03-03 21:02:45 +01:00
Anton KaliaevandGitHub 36d92cd0b6 test/fuzz: fix rpc, secret_connection and pex tests (#6190)
* test/fuzz: fix rpc, secret_connection and pex tests

- ignore empty data in rpc
- provide correct IP in pex
- spawn a goroutine for Write and do multiple Read(s)

* test/fuzz: fix init in pex test

* test/fuzz: assign NewServeMux to global var

* test/fuzz: only try to Unmarshal if blob is not empty

* run fuzz tests for PRs which modify fuzz tests themselves

* test/fuzz: move MakeSwitch into init
2021-03-02 17:30:06 +04:00
Anton KaliaevandGitHub 089b314bdb test/fuzz: fix PEX reactor test (#6188)
* test/fuzz: fix PEX reactor test

* .github: [fuzz] increase retention period for crashers
2021-03-01 20:18:51 +04:00
MarkoandGitHub e2384a00ce privval: return errors on loadFilePV (#6185)
## Description

- return errors on `loadFilePv`

closes #6182
2021-03-01 09:10:09 +00:00
Anton KaliaevandGitHub e9e5026dac rpc/client/http: drop endpoint arg from New and add WSOptions (#6176)
also

- replace `MaxReconnectAttempts`, `ReadWait`, `WriteWait` and `PingPeriod` options with `WSOptions` in `WSClient` (rpc/jsonrpc/client/ws_client.go).
- set default write wait to 10s for `WSClient`(rpc/jsonrpc/client/ws_client.go)
- unexpose `WSEvents`(rpc/client/http.go)

Closes #6162
2021-02-25 06:57:31 +00:00
Erik GrinakerandGitHub b6be889b97 node: feature flag for legacy p2p support (#6056) 2021-02-16 11:57:16 -05:00
Callum WatersandGitHub d4b04776bd e2e: disconnect maverick (#6099) 2021-02-11 15:09:57 -05:00
Callum WatersandGitHub 162f67cf26 correct spelling to US english (#6077) 2021-02-11 18:59:18 +01:00
MarkoandGitHub 5fd0a3e9e4 maverick: reduce some duplication (#6052)
## Description 

- Reduce duplication in messages and metrics. 
- merge WAL interfaces. Meant to push the developer to make changes in both places.
2021-02-05 09:29:26 +00:00
Erik GrinakerandGitHub 9b6d6a3ad0 p2p: tighten up Router and add tests (#6044)
This cleans up the `Router` code and adds a bunch of tests. These sorts of systems are a real pain to test, since they have a bunch of asynchronous goroutines living their own lives, so the test coverage is decent but not fantastic. Luckily we've been able to move all of the complex peer management and transport logic outside of the router, as synchronous components that are much easier to test, so the core router logic is fairly small and simple.

This also provides some initial test tooling in `p2p/p2ptest` that automatically sets up in-memory networks and channels for use in integration tests. It also includes channel-oriented test asserters in `p2p/p2ptest/require.go`, but these have primarily been written for router testing and should probably be adapted or extended for reactor testing.
2021-02-03 23:03:02 +00:00
Erik GrinakerandGitHub 5f88d6aa44 test/e2e: increase validator tolerances (#6037) 2021-02-02 16:41:27 +00:00
Erik GrinakerandGitHub 3d01d98f67 test/e2e: increase sign/propose tolerances (#6033)
E2E tests often fail because validators miss signing or proposing blocks. Often this is because e.g. there's a lot of disruption in the network or it takes a long time to start up all the nodes.

This changes the test criteria to only check for 3 signed/proposed blocks, rather than a fraction of the expected blocks. This should be enough to catch most issues, apart from performance problems causing nodes to miss signing/proposing, but we may want separate tests for those sorts of things.
2021-02-02 12:43:08 +00:00
Erik GrinakerandGitHub 50b8907581 p2p: clean up new Transport infrastructure (#6017)
This revises the new P2P `Transport` interface and does some preliminary code cleanups and simplifications.

The major change here is to add `Connection.Handshake()` for performing node handshakes (once the stream transport API is implemented, this can be done entirely independent of the transport).  This moves most of the handshaking logic into the `Router`, such as prevention of head-of-line blocking, validation of peer's `NodeInfo`, controlling timeouts, and so on. This significantly simplifies transports, completely removes the need for internal goroutines, and shares common logic across all transports. This also allows varying the handshake `NodeInfo` across peers, e.g. to vary `ListenAddr`. Similarly, connection filtering is also moved into the switch/router so that it can be shared between transports.
2021-01-30 10:51:22 +00:00
Anton KaliaevandGitHub b1646e51e2 test/e2e: enable pprof server to help debugging failures (#6003) 2021-01-28 15:21:07 +00:00
Anton KaliaevandGitHub a54f1544f8 .github: rename crashers output (fuzz-nightly-test) (#5993) 2021-01-28 19:12:48 +04:00