Depois de escrever a escrita de Celestia e digitar a inscrição, ele reclamou: As habilidades básicas do Cosmos não são sólidas

Autor: Wuyue, Geek Web3

No dia 17 de dezembro, soube que a inscrição CIAS seria publicada na Celestia, e planejei trabalhar temporariamente para escrever um roteiro para pincelar a inscrição. Agora, tenho muito a reclamar da Celestia e do seu ecossistema Cosmos, bem como do próprio evento CIAS.

Na verdade, não é difícil escrever um script para pincelar inscrições, que é dividido principalmente em três módulos: construção de carteira, nós de conexão e transações de inundação. **Os dois primeiros passos só precisam ser encontrados na documentação do desenvolvedor da cadeia pública de destino para encontrar uma implementação rápida.

Eu fui primeiro ao site oficial do Celestia e ao Github para dar uma olhada, e não há casos de uso para desenvolvedores construírem cenários de usuário, principalmente operação de nó e outra documentação relacionada. Claro, isso é compreensível, porque Celestia não é um blockchain ToC. Celestia apenas menciona em um lugar obscuro que é baseado em Cosmos e que é possível interagir com sua mainnet com CosmJS.

Então fui direto para o CosmJS. Mas e o Cosmos, nem sequer é bom em documentação. **Eu fui diretamente para o Github, e de acordo com o senso comum, geralmente este tipo de JS terá um caso de uso no Github. Mas seu tutorial está oculto em uma página secundária.,E depois de clicar nele.,Siga sua configuração para fazer um passe.,Finalmente, um erro é relatado.。

**Este erro não é um problema ambiental.,É porque seu tutorial não foi atualizado com a versão do tutorial.**Muitas vezes o nome desta classe é alterado e isso não pode ser ajustado, etc.。 Eu mudei para a versão da biblioteca npm na versão tutorial antiga, e ainda há alguns casos de uso que não funcionam, então desisti depois de jogar por um tempo.

Então eu pesquisei novamente, e descobri que a documentação correta estava no site oficial em vez do Github, o que era um pouco contraintuitivo. **Novamente, não é bom atualizar o tutorial readme do Github para o site oficial?

Depois de obter o tutorial correto, concluí rapidamente as duas etapas de construção da carteira e conexão dos nós, e comecei a construir o módulo de transação de inundação. Para simplificar, este módulo é um loop for que processa assinaturas de transação + solicitações de rede. Mas aqui estão alguns problemas:

Todos os métodos de transação na biblioteca CosmJS expõem apenas os parâmetros da transação em si, mas sua sequência não é exposta (a sequência é análoga ao nonce no workshop ETH, que é um conjunto de contadores de transações para evitar ataques de repetição e, depois que cada transação é emitida, o nonce e a sequência são automaticamente +1).

写Celestia脚本打铭文后吐槽:Cosmos基本功不扎实

Sequência é na verdade que ele se conecta à rede para obtê-lo ao assinar (chainId, etc.) ao assinar, e tem que passar por sendTokens() -> signAndBroadCast -> sign(). **Ir à rede para solicitar e aguardar o retorno toda vez que uma transação é enviada afetará a velocidade da escova, e também aumentará as solicitações de rede inúteis, o que não é bom para inundações e, claro, não é propício para acelerar/cancelar uma transação. **

写Celestia脚本打铭文后吐槽:Cosmos基本功不扎实

Vamos analisar o método de envio de transações do ETH Web3JS, onde você mesmo pode especificar o nonce. Mas não em CosmJS. Eu ainda acho que o design do ETH Fang é muito mais razoável, você pode especificar diretamente o nonce para cancelar / acelerar a transação, se uma transação estiver presa, você pode personalizar um nonce com a mesma transação para substituir a transação presa, é claro, ele também pode ser usado para o nosso ataque de inundação.

写Celestia脚本打铭文后吐槽:Cosmos基本功不扎实

Devido a restrições de tempo, havia várias outras funções na biblioteca que precisavam ser modificadas, ** Eu decidi não usar Proxy para desconectar a reescrita, mas modificá-la diretamente na biblioteca CosmJS. **

A ideia do script para acionar a transação flood é iniciar continuamente a transação através do loop for e gerar uma assinatura, enviá-la para o nó RPC e, depois de iniciar uma transação, a sequência/nonce será +1, e depois de iniciar 20 transações, o ciclo será reciclado.

As sequências só são extraídas localmente antes do início de cada ciclo de inundação, e não há necessidade de solicitar novamente sequências de nós após cada transação, como é o padrão na biblioteca CosmJS. O chainId, por outro lado, é escrito como um valor fixo e não precisa ser solicitado repetidamente do nó. (Nota do editor: O número de loops aqui é relativamente baixo, e é claro que o autor não é tão violento.) Alguém, ao digitar a inscrição Conflux, alterou o número de ciclos por ciclo para 1000, enviando cerca de 200 transações diferentes por minuto)

写Celestia脚本打铭文后吐槽:Cosmos基本功不扎实

Eventualmente, recebi um roteiro rudimentar da Celestia, que testei brevemente depois que o CIAS desconectou na noite de 17 de dezembro e enviou centenas de transações. Depois que o CIAS foi retomado na madrugada de 19 de dezembro, eu acertei alguns CIAS (cerca de 1.800). Mas ainda há outras coisas para reclamar:**

  • Em 17 de dezembro, o nó RPC da Celestia teve um sério problema de dados fora de sincronia, a altura do bloco de diferentes nós RPC é muito diferente, e quando você solicita o nó para a sequência da sua conta, o resultado de retorno é basicamente inconsistente, o que é muito doloroso. O explorador de blocos Celestia também não está disponível, e é basicamente cego. Pode-se dizer que, neste momento, embora a rede Celestia não esteja fora do ar e ainda possa produzir blocos, estima-se que esteja quase no limite.
  • No mesmo dia, o oficial de inscrição do CIAS viu que Celestia estava prestes a ser incapaz de suportá-lo, e anunciou temporariamente que todas as transações de inscrição cunhando na cadeia após a altura do bloco 48460 eram inválidas, o que era uma tendência de “desconectar o cabo de rede da bolsa”. E o próprio site da CIAS entrou em colapso.

写Celestia脚本打铭文后吐槽:Cosmos基本功不扎实

  • Não há nenhum comentário sobre a perceção de que o protocolo de consenso nativo da cadeia Cosmos faz um mau trabalho de consenso sobre blocos, mas é claro que o propósito da CIAS retirar o cabo de rede na noite passada é intrigante.
  • Em 17 de dezembro, é difícil escolher um nó com os dados sincronizados mais rápidos, porque quase todos os nós RPC estão superlotados e muitas vezes não respondem. Mais tarde, tentei escrever algum código que alternasse automaticamente os nós.
  • O formato da inscrição no CIAS em si não é muito consistente com outras inscrições, por exemplo, no json do brc-20, todos os números são cordas, enquanto no CIA-20 é um número.

写Celestia脚本打铭文后吐槽:Cosmos基本功不扎实

  • O custo das inscrições CIAS subiu para 1,5 ~ 2U por inscrição quando foi o mais alto ontem à noite, e algumas pessoas até pagaram 80U por uma inscrição. Uma taxa tão alta reflete o TPS limitado, e o fundador da Celestia afirma que pode processar 10 mil transações por segundo, o que é obviamente um absurdo.

写Celestia脚本打铭文后吐槽:Cosmos基本功不扎实

No geral, a experiência da noite de 17 de dezembro foi uma frase: Celestia definitivamente não estava preparada para lidar com tráfego em grande escala, e foi muito superficial em termos de configuração de nós RPC (é difícil imaginar que dezenas de nós RPC podem ser explodidos em 1 hora). **

Na noite do dia 19, a situação era muito melhor, exceto pela disparada da taxa de gás, não houve grande problema em outros aspetos, só se pode dizer que a Celestia, como uma rede DA dedicada a distribuir dados para nós leves, resistiu temporariamente ao teste, mas não sei se haverá outras armadilhas no futuro.

Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • Comentar
  • Republicar
  • Partilhar
Comentar
0/400
Nenhum comentário
  • Gate Fun tendência

    Ver mais
  • LM:$3.48KTitulares:1
    0.00%
  • LM:$0.1Titulares:1
    0.00%
  • LM:$3.49KTitulares:1
    0.00%
  • LM:$3.51KTitulares:2
    0.00%
  • LM:$3.51KTitulares:1
    0.00%
  • Fixar

Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)