* Copyedit simple-network-setup completeness & grammar
* Problem: Member doesn't know their BigchainDB Root URL
Solution: Add a section to tell the Member their BigchainDB Root URL
* Problem: Operator doesn't know how to reset their node
Solution: Add a section with commands an operator can use to reset their node
* Problem: Repeated previous sentence w/o changing it
Solution: Repeat previous sentence but change 'BigchainDB' to 'Tendermint' and delete the parenthetical sentence about MongoDB
* Address the comments by @vrde
* Fixed 2 PEP257 compliance errors
* Upgrade Tendermint to 0.19.7 except for Docker image, which is still at 0.19.2
* Problem: backlog_reassign_delay is defunct but still listed
Solution: remove all mentions of & calls for backlog_reassign_delay
* Fixed 2 PEP257 compliance errors
* Upgrade Tendermint to 0.19.7 except for Docker image, which is still at 0.19.2
* In the Appendices, update page re/ The Bigchain Class
* Problem: No automated way to set up a dev/test network
* Problem: docs not updated for stack, ansible and docker based dev environments
* Problem: Using apt triggers java runtime installation on MacOS
- Update pre_tasks in ansible
- Update bigchaindb-stop playbook to handle pre_tasks
* Update Tendermint version to 0.19.3 from 0.19.2
* Update tendermint version to 0.19.3 everywhere else
* Problem: Sphinx warns about duplicate section labels
Solution: Don't use sphinx.ext.autosectionlabel
* Problem: Sphinx complains that run-node-with-docker not in any TOC
Solution: Add run-node-with-docker to a TOC (i.e. to an index.rst file)
* Tendermint has not tagged `0.19.3` container
* Problem: Internal hyperlinks to new pages not working
Solution: Add .html to the ends of the filename strings
* Problem: Invalid script imports
* Problem: Invalid comparison for supported OS version
* Addressing comments I
* Problem: No way to configure dev/forked repo for developers
* Problem: Docs not updated with STACK_REPO parameter
* Addressing comments II
* 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.
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
Solution: update the documentation to reflect this. I've also removed
the documentation about the event plugin API. That part needs to be
refactored to work properly with BigchainDB 2.0. We can reintroduce it
later.
* Problem: Multi-threading not configured
Solution: Auto-generate multi-threading config with default threads and workers set to 1
* Problem: Documentation not updated for multi-threading
Solution: Updated necessary docs
- Standardize docker-compose workflow
- Change docker-compose version to 2.1
- why one might ask? because compose version
3.0 does not support depends on and inherits
like we want to and is more aimed towards migration to using
`docker stack`, for our current strategy `2.1` is a better choice.
- change `bdb` service `bigchaindb` service
- why? Introduced a new proxy service `bdb` which is just a dummy
`busybox` image.
- why? because this ensure via healthcheck of bigchaindb that BigchainDB
has started properly and makes a `curl` to ensure HTTP API server is up
and running.
- why? Because we have had scenarios where BigchainDB is not started
via docker compose and user has to check out the logs to find out what
the problem might be. This ensure that bigchaindb is up and running.
- Does this change deployment workflow? No.
- The only thing change is that if you want to run commands inside a bigchaindb
container e.g. `pytest` now you have to run the following command:
`docker-compose run --rm --no-deps bigchaindb pytest -v --cov=bigchaindb`
as opposed to `docker-compose run --rm --no-deps bdb pytest -v --cov=bigchaindb`
- Remove env variable `BIGCHAINDB_START_TENDERMINT`
- Remove TENDERMINT_INTEGRATION.rst and move to the new docs
- Change mdb -> mongodb because the other services were named with
full name.
- Add example to run specific tests or from a file
- Update config.toml for tendermint to use `bigchaindb` as proxy app
instead of `bdb`
- Remove `network` directory because it is deprecated
- Add comment about why PYTHONBUFFERED is used
* Problem: Docs for BEP#3 implementation not updated
Solutions: Update docs for #2070 and #2106
* Problem: 'Validator update' docs language not clear
Solution: Re-write the documentation which explains when validators are updated
* Problem: Typos and BEP reference missing
Solution: Fix typos and add BEP reference
- Update docs for azure cluster deployment template
- Update entrypoint for MongoDB to handle user configuration
more efficiently
- remove `use admin` in js file, that is an invalid format