* Problem: BigchainDB does not support newer MongoDB
Solution: Update driver to the last version, that is compatible with all
versions of MongoDB
* Update to MongoDB 3.6
* Updated CHANGELOG.md for version 2.0 Alpha 5
* Updated image tags in k8s files for 2.0 Alpha 5
* Updated version.py for 2.0 Alpha 5
* Problem: Missing alpha5 image update for test network containers
* Problem: CHANGELOG not updated with 2284
* Problem: Liveness probe frequency change not the important
* Problem: acceptance-test suite is not documented
Solution: add README.md in the root of the acceptance tests, unify
`Makefile` and commands, remove more cached files when `make clean` is
ran.
* Problem: documentation does not mention Makefile
Solution: update docs with our new and shiny commands
* Initial CHANGELOG.md edits for the 2.0 Alpha 4 release
* Added PR #2275 to CHANGELOG.md for the 2.0 Alpha 4 release
* Update k8s image tags for the 2.0 Alpha 4 release
* Update version.py for the 2.0 Alpha 4 release
* Problem: Amount error is not tested on the HTTP level.
Solution: A failed web test to reproduce the problem.
* Problem: Invalid transaction posted to Tendermint
Solution: Pass the exception to HTTP POST handler function
* Problem: DoubleSpend and CriticalDoubleSpend not differentiated
Solution: Handle these exceptions differently in `get_spent`
* Problem: No test for checking exception DoubleSpend and CriticalDoubleSpend
Solution: Add necessary tests
* Problem: find doesn't raise IndexError
Solution: Remove exception handling for IndexError
* Initial CHANGELOG.md updates for 2.0 Alpha 3
* More updates to CHANGELOG.md for 2.0 Alpha 3
* Added note in CHANGELOG.md about the bigchaindb-abci package we're using for now
* Updated Docker image tags to bigchaindb/bigchaindb:2.0.0-alpha3
* Updated version.py for BigchainDB 2.0 Alpha 3
* Problem: Upsert validator not migrated to Tendermint 0.19.0
Solution: Migrate the same to Tendermint 0.19.0
* Problem: There are no tests for public key encoding/decoding
Solution: Add necessary tests
Solution
As per Tendermint 0.16.0 , --p2p.seeds is now --p2p.persistent_peers. Update bigchaindb/tendermint container to use that configuration. Also disable --p2p.pex, we currently don't want the peer exchange.
Solution
Since BigchainDB and Tendermint are so tightly coupled we need to introduce a process supervisor to make them act like a single microservice, so that if BigchainDB crashes, Tendermint does as well and both are restarted and Tendermint requests a connection towards the proxy app.
In Kubernetes, they can be exposed as part of a one POD.
For BigchainDB as a system service/process, we need to introduce a process supervisor such as systemd.
This PR only solves the former.
Changes
Upgrade deployment from Tendermint v0.12.0 to v0.19.0
Update some documentation
Fix nginx-http entrypoint issues.
Update generate-configs.sh script to handle config generation without https-certificates.
Update Dockerfile to process dependency links introduced by abci
Integrate BigchainDB and Tendermint as a single microservice.
This required making BigchainDB to be exposed as a statefulset.
Introduce new liveness probe checks.
Issues Resolved
Partially fixes#2232
* remove max_tries while connecting to tendermint ws
Signed-off-by: Shahbaz Nazir <shahbaz@bigchaindb.com>
* leave healthcheck as is for now
Signed-off-by: Shahbaz Nazir <shahbaz@bigchaindb.com>
* Problem: No docs explaining use of MongoDB for querying
Solution: Start a new root docs page explaining how a node operator can use the full power of MongoDB's query engine, and can expose as much of that as they like to end users.
* Finished first draft of new docs page 'Querying BigchainDB'