Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Substrate Connect Vision and Roadmap #146

Closed
raoulmillais opened this issue Feb 26, 2021 · 1 comment
Closed

Substrate Connect Vision and Roadmap #146

raoulmillais opened this issue Feb 26, 2021 · 1 comment
Labels

Comments

@raoulmillais
Copy link
Contributor

raoulmillais commented Feb 26, 2021

Introduction

A first draft presentation on the substrate connect "big idea"

Product Goals & Vision

  • Create a bundle that will allow developers to generate a light client of their chain, all it takes is just one command to compile a library that contains everything that's needed to run a light client in the browser.

  • A node module that bundles the light-clients of different chains. It provides an interface that allows developers to run light nodes of different chains and to add runtimes and genesis configs of their own chain.

  • Provide example demo uApps (burnr wallet, browser demo etc) that will be able to integrate with or without extension with the in-browser light client

  • Provide a Browser Extension built upon the @substrate-connect node module that is running the selected smoldot clients inside the extension so that the end-user doesn't need to fire up a light node in every browser tab.

  • With browser extension - multiple connections to nodes should be handled through the extension in order to avoid multiple connections from different tabs to same networks (use of light-client databases)

Longer Term Goals

  • (nice-to-have) Light client instance (extension) will help syncing of other Smoldot instances in other browsers. This requires Parity (or 3rd parties to host STUN / TURN relay serves to punch through firewalls and do NAT traversal to allow 2 browser clients to handshake a connection. It will need Smoldot to be adapted to speak WebRTC.

  • Smoldot clients may become active participants in the network (I.E. not fully-light clients).

Roadmap Milestones

v0 - Working prototype

Create all the necessary parts to validate connecting a UApp to single (non-parachain) substrate-based chain. It should be possible to connect either via a browser extension or directly in page and this process should be transparently handled whether the extension is installed or not.

The developer API should be as minimal as possible. The developer should have a fully-functional PolkadotJS API instance preconfigured to use in their app. There should deployed demo UApps to showcase the in-browser light client.

We aim to deliver:

  • Working substrate connect package
  • A browser extension (working in firefox and chrome) with a preset hard-coded selection of networks (Westend and if ready kusama and/or polkadot)
  • In-page light client with a demo app - smoldot browser demo (works with or without extension)
  • Demo app of a functional burner waller (works with or without extension)

Detailed tracking ticket explaining the technical implementation requirements of the v0 working prototype

v1 - Polish prototype and support connecting to parachains

TODO: turn these into tickets and organise into a milestone:

  • Package extensions for distribution through chrome and firefox web stores
  • Connect to multiple parachains
  • Single smoldot connected to multiple parachains
  • Investigate supporting multiple chains in polkadotjs - speak to Jaco
  • More example UApps
  • Documentation website with step-by-step instructions
  • Showcase of examples

Future

  • Support custom chain specs for fully sovereign substrate chains
  • Measure and optimise experience for all users to provide best performance across desktop and mobile
  • Add support for WebRTC into substrate-connect - work with Pierre and smoldot
@wirednkod
Copy link
Contributor

This roadmap is achieved and can close

@wirednkod wirednkod unpinned this issue Feb 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants