End of January 2019 Bluzelle DB Development Update

Neeraj Murarka
The Blueprint by Bluzelle
5 min readFeb 7, 2019

--

Happy New Year, and welcome to my first update of 2019!

As a quick recap, our BERNOULLI release of the Bluzelle database (aka Bluzelle version 0.4) has now been running for well over a month, having been launched over the holiday season, (specifically on December 27th, 2018). On that date we performed a major upgrade to our testnet, a milestone release from our roadmap moving from LOVELACE to BERNOULLI. This brings many sweeping improvements including and most notably; our new robust consensus algorithm — PBFT, which is a key ingredient in our pursuit of developing a true trustless decentralized system.

If you refer to my end of 2018 blog, you can read about further details, on getting started with BERNOULLI and signing up to use it. This milestone BERNOULLI release is considered our BETA candidate in our roadmap, we are proud and humbled to get this far we would really appreciate it if you signed up and give it a try.

The current release of the BERNOULLI database is already showing its stability and resiliency, with no major downtime during this period. It is a testament to the robustness of the releases that have been coming from the Bluzelle engineering teams consistent with the availability metrics that BERNOULLI’s predecessor (LOVELACE) also held and maintained during its lifespan.

With January 2019 in our rearview mirror, we are already in full swing working on the next release of BLUZELLE, while also hardening our current BERNOULLI testnet; in response to bugs and findings that have been identified from our growing community of users — as interest has grown month over month!

0.5 BERNOULLI Update

We are slating our next interim update for BERNOULLI around mid-February, as it will be the v0.5 release. Here are some major updates to expect in this next release:

  • QuickRead. When BERNOULLI shipped, it also added a new functionality for a fully-consistent read function, that works in tandem with PBFT and guarantees a consistent read-back value from the network. Fully-consistent read is expectantly slower than QuickRead, due to its consistency characteristics. As v0.5 will ship with an exciting new “eventually consistent” read function, also known as QuickRead, that allows a client to ask for data and get the fastest possible response back, typically in approximately only the total round trip time (RTT) to the “closest” Bluzelle node. This will result in a massive improvement in performance. Typically, we will expect apps that use QuickRead to either use it alone or in parallel with a consistent read, of course depending on the use case. The latter usage pattern has the benefit of an asynchronous answer that comes back a while later, to sanity check and possibly correct the response from what was provided by the QuickRead, in case of conflicting reads and writes. This is a simple pattern that developers can easily adopt and provides excellent usability characteristics.
  • Signature Collation. More internal improvement of existing Bluzelle’s client libraries, as they will be upgraded to further increase security by having the client validate the signatures coming back from the network. This feature capitalizes on the client’s own processing power to add additional checks that would strengthen our PBFT algorithm by having the client node also participate in the process, therefore decentralizing and offloading the collective CPU power required for PBFT.

Ongoing Updates

Apart from the v0.5 release, we also have the following updates that are constantly ongoing (they are not specifically tied to the v0.5 release):

  • Bluzelle Studio. Our new web client that was introduced with BERNOULLI release, has undergone several iterations and finally being rolled out for public review, you can access the web client at http://studio.bluzelle.com. Please visit our new web client app on your web browser to see the ongoing improvements. What you will see are generally usability improvements (UX), also some slight performance optimizations and various bug fixes. We would love to get your feedback as this is an iterative process.
  • Client Libraries. With the BERNOULLI release, currently we only released node.js libraries to connect to it. We understand that this isn’t enough and will be slowly rolling out our other libraries in the next couple of months, with no specific dates yet set. We are also reaching out to our developer community if they can help work on developing connectors. As they come out, I will put out mini-blogs to update the public. Our notable priorities here are PHP, Python, Go, C#, and Ruby.
  • Heroku BLUZELLE plugin has been updated to reflect changes that were required for BERNOULLI. You can easily deploy the plugin and start using BERNOULLI in your Heroku applications. Look for it under the “Data Stores” category in the add-ons, and install the “Bluzelle” beta.

Interesting facts

In continuation with a tradition I started in 2018, this section shares with the community specific and interesting developments, quirks, challenges, bug fixes, last-minute feature additions, and new learnings that happened during the previous month of development.

  • Fast reads — we deployed a globally distributed swarm and realized that we needed a mechanism to ensure that read transactions could support real-time operations. Allowing for eventually-consistent reads (“fast-reads”) allowed for us to quickly read a value from a swarm without the need to run the transaction through the complete consensus algorithm. The user application would still be required to complete a strongly consistent read to ensure that the data returned is valid. This enables applications built on Bluzelle to be more responsive. In fact, the ability to do an eventually-consistent read is a big benefit of the NoSQL architecture that Bluzelle has implemented.

Important Notice

Documentation

You can join the Bluzelle BETA (aka BERNOULLI) and get access to the developer documentation:

Sunsetting Lovelace

Lovelace support ended on January 18, 2019. Please ensure you have moved over to BERNOULLI by signing up for it at the link above.

Community

We encourage our developer community to visit out Github as well, and take a look at our repositories, and/or contribute to their progress with pull requests, bug reports, etc:

Click to join Bluzelle Gitter

Our Gitter community is ideal for developers to participate in active conversations on the Bluzelle database. Visit Gitter on the web at the following link, and feel free to use the dedicated mobile/desktop Gitter apps, to remain always connected with our Bluzelle community!

--

--