mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
* Problem: We need a way to synchronize a halt to block production to allow for upgrades across breaking changes. * Solution: Created `MigrationElection`. * Problem: Need documentation for `migration` elections. * Solution: Updated the docs. * Problem: `MigrationElection` needs 'new' CLI method. * Solution: Updated the definition of `election` to include the new `migration` type. * Problem: The way `end_block` checks for concluded elections assumes there is only one type of election (so we can't conclude an `upsert-validator` and a `chain-migration` at the same height). * Solution: Re-engineered the code in `Elections` to conclude multiple elections in the same block. If more than one election change the validator set, only one of them is applied. * Problem: Tendermint change to store validator changes at height h+2 will break `Election.get_status`. * Solution: Reworked `get_validator_change` to look at only the latest block height or less.
BigchainDB Server Unit Tests
Most of the tests in the tests/ folder are unit tests. For info about how to write and run tests, see the docs about contributing to BigchainDB, especially:
- Write Code - Remember to Write Tests
- Notes on Running a Local Dev Node with Docker Compose, especially
make test - Notes on Running a Local Dev Node as Processes (and Running All Tests)
Note: There are acceptance tests in the acceptance/ folder (at the same level in the hierarchy as the tests/ folder).