Skip to content

Releases: bigchaindb/bigchaindb

v2.0.0b2

16 Jul 13:43
b122e7e
Compare
Choose a tag to compare

Added

  • Added new configuration settings tendermint.host and tendermint.port. Pull request #2342
  • Added tests to ensure that BigchainDB gracefully handles "nasty" strings in keys and values. Pull request #2334
  • Added a new logging handler to capture benchmark stats to a separate file. Pull request #2349

Changed

  • Changed the names of BigchainDB processes (Python processes) to include 'bigchaindb', so they are easier to spot and find. Pull request #2354
  • Updated all code to support the latest version of Tendermint. Note that the BigchainDB ABCI server now listens to port 26657 instead of 46657. Pull requests #2375 and #2380

Removed

Removed all support and code for the old backlog_reassign_delay setting. Pull request #2332

Fixed

  • Fixed a bug that sometimes arose when using Docker Compose. (Tendermint would freeze.) Pull request #2341
  • Fixed a bug in the code that creates a MongoDB index for the "id" in the transactions collection. It works now, and performance is improved. Pull request #2378
  • The logging server would keep runnning in some tear-down scenarios. It doesn't do that any more. Pull request #2304

External Contributors

@hrntknr - Pull request #2331

Known Issues

The bigchaindb upsert-validator subcommand is not working yet, but a solution (BEP-21) has been finalized and will be implemented before we release the final BigchainDB 2.0.

Notes

v2.0.0b1

01 Jun 11:51
6b0f22a
Compare
Choose a tag to compare

Fixed

  • Fixed a bug that arose with some code that treated transactions-waiting-for-block-inclusion as if they were already stored in MongoDB (i.e. already in a block). Pull request #2318
  • If a user asked for a block and it happened to be an empty block, BigchainDB returned 404 Not Found, as if the block did not exist. Now it returns a 200 OK with a block containing no transactions, i.e. an empty block. Pull request #2321

Known Issues

  • An issue was found with the bigchaindb upsert-validator command. A solution was proposed in BEP-19 and is being implemented in pull request #2314
  • If you run BigchainDB locally using make start (i.e. using Docker Compose) and then you put the node under heavy write load, Tendermint can become unresponsive and running make stop can hang.
  • There seems to be one or more issues with Tendermint when it is put under heavy load (i.e. even when BigchainDB isn't involved). See Tendermint issues #1394, #1642 and #1661

Notes

  • There's a new docs page about how to set up a network where each node uses a single virtual machine.
  • We checked, and BigchainDB 2.0 Beta 1 works with MongoDB 3.6 (and 3.4).
  • Support for RethinkDB is completely gone.

v2.0.0a6

17 May 13:43
6fd8558
Compare
Choose a tag to compare

Changed

Upgraded PyMongo to version 3.6 (which is compatible with MongoDB 3.6, 3.4 and more). Pull request #2298

Fixed

When deploying a node using our Docker Compose file, it didn't expose port 46656, which is used by Tendermint for inter-node communications, so the node couldn't communicate with other nodes. We fixed that in pull request #2299

Notes

We ran all our tests using MongoDB 3.6 and they all passed, so it seems safe to use BigchainDB with MongoDB 3.6 from now on.

v2.0.0a5

11 May 13:26
aeaf9c9
Compare
Choose a tag to compare

Changed

To resolve issue #2279, we made some changes to the bigchaindb-abci package (which is our fork of py-abci) and told BigchainDB to use the new version (bigchaindb-abci==0.4.5). Pull request #2281.

v2.0.0a4

09 May 12:05
089cb5d
Compare
Choose a tag to compare

Changed

The Kubernetes liveness probe for the BigchainDB StatefulSet was improved to check the Tendermint /status endpoint in addition to the Tendermint /abci_info endpoint. Pull request #2275

Fixed

Pull request #2270 resolved issue #2269.

Notes

There's a new page in the docs about storing files in BigchainDB. Pull request #2259

v2.0.0a3

03 May 15:08
Compare
Choose a tag to compare

Changed

  • Upgraded BigchainDB Server code to use the latest version of Tendermint: version 0.19.2. Pull requests #2249, #2252 and #2253
  • Made some fixes to py-abci (an external Python package) and used our fixed version with BigchainDB. Those fixes resolved several known issues, including issue #2182 and issues with large transactions in general. Note: At the time of writing, our fixes to py-abci hadn't been merged into the main py-abci repository or its latest release on PyPI; we were using our own special bigchaindb-abci package (which included our fixes). Pull requests #2250 and #2261
  • If BigchainDB Server crashes and then comes back, Tendermint Core doesn't try to reconnect to it. That's just how Tendermint Core works. We revised our Kubernetes-based production deployment template to resolve that issue: BigchainDB Server and Tendermint Core are now in the same Kubernetes StatefulSet; if the connection between them ever goes down, then Kubernetes restarts the whole StatefulSet. Pull request #2242

Fixed

Re-enabled multi-threading. Pull request #2258

Known Issues

Tendermint changed how it responds to a request to store data (via the Tendermint Broadcast API) between version 0.12 and 0.19.2. We started modifying the code of BigchainDB Server to account for those changes in responses (in pull request #2239), but we found that there's a difference between what the Tendermint documentation says about those responses and how Tendermint actually responds. We need to determine Tendermint's intent before we can finalize that pull request.

Notes

We were focused on getting the public BigchainDB Testnet stable during the development of BigchainDB 2.0 Alpha 3, and we think we largely succeeded. Because of that focus, we delayed the deployment of an internal test network until later. It would have had the same instabilities as the public BigchainDB Testnet anyway. In the future, we'll always test a new version of BigchainDB on our internal test network before deploying it on the public BigchainDB Testnet. (That wasn't possible this time around, because there was no old/stable version of BigchainDB 2.n to run on the public BigchainDB Testnet while we tested BigchainDB 2.[n+1] internally.)

v2.0.0a2

18 Apr 12:53
389b3e3
Compare
Choose a tag to compare

Added

An implementation of BEP-8 (BigchainDB Enhancement Proposal #8), which makes sure a node can recover from a system fault (e.g. a crash) into a consistent state, i.e. a state where the data in the node's local MongoDB database is consistent with the data stored in the blockchain. Pull requests #2135 and #2207

Changed

When someone uses the HTTP API to send a new transaction to a BigchainDB network using the POST /api/v1/transactions?mode={mode} endpoint, they now get back a more informative HTTP response, so they can better-understand what happened. This is only when mode is commit or sync, because async means that the response is immediate, without waiting to see what happened to the transaction. Pull request #2198

Known Issues

  • If BigchainDB Server crashes and then is restarted, Tendermint Core won't try to reconnect to BigchainDB Server and so all operations requiring that connection won't work. We only understood this recently. We'll write a blog post explaining what we intend to do about it.
  • The known issues in 2.0 Alpha (listed below) are still there.

v2.0.0a1

03 Apr 13:42
Compare
Choose a tag to compare

There were many changes between 1.3 and 2.0 Alpha, too many to list here. We wrote a series of blog posts to summarize most changes, especially those that affect end users and application developers:

External Contributors

Known Issues

We intend to resolve these issues before releasing the final BigchainDB 2.0:

  • There's a known Heisenbug that (sometimes) arises and we found that making the BigchainDB webserver single-threaded prevents that bug from causing problems. We intend to resolve that bug, but in the meantime our temporary workaround is to change the default webserver configuration settings to single-threaded mode, i.e. BIGCHAINDB_SERVER_WORKERS=1 and BIGCHAINDB_SERVER_THREADS=1.
  • Issues sometimes happen when a large transaction is sent to a BigchainDB network.

v1.3.0

21 Nov 18:41
7454c58
Compare
Choose a tag to compare

Added

Notes

v1.2.0

13 Nov 13:05
ca38d15
Compare
Choose a tag to compare

Added

  • New and improved installation setup docs and code. Pull requests #1775 and #1785
  • New BigchainDB configuration setting to set the port number of the log server: log.port. Pull request #1796
  • New secondary index on id in the bigchain table. That will make some queries execute faster. Pull request #1803
  • When using MongoDB, there are some restrictions on allowed names for keys (JSON keys). Those restrictions were always there but now BigchainDB checks key names explicitly, rather than leaving that to MongoDB. Pull requests #1807 and #1811
  • When using MongoDB, there are some restrictions on the allowed values of "language" (if that key is used in the values of metadata or asset.data). Those restrictions were always there but now BigchainDB checks the values explicitly, rather than leaving that to MongoDB. Pull requests #1806 and #1811
  • There's a new page in the root docs about permissions in BigchainDB. Pull request #1788
  • There's a new option in the bigchaindb start command: bigchaindb start --no-init will avoid doing bigchaindb init if it wasn't done already. Pull request #1814

Fixed

  • Fixed a bug where setting the log level in a BigchainDB config file didn't have any effect. It does now. Pull request #1797
  • The docs were wrong about there being no Ping/Pong support in the Events API. There is, so the docs were fixed. Pull request #1799
  • Fixed an issue with closing WebSocket connections properly. Pull request #1819

Notes

  • Many changes were made to the Kubernetes-based production deployment template and code.