Après avoir écrit l’écriture Celestia et tapé l’inscription, il s’est plaint : Les compétences de base de Cosmos ne sont pas solides

Auteur : Wuyue, Geek Web3

Le 17 décembre, j’ai appris que l’inscription CIAS allait être publiée sur Celestia, et j’avais prévu de travailler sur une base temporaire à l’écriture d’un script pour brosser l’inscription. Maintenant, j’ai beaucoup à me plaindre de Celestia et de son écosystème Cosmos, ainsi que de l’événement CIAS lui-même.

En fait, il n’est pas difficile d’écrire un script pour brosser les inscriptions, qui est principalement divisé en trois modules : la construction du portefeuille, la connexion des nœuds et l’inondation des transactions. **Les deux premières étapes n’ont besoin que d’être trouvées dans la documentation du développeur de la chaîne publique cible pour trouver une implémentation rapide.

Je suis d’abord allé sur le site officiel de Celestia et Github pour jeter un coup d’œil, et il n’y a pas de cas d’utilisation pour les développeurs pour créer des scénarios utilisateur, principalement le fonctionnement des nœuds et d’autres documentations connexes. Bien sûr, c’est compréhensible, car Celestia n’est pas une blockchain ToC. Celestia mentionne juste dans un endroit obscur qu’il est basé sur Cosmos et qu’il est possible d’interagir avec son mainnet avec CosmJS.

Je suis donc allé directement chez CosmJS. Mais qu’en est-il de Cosmos, il n’est même pas bon en documentation. **Je suis allé directement sur Github, et selon le bon sens, généralement ce genre de JS aura un cas d’utilisation sur Github. Mais son tutoriel est caché dans une page secondaire.,Et après avoir cliqué dessus.,Suivez sa configuration pour faire une passe.,Enfin, une erreur est signalée.。

**Cette erreur n’est pas un problème environnemental.,C’est parce que son tutoriel n’a pas été mis à jour avec la version du didacticiel.**Souvent, le nom de cette classe est changé et cela ne peut pas être réglé, etc.。 Je suis passé à la version de la bibliothèque npm sur l’ancienne version du tutoriel, et il y a encore quelques cas d’utilisation qui ne fonctionnent pas, alors j’ai abandonné après avoir lancé pendant un certain temps.

J’ai donc cherché à nouveau sur Google, et il s’est avéré que la documentation correcte se trouvait sur le site officiel au lieu de Github, ce qui était un peu contre-intuitif. **Encore une fois, n’est-il pas bon de mettre à jour le tutoriel readme de Github sur le site officiel ?

Après avoir obtenu le bon tutoriel, j’ai rapidement terminé les deux étapes de la construction du portefeuille et de la connexion des nœuds, et j’ai commencé à construire le module de transaction flood. Pour faire simple, ce module est une boucle for qui traite les signatures de transaction + les requêtes réseau. Mais voici quelques problèmes :

Toutes les méthodes de transaction de la bibliothèque CosmJS n’exposent que les paramètres de la transaction elle-même, mais sa séquence n’est pas exposée (la séquence est analogue au nonce dans l’atelier ETH, qui est un compteur de transactions défini pour empêcher les attaques par rejeu, et après l’émission de chaque transaction, le nonce et la séquence sont automatiquement +1).

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

Sequence est en fait qu’il se connecte au réseau pour l’obtenir lors de la signature (chainId, etc.) lors de la signature, et qu’il doit passer par sendTokens() -> signAndBroadCast -> sign(). **Aller sur le réseau pour demander et attendre le retour à chaque fois qu’une transaction est soumise affectera la vitesse du pinceau, et augmentera également les requêtes réseau inutiles, ce qui n’est pas bon pour l’inondation, et bien sûr pas propice à l’accélération/annulation d’une transaction. **

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

Passons en revue ETH méthode d’envoi de transactions Web3JS, où vous pouvez spécifier vous-même le nonce. Mais pas dans CosmJS. Je pense toujours que le design du ETH Fang est beaucoup plus raisonnable, vous pouvez directement spécifier le nonce pour annuler/accélérer la transaction, si une transaction est bloquée, vous pouvez personnaliser un nonce avec la même transaction pour remplacer la transaction bloquée, bien sûr, il peut également être utilisé pour notre attaque flood.

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

En raison de contraintes de temps, il y avait plusieurs autres fonctions dans la bibliothèque qui devaient être modifiées, ** J’ai décidé de ne pas utiliser Proxy pour décrocher la réécriture, mais de la modifier directement dans la bibliothèque CosmJS. **

L’idée du script pour déclencher la transaction flood est d’initier continuellement la transaction via la boucle for et de générer une signature, de l’envoyer au nœud RPC, et après avoir initié une transaction, la séquence/nonce sera +1, et après avoir initié 20 transactions, le cycle sera recyclé.

Les séquences ne sont extraites localement qu’avant le début de chaque cycle d’inondation, et il n’est pas nécessaire de redemander des séquences aux nœuds après chaque transaction, comme c’est le cas par défaut dans la bibliothèque CosmJS. Le chainId, quant à lui, est écrit en tant que valeur fixe et n’a pas besoin d’être demandé à plusieurs reprises au nœud. (Note de l’éditeur : le nombre de boucles ici est relativement faible, et il est clair que l’auteur n’est pas si violent.) Quelqu’un, en tapant l’inscription Conflux, a changé le nombre de cycles par cycle à 1000, envoyant environ 200 transactions différentes par minute)

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

Finalement, j’ai obtenu un script rudimentaire de Celestia, que j’ai brièvement testé après que CIAS se soit débranché dans la nuit du 17 décembre et que j’ai envoyé des centaines de transactions. Après la reprise de la CIAS aux premières heures du 19 décembre, j’ai touché quelques CIAS (environ 1 800). Mais il y a encore d’autres choses à redire :**

  • Le 17 décembre, le nœud RPC de Celestia a eu un sérieux problème de désynchronisation des données, la hauteur de bloc des différents nœuds RPC est très différente, et lorsque vous demandez le nœud à la séquence de votre compte, le résultat du retour est fondamentalement incohérent, ce qui est très pénible. L’explorateur de blocs Celestia n’est pas non plus disponible, et il est fondamentalement aveugle. On peut dire qu’à l’heure actuelle, bien que le réseau Celestia ne soit pas en panne et puisse encore produire des blocs, on estime qu’il est presque à la limite.
  • Le même jour, le responsable de l’inscription du CIAS a vu que Celestia était sur le point d’être incapable de le supporter, et a temporairement annoncé que toutes les transactions de frappe d’inscription sur la chaîne après la hauteur du bloc 48460 étaient invalides, ce qui était une tendance à « débrancher le câble réseau de l’échange ». Et le site web de la CIAS s’est effondré.

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

Il n’y a pas de commentaire sur la perception selon laquelle le protocole de consensus natif de la chaîne Cosmos fait un mauvais travail de consensus sur les blocs, mais il est clair que le but du CIAS qui a retiré le câble réseau la nuit dernière est intrigant.

  • Le 17 décembre, il est difficile de choisir un nœud avec les données synchronisées les plus rapides, car presque tous les nœuds RPC sont surchargés et ne répondent souvent pas. Plus tard, j’ai essayé d’écrire du code qui change automatiquement de nœud.
  • Le format de l’inscription dans CIAS lui-même n’est pas tout à fait cohérent avec d’autres inscriptions, par exemple, dans le json de brc-20, tous les nombres sont des chaînes, alors que dans CIA-20 c’est un nombre.

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

  • Le coût des inscriptions CIAS a grimpé à 1,5 ~ 2U par inscription alors qu’il était le plus élevé la nuit dernière, et certaines personnes ont même payé 80U pour une inscription. Des frais aussi élevés reflètent le TPS limité, et le fondateur de Celestia affirme qu’il peut traiter 10 000 transactions par seconde, ce qui est évidemment absurde.

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

Dans l’ensemble, l’expérience de la nuit du 17 décembre s’est résumée à une phrase : Celestia n’était absolument pas préparée à faire face à un trafic à grande échelle, et c’était très superficiel en termes de configuration des nœuds RPC (il est difficile d’imaginer que des dizaines de nœuds RPC puissent être explosés en 1 heure). **

Dans la nuit du 19, la situation était bien meilleure, à l’exception de la flambée des prix du gaz, il n’y avait pas de gros problème sur d’autres aspects, on peut seulement dire que Celestia, en tant que réseau DA dédié à la distribution de données aux nœuds légers, a temporairement résisté à l’épreuve, mais je ne sais pas s’il y aura d’autres pièges à l’avenir.

Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Reposter
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler

Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)