General-grants-program: Polkadot Runtime Environment: concesión de implementación alternativa

Creado en 18 jul. 2018  ·  16Comentarios  ·  Fuente: w3f/General-Grants-Program

Web3 Foundation busca atraer equipos para el desarrollo de una implementación alternativa de Polkadot Runtime Environment (PRE), que es un componente central de Polkadot.

El primer paso para escribir una implementación completa de Polkadot es comenzar escribiendo una implementación del PRE. La idea detrás de PRE es que se puede usar para crear cadenas de bloques independientes, al mismo tiempo que permite la conectividad a la red Polkadot.

La Fundación Web3 contrató a Parity Technologies para escribir la primera implementación de Polkadot. Su implementación del PRE se denomina 'Substrato'. Este producto es actualmente un PRE pero tendrá funcionalidad adicional en el futuro. Para esta beca nos preocupamos únicamente del PRE. El código Substrate actual se encuentra en el repositorio Polkadot GitHub y está implementado en Rust .

Para obtener más información, consulte el siguiente documento para obtener más detalles sobre cómo presentar una solicitud:

Polkadot Runtime Environment: concesión de implementación alternativa

(Para su información, se prefieren los siguientes lenguajes: Go (sobre todos los demás), C++ y Java).

Core Tech Sought

Comentario más útil

Hola, nuestro equipo estuvo en Berlín durante la semana de la cadena de bloques y se divirtió mucho conociendo a la gente del equipo de Parity. Mostramos interés en escribir una implementación del PRE en Go. Estaré completando la solicitud en los próximos días. ¡Gracias!

Todos 16 comentarios

¿Hay un idioma preferido para la implementación?

Una implementación alternativa en Rust o Go sería muy útil desde el principio, ya que gran parte de la pila de blockchain actual está escrita en uno u otro.

En el futuro, sería interesante obtener una implementación en JavaScript (si alguna vez admite la compilación en wasm) o Java/C#.

Debo publicar más información mañana (¡un poco más tarde del tiempo esperado!).

La implementación de referencia está en Rust (es decir, Parity Tech), además está la implementación JS de Jaco (un cliente Substrate completo, pero sin creación de bloques).

Las implementaciones preferidas son: Java, Go, C++.

Entonces, con un poco de suerte, ¡podré publicar todos los detalles mañana! :-)

@EdwardAThomson ¿Existen plazos para las solicitudes de subvenciones?

Estoy buscando ayudar a un equipo en este esfuerzo, especialmente usando Go. Si hay un equipo existente que está buscando ayuda, comuníquese conmigo. gfrеⅾеrіо а іģ аz ḋot іоⅼ тіо ѕ o en Twitter: ģсѕfreḋ.

@gcsfred2 Las aplicaciones estarán abiertas por un tiempo. Por el momento, existe la esperanza de tener un par de implementaciones más, por lo que el proceso de solicitud permanecerá abierto al menos hasta que tengamos algunos equipos interesados ​​trabajando en este problema.

Hola, nuestro equipo estuvo en Berlín durante la semana de la cadena de bloques y se divirtió mucho conociendo a la gente del equipo de Parity. Mostramos interés en escribir una implementación del PRE en Go. Estaré completando la solicitud en los próximos días. ¡Gracias!

¡Hola, equipo de ChainSafe, es genial escuchar eso! Veo que tienes una dirección de correo electrónico en tu perfil. Voy a dejar un correo electrónico para decir hola. Go es uno de nuestros idiomas preferidos, por lo que su aplicación es de su interés. Estamos empezando a tener bastante interés ahora en escribir implementaciones alternativas.

Interesado en participar en el desarrollo central de Polkadot. ¡Formulario enviado! :)

Agregar una lista de videos y blogs relevantes.

Vídeos :

Blogs, etc .:

Canal de charla técnica :

Recomendamos ingresar al canal técnico de sustratos y comenzar a hacer preguntas. ¡Algunos desarrolladores están disponibles y responden preguntas, además hay un puñado de miembros de la comunidad que también se están convirtiendo en expertos!

Gracias por todo el interés hasta ahora. Hemos recibido varios formularios de solicitud, pero el proceso de solicitud aún está abierto en caso de que algún equipo tenga dudas y esté pensando en presentar una propuesta. Esperamos seleccionar 2 o 3 equipos para desarrollar implementaciones alternativas, ¡pero aún no hemos seleccionado a nadie!

Una nueva actualización sobre este tema. Muchos de ustedes han estado preguntando acerca de los plazos y la cantidad de esfuerzo involucrado.

Tuve una conversación rápida con Jaco, un desarrollador en Parity. Él es quien creó la implementación en JavaScript. Espero que esto te dé una mejor idea. ¡También trabajó prácticamente solo!

¿Cuánto tiempo espera que un desarrollador/equipo de desarrolladores cree una implementación de Substrate?

"Difícil de decir: el problema es que mi implementación encontró muchos errores en el código Rust libp2p, por lo que estaba esperando (lo que pareció una eternidad) las correcciones. Demasiado pronto.

Entonces, lo primero, qué idioma: si no es JS, Go o Rust, deben escribir su propia implementación de libp2p. (Tal vez haya una forma de usar las versiones de Go/Rust como bibliotecas)"

"Entonces las partes difíciles son:

  • implementación del códec Parity (más de 2 semanas para hacerlo correctamente): necesario para cualquier cosa relacionada con redes o RPC
  • implementación de un Trie DB: pueden aprender de lo que se hace en los clientes JS, Rust, Ethereum, sin embargo, Substrate tiene su propia versión. (Una vez más, es posible usar la versión de Rust como lib)
  • Entorno WASM, esto no está documentado en ninguna parte excepto en el código; me tomó alrededor de 1 mes aquí, pero una vez más, las implementaciones cambiaron todo el tiempo (demasiado pronto)
    Luego están los bits y bobs: blockchain DB (trie de estado por encima y por encima), llamadas RPC, cliente ligero potencial".

Como mínimo, como él lo ve:

  • prueba
  • libp2p
  • entorno WASM

"Si la implementación está en Go, el Trie puede tomar la versión de Ethereum y "simplemente" agregar blake2 y el códec de paridad".

Para esta subvención, también estamos buscando que se haga la parte de consenso .

Hola, acabo de completar el formulario para la implementación de C++.

Hola, acabo de completar el formulario para la implementación de C++.

¡Recibió! ¡Gracias! @Yuvasee

El proceso de solicitud sigue abierto. Tomaremos algunas aplicaciones más antes de tomar cualquier decisión.

¿Sabías de nuestra conferencia W3S? Ahora hay precios reducidos y entradas gratuitas disponibles:

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

Hola a todos, hemos tenido algunas preguntas sobre el proceso de desarrollo y pensamos que sería bueno compartir las respuestas con todos.

1. Comprender la motivación para una implementación alternativa

  • ¿Hasta qué punto la presente implementación es una referencia?

    • Hay una especificación que se encuentra en estado de borrador. Espero compartirlo pronto.
    • La implementación actual es como una especificación de referencia, pero en realidad no lo es.
    • La RFP se inició temprano, por lo que pudimos comenzar a hablar con los equipos.
    • Sugerimos que obtuvieran una propuesta temprano.
  • ¿Se busca una implementación independiente? En ese caso, ¿está bien si la nueva implementación se basa en la implementación Rust de Substrate?

    • Lo más independiente posible. Hecho de una manera idiomática que se adapte a ese idioma.
    • No es una traducción directa.
    • Capacite a una comunidad adicional de desarrolladores. No se limite a un conjunto particular de desarrolladores.
    • También puede ayudar a identificar las discrepancias en curso entre las implementaciones.
    • Como es una red descentralizada, necesitamos implementaciones alternativas. No quiero que un equipo controle el desarrollo de la red.
  • ¿Se busca un mejor rendimiento? Si es así, ¿cuáles son los requisitos/síntomas que queremos mejorar/curar?

    • Realmente no. El óxido es lo suficientemente rápido. Realmente queremos llegar a nuevas comunidades de desarrolladores y mejorar la descentralización (resiliencia y gobernanza de la red).
  • ¿Mejor portabilidad para múltiples plataformas?

    • Espere que funcione en Linux y Mac. (Unix como plataformas)
    • Sería genial en Windows.
  • ¿Hay alguna razón detrás de la preferencia por Go?

    • Quiere incluir la comunidad Go existente.
    • Ya hay un intérprete de Wasm en Go. Entonces podría ser más fácil: https://github.com/perlin-network/life
    • Probablemente financiaremos al menos 2 implementaciones. Por ejemplo, C++ y Go.
    • Hay más para escribir en C++. Probablemente menos código reutilizable. Posiblemente no haya libp2p en C++. Menos soporte de Wasm.

2. Comprender la implementación en torno a WASM

  • ¿Podemos reutilizar una implementación WASM existente?

    • Puede reutilizar un intérprete existente en el idioma de la implementación.
    • Puede ser posible usar la implementación de Rust con un C++ PRE, ya que hay enlaces, pero sería mejor tener un intérprete de C++. Si la implementación de C ++ no es excelente, entonces haga solicitudes de extracción o bifurque y mejore.
  • ¿Debemos implementar también la ejecución nativa, o solo el intérprete WASM?

    • No es necesario para el cumplimiento de especificaciones.
    • Puede hacer un paso adicional.
    • Habrá piezas de la lógica Wasm que se ejecutarán con frecuencia. Es importante tener la capacidad de ejecutar la lógica como código nativo.

3. Comprender las “reglas de compromiso”

  • ¿Existen especificaciones formales o pruebas de aceptación, o podrían desarrollarse como una primera fase del proyecto?

    • Los necesitamos, pero no los tenemos.
    • Estaría dispuesto a considerar las pruebas como un paquete de trabajo separado.
  • ¿Hay algún plazo formal?

    • Sin fecha límite.
    • Idealmente, una implementación para fines del primer trimestre de 2019. Permite que la implementación comience a funcionar con Polkadot.
  • ¿En qué forma debemos solicitar una subvención ya quién debe dirigirse la solicitud?

    • Formulario de solicitud (como en la publicación original).
    • Lo mejor es obtener una propuesta aproximada antes. Incluso si no está muy bien desarrollado.
  • ¿Quién dará el OK/decidirá al final de la solicitud de subvención?

    • Fundación Web3. Peter será el líder, pero otros estarán involucrados (por ejemplo, personas relevantes de Parity).
    • Es posible que solicitemos información adicional para aclarar algunas cosas.

Tenemos interés en apoyar este esfuerzo haciendo un puerto mínimo de la implementación del códec Parity y cualquier otro módulo de óxido con la idea de admitir la escritura de un tiempo de ejecución en Go. Así que no es una implementación alternativa completa.

Por supuesto, esta tarea será asumida por el equipo seleccionado para realizar la implementación completa de Go. Entonces, estaba buscando para ver si hay posibilidad de colaboración o si no ha comenzado ningún trabajo, ¿quizás para solicitar una subvención para un alcance de trabajo más limitado?

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Web3Foundation picture Web3Foundation  ·  82Comentarios

dfishb picture dfishb  ·  6Comentarios

EdwardAThomson picture EdwardAThomson  ·  17Comentarios

EdwardAThomson picture EdwardAThomson  ·  7Comentarios

EdwardAThomson picture EdwardAThomson  ·  23Comentarios