W3F Grants: Soramitsu to implement Polkadot Runtime Environment in C++

We recently announced the W3F Grants program, and we’d like to thank all the teams and community members who have applied with ideas on how to improve the growing Web3 and Polkadot ecosystems. We’re excited by the number of talented teams working collaboratively to build a decentralized and open internet. Check out a non-exhaustive list of ideas that we would consider providing grants for here.

Today we are proud to issue our second grant to Soramitsu! Soramitsu will develop the next node implementation of the Polkadot Runtime Environment (PRE) in the C++ programming language. The PRE C++ implementation is called Kagome, and Soramitsu is planning to release Kagome by August 2019.

Soramitsu is the fourth announced team working on core Polkadot technology. Parity Technologies is building the first implementation of Polkadot in Rust, Polkadot JS in JavaScript and ChainSafe Systems in Golang. With this announcement, there are now over 120 developers across North America, Europe, and Asia working towards delivering a robust, secure, and resilient Polkadot ecosystem.

Polkadot & Enterprise Adoption

Web3 Foundation chose Soramitsu to build the next Polkadot Runtime Environment because of their extensive development capabilities and their work with global enterprises. Soramitsu is one of the largest blockchain development companies in Asia, focusing on delivering blockchain-based solutions for enterprises, universities, and governments. Developing a Polkadot implementation will allow Soramitsu to better serve their existing enterprise customers.

The Polkadot Runtime Environment will allow us to build new use cases for the payment infrastructure we are developing for large financial institutions like the National Bank of Cambodia. — Makoto Takemiya, Co-Founder and Co-CEO of Soramitsu

Soramitsu is the original developer of Hyperledger Iroha, a next-generation permissioned platformed aimed at helping businesses and financial institutions manage digital identity and assets. The team contributed the original codebase for Hyperledger Iroha to the Linux Foundation’s Hyperledger Project. Polkadot will allow Hyperledger Iroha to talk to any other network and plug enterprise solutions into global financial and identity infrastructures.

As discussed in Soramitsu’s press release, solutions like Polkadot are extremely important for their enterprise work in the future. Soramitsu is implementing the Sora Decentralized Autonomous Economy, D3Ledger, and a payment system for the National Bank of Cambodia, all of which use HyperLedger Iroha as their distributed ledger platform. Polkadot will allow them to link all of these projects together. This is important because enterprises and financial institutions have a tendency to build isolated systems that fail to reach their full potential because of a lack of interoperability and having a negative impact on user experience.

Additionally, the Soramitsu team works with a number of major corporations that benefit from open source as use case partners for Hyperledger Iroha, including Honda, Hitachi, Panasonic, and Sony Financial Holdings.

Polkadot in C++ (Kagome)

Soramitsu has chosen to develop a PRE in C++ because of the maturity of the developer ecosystem and enterprise requirements for high performance and reliability. There are already a lot of projects and software written for C++ and enterprises are familiar with it. This contributes to the large pool of developer talent in the C++ ecosystem, estimated to be around 4.4 million developers with proficiency in the language, versus tens of thousands coding in Golang or Rust.

What is the Polkadot Runtime Environment (PRE)?

As mentioned in the Golang implementation announcement, the PRE is a framework for developing standalone blockchains and connecting them to the Polkadot network. A PRE can also make the development of parachains on Polkadot easier by providing reusable components including: a networking layer (libp2p), a consensus layer (e.g. Aurand/GRANDPA), a Wasm interpreter, and APIs for user and node interaction. As part of this grant Soramitsu will develop the C++ implementation of the libp2p networking layer. This is the only funding in the world going towards a C++ implementation of libp2p.

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?

As a recap from the Golang implementation announcement, 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.

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, Soramitsu 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.

Through this grant, W3F hopes to increase the number of people and projects that are intimately familiar with the Polkadot protocol and tap into a mature and large developer ecosystem. By opening up Polkadot to the C++ developer community, more people will be able to understand the core Polkadot technology. W3F’s goal is to make Polkadot core technology into a commodity so that it is accessible and more people can build solutions and join in on discussion around protocol upgrades and research.

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. As a result we received a number of proposals and ultimately decided to move forward with Soramitsu (C++), ChainSafe Systems (Golang) and one other team, to be announced soon. Visit grants.web3.foundation to read about the evaluation process and how to apply for W3F Grants.

About Soramitsu

Soramitsu is a boutique blockchain technology company based in Japan and focusing on products for financial markets using Hyperledger Iroha as the blockchain platform of choice. Two main product streams are solutions for digital asset management including a blockchain-based payment system for the National Bank of Cambodia and D3Ledger (https://d3ledger.com), as well as digital identity solutions that support the transparent and secure exchange of information according to financial KYC requirements. The most ambitious project, Sora (https://sora.org), is an implementation of a Decentralized Autonomous Economy (DAE) that has innovative business and financial models to support economic growth. The company was established in 2016, and currently employs more than 50 people in Japan, USA, Switzerland, Germany, Russia, and Cambodia.

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.