Lightweight Substrate and Polkadot client.

Introduction

smoldot is a prototype of an alternative client of Substrate-based chains, including Polkadot.

In order to simplify the code, two main design decisions have been made compared to Substrate:

How to test

There exists two clients: the full client and the wasm light node.

Full client

The full client is a binary similar to the official Polkadot client, and can be tested with cargo run.

Note: The Cargo.toml contains a section [profile.dev] opt-level = 2, and as such cargo run alone should give performances close to the ones in release mode.

Wasm light node

The wasm light node can be tested with cd bin/wasm-node/javascript and npm start. This will start a WebSocket server capable of answering JSON-RPC requests. You can then navigate to https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944 in order to interact with the Westend chain.

Note: The npm start command starts a small JavaScript shim, on top of the wasm light node, that hardcodes the chain to Westend and starts the WebSocket server. The wasm light node itself can connect to a variety of different chains (not only Westend) and doesn't start any server.

Objectives

There exists multiple objectives behind this repository:

Status

As a quick overview, at the time of writing of this README, the following is supported:

The following isn't done yet: