1
0
mirror of https://github.com/bigchaindb/bigchaindb.git synced 2024-06-23 01:36:42 +02:00
bigchaindb/docs
Ahmed Muawia Khan dbabe94887 Problem: BigchainDB and Tendermint inconsistencies because disjoint services (#2242)
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
2018-04-27 15:54:47 +02:00
..
contributing Problem: No link back to Root Docs from Contrib. Docs (#2170) 2018-04-03 12:28:47 +02:00
root Problem: No docs explaining use of MongoDB for querying (#2193) 2018-04-23 19:30:45 +02:00
server Problem: BigchainDB and Tendermint inconsistencies because disjoint services (#2242) 2018-04-27 15:54:47 +02:00
upgrade-guides Renamed output -> output_index in the outputs endpoint example 2017-07-04 16:04:24 +02:00
README.md Problem: standardize docker-compose workflows (#2130) 2018-03-21 12:42:43 +01:00

The BigchainDB Documentation Strategy

  • Include explanatory comments and docstrings in your code. Write Google style docstrings with a maximum line width of 119 characters.
  • For quick overview and help documents, feel free to create README.md or other X.md files, written using GitHub-flavored Markdown. Markdown files render nicely on GitHub. We might auto-convert some .md files into a format that can be included in the long-form documentation.
  • We use Sphinx to generate the long-form documentation in various formats (e.g. HTML, PDF).
  • We also use Sphinx to generate Python code documentation (from docstrings and possibly other sources).
  • We also use Sphinx to document all REST APIs, with the help of the httpdomain extension.

How to Generate the HTML Version of the Long-Form Documentation

If you want to generate the HTML version of the long-form documentation on your local machine, you need to have Sphinx and some Sphinx-contrib packages installed. To do that, go to a subdirectory of docs (e.g. docs/server) and do:

pip install -r requirements.txt

If you're building the Server docs (in docs/server) then you must also do:

pip install -e ../../

Note: Don't put -e ../../ in the requirements.txt file. That will work locally but not on ReadTheDocs.

You can then generate the HTML documentation in that subdirectory by doing:

make html

It should tell you where the generated documentation (HTML files) can be found. You can view it in your web browser.

Building Docs with Docker Compose

You can also use Docker Compose to build and host docs.

$ docker-compose up -d bdocs

The docs will be hosted on port 33333, and can be accessed over localhost, 127.0.0.1 OR http:/HOST_IP:33333.