mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
Merge branch 'master' into feat/280/deploy_conf_file_for_aws_deployment_config
This commit is contained in:
commit
8b52b81e58
@ -1,8 +1,9 @@
|
||||
[](https://gitter.im/bigchaindb/bigchaindb?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[](https://pypi.python.org/pypi/BigchainDB)
|
||||
[](https://pypi.python.org/pypi/BigchainDB)
|
||||
[](https://travis-ci.org/bigchaindb/bigchaindb)
|
||||
[](https://codecov.io/github/bigchaindb/bigchaindb?branch=master)
|
||||
[](https://bigchaindb.readthedocs.org/en/latest/)
|
||||
[](https://gitter.im/bigchaindb/bigchaindb?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
|
||||
|
||||
# BigchainDB
|
||||
|
99
ROADMAP.md
99
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.
|
||||

|
||||
|
||||
|
||||
## 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
|
||||
|
@ -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`).
|
||||
|
BIN
roadmap.jpg
Normal file
BIN
roadmap.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 614 KiB |
Loading…
x
Reference in New Issue
Block a user