The purpose of this documentation is to help developers learn and build with Chromia’s 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.
If you are eager to get started with dapp development, you can safely skip straight to the Getting Started section.
A brief introduction to Chromia is presented below. For further and deeper understanding of the blockchain platform, please read the White Paper.
Chromia is a new blockchain platform for decentralized applications (dapps), conceived in response to the shortcomings of existing platforms and designed to enable a new generation of dapps to scale beyond what is currently possible.
While platforms such as Ethereum allow any kind of application to be implemented in theory, in practice they have many limitations: bad user experience, high fees, frustrating developer experience, poor security. This prevents dapps from going mainstream. We believe that to address these problems properly we need to seriously rethink the blockchain architecture and programming model with the needs of decentralized applications in mind. 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 with using familiar paradigms.
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. For this reason, we are taking a more language-centric approach: a new language called Rell (Relational language) will be used for dapp programming. This language allows programmers to describe the data model/schema, queries, and procedural application code.