A Big Step Towards Real-World Assets on Chain: Centrifuge Launches its Amber Testnet built on Substrate

Philip Stanislaus
Feb 10, 2020 · 6 min read
Image for post
Image for post

Why Centrifuge Chain?

We are building Centrifuge Chain to be the gateway for all real-world assets to the Blockchain multiverse. Centrifuge OS allows businesses to exchange business documents (such as invoices) and tokenize those assets to have greater access to financingthereby unlocking value that has previously been inaccessible. Our mission is to change the rules of global trade to foster economic opportunity everywhere. Centrifuge Chain is optimized specifically for the transactions required by our specific use case.

Image for post
Image for post
The Centrifuge OS Stack

Centrifuge Chain is built on Parity Substrate with a bridge to Ethereum. Substrate will allow us to easily tap into the Polkadot ecosystem at a future point in time as well as re-using XCMP modules to connect with other blockchains that support the standard. We envision a larger ecosystem of many, connected blockchains — where Centrifuge Chain can enable off-chain assets to access financing through DeFi.

Centrifuge Chain will use its own native token — the Radial (RAD) token. It will also incentivize Validators and Nominators to participate through a block reward. Check out this post for a deeper dive into our Token Design journey.

The Road to Mainnet Launch

Centrifuge has multiple testnets online that have been created to test and stabilize the interaction between Centrifuge’s components, but are unaudited and experimental for now. These testnets have no economic value on-chain.

Amber is our release candidate and our second testnet. It is meant for audits and testing the stability of release candidates. Think of Amber as a way to test beta releases.

Flint is our first testnet that has been running since November 2019. It is meant for breaking changes and testing integration with other parts of the Centrifuge ecosystem. Think of Flint as a way to test previews and alpha releases.

Image for post
Image for post
View the status of Amber and Flint testnets on Polkadot Telemetry

Mainnet launch is expected at the end of Q1 after we have completed a security audit — but you can already get started on the Amber and Flint testnets now! If you are interested in running a validator for Centrifuge Chain, the Flint and Amber testnets are a great way to get up and running (and will make you eligible for our Validator Program!). If you are contributing to the Centrifuge code base and want to run against the most up to date version of the network — then look to Flint! Anyone interested in integrating Centrifuge but not ready for production use yet should use Amber.

Thanks to BlockXLabs you can get FRAD testnet tokens for Flint from their faucet (Amber will follow soon — in the meantime ping us on our slack channel).

Building with Substrate

We are building Centrifuge Chain on Parity Substrate. Substrate is a blockchain framework that allows us to reuse common blockchain features and focus on the Centrifuge specific chain logic. We can trust existing modules for building blocks like the consensus algorithm or proof-of-stake handling. This allows us to move faster and use a standardized approach for certain features. At the same time we are able to develop a standardized bridge to Ethereum that can be reused by other projects, which in turn increases interoperability

Building on top of Substrate has been a difficult but delightful journey for our team at the same time, with a steep learning curve. We were impressed by the vast possibilities and features Substrate offers out of the box. The amount of effort that has been put into the design and architecture of the individual modules is striking.

For instance, the governance modules provide in the default implementation direct democracy (through public referenda), a chamber that represents passive stakeholders (the council) and even a technical committee that can fast-track proposals. There are many possibilities for customization of how these components interact. Many parameters can be configured, from the number of council members to the majorities that different proposals require to pass.

While being powerful and feature-rich, Substrate manages the inherent complexity really well. We often had to dive into the Substrate source code to understand how certain things behave. The code is very well organized and documented — to the extent where it is a great reference to implementing our own runtime modules.

From the beginning, there was an additional challenge for our team on this journey: Rust was a new language for us. Our engineers are well versed with systems languages (most of our code is written in Go), but Rust’s type system is so extremely powerful and complex that it requires quite some time to get productive. Additionally, we were used to Go’s blazing fast compiler, which allows feedback loops of just seconds during development. Our substrate codebase often took half an hour, sometimes even 3–4 hours to compile until errors surfaced on our development MacBooks. Eventually, we decided to use Visual Studio Code’s Remote SSH plugin to get language support and compilation speed from a powerful server in our office.

A challenge of working with Substrate was the high rate of change to the framework itself. We have spent a considerable amount of time keeping our code base up to date with Substrate, which often meant days of figuring out how to upgrade dependencies until the Rust compiler finally stopped complaining.

Despite all of these challenges, we could not have been happier with the choice of Substrate as our framework for a simple reason: the community. The people behind Substrate and the teams building on top of it are welcoming, passionate and helpful. There is a lot of activity in the matrix channel “substrate technical” (and others), sometimes several hundred posts per day. A huge majority of questions get answered by the engineers behind Substrate within minutes. Regularly, other teams building on Substrate jump in and give helpful advice, share insights and point to open source tooling they have built to make the lives of others easier.

Finally, Web3 Foundation puts a lot of effort into the ecosystem — we have been awarded 2 grants now to support external parties building tooling that takes some load off of our own team. The first grant was for go-substrate-rpc-client (GSRPC), a client that allows one to interact with substrate based chains easily from Go; the second one is for a bridge between Substrate and Ethereum (not yet released). Beyond these grants and even more importantly, we have been accepted into Web3 Foundation’s Builder’s Program, which provides us with regular office hours and a direct communication channel to the engineers for advice and problem solving.

In summary, we are proud to be part of such a vibrant and cooperative community. And we are excited to see the space mature and develop!

If you want to be a part of our journey — we are hiring senior Rust engineers as well as a marketing guru right now! LEARN MORE

Interested in running a Validator?

If you are interested in getting started as a Validator on Centrifuge Chain, then follow this guide to get started! Running a validator on Flint and Amber will also make you eligible for our Validator Program. Once you are setup and ready, reach out to us at chain@centrifuge.io.

Join the next Validator Community Call on Wednesday February 19th at 3PM CET!

Further Resources:


Decentralized Asset Financing

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store