General-grants-program: Environnement d'exécution Polkadot : subvention de mise en œuvre alternative

Créé le 18 juil. 2018  ·  16Commentaires  ·  Source: w3f/General-Grants-Program

La Fondation Web3 cherche à attirer des équipes pour le développement d'une implémentation alternative de Polkadot Runtime Environment (PRE), qui est un composant central de Polkadot.

La première étape de l'écriture d'une implémentation Polkadot à part entière consiste à commencer par écrire une implémentation du PRE. L'idée derrière le PRE est qu'il peut être utilisé pour créer des blockchains autonomes, tout en permettant également la connectivité au réseau Polkadot.

La Fondation Web3 a engagé Parity Technologies pour écrire la première implémentation de Polkadot. Leur implémentation du PRE est appelée 'Substrat'. Ce produit est actuellement un PRE mais aura des fonctionnalités supplémentaires à l'avenir. Pour cette bourse nous ne nous intéressons qu'au PRE. Le code Substrate actuel se trouve dans le référentiel Polkadot GitHub et est implémenté dans Rust .

Pour plus d'informations, veuillez consulter le document suivant pour plus de détails sur la façon de postuler:

Environnement d'exécution Polkadot : subvention de mise en œuvre alternative

(Pour votre information, les langages suivants sont préférés : Go (au-dessus de tous les autres), C++ et Java.)

Core Tech Sought

Commentaire le plus utile

Bonjour, notre équipe était à Berlin pendant la semaine de la blockchain et a passé un moment incroyable à faire connaissance avec les gens de l'équipe Parity. Nous nous sommes montrés intéressés par l'écriture d'une implémentation du PRE en Go. Je remplirai la demande dans les prochains jours. Merci!

Tous les 16 commentaires

Existe-t-il une langue préférée pour l'implémentation ?

Une implémentation alternative dans Rust ou Go serait très utile au début, car une grande partie de la pile de blockchain actuelle est écrite dans l'un ou l'autre.

En fin de compte, il serait intéressant d'obtenir une implémentation en JavaScript (si jamais elle prend en charge la compilation vers wasm) ou Java/C#.

Je dois publier plus d'informations demain (un peu en retard sur le délai prévu !).

L' implémentation de référence est dans Rust (c'est-à-dire Parity Tech), plus il y a l'implémentation JS de Jaco (un client Substrate complet, mais sans création de blocs).

Les implémentations préférées sont : Java, Go, C++.

Donc, avec un peu de chance, je peux publier tous les détails demain ! :-)

@EdwardAThomson Existe-t-il des délais pour les demandes de subvention ?

Je cherche à aider une équipe dans cette entreprise, spécialement en utilisant Go. S'il y a une équipe existante qui cherche de l'aide, veuillez me contacter. gfrеⅾericco à іģսаzս ḋot soⅼսtіоոs ou sur Twitter : ģсsfreḋ.

@gcsfred2 Les candidatures seront ouvertes pendant un certain temps. Pour le moment, on espère avoir quelques implémentations supplémentaires, donc le processus de candidature restera ouvert au moins jusqu'à ce que nous ayons quelques équipes intéressées travaillant sur cette question.

Bonjour, notre équipe était à Berlin pendant la semaine de la blockchain et a passé un moment incroyable à faire connaissance avec les gens de l'équipe Parity. Nous nous sommes montrés intéressés par l'écriture d'une implémentation du PRE en Go. Je remplirai la demande dans les prochains jours. Merci!

Salut l'équipe ChainSafe, c'est bon à entendre ! Je vois que vous avez une adresse e-mail sur votre profil. Je vais envoyer un e-mail pour dire bonjour. Go est l'une de nos langues préférées, votre candidature est donc intéressante. Nous commençons maintenant à nous intéresser à l'écriture d'implémentations alternatives.

Désireux de participer au développement de base de Polkadot. Formulaire soumis ! :)

Ajout d'une liste de vidéos et de blogs pertinents.

Vidéos :

Blogs etc :

Canal de discussion technique :

Nous vous recommandons de sauter dans le canal Substrate Technical et de commencer à poser des questions. Certains développeurs sont sur place et répondent aux questions, et il y a aussi une poignée de membres de la communauté qui deviennent également des experts !

Merci pour tout l'intérêt que vous portez jusqu'à présent. Nous avons reçu un certain nombre de formulaires de candidature, mais le processus de candidature est toujours ouvert au cas où des équipes se poseraient la question et envisageaient de soumettre une proposition. Nous espérons sélectionner 2 ou 3 équipes pour développer des implémentations alternatives, mais nous n'avons encore sélectionné personne !

Une autre mise à jour sur ce sujet. Beaucoup d'entre vous ont posé des questions sur les délais et la quantité d'efforts nécessaires.

J'ai eu une conversation rapide avec Jaco, un développeur de Parity. C'est lui qui a créé l'implémentation en JavaScript. J'espère que cela vous donne une meilleure idée. Il a travaillé à peu près en solo aussi!

Combien de temps attendriez-vous d'un développeur / d'une équipe de développeurs pour créer une implémentation de Substrate ?

"Difficile à dire - le problème est que mon implémentation a trouvé beaucoup de bogues dans le code Rust libp2p, donc j'attendais (ce qui m'a semblé une éternité) des correctifs. Trop tôt.

Donc, première chose, quel langage - si ce n'est JS, Go ou Rust, ils doivent écrire leur propre implémentation libp2p. (Peut-être existe-t-il un moyen d'utiliser les versions Go/Rust comme bibliothèques)"

"Ensuite, les parties délicates sont :

  • mise en œuvre du codec de parité (plus de 2 semaines pour le faire correctement) - nécessaire pour tout ce qui concerne la mise en réseau ou RPC
  • implémentation d'une base de données Trie - ils peuvent apprendre de ce qui se fait dans les clients JS, Rust, Ethereum, mais Substrate a sa propre version. (Encore une fois, il peut être possible d'utiliser la version Rust comme bibliothèque)
  • Environnement WASM, ce truc n'est documenté nulle part sauf dans le code - m'a pris environ 1 mois ici, mais encore une fois, les implémentations ont changé tout le temps (trop tôt)
    Ensuite, il y a les bricoles - blockchain DB (over-and-above state trie), appels RPC, client léger potentiel."

Au strict minimum, selon lui :

  • Essayer
  • libp2p
  • Environnement WASM

"Si dans l'implémentation est en Go, le Trie, ils peuvent en fait prendre la version Ethereum et "juste" déposer blake2 et le codec de parité."

Pour cette subvention, nous attendons que la partie consensuelle soit également réalisée.

Bonjour, je viens de remplir le formulaire pour l'implémentation C++.

Bonjour, je viens de remplir le formulaire pour l'implémentation C++.

A reçu! Merci! @Yuvasee

Le processus de candidature est toujours ouvert. Nous prendrons quelques candidatures supplémentaires avant de prendre une décision.

Connaissez-vous notre conférence W3S ? Des tarifs réduits et des billets gratuits sont désormais disponibles :

https://medium.com/web3foundation/endowing-an-open-inclusive-community-at-web3-summit-3013456f4f84

Salut tout le monde, nous avons eu quelques questions sur le processus de développement et nous avons pensé qu'il serait bon de partager les réponses avec tout le monde.

1. Comprendre la motivation pour une mise en œuvre alternative

  • Dans quelle mesure la présente implémentation est-elle une référence ?

    • Il y a une spécification qui est à l'état de brouillon. J'espère le partager bientôt.
    • L'implémentation actuelle est comme une spécification de référence, mais ce n'est pas vraiment le cas.
    • L'appel d'offres a été lancé tôt, afin que nous puissions commencer à discuter avec les équipes.
    • Nous avons suggéré qu'ils obtiennent une proposition au début.
  • Une mise en œuvre indépendante est recherchée ? Dans ce cas, est-ce que la nouvelle implémentation est basée sur l'implémentation Rust de Substrate ?

    • Aussi indépendant que possible. Fait d'une manière idiomatique qui suit cette langue.
    • Pas une traduction directe.
    • Autonomisez une communauté supplémentaire de développeurs. Ne vous limitez pas à un ensemble particulier de développeurs.
    • Peut également aider à identifier les divergences persistantes entre les implémentations.
    • Comme il s'agit d'un réseau décentralisé, nous avons besoin d'implémentations alternatives. Vous ne voulez pas qu'une seule équipe contrôle le développement du réseau.
  • Une meilleure performance est recherchée ? Si oui, quels sont les besoins/symptômes que nous voulons améliorer/guérir ?

    • Pas vraiment. La rouille est assez rapide. Nous voulons vraiment toucher de nouvelles communautés de développeurs et améliorer la décentralisation (résilience et gouvernance du réseau).
  • Une meilleure portabilité pour plusieurs plates-formes ?

    • Attendez-vous à ce qu'il fonctionne sur Linux et Mac. (plates-formes de type Unix)
    • Serait génial sur Windows.
  • Y a-t-il une raison derrière la préférence pour Go ?

    • Vous souhaitez inclure la communauté Go existante.
    • Il y a déjà un interprète Wasm dans Go. C'est peut-être plus simple : https://github.com/perlin-network/life
    • Nous financerons probablement au moins 2 implémentations. Par exemple, C++ et Go.
    • Il y a plus à écrire en C++. Code probablement moins réutilisable. Peut-être pas de libp2p en C++. Moins de support Wasm.

2. Comprendre la mise en œuvre autour de WASM

  • Pouvons-nous réutiliser une implémentation WASM existante ?

    • Peut réutiliser un interpréteur existant dans le langage de l'implémentation.
    • Il peut être possible d'utiliser l'implémentation Rust avec un PRE C++, car il existe des liaisons, mais il serait préférable d'avoir un interpréteur C++. Si l'implémentation C++ n'est pas excellente, faites des demandes d'extraction ou bifurquez et améliorez.
  • Sommes-nous obligés d'implémenter également l'exécution native, ou simplement l'interpréteur WASM ?

    • Non nécessaire pour la conformité aux spécifications.
    • Peut faire une étape supplémentaire.
    • Il y aura des morceaux de logique Wasm exécutés fréquemment. Avoir la possibilité d'exécuter la logique en tant que code natif est important.

3. Comprendre les « règles d'engagement »

  • Existe-t-il des spécifications formelles ou des tests d'acceptation, ou pourraient-ils être développés dans une première phase du projet ?

    • Nous en avons besoin, mais nous ne les avons pas.
    • Serait disposé à considérer les tests comme un lot de travaux distinct.
  • Y a-t-il un délai formel?

    • Pas de délai.
    • Idéalement, une implémentation d'ici la fin du premier trimestre 2019. Permet à l'implémentation de commencer à fonctionner avec Polkadot.
  • Sous quelle forme doit-on demander une subvention et à qui doit-on adresser la demande ?

    • Formulaire de candidature (comme dans le message d'origine).
    • Mieux vaut obtenir une proposition approximative plus tôt. Même si ce n'est pas très bien étoffé.
  • Qui donnera le OK / décidera à la fin pour la demande de subvention ?

    • Fondation Web3. Peter sera le chef de file, mais d'autres seront impliqués (par exemple, les personnes concernées de Parity).
    • Nous pouvons demander des informations supplémentaires afin de clarifier certaines choses.

Nous avons intérêt à soutenir cet effort en faisant un portage minimal de l'implémentation du codec Parity, et de tout autre module de rouille avec l'idée de supporter l'écriture d'un runtime en Go. Donc pas une implémentation alternative complète.

Cette tâche sera bien sûr prise en charge par l'équipe sélectionnée pour effectuer la mise en œuvre complète de Go. Je cherchais donc à voir s'il y avait une possibilité de collaboration ou si aucun travail n'avait commencé, pour peut-être demander une subvention pour un champ de travail plus restreint ?

Cette page vous a été utile?
0 / 5 - 0 notes