This documentation aims to help developers learn and build with the Chromia blockchain platform. The documentation guides you through the following:
- The background and fundamentals of Chromia.
- How to get started with decentralized application (dapp) development.
- The software development kit of Rell (a relational language designed for blockchain programming).
- Advanced topics for more complex use cases regarding Rell and dapp development.
Chromia is a public platform, and we encourage you to give feedback regarding the developer experience. To contribute, please create an issue in this tracker for the documentation or the technical resources Chromia provides.
The following section provides a brief introduction of the Chromia platform. For a deeper understanding of the blockchain platform, please read the Chromia White Paper. If you are eager to start dapp development, you can safely skip straight to the Run Hello World dapp section.
Why choose between a traditional database and a blockchain when you can have the best of both worlds? The Relational Blockchain is a new architecture that combines the power and flexibility of mature database systems with blockchain's secure collaboration and disruptive potential. Chromia is a relational blockchain platform for decentralized applications (dapps).
While platforms, such as Ethereum, allow any app to be implemented in theory, in practice, they have many limitations: awful user experience, high fees, frustrating developer experience, and poor security. This prevents dapps from going mainstream. Therefore, we conceived and designed the relational blockchain to enable a new generation of dapps to scale beyond what's currently possible.
Our priorities are to:
- Allow dapps to scale to millions of users.
- Improve the user experience of dapps to achieve parity with centralized applications.
- Allow developers to build secure applications using familiar paradigms.
How to work with Chromia?
Most dapp blockchain platforms use virtual machines of various kinds, but a traditional virtual machine architecture doesn't work very well with the Chromia relational data model, as we need a way to encode queries as well as operations. To enable this, we created a new language called Rell (Relational language) for dapp programming.
When developing a dapp, you can write the backend in Rell and deploy it to the Chromia platform. Chromia also has client libraries for building transactions on the frontend. The client side then sends the transactions to the Rell backend. You can read about this structure in the Rell Introduction section.
Why use Chromia?
Chromia is a general-purpose platform capable of serving almost all kinds of dapps. It's particularly well suited to cases requiring high I/O capacity or involving the management of complex data sets. At the same time, it offers the same level of openness, security, transparency, and decentralization as other public blockchains. To understand when Chromia blockchain is the best choice, you need to dive a bit deeper:
- Real-time transactions: With Chromia's blockchain, transactions can be confirmed within ~1 second, enabling unparalleled performance. Each dapp on Chromia has its own blockchain run by a set of nodes using PBFT-style consensus.
- Relational blockchain: The unique architecture and relational blockchain enables flexibility, versatility, and consistency, which traditional relational databases are known for. In addition, it allows for traditional database operations, empowering developers to be productive in an already familiar design pattern.
- Rell language: Chromia provides a blockchain platform written in Rell. Rell is a relational language designed to be easy to learn and developer friendly. The language is deliberately like modern programming languages, and developers can use relational programming idioms they're already familiar with.