Bluzelle End of 2018 Development Update

Neeraj Murarka
The Blueprint by Bluzelle
6 min readJan 10, 2019

To close off both the month of December and 2018 year, I am proud to announce that our BERNOULLI release of the Bluzelle database testnet is public and ready for use!

BERNOULLI is a huge step toward Bluzelle’s key value proposition:

An enterprise-grade database at a price all developers can afford.

As a recap, Bluzelle Lovelace came out at the end of June 2018. It was our first public testnet — a RAFT-powered database with basic CRUD functionality. It allowed developers to experiment with the database in fundamental ways, but still lacked robust consensus features, essential to a truly trustless network.

BERNOULLI is a historic milestone that I am very excited about and that the Bluzelle development team is very proud of.

BERNOULLI brings you a decentralized and trustless database. Trustless decentralization is the cornerstone for any blockchain technology, yet is a complex problem that takes significant time and effort. Our team has accomplished a major step with Bernoulli, with the delivery of our consensus engine, the decentralized state machine that is the basis for all decisions on the swarm, and the future metaswarm.

Bluzelle’s team has spent the last six months implementing the following three critical deliverables, that are shaping Bluzelle up as the enterprise decentralized database for the masses:

PBFT Consensus Engine

PBFT, also known as practical Byzantine fault tolerance, is one of the most important features of any blockchain or decentralized technology. It is the consensus algorithm, allowing a collection of arbitrary, unvetted nodes/peers to make decisions, take actions, and maintain a decentralized state machine, without centralized entities or master nodes.

Look for my PBFT-specific blog update later, going into deeper details about PBFT, how it works, and why it is important.

Permissioning

Second but also vitally important is BERNOULLI’s permissioning architecture. One of the most common questions asked to me by developers has been about protecting data on the Bluzelle database from being corrupted, overwritten, or deleted. Lovelace had no restrictions on who could write.

BERNOULLI takes a massive leap forward, giving developers much-needed enterprise-level security, pertaining specifically to the integrity of their data. BERNOULLI requires every client interacting with the database (both reads and writes) to own a public/private asymmetric key pair, and for the client to sign every request with their private key (for all reads and writes). This signing is done automatically once the public/private key pair is provided to the API’s. The developer does not need to engage in learning about public key cryptography.

In BERNOULLI, every database is owned by someone (identified by their keypair), and has an optional list of writers. Only the owner can perform the key administrative functions on the database. Only the owner and writers can perform creates, updates, and deletes to key value pairs in the database. Unauthorized attempts will fail with an error.

Vitally important to note is that BERNOULLI does NOT prevent reads in any fashion whatsoever. Data is readable by anyone who knows the UUID of the database, while still being completely protected from unauthorized writes.

Look for my permissioning-specific blog later, going into details on the API changes that come with BERNOULLI that pertain to permissioning as well as new functionality added to support it. I will also go into further details about permissioning including some conversation on read-protection, that is on our roadmap.

Bluzelle Studio

As promised in my November update, I am happy to announce the release of our new, completely redesigned and improved CRUD client, which we call Bluzelle Studio. Bluzelle Studio is an advanced database management web app. It can run in your web browser, or on your desktop as an executable. It allows you to provide the UUID of your database, an endpoint for the network, and to upload your client-side-only private key, and then login to the database. Bluzelle Studio is a fully BERNOULLI-compliant client, and in fact was built specifically for BERNOULLI (it is not compatible with our legacy LOVELACE network).

Please try out Bluzelle Studio at:

http://studio.bluzelle.com

Note that Bluzelle Studio ONLY operates on HTTP. If your browser redirects to HTTPS, you may have to delete your browser’s HSTS policy for the domain: bluzelle.com. This latter step would only have to be done once.

I will be publishing a Bluzelle Studio-specific mini-blog going into more details about it.

Important updates

Documentation

We have released new documentation to go over how to get a quick Javascript program up and running on BERNOULLI. The program will both write a value and then read it back. It uses the new permissioning functionality of BERNOULLI and is an excellent place to get started. You can access to the developer document and join the Bluzelle beta via:

https://beta.bluzelle.com/signup

Client Libraries

Javascript libraries have all been updated to version 0.4. If you are already using the LOVELACE 0.3 libraries and wish to use BERNOULLI, please update your libraries to the latest. Note that the endpoint for BERNOULLI is unique, referring to the section below on endpoint.

It is important to note that as of the end of 2018, BERNOULLI ships with JS support. Expect BERNOULLI updates to our Python and C# libraries in January. Expect BERNOULLI updates to our Ruby, Go, and PHP libraries in the first quarter of 2019.

Endpoint

BERNOULLI’s network endpoint is the following:

bernoulli.bluzelle.com

In maintaining backward compatibility with LOVELACE as we transition our development community to BERNOULLI, the latter operates on its own unique hostname.

LOVELACE sunset

We will be maintaining compatibility with the LOVELACE 0.3 API only for a short time more, until:

January 18, 2019, Pacific Time, end of day.

testnet.bluzelle.com will remain pointed to LOVELACE until this time.

After this date, LOVELACE will be fully deprecated, and all existing LOVELACE libraries will cease to function. Furthermore, at this time, all existing LOVELACE nodes will be powered down. It is therefore important to transition your code over to the BERNOULLI 0.4 JS libraries prior to this date, including adopting the permissioning requirements of BERNOULLI, and backing-up any test data you might be storing on LOVELACE. Also note the new BERNOULLI endpoint.

After January 18, 2019, testnet.bluzelle.com will be changed to point to the same BERNOULLI endpoint as bernoulli.bluzelle.com.

Interesting facts

In continuation with our new tradition I started in October, 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.

  • With BERNOULLI being truly trustless and decentralized, we opted to deploy the initial nodes across a very geographically dispersed area. This was to ensure we are optimizing the network with real-world mainnet conditions. We plan to have various refinements put in place to improve this performance, over time.
  • The BERNOULLI testnet currently runs as 7 nodes, with the following configuration:

Upcoming progress

Expect many exciting developments in January 2019, as work immediately begins on the key payments technology required for the end-of-June-2019 release of CURIE and our mainnet. We will be pushing hard on our excellent advisors.

In January, I will publish a comprehensive interactive HOWTO video that runs through the process of using both Bluzelle Studio as well as building a sample node.js client that reads and writes data on BERNOULLI, using our new permissioning-enabled API’s.

Look for demonstrations and tests that exemplify the robustness of our PBFT consensus engine. We will create demos that purposely attempt to attack the network, creating faults in random and unpredictable ways. Watch the demos unfold, as the BERNOULLI nodes detect these faults and deal with them, while staying up and keeping the network operational.

Next steps

Access to developer document and join the Bluzelle beta:

https://beta.bluzelle.com/signup

Please go to this link to get a jump start with using BERNOULLI. You will be able to write a small Javascript program that demonstrates the use of our new permissioning APIs, all running against the BERNOULLI network.

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:

https://github.com/bluzelle

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!

https://gitter.im/bluzelle

--

--