W3F Grants: ChainSafe to Implement Polkadot Runtime Environment in Go

Hello from Web3 Foundation!

We recently announced the W3F Grants program, and we’d like to thank all of the amazing community members who have applied with ideas on how to improve the growing W3F and Polkadot ecosystems. We’re humbled by the number of talented teams working collaboratively to build a decentralized and open internet.

We are proud to issue our first grant to ChainSafe Systems! ChainSafe will develop the next node implementation of the Polkadot Runtime Environment (PRE) in the Golang programming language.

What is the Polkadot Runtime Environment (PRE)

The PRE is a framework for developing blockchains and running them, including the Polkadot Relay Chain. It can also make the development of parachains on Polkadot easier by providing reusable components including: a networking layer, a consensus layer, and a Wasm interpreter.

Unlike the Ethereum blockchain, where these two core components are the same, the Polkadot Runtime Environment is distinct from the Polkadot Runtime. This is intended to improve the modularity of the protocol. The necessary features are shown in the lower layers of the following diagram:

Why build multiple implementations?

It is critically important to have multiple implementations of the Polkadot protocol for a number of reasons, including decentralization, knowledge dispersion, and better definitions of the protocol. As a reminder, Parity Technologies is building the first implementation of Polkadot in Rust and a Polkadot JS in JavaScript.

Multiple implementations of Polkadot improves network resilience and adds to the decentralization of the network. The governance of the network is more democratized when multiple teams build clients which run the nodes in the network. By building a the next implementation of the Polkadot protocol, ChainSafe is helping develop a robust network — meaning that if there’s an issue with one client, it won’t impact network availability — thus ensuring a healthy, resilient Polkadot ecosystem.

By building a the next implementation of the Polkadot protocol, ChainSafe is helping develop a robust network — meaning that if there’s an issue with one client, it won’t impact network availability — thus ensuring a healthy, resilient Polkadot ecosystem.

In order to test the core of the protocol and ensure a high quality specification, we need implementations that will be capable of running validator nodes in a production environment. These have to be performant enough to handle the demands of the network. While all clients should be compliant to the protocol some can be designed for specific users. W3F Research is working on progressing the Polkadot Runtime Environment specification and the latest version is available to read here.

Development teams can optimize their clients for specific target markets, innovating in the architecture, usability and interfaces of Polkadot nodes to serve everyday users or enterprises. We hope that by issuing more PRE grants we will enable teams to creatively build even better Polkadot implementations.

Through this grant, W3F hopes to increase the number of people and projects that are intimately familiar with the protocol. A wider distribution of knowledge about the core aspects of protocol means more people can consult or develop solutions on top of Polkadot. By opening up Polkadot to multiple languages people in different developer communities will be able to understand the core Polkadot technology, making it easier for them to contribute to core technology. W3F’s goal is to make Polkadot core technology into a commodity so that it is accessible and more people can join in on discussion around protocol upgrades and research.

Why Golang?

Go is one of the more accessible and popular languages in the decentralized technology industry. The Go community is very healthy and continues to grow. Thus, by issuing this grant to ChainSafe to develop a PRE in Go, we hope to attract a new wave of developers to contribute to core Polkadot technology. Because Polkadot leverages WASM (learn why), it’s important that any additional implementations of Polkadot compile to WASM. Plus, there is already a WASM interpreter in Go.

Grant Process

Web3 Foundation announced the RFP for alternative implementations of the Polkadot Runtime Environment in July 2018. At that time we stated our preferred language was Go, followed by C++ and Java. We blasted the grant to all of our social media channels and mentioned it in articles and presentations. As a result we received a number of proposals and ultimately decided to move forward with ChainSafe and two other teams, to be announced soon. This was a result of ChainSafe development capabilities, including their work on Ethereum 2.0 and in the Ethereum community. Polkadot will be bridged to Ethereum some time after launch, and we hope this will enable the two protocols to work together to bring forward our collective vision of Web 3.0.

Visit grants.web3.foundation to read about the evaluation process and how to apply for W3F Grants.

About ChainSafe Systems

ChainSafe is a grassroots team of 23 people from Toronto, Ontario, who met at local Ethereum Developer Meetups. At ChainSafe, we take an active role in blockchain research with projects contributing to the Ethereum ecosystem such as Lodestar (JavaScript Beacon Chain) & the Goerli Testnet. Our clients include Canadian technology companies such as Bunz, Shyft Network, Polymath, Aion, Arkilio and Coinlaunch.

Working on the PRE in Golang is Elizabeth Binks, Priom Chowdhury, Dustin Brickwood, David Ansermino & Aidan Hyman, with support from other members of our team including Gregory Markou, Timothy Williams, David Krett & Stu Peters, as well as others from the ChainSafe team.

W3F Grants

Want to help change the web for the better? Visit grants.web3.foundation to learn more about our areas of interests, how to apply and our evaluation process.