BlockBase Development Toolkit Intro
Ricardo Schiller - November 11, 2020
The BlockBase team has been working very hard on improving the BlockBase platform's usability. For the last few months, we've been focused on ensuring the network's stability. We are proud to say that this milestone has been achieved for some time now. BlockBase sidechains just work out-of-the-box! Nodes can leave and rejoin, get their sidechains properly synced and continue happily producing along.
After this stability milestone was achieved, our focus shifted to improving the technology's usability around pushing data to a BlockBase sidechain and to querying it. Up until now, a sidechain requester had to interact directly with its node to manage data on the sidechain. While this works, there are some limitations that should be addressed.
One of these limitations stems from having a sidechain requester node that is being used by more than one individual, perhaps from various departments in an organization. Such a use case would imply that users would have to share node access and management. Since this isn't optimal, we've changed it. With this in mind, we're introducing BBCLI, our External Command Line Interface that integrates with the requester node and allows for compartmentalized management of the system. Through this update, users authenticate locally with an EOS account on their BBCLI instance and manage their databases right there. This is a great first step forward because it provides a path for a future fine-grained management of permissions for EOS accounts for database management.
Also, related to usability, we've been working hard on further simplifying the usage of BBSQL, a querying language used to manage data on a BlockBase sidechain. It’s designed to be almost equal to ANSI SQL, with the addition of data encryption syntax. Until now, a developer would have to compose queries in a string format and send them to a BlockBase node to be executed, something very similar to what is done with traditional databases. For most modern use cases, though, this method is replaced with technology that partially structures queries, such as ORMs (Object-Relational Mapping). An ORM provides a clean bridge between Object-Oriented Programming languages and SQL programming, which is exactly what we are building for BlockBase, and it's already being tested! We call it BBLinq and, with this framework, developers can easily interact with a sidechain through a fluent programming interface instead of having to stich strings together. While it's written in C#, it may (and will) be adapted to other popular languages in the future, to ease even further the use of this technology.
These usability updates clearly confirm that the stability of the network has been achieved and that now we can focus solely on adding better tooling for developers and organizations.
Published by Ricardo Schiller
Lead Architect