Setelah menulis naskah Celestia dan mengetik prasasti, dia mengeluh: Keterampilan dasar Cosmos tidak solid

Penulis: Wuyue, Geek Web3

Pada tanggal 17 Desember, saya mengetahui bahwa prasasti CIAS akan diterbitkan di Celestia, dan saya berencana untuk bekerja secara sementara untuk menulis naskah untuk menyikat prasasti. Sekarang, saya punya banyak keluhan tentang Celestia dan ekosistem Cosmos-nya, serta acara CIAS itu sendiri.

Bahkan, tidak sulit untuk menulis skrip untuk menyikat prasasti, yang terutama dibagi menjadi tiga modul: konstruksi dompet, menghubungkan node, dan transaksi banjir. **Dua langkah pertama hanya perlu ditemukan dalam dokumentasi pengembang rantai publik target untuk menemukan implementasi cepat.

Saya pertama kali pergi ke situs web resmi Celestia dan Github untuk melihatnya, dan tidak ada kasus penggunaan bagi pengembang untuk membangun skenario pengguna, terutama operasi node dan dokumentasi terkait lainnya. Tentu saja, ini bisa dimengerti, karena Celestia bukan blockchain ToC. Celestia hanya menyebutkan di tempat yang tidak jelas bahwa itu didasarkan pada Cosmos dan bahwa dimungkinkan untuk berinteraksi dengan mainnet-nya dengan CosmJS.

Jadi saya langsung pergi ke CosmJS. Tapi bagaimana dengan Cosmos, itu bahkan tidak bagus dalam dokumentasi. **Saya langsung pergi ke Github, dan menurut akal sehat, umumnya JS semacam ini akan memiliki kasus penggunaan di Github. Tetapi tutorialnya disembunyikan di halaman sekunder.,Dan setelah mengkliknya.,Ikuti konfigurasinya untuk lulus.,Akhirnya, kesalahan dilaporkan.。

**Kesalahan ini bukan masalah lingkungan.,Itu karena tutorialnya belum diperbarui dengan versi tutorial.**Seringkali nama kelas ini diubah dan itu tidak dapat disetel, dll.。 Saya beralih ke versi perpustakaan npm pada versi tutorial lama, dan masih ada beberapa kasus penggunaan yang tidak berfungsi, jadi saya menyerah setelah melempar sebentar.

Jadi saya mencarinya di Google lagi, dan ternyata dokumentasi yang benar ada di situs web resmi, bukan Github, yang agak berlawanan dengan intuisi. **Sekali lagi, bukankah baik untuk memperbarui tutorial readme Github ke situs web resmi?

Setelah mendapatkan tutorial yang benar, saya dengan cepat menyelesaikan dua langkah membangun dompet dan menghubungkan node, dan mulai membangun modul transaksi banjir. Sederhananya, modul ini adalah for loop yang memproses tanda tangan transaksi + permintaan jaringan. Tetapi berikut adalah beberapa masalah:

Semua metode transaksi di perpustakaan CosmJS hanya mengekspos parameter transaksi itu sendiri, tetapi urutannya tidak terekspos (urutannya analog dengan nonce di bengkel ETH, yang merupakan penghitung transaksi yang diatur untuk mencegah serangan replay, dan setelah setiap transaksi dikeluarkan, nonce dan urutannya secara otomatis +1).

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

Urutan sebenarnya terhubung ke jaringan untuk mendapatkannya saat menandatangani (chainId, dll.) saat menandatangani, dan harus melalui sendTokens() -> signAndBroadCast -> sign(). **Pergi ke jaringan untuk meminta dan menunggu pengembalian setiap kali transaksi dikirimkan akan mempengaruhi kecepatan sikat, dan juga akan meningkatkan permintaan jaringan yang tidak berguna, yang tidak baik untuk banjir, dan tentu saja tidak kondusif untuk mempercepat/membatalkan transaksi. **

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

Mari kita tinjau ETH metode pengiriman transaksi Web3JS, di mana Anda dapat menentukan nonce sendiri. Tapi tidak di CosmJS. ** Saya masih berpikir bahwa desain ETH Fang jauh lebih masuk akal, Anda dapat langsung menentukan nonce untuk membatalkan / mempercepat transaksi **, jika transaksi macet, Anda dapat menyesuaikan nonce dengan transaksi yang sama untuk menggantikan transaksi yang macet, tentu saja, itu juga dapat digunakan untuk serangan banjir kami.

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

Karena keterbatasan waktu, ada beberapa fungsi lain di perpustakaan yang perlu dimodifikasi, ** Saya memutuskan untuk tidak menggunakan Proxy untuk menghapus penulisan ulang, tetapi untuk memodifikasinya langsung di perpustakaan CosmJS. **

Ide skrip untuk memicu transaksi banjir adalah untuk terus memulai transaksi melalui loop for dan menghasilkan tanda tangan, mengirimkannya ke node RPC, dan setelah memulai transaksi, urutan/nonce akan menjadi +1, dan setelah memulai 20 transaksi, siklus akan didaur ulang.

Urutan hanya ditarik secara lokal sebelum dimulainya setiap siklus banjir, dan tidak perlu meminta ulang urutan dari node setelah setiap transaksi, seperti default di perpustakaan CosmJS. chainId, di sisi lain, ditulis sebagai nilai tetap dan tidak harus berulang kali diminta dari node. (Catatan editor: Jumlah loop di sini diatur relatif rendah, dan jelas bahwa penulisnya tidak begitu kejam.) Seseorang, ketika mengetik prasasti Conflux, mengubah jumlah siklus per siklus menjadi 1000, mengirimkan sekitar 200 transaksi berbeda per menit)

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

Akhirnya, saya mendapatkan skrip Celestia yang belum sempurna, yang saya uji sebentar setelah CIAS dicabut pada malam 17 Desember, dan mengirimkan ratusan transaksi. Setelah CIAS dilanjutkan pada dini hari tanggal 19 Desember, saya mencapai beberapa CIAS (sekitar 1.800). Tetapi masih ada hal-hal lain yang perlu dikeluhkan: **

  • Pada tanggal 17 Desember, node RPC Celestia memiliki masalah data yang tidak sinkron yang serius, tinggi blok node RPC yang berbeda sangat berbeda, dan ketika Anda meminta node ke urutan akun Anda, hasil pengembaliannya pada dasarnya tidak konsisten, yang sangat menyakitkan. Penjelajah blok Celestia juga tidak tersedia, dan pada dasarnya buta. Dapat dikatakan bahwa saat ini, meskipun jaringan Celestia tidak turun dan masih dapat menghasilkan blok, diperkirakan hampir mencapai batasnya.
  • Pada hari yang sama, pejabat prasasti CIAS melihat bahwa Celestia hampir tidak tahan, dan untuk sementara mengumumkan bahwa semua transaksi pencetakan prasasti pada rantai setelah ketinggian blok 48460 tidak valid, yang merupakan tren “mencabut kabel jaringan bursa”. Dan situs web CIAS sendiri runtuh.

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

  • Tidak ada komentar tentang persepsi bahwa protokol konsensus asli rantai Cosmos melakukan pekerjaan konsensus yang buruk pada blok, tetapi jelas bahwa tujuan CIAS mencabut kabel jaringan tadi malam sangat menarik.
  • Pada tanggal 17 Desember, sulit untuk memilih node dengan data yang disinkronkan tercepat, karena hampir semua node RPC penuh sesak dan sering tidak responsif. Saya kemudian mencoba menulis beberapa kode yang secara otomatis mengganti node.
  • Format prasasti dalam CIAS sendiri tidak cukup konsisten dengan prasasti lain, misalnya, dalam json brc-20, semua angka adalah string, sedangkan dalam CIA-20 itu adalah angka.

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

  • Biaya prasasti CIAS melonjak menjadi 1,5 ~ 2U per prasasti ketika itu adalah yang tertinggi tadi malam, dan beberapa orang bahkan membayar 80U untuk sebuah prasasti. Biaya setinggi itu mencerminkan TPS yang terbatas, dan pendiri Celestia mengklaim bahwa ia dapat memproses 10k transaksi per detik, yang jelas tidak masuk akal.

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

Secara keseluruhan, pengalaman malam 17 Desember adalah satu kalimat: Celestia jelas tidak siap untuk menghadapi lalu lintas skala besar, dan itu sangat asal-asalan dalam hal konfigurasi node RPC (sulit membayangkan bahwa lusinan node RPC dapat diledakkan dalam 1 jam). **

Pada malam tanggal 19, situasinya jauh lebih baik, kecuali biaya gas yang melonjak, tidak ada masalah besar dalam aspek lain, hanya dapat dikatakan bahwa Celestia, sebagai jaringan DA yang didedikasikan untuk mendistribusikan data ke node cahaya, untuk sementara bertahan dalam pengujian, tetapi saya tidak tahu apakah akan ada jebakan lain di masa depan.

Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • Komentar
  • Posting ulang
  • Bagikan
Komentar
0/400
Tidak ada komentar
  • Sematkan

Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)