Substrate qui à été conçue par Parity, combine trois nouvelles technologies: Rust, WebAssembly et Libp2p afin de créer une framework facilitant la création de blockchains évolutives, efficaces et innovantes. En bref, Substrate vous aide à créer la meilleure blockchain possible.
Ce qu’il faut premièrement retenir est que substrate ne fait pas partie de Polkadot. Bien que Polkadot soit conçus avec Substrate et que les projets conçus avec Substrate puissent s'exécuter en mode natif sur Polkadot, vous pouvez dès à présent utiliser Substrate pour créer de nouvelles blockchains. Aucun besoin d'attendre que Polkadot soit achevé ou même qu'une preuve de concept soit publiée pour commencer à concevoir votre propre blockchain en utilisant Substrate.
Substrate est similaire à Express ou à n’importe quelle autre framework d'application Web, mais il est en revanche destinés aux développement de systèmes distribués ou décentralisés tels que les crypto-monnaies. Substrate est conçu pour être aussi générique que possible afin de vous donner une liberté technique maximale lors de la conception de votre blockchain. Il dispose d'une fonction «execute block» 100% abstraite, codée dans WebAssembly et pouvant être ciblée à partir de plusieurs langages, y compris C ++ et Rust. La fonction d'exécution du bloc est remplaçable à chaud, ce qui signifie que vous pouvez mettre à niveau la logique de votre chaîne sans passer par un hard fork.
Substrate intègre le meilleur de la technologie de pointe en matière de blockchain. Vous disposez dès le départ d'un client léger qui permet à votre blockchain de fonctionner en mode natif sur les appareils mobiles, et vous offre une sécurité et interopérabilité groupés via l'intégration au protocole Polkadot. Substrate utilise le langage de programmation Rust conçu et développé par Mozilla Research.Il existe également une implémentation JavaScript pour un client Substrate qui s'exécute directement dans le navigateur.
Tout comme la plupart des applications Web ne devraient pas avoir à ré-implémenter leur propre version HTTP, Il est tout à fait normal que chaque équipe créant, ou voulant créer une nouvelle blockchain n’aie pas à gaspiller de temps et d’efforts pour écrire et implémenter tout le code relatif au réseau et au consensus. Sans parler des cryptographes, des chercheurs en sécurité, des ingénieurs réseau, etc., qui doivent être embauchés et payés. En somme, grâce a Substrate vous n’aurez pas à réinventer la roue. Si vous voulez concevoir un nouveau projet en utilisant Substrate, tout ce que vous avez à faire c’est d'implémenter un très petit nombre de hook dans votre code, et vous pourrez bénéficier gratuitement du:
Consensus, finalité et la logique de vote. Même si vous ne développez pas une crypto-monnaie ou même un projet nécessitant une blockchain - vous bénéficierez gratuitement de la méthode de conception ‘tolérance aux pannes’, qui permettra à votre système de continuer à fonctionner correctement, même si certains de ses nœuds ne le sont plus, sont hors ligne; ou sont sujet d’attaques malveillantes.
Mise en réseau, donc découverte des pairs, réplication, etc.
Un environnement d'exécution WebAssembly efficace et déterministe en sandbox, qui peut être utilisé pour exécuter des contrats intelligents ou même pour exécuter d'autres projets basés sur Substrate. Vous n'êtes pas dans l’obligation d'utiliser WebAssembly; bien qu’ils présente selon nous un grand avantage, vous pouvez simplement mettre en place votre propre interpréteur de machine virtuelle.
La possibilité d'exécuter de manière transparente un nœud dans le navigateur pouvant communiquer avec n'importe quel nœud de bureau ou cloud; Une abstraction de stockage de fichiers / bases de données multi plateforme, qui fonctionne même dans le navigateur; Mises à jour transparentes du client - toute mise à jour pouvant affecter le consensus est gérée en compilant le code dans WebAssembly, et en le déployant comme un simple message sur le réseau. De plus, vous pouvez stocker autant de versions du code consensus que vous souhaitez compiler en code natif. Substrate gérera la complexité consistant à s'assurer que le code natif en cours d'exécution est aligné sur le code WebAssembly actuellement déployé. Vous bénéficiez de la vitesse du code natif, mais comme il existe toujours une solution de secours WebAssembly, vous pouvez déployer une version native du code à votre rythme sachant que vous êtes protégés contre un hard fork ou autres problème de consensus accidentel.
La possibilité de commencer immédiatement à exécuter votre projet sur Polkadot dès sa publication. Bien que les projets conçus avec Substrate puissent être compilés pour utiliser des clients distincts par projet (comme les blockchains existantes), Polkadot implémentant l'API Substrate, vous pouvez puiser dans la sécurité et l'interopérabilité partagées fournies par Polkadot. Polkadot est lui-même construit en utilisant Substrate, ce qui nous permet d'obtenir un retour rapide sur les trous du framework et de gérer un réseau de test Polkadot ou même une seconde instance de Polkadot elle-même en tant que parachine. Si vous ne connaissez pas Polkadot ou si vous n'avez pas été suffisamment informé de ses avantages, vous pouvez consulter ce message sur le blog de Polkadot.
Substrate vous permet de configurer facilement votre blockchain, mais vous permet également de contrôler totalement le code si vous en avez besoin. Cette flexibilité entre facilité et liberté technique est obtenue grâce à une conception modulaire: Substrate se compose de Substrate core et Substrate Runtime Module Library (SRML) et est livré avec un nœud Substrate pré-assemblé et qui est simple à configurer. Nous en reparlerons en détails dans un prochain article.
Référence
https://www.parity.io/what-is-substrate/
https://www.parity.io/substrate-has-arrived/
https://github.com/paritytech/substrate/blob/master/README.adoc
Ressource:
Substrate: https://github.com/paritytech/substrate/releases
Polkadot JS client: https://github.com/polkadot-js/client