diff --git a/README.md b/README.md index 9ab8d576..c2141c55 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ -[![Join the chat at https://gitter.im/bigchaindb/bigchaindb](https://badges.gitter.im/bigchaindb/bigchaindb.svg)](https://gitter.im/bigchaindb/bigchaindb?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![PyPI](https://img.shields.io/pypi/status/bigchaindb.svg?maxAge=2592000)](https://pypi.python.org/pypi/BigchainDB) [![PyPI](https://img.shields.io/pypi/v/bigchaindb.svg)](https://pypi.python.org/pypi/BigchainDB) [![Travis branch](https://img.shields.io/travis/bigchaindb/bigchaindb/master.svg)](https://travis-ci.org/bigchaindb/bigchaindb) [![Codecov branch](https://img.shields.io/codecov/c/github/bigchaindb/bigchaindb/master.svg)](https://codecov.io/github/bigchaindb/bigchaindb?branch=master) [![Documentation Status](https://readthedocs.org/projects/bigchaindb/badge/?version=latest)](https://bigchaindb.readthedocs.org/en/latest/) +[![Join the chat at https://gitter.im/bigchaindb/bigchaindb](https://badges.gitter.im/bigchaindb/bigchaindb.svg)](https://gitter.im/bigchaindb/bigchaindb?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) # BigchainDB diff --git a/ROADMAP.md b/ROADMAP.md index 9d319994..97352110 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,93 +1,16 @@ # BigchainDB Roadmap -See also: +| **[Topics](https://github.com/bigchaindb/bigchaindb/labels)** | [Projects In Progress](https://github.com/bigchaindb/bigchaindb/labels/0%29%20Project%20in%20progress) | **[Start <1 Mo ](https://github.com/bigchaindb/bigchaindb/labels/1%29%20Project%20in%201%20mo)** | **[Later](https://github.com/bigchaindb/bigchaindb/labels/2%29%20Project%20in%20future)** | +| ------ | ------------ | ------------- | ----- | +| **[SEC](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%223\)+SEC+core+consensus%22)** (security, core)| [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%223\)+SEC+core+consensus%22+label%3A%220\)+Project+in+progress%22+) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%223\)+SEC+core+consensus%22++label%3A%221\)+Project+in+1+mo%22+) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%223\)+SEC+core+consensus%22+label%3A%222\)+Project+in+future%22) | +| **[D&P](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%224\)+D%26P+deplymt+perf%22)** (deployment, performance) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%224\)+D%26P+deplymt+perf%22+label%3A%220\)+Project+in+progress%22+) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%224\)+D%26P+deplymt+perf%22++label%3A%221\)+Project+in+1+mo%22+) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%224\)+D%26P+deplymt+perf%22+label%3A%222\)+Project+in+future%22) | +| **[TXS](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%225\)+TXS+assets+data%22)** (assets, data) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%225\)+TXS+assets+data%22+label%3A%220\)+Project+in+progress%22+) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%225\)+TXS+assets+data%22++label%3A%221\)+Project+in+1+mo%22+) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%225\)+TXS+assets+data%22+label%3A%222\)+Project+in+future%22) | +| **[UX](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%226\)+UX+docs+cmd+api+driver%22)** (docs, drivers, API) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%226\)+UX+docs+cmd+api+driver%22+label%3A%220\)+Project+in+progress%22+) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%226\)+UX+docs+cmd+api+driver%22++label%3A%221\)+Project+in+1+mo%22+) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%226\)+UX+docs+cmd+api+driver%22+label%3A%222\)+Project+in+future%22) | +| **[IPDB](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen++label%3A%227\)+IPDB%22)** | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen++label%3A%227\)+IPDB%22+label%3A%220\)+Project+in+progress%22+) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen++label%3A%227\)+IPDB%22++label%3A%221\)+Project+in+1+mo%22+) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%222\)+Project+in+future%22+label%3A%227\)+IPDB%22+) | +| **[IP PLAT](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%228\)+IP+PLAT+a.io+wotn%22+label%3A%220\)+Project+in+progress%22+)** (ascribe.io, WOTN) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%228\)+IP+PLAT+a.io+wotn%22+label%3A%220\)+Project+in+progress%22+) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%228\)+IP+PLAT+a.io+wotn%22++label%3A%221\)+Project+in+1+mo%22+) | [Projects](https://github.com/bigchaindb/bigchaindb/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%228\)+IP+PLAT+a.io+wotn%22+label%3A%222\)+Project+in+future%22) | -* [Milestones](https://github.com/bigchaindb/bigchaindb/milestones) (i.e. issues to be closed before various releases) -* [Open issues](https://github.com/bigchaindb/bigchaindb/issues) and [open pull requests](https://github.com/bigchaindb/bigchaindb/pulls) +[Milestones](https://github.com/bigchaindb/bigchaindb/milestones), [open issues](https://github.com/bigchaindb/bigchaindb/issues), [open pull requests](https://github.com/bigchaindb/bigchaindb/pulls) -Note: Below, #345 refers to Issue #345 in the BigchainDB repository on GitHub. #N refers to Issue #N. +Here is our physical planning board. It's organized like the table above. We aim to update this weekly. +![alt tag](https://github.com/bigchaindb/bigchaindb/blob/master/roadmap.jpg) - -## Deployment and Federation Configuration/Management -* Define how a federation is managed - [#126](https://github.com/bigchaindb/bigchaindb/issues/126) -* Review current configuration mechanism - [#49](https://github.com/bigchaindb/bigchaindb/issues/49) -* Make the configuration easier for Docker-based setup - [#36](https://github.com/bigchaindb/bigchaindb/issues/36) - - -## Testing -* (Unit-test writing and unit testing are ongoing.) -* More Integration Testing, Validation Testing, System Testing, Benchmarking -* Define some standard test systems (e.g. local virtual cluster, data center, WAN) -* Develop standardized test descriptions and documentation (test setup, inputs, outputs) -* Build up a suite of tests to test each identified fault -* More tools for cluster benchmarking -* Identify bottlenecks using profiling and monitoring -* Fault-testing framework -* Clean exit for the bigchaindb-benchmark process - [#122](https://github.com/bigchaindb/bigchaindb/issues/122) -* Tool to bulk-upload transactions into biacklog table - [#114](https://github.com/bigchaindb/bigchaindb/issues/114) -* Tool to deploy multiple clients for testing - [#113](https://github.com/bigchaindb/bigchaindb/issues/113) -* Tool to read transactions from files for testing - [#112](https://github.com/bigchaindb/bigchaindb/issues/112) - - -## Specific Bugs/Faults and Related Tests -* Validation of other nodes -* Changefeed watchdog -* Non-deterministic assignment of tx in S is a DoS vulnerability - [#20](https://github.com/bigchaindb/bigchaindb/issues/20) -* Queues are unbounded - [#124](https://github.com/bigchaindb/bigchaindb/issues/124) -* Better handling of timeouts in block creation - [#123](https://github.com/bigchaindb/bigchaindb/issues/123) -* Secure node-node communication - [#77](https://github.com/bigchaindb/bigchaindb/issues/77) -* Checking if transactions are in a decided_valid block (or otherwise) when necessary - [#134](https://github.com/bigchaindb/bigchaindb/issues/134) -* When validating an incoming transaction, check to ensure it isn't a duplicate - [#131](https://github.com/bigchaindb/bigchaindb/issues/131) -* Consider secondary indexes on some queries - [#105](https://github.com/bigchaindb/bigchaindb/issues/105) - - -## Transactions / Assets -* Current Top-Level Goal: Define and implement "v2 transactions", that is, support multisig (done) and: -* Support for multiple inputs and outputs - [#128](https://github.com/bigchaindb/bigchaindb/issues/128) -* Crypto-conditions specific to ILP - [#127](https://github.com/bigchaindb/bigchaindb/issues/127) -* Support divisible assets - [#129](https://github.com/bigchaindb/bigchaindb/issues/129) -* Define a JSON template for digital assets - [#125](https://github.com/bigchaindb/bigchaindb/issues/125) -* Revisit timestamps - [#132](https://github.com/bigchaindb/bigchaindb/issues/132) -* Refactor structure of a transaction - [#98](https://github.com/bigchaindb/bigchaindb/issues/98) -* Plugin or hook architecture e.g. for validate_transaction - [#90](https://github.com/bigchaindb/bigchaindb/issues/90) - - -## Web API (HTTP Client-Server API) -* Current Top-Level Goal: Support v2 transactions (see above) -* Validate the structure of incoming transactions -* Return the correct error code if something goes wrong -* Validate transaction before writing it to the backlog - [#109](https://github.com/bigchaindb/bigchaindb/issues/109) -* Better organization of transaction-related code - [#108](https://github.com/bigchaindb/bigchaindb/issues/108) -* Add an endpoint to query unspents for a given public key -* More endpoints -* See [open issues with the "rest-api" label](https://github.com/bigchaindb/bigchaindb/issues?q=is%3Aissue+is%3Aopen+label%3Arest-api) - - -## Drivers -* Update the reference driver (Python) to support v2 transactions and web API (see above) -* Drivers/SDKs for more client-side languages (e.g. JavaScript, Ruby, Java) - - -## Public Sandbox Testnet and Public BigchainDB -* Deploy a 3-node Public Sandbox Testnet in a data center, open to all external users, refreshing daily -* Deploy Public BigchaindB Testnet with more than 3 nodes and with nodes more globally-distributed -* Public BigchainDB governance/voting system -* Transaction (or usage) accounting -* Billing system - - -## Other -* Get BigchainDB production-ready for submission to AWS Marketplace (as an AMI) - - -## Future -* Permissions framework -* More Byzantine fault tolerance (BFT) -* Better support for smart contract frameworks -* Algorithm audits -* Protocol audits -* Code (implementation) audits -* Security audits -* IPFS interoperability - [#100](https://github.com/bigchaindb/bigchaindb/issues/100) -* ORM to better-decouple BigchainDB from its data store (will make it easy to try other databases) -* Support more server operating systems diff --git a/docs/source/installing-server.md b/docs/source/installing-server.md index 1b830811..51721238 100644 --- a/docs/source/installing-server.md +++ b/docs/source/installing-server.md @@ -121,7 +121,7 @@ Assuming you have Docker installed, you would proceed as follows. In a terminal shell, pull the latest version of the BigchainDB Docker image using: ```text -docker pull bigchaindb/bigchaindb:latest +docker pull bigchaindb/bigchaindb ``` then do a one-time configuration step to create the config file; we will use @@ -130,7 +130,7 @@ be stored in a file on your host machine at `~/bigchaindb_docker/.bigchaindb`: ```text $ docker run --rm -v "$HOME/bigchaindb_docker:/data" -ti \ - bigchaindb/bigchaindb:latest -y configure + bigchaindb/bigchaindb -y configure Generating keypair Configuration written to /data/.bigchaindb Ready to go! @@ -147,7 +147,7 @@ Let's analyze that command: documentation](https://docs.docker.com/engine/userguide/containers/dockervolumes/#mount-a-host-directory-as-a-data-volume) * `-t` allocate a pseudo-TTY * `-i` keep STDIN open even if not attached -* `bigchaindb/bigchaindb:latest` the image to use +* `bigchaindb/bigchaindb the image to use * `-y configure` execute the `configure` sub-command (of the `bigchaindb` command) inside the container, with the `-y` option to automatically use all the default config values @@ -157,7 +157,7 @@ After configuring the system, you can run BigchainDB with the following command: $ docker run -v "$HOME/bigchaindb_docker:/data" -d \ --name bigchaindb \ -p "58080:8080" -p "59984:9984" \ - bigchaindb/bigchaindb:latest start + bigchaindb/bigchaindb start ``` The command is slightly different from the previous one, the differences are: @@ -200,7 +200,7 @@ You can load test the BigchainDB running in that container by running the `bigch ```text $ docker run --rm -v "$HOME/bigchaindb_docker:/data" -ti \ --link bigchaindb \ - bigchaindb/bigchaindb:latest load + bigchaindb/bigchaindb load ``` Note the `--link` option to link to the first container (named `bigchaindb`). diff --git a/roadmap.jpg b/roadmap.jpg new file mode 100644 index 00000000..5754482b Binary files /dev/null and b/roadmap.jpg differ