Skip to main content

Introduction

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.

This is a public platform, and we encourage you to give feedback regarding the developer experience. To contribute, please create an issue in one of the two repositories:

  • Use this tracker to add improvement, content or topic suggestions for the documentation.
  • Use this tracker to add improvement, feature or tool suggestions for the dapp development.

A brief introduction to Chromia is presented below. For further and deeper understanding of the blockchain platform, please read the White Paper. If you are eager to get started with dapp development, you can safely skip straight to the Getting Started section.

What is Chromia?

Chromia is a relational blockchain platform for decentralized applications (dapps). The Relational Blockchain is a new architecture that combines the power and flexibility of mature database systems with the secure collaboration and disruptive potential of blockchain. Why choose between a traditional database and a blockchain when you can have the best of both worlds?

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. Therefore, the relational blockchain was conceived and designed. To enable a new generation of dapps to scale beyond what is 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 with using familiar paradigms.

How to work with Chromia?

Most dapp blockchain platforms use virtual machines of various kinds. But a traditional virtual machine architecture does not work very well with the Chromia relational data model, as we need a way to encode queries as well as operations. For this reason, a new developed language called Rell (Relational language) is used for dapp programming.

When developing a dapp, the backend can be written in Rell and deployed to the Chromia platform. Chromia also has client libraries for building transactions on the frontend. The client side will in turn send the transactions to the Rell backend. This structure is further explained in the Rell Introduction section.

Why use Chromia?

Chromia is a general-purpose platform capable of serving almost all kinds of dapps. It is particularly well suited to cases requiring high I/O capacity or involving management of complex data sets. At the same time, it offers the same level of openness, security, transparency and decentralizations as other public blockchains. To understand when Chromia's blockchain is the best choice, we 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 will have its own blockchain run by a set of nodes using PBFT-style consensus.
  • Relational blockchain: The unique architecture, 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 are already familiar with.