General-grants-program: Polkadot Runtime Environment: Subsídio de Implementação Alternativa

Criado em 18 jul. 2018  ·  16Comentários  ·  Fonte: w3f/General-Grants-Program

A Web3 Foundation está procurando atrair equipes para o desenvolvimento de uma implementação alternativa do Polkadot Runtime Environment (PRE), que é um componente central do Polkadot.

O primeiro passo para escrever uma implementação completa do Polkadot é começar escrevendo uma implementação do PRE. A ideia por trás do PRE é que ele pode ser usado para criar blockchains independentes, além de permitir conectividade com a rede Polkadot.

A Web3 Foundation contratou a Parity Technologies para escrever a primeira implementação do Polkadot. A sua implementação do PRE chama-se 'Substrato'. Este produto é atualmente um PRE, mas terá funcionalidades adicionais no futuro. Para esta outorga estamos preocupados apenas com o PRE. O código Substrate atual está no repositório Polkadot GitHub e é implementado em Rust .

Para mais informações, consulte o documento a seguir para obter mais detalhes sobre como se inscrever:

Polkadot Runtime Environment: Subsídio de Implementação Alternativa

(Para sua informação, as seguintes linguagens são preferidas: Go (acima de todas as outras), C++ e Java.)

Core Tech Sought

Comentários muito úteis

Olá, nossa equipe esteve em Berlim durante a semana do blockchain e teve um tempo incrível conhecendo pessoas da equipe Parity. Mostramos interesse em escrever uma implementação do PRE em Go. Estarei preenchendo o formulário nos próximos dias. Obrigado!

Todos 16 comentários

Existe uma linguagem preferencial para a implementação?

Uma implementação alternativa em Rust ou Go seria muito útil desde o início, já que grande parte da pilha de blockchain atual é escrita em um ou outro.

No futuro, seria interessante obter uma implementação em JavaScript (se alguma vez suportar compilação para wasm) ou Java/C#.

Devo liberar mais informações amanhã (um pouco atrás do prazo esperado!).

A implementação de referência está em Rust (ou seja, Parity Tech), além da implementação JS de Jaco (um cliente Substrate completo, mas sem autoria de bloco).

As implementações preferidas são: Java, Go, C++.

Então, com alguma sorte, posso liberar os detalhes completos amanhã! :-)

@EdwardAThomson Existem prazos para os pedidos de subsídios?

Estou procurando ajudar uma equipe nessa empreitada, principalmente usando Go. Se houver uma equipe existente que esteja procurando ajuda, entre em contato comigo. gfreⅾerіco а іģսаzս ḋοt ѕοⅼսtіоո ou no Twitter: ģсѕfreḋ.

@gcsfred2 Os aplicativos ficarão abertos por um tempo. No momento, há a esperança de ter mais algumas implementações, então o processo de inscrição permanecerá aberto pelo menos até que tenhamos algumas equipes interessadas trabalhando nessa questão.

Olá, nossa equipe esteve em Berlim durante a semana do blockchain e teve um tempo incrível conhecendo pessoas da equipe Parity. Mostramos interesse em escrever uma implementação do PRE em Go. Estarei preenchendo o formulário nos próximos dias. Obrigado!

Ei, equipe ChainSafe, é ótimo ouvir isso! Vejo que você tem um endereço de e-mail em seu perfil. Vou deixar um e-mail para dizer olá. Go é um dos nossos idiomas preferidos, portanto, seu aplicativo é interessante. Estamos começando a ter um pouco de interesse agora em escrever implementações alternativas.

Ansioso para estar envolvido no desenvolvimento central do Polkadot. Formulário enviado! :)

Adicionando uma lista de vídeos e blogs relevantes.

Vídeos :

Blogues etc :

Canal de bate-papo técnico :

Recomendamos entrar no canal Técnico do substrato e começar a fazer perguntas. Alguns desenvolvedores estão à disposição e respondendo a perguntas, além de alguns membros da comunidade que também estão se tornando especialistas!

Obrigado por todo o interesse até agora. Recebemos vários formulários de inscrição, mas o processo de inscrição ainda está aberto, caso alguma equipe esteja se perguntando e esteja pensando em enviar uma proposta. Esperamos selecionar 2 ou 3 equipes para desenvolver implementações alternativas, mas ainda não selecionamos ninguém!

Mais uma atualização sobre este tópico. Muitos de vocês têm perguntado sobre prazos e a quantidade de esforço envolvido.

Eu tive uma conversa rápida com Jaco, um desenvolvedor em Parity. Ele é quem criou a implementação em JavaScript. Espero que isso lhe dê uma idéia melhor. Ele trabalhou praticamente sozinho também!

Por quanto tempo você espera que um desenvolvedor/equipe de desenvolvedores crie uma implementação do Substrate?

"Difícil dizer - o problema é que minha implementação encontrou muitos bugs no código Rust libp2p, então eu estava esperando (o que parecia uma eternidade), por correções. Muito cedo.

Então, em primeiro lugar, qual linguagem - se não JS, Go ou Rust, eles precisam escrever sua própria implementação de libp2p. (Talvez haja uma maneira de usar as versões Go/Rust como bibliotecas)"

"Então as partes complicadas são:

  • implementação do codec Parity (mais de 2 semanas para fazer corretamente) - necessário para qualquer coisa relacionada à rede ou RPC
  • implementação de um Trie DB - eles podem aprender com o que é feito nos clientes JS, Rust, Ethereum, porém o Substrate tem sua própria versão. (Mais uma vez, pode ser possível usar a versão Rust como lib)
  • Ambiente WASM, essas coisas não estão documentadas em nenhum lugar, exceto no código - levei cerca de 1 mês aqui, mas mais uma vez, as implementações mudaram o tempo todo (muito cedo)
    Depois, há os bits e bobs - blockchain DB (trie de estado acima e acima), chamadas RPC, cliente leve em potencial."

No mínimo, como ele vê:

  • Tentar
  • libp2p
  • Ambiente WASM

"Se a implementação estiver em Go, o Trie pode realmente pegar a versão Ethereum e "apenas" soltar o blake2 e o codec de paridade."

Para esta concessão, estamos procurando que a parte do consenso seja feita também.

Olá, acabei de preencher o formulário para implementação em C++.

Olá, acabei de preencher o formulário para implementação em C++.

Recebido! Obrigado! @Yuvasee

O processo de candidatura ainda está aberto. Aceitaremos mais algumas aplicações antes de tomar qualquer decisão.

Você sabia da nossa conferência W3S? Agora há preço reduzido e ingressos gratuitos disponíveis:

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

Olá a todos, tivemos algumas perguntas sobre o processo de desenvolvimento e achamos que seria bom compartilhar as respostas com todos.

1. Entendendo a motivação para uma implementação alternativa

  • Até que ponto a presente implementação é uma referência?

    • Há uma especificação em um estado de rascunho. Espero compartilhá-lo em breve.
    • A implementação atual é como uma especificação de referência, mas na verdade não é.
    • A RFP começou cedo, para que pudéssemos começar a conversar com as equipes.
    • Sugerimos que eles recebessem uma proposta com antecedência.
  • Procura-se uma implementação independente? Nesse caso, tudo bem se a nova implementação for baseada na implementação Rust do Substrate?

    • O mais independente possível. Feito de forma idiomática que se adeque a esse idioma.
    • Não é uma tradução direta.
    • Capacite uma comunidade adicional de desenvolvedores. Não se prenda a um conjunto específico de desenvolvedores.
    • Também pode ajudar a identificar discrepâncias contínuas entre implementações.
    • Por se tratar de uma rede descentralizada, precisamos de implementações alternativas. Não quero que uma equipe controle o desenvolvimento da rede.
  • Melhor desempenho é procurado? Em caso afirmativo, quais são os requisitos/sintomas que queremos melhorar/curar?

    • Na verdade. A ferrugem é rápida o suficiente. Queremos muito alcançar novas comunidades de desenvolvedores e melhorar a descentralização (resiliência e governança da rede).
  • Melhor portabilidade para várias plataformas?

    • Espere que funcione no Linux e no Mac. (plataformas do tipo Unix)
    • Seria ótimo no Windows.
  • Existe uma razão por trás da preferência por Go?

    • Deseja incluir a comunidade Go existente.
    • Já existe um intérprete Wasm em Go. Então pode ser mais fácil: https://github.com/perlin-network/life
    • Provavelmente financiaremos pelo menos 2 implementações. Por exemplo, C++ e Go.
    • Há mais para escrever em C++. Provavelmente código menos reutilizável. Possivelmente não há libp2p em C++. Menos suporte Wasm.

2. Entendendo a implementação em torno do WASM

  • Podemos reutilizar uma implementação WASM existente?

    • Pode reutilizar um intérprete existente no idioma da implementação.
    • Pode ser possível usar a implementação do Rust com um C++ PRE, pois existem ligações, mas seria melhor ter um interpretador C++. Se a implementação do C++ não for ótima, faça pull requests ou fork e melhore.
  • Somos obrigados a implementar também a execução nativa ou apenas o interpretador WASM?

    • Não é necessário para conformidade com as especificações.
    • Pode fazer um passo adicional.
    • Haverá pedaços de lógica Wasm executados com frequência. Ter a capacidade de executar a lógica como código nativo é importante.

3. Entendendo as “regras de engajamento”

  • Existem especificações formais ou testes de aceitação, ou podem ser desenvolvidos como uma primeira fase do projeto?

    • Precisamos deles, mas não os temos.
    • Estaria disposto a considerar os testes como um pacote de trabalho separado.
  • Existe algum prazo formal?

    • Sem prazo.
    • Idealmente, uma implementação até o final do primeiro trimestre de 2019. Permite que a implementação comece a funcionar com o Polkadot.
  • De que forma devemos solicitar uma subvenção e a quem deve ser dirigido o pedido?

    • Formulário de inscrição (como no post original).
    • Melhor obter uma proposta aproximada mais cedo. Mesmo que não seja muito bem elaborado.
  • Quem dará o OK / decidirá no final do pedido de subvenção?

    • Fundação Web3. Peter será o líder, mas outros estarão envolvidos (por exemplo, pessoas relevantes da Parity).
    • Podemos solicitar informações adicionais para esclarecer algumas coisas.

Temos interesse em apoiar este esforço fazendo um port mínimo da implementação do codec Parity, e quaisquer outros módulos de ferrugem com a ideia de suportar a escrita de um runtime em Go. Portanto, não é uma implementação alternativa completa.

Essa tarefa, é claro, será assumida pela equipe selecionada para fazer a implementação completa do Go. Então eu estava olhando para ver se há possibilidade de colaboração ou se nenhum trabalho começou, talvez para solicitar uma bolsa para um escopo de trabalho mais restrito?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

ghuun picture ghuun  ·  7Comentários

dfishb picture dfishb  ·  6Comentários

EdwardAThomson picture EdwardAThomson  ·  9Comentários

EdwardAThomson picture EdwardAThomson  ·  6Comentários

EdwardAThomson picture EdwardAThomson  ·  14Comentários