End of October 2018 Bluzelle DB Development Update
Welcome to my end-of-October update on the development efforts at Bluzelle, and hope everyone had a fun Halloween!
With two months to go for Bernoulli, the Bluzelle team is working hard and marching ahead toward our goals as outlined in past months. As some of you might have seen, we also announced this week the addition of two star engineers to the Bluzelle team, Matt Ilagan and Paul Archard. Take a look at my blog entry earlier this week to get the specifics about these two exciting developers.
October was a very productive month, especially with the inclusion of Matt and Paul. Our Gitter community channel has picked up a lot of momentum as more and more developers start working with Bluzelle’s testnet.
Interesting facts
As a new feature I will be including in my monthly blog, this “interesting facts” section will share with the community specific and interesting developments, quirks, challenges, major bug fixes, last-minute feature additions, and new learnings that came about from the previous month of development. We would like the community to have a deeper and more intimate understanding of how the Bluzelle DB is moving forward and how our team and knowledge base is evolving. This also makes the other updates more interesting and relevant.
- In the course of implementing PBFT consensus, our team faced the challenge that PBFT, per se, does not specifically outline the steps to handle changes in the membership of which nodes (also known as a configuration change) are on the network and which are not. So the state machine changes to handle a new node joining the network (and having to get a full sync) vs a node going off, was left for our team to research. We have successfully defined a proper algorithm based on established research. These will be added to our white paper as well in a coming update.
- As part of defining a robust underlying persistence layer to support storage of data for each node’s database shards, our team took a deep dive into the world of embedded file systems, looking at products like SQLite, RocksDB, and others. After much research and consultation with our expert advisors, we settled on and have already implemented RocksDB as the underlying embedded persistence layer to store all nodal shard data. It is a fantastic improvement to the product that ensures that we have a solid persistence layer that is stable and solid enough to scale as Bluzelle’s network grows. This update will also be included in Bernoulli.
- We added several last-minute improvements and features to the database, including pub/sub abilities on the websocket, cryptographic peer verification for new peers that join, and major bug fixes to our bluzelle-js Javascript client libraries.
Bernoulli Release Progress
Our “Daniel” Bernoulli release is well on track, as expected.
Here are some more updates on the state of the two key deliverables for Bernoulli:
PBFT consensus: PBFT is undoubtably the most critical deliverable for Bernoulli, because it enables trustless computing. Trustless computing allows arbitrary, unvetted farming nodes to join Bluzelle to earn tokens and to scale the network to the levels we need. Trustless computing is part of the reason that Ethereum, Bitcoin, and other blockchains are so very secure and trustworthy — their unprecedented amounts of replication and robust consensus models ensure that data cannot be lost or tampered with. Bluzelle’s PBFT is already running in a pre-release state on a private test network accessible only to internal Bluzelle developers. It is being tested regularly as part of our continuous integration processes. We are putting in tests to capture all the different use cases that can arise and to pre-emptively ensure we can handle them properly. As expected, the Bluzelle testnet will be updated to include PBFT in time for the end-of-2018 release of Bernoulli.
Permissioning: Work on permissioning has started. As mentioned in earlier updates, permissioning is a much needed feature that will provide write-protection on namespaces. The initial creator of data on that namespace becomes the default owner and the only entity that can write to it. The owner can be re-assigned, by the owner themselves. Bernoulli’s permissioning model will only protect against unauthorized writes. There is no read protection in Bernoulli, which means that awareness of a namespace id is equated to 100% readability of all data in that namespace. Expect read-protection in future releases, once encryption is enabled at the database level.
Lovelace Testnet Refresh
As promised in the last month’s update, a long-awaited refresh of the Lovelace testnet is due. Despite the fact that the existing testnet has been running for over 100 days now, expected improvements stemming from Bernoulli development are ready to be rolled out for public use. We will be putting out another update in the first week of November specifically about the new testnet update.
This refresh will include many improvements, including the following:
- Streamlining of our build process
- Refinement of our internal continuous integration processes
- Implementation of automated cyclomatic complexity checks
- An improved sprint development process
- Chaos module that generates entropy and tests the network robustly and more completely against simulated real-world and environmental conditions
Staying Connected
The key way to stay connected with the Bluzelle community is the following chat forum:
Gitter: This is the best place to go if you are a developer and interested in a DIRECT line to Bluzelle’s internal developers and other members of our development community. You can typically expect to get answers here within at most 24 hours. https://gitter.im/bluzelle
Social Networks and Source Code
We also encourage you to join us on the leading social networks and our source code repository to keep connected with Bluzelle:
Blueprint: This is our official blog, and is the best place to go to get direct updates from the company. Updates often start here and percolate to other media outlets on the Internet. https://blog.bluzelle.com
Reddit: Reddit users can participate in lively threaded conversations on Bluzelle. https://www.reddit.com/r/Bluzelle
Twitter: Follow us on Twitter and/or drop us a tweet. https://twitter.com/bluzellehq
Github: Our official source code repository is hosted on Github. Feel free to check out the progress of all our public-facing projects, first hand. https://github.com/bluzelle.