Files
tendermint/test
dongsam e30b125725 consensus: double-sign risk reduction (ADR-51) (#5147)
Implementation spec of Double Signing Risk Reduction [ADR-51](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-051-double-signing-risk-reduction.md) by B-Harvest
- Add `DoubleSignCheckHeight` config variable to ConsensusConfig for "How many blocks looks back to check existence of the node's consensus votes when before joining consensus"
- Add `consensus.double_sign_check_height` to `config.toml` and `tendermint node` as flag for set `DoubleSignCheckHeight`
- Set default `consensus.double_sign_check_height` to `0`  ( it could be adjustable in this PR, disable when 0  )

Refs

- [ADR-51](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-051-double-signing-risk-reduction.md)
- [https://github.com/tendermint/tendermint/issues/4059](https://github.com/tendermint/tendermint/issues/4059)
- [https://github.com/tendermint/tendermint/pull/4262](https://github.com/tendermint/tendermint/pull/4262)
2020-08-27 08:57:36 +04:00
..
2020-07-01 08:36:16 +00:00

Tendermint Tests

The unit tests (ie. the go test s) can be run with make test. The integration tests can be run with make test_integrations.

Running the integrations test will build a docker container with local version of tendermint and run the following tests in docker containers:

  • go tests, with --race
    • includes test coverage
  • app tests
    • kvstore app over socket
    • counter app over socket
    • counter app over grpc
  • persistence tests
    • crash tendermint at each of many predefined points, restart, and ensure it syncs properly with the app
  • p2p tests
    • start a local kvstore app testnet on a docker network (requires docker version 1.10+)
    • send a tx on each node and ensure the state root is updated on all of them
    • crash and restart nodes one at a time and ensure they can sync back up (via fastsync)
    • crash and restart all nodes at once and ensure they can sync back up
    • restart each nodes with double_sign_check_height and ensure panic if the same consensus key was used to sign in double_sign_check_height blocks