* Problem: RethinkDB, change feed, old mongo, admin interface are not supported any longer.
Solution: Remove unsupported functionality. Bring the MongoDB backend implementation completely to the localmongodb package. Fix the test setup.
* Problem: Nothing depends on multipipes any longer.
Solution: Remove multipipes from setup.py.
* Problem: The how-to-run-tests doc uses --database-backend.
Solution: Do not include the --database-backend option into the documented pytest usage.
* Problem: The backends docs are outdated.
Solution: Document MongoDB as the default and only backend for BigchainDB.
* Problem: The inputs fixtures uses old blocks API.
Solution: Change the inputs fixtures to use the new blocks API.
* Problem: rethinkdb package is not used anymore.
Solution: Remove the rethinkdb dependency from setup.py.
* Problem: The abci-marked tests use outdated Mongo conn.
Solution: Replace MongoDBConnection with LocalMongoDBConnection for them.
The release process had some "Post-Release Steps" but I haven't been doing them lately. What were they?
The idea was to change the version number so that someone working on the `master` branch would see a version number reflecting what the `master` branch is. For example, if version 0.9.0 was just released, then the `master` branch would be changed to have the version number 0.10.0.dev, to indicate that it's the in-development version of 0.10.0.
My thinking now is that if someone is developing new code, then they don't need the version number to help them remember what they're doing. Moreover, if someone purposefully changes the docs to view the `master` branch docs, then they probably know what that means, and they don't need help from a version number.
* 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