Tinjauan Singkat Alat Pengujian dan Pembandingan Blockchain

Tinjauan Singkat Alat Pengujian dan Pembandingan Blockchain

Saat ini, solusi untuk pengujian dan pembandingan blockchain disesuaikan dengan blockchain tertentu atau cabang-cabangnya. Namun ada juga beberapa solusi umum yang fungsinya berbeda: beberapa di antaranya adalah proyek sumber terbuka, yang lain disediakan sebagai SaaS, namun sebagian besar merupakan solusi internal yang dibuat oleh tim pengembangan blockchain. Namun, semuanya memecahkan masalah serupa. Pada artikel ini, saya mencoba mengulas secara singkat beberapa produk yang dirancang khusus untuk menguji blockchain.

Pengoperasian jaringan blockchain menyerupai pengoperasian database terdistribusi, sehingga alat dan metode serupa dapat digunakan untuk pengujian. Untuk lebih memahami bagaimana database terdistribusi diuji, lihatlah pilihan sumber daya dan artikel yang bagus karenanya. Misalnya, latensi diurutkan menjadi beberapa bagian dalam hal ini Artikel, dan untuk memahami cara mereka mencari bug dalam algoritma replikasi, saya sarankan membaca ini artikel.

Saya akan menjelaskan beberapa solusi populer untuk menguji dan membandingkan blockchain. Saya akan senang jika di komentar Anda menjelaskan produk perangkat lunak lain yang berguna untuk memecahkan masalah yang sama.

Tinjauan Singkat Alat Pengujian dan Pembandingan Blockchain

Saya akan mulai dengan alat yang, meskipun tidak dibuat khusus untuk blockchain, memungkinkan Anda menguji operasinya secara efektif, asalkan sudah ada jaringan yang berjalan di mana Anda dapat bereksperimen. Faktor terpenting dalam keandalan sistem terdistribusi adalah kemampuan untuk terus bekerja jika terjadi masalah pada server dan jaringan. Hal ini dapat disebabkan oleh kelambatan jaringan, kepenuhan disk, tidak tersedianya layanan eksternal (DNS), kegagalan perangkat keras, dan ratusan alasan lainnya. Untuk memeriksa stabilitas sistem apa pun yang beroperasi bersama-sama pada sejumlah besar mesin sistem, Anda dapat menggunakan Gremlin. Ini menggunakan pendekatan yang sangat efektif yang disebut Chaos Engineering.

Dengan menggunakan agen jaringannya sendiri, Gremlin menciptakan berbagai jenis masalah pada jumlah mesin yang dibutuhkan: kelambatan jaringan, kelebihan sumber daya (CPU, disk, memori, jaringan), menonaktifkan protokol individual, dll. Untuk blockchain, Gremlin dapat digunakan di server testnet, meniru masalah kehidupan nyata dan mengamati perilaku jaringan. Dengan itu, pengembang dan administrator dapat mengamati dalam lingkungan terkendali apa yang akan terjadi jika sistem crash atau ketika kode diperbarui. Dalam hal ini, jaringan harus dikonfigurasi dan disebarkan terlebih dahulu, serta dikonfigurasi untuk mengumpulkan metrik yang diperlukan.

Gremlin adalah alat yang mudah digunakan bagi para arsitek, pengembang, dan spesialis keamanan serta solusi universal untuk menguji sistem terdistribusi yang sudah jadi dan berjalan, termasuk blockchain.

Tinjauan Singkat Alat Pengujian dan Pembandingan Blockchain

Hyperledger Caliper adalah solusi yang jauh lebih terspesialisasi Kaliper Hyperledger. Saat ini, Caliper mendukung beberapa blockchain sekaligus - perwakilan dari keluarga Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu), serta Ethereum dan jaringan FISCO BCOS.

Dengan menggunakan Caliper, Anda dapat mengatur topologi jaringan blockchain dan kontrak pengujian, serta menjelaskan konfigurasi node. Node Blockchain dimunculkan dalam wadah buruh pelabuhan di satu mesin. Selanjutnya, Anda dapat memilih yang diperlukan konfigurasi pengujian dan menerima file dengan laporan hasil tes setelah peluncuran. Daftar lengkap metrik Caliper dan pendekatan benchmarking dapat ditemukan di sini Metrik Kinerja Hyperledger Blockchain, ini adalah artikel bagus jika Anda tertarik dengan topik pembandingan blockchain. Anda juga dapat menyiapkan pengumpulan metrik di Prometheus/Grafana terpisah.

Hyperledger Caliper adalah alat yang ditujukan untuk pengembang dan arsitek sistem, karena menyediakan pengulangan pengujian dan otomatisasi pengujian dan pembandingan. Ini digunakan dalam pengembangan inti blockchain: algoritma konsensus, mesin virtual untuk memproses kontrak pintar, lapisan peer-to-peer dan mekanisme sistem lainnya.

Tinjauan Singkat Alat Pengujian dan Pembandingan Blockchain

Tangki CampuranBytes adalah alat yang muncul dalam proses pengembangan algoritma konsensus dan finalitas untuk jaringan berbasis EOS dan pengujian parachain berdasarkan Parity Substrate (Polkadot). Dalam hal fungsionalitas, ini dekat dengan Hyperledger Caliper, karena memungkinkan Anda mengumpulkan metrik penting dari node sistem terdistribusi dan mesin klien tempat skrip pengujian dijalankan.

MixBytes Tank menggunakan beberapa layanan cloud (Digital Ocean, Google Cloud Engine, dll.), yang di dalamnya dapat meluncurkan banyak node, melakukan prosedur konfigurasi awal, menjalankan beberapa benchmark secara paralel pada mesin yang berbeda, mengumpulkan metrik yang diperlukan dan secara otomatis mematikan sistem. jaringan.

MixBytes Tank memungkinkan Anda menghemat uang di server cloud dengan secara otomatis meminimalkan sumber daya yang tidak diperlukan setelah pengujian. Fitur khas lainnya adalah penggunaan paket Molecule, yang memungkinkan pengembang menguji penerapan blockchain yang diinginkan secara lokal.

MixBytes Tank memungkinkan Anda mendeteksi secara dini kemacetan dan kesalahan dalam algoritme yang muncul di jaringan nyata dengan sejumlah besar server dan klien yang tersebar secara geografis. Tangki akan membantu Anda memahami apa yang akan terjadi pada node jika klien mengirim transaksi dengan tps tertentu dalam kondisi yang sangat berulang dan dengan jumlah node sebenarnya yang tersebar di berbagai benua, jika diperlukan.

Tinjauan Singkat Alat Pengujian dan Pembandingan Blockchain

Whiteblock Genesis adalah platform pengujian untuk blockchain berbasis Ethereum. Alat ini memiliki fungsionalitas yang cukup luas: memungkinkan Anda meluncurkan jaringan, membuat jumlah akun yang diperlukan di dalamnya, meningkatkan jumlah klien yang diperlukan, mengkonfigurasi topologi jaringan, menentukan parameter bandwidth dan packetloss, dan menjalankan pengujian.

Whiteblock Genesis menyediakan fasilitas pengujiannya sendiri. Pengembang hanya perlu menentukan parameter pengujian, menjalankannya menggunakan API yang sudah jadi, dan mendapatkan hasil menggunakan dasbor yang nyaman.

Whiteblock Genesis memungkinkan Anda mengonfigurasi pengujian yang cukup mendetail yang akan dilakukan platform secara otomatis untuk setiap perubahan kode yang signifikan. Hal ini akan memungkinkan Anda mendeteksi kesalahan pada tahap awal dan segera menilai dampak perubahan pada parameter jaringan penting, seperti kecepatan transaksi dan sumber daya yang dikonsumsi oleh node.

Gila

Produk muda lain yang menarik untuk menguji sistem terdistribusi adalah gila. Itu ditulis dengan Python dan memungkinkan Anda membuat topologi jaringan yang diperlukan dan jumlah server dan klien yang diperlukan menggunakan skrip konfigurasi sederhana (contoh). Setelah ini, layanan menyebarkan jaringan di beberapa kontainer Docker dan membuka antarmuka web tempat Anda dapat mengamati pesan dari server dan klien jaringan. Madt dapat digunakan untuk menguji blockchain - repositori proyek memiliki pengujian jaringan p2p berdasarkan protokol Kademlia, di mana penundaan pengiriman data ke node ditingkatkan secara bertahap dan status data ini diperiksa.

Madt baru muncul baru-baru ini, namun mengingat arsitekturnya yang sangat fleksibel, ia dapat berkembang menjadi produk fungsional.

Solusi lain

Hampir semua pengujian bagian sistem blockchain memerlukan menjalankan skrip awal, menyiapkan akun dan ketentuan untuk pengujian (ini dapat berupa pengujian kesalahan konsensus yang dapat menghasilkan banyak cabang rantai, pengujian skenario hard fork, mengubah parameter sistem, dll.). Semua manipulasi ini dilakukan secara berbeda di berbagai blockchain, sehingga lebih mudah bagi tim untuk secara bertahap mengadaptasi pengujian produk dan benchmarking ke CI/CD internal dan menggunakan pengembangan mereka sendiri, yang secara bertahap menjadi lebih kompleks seiring dengan berkembangnya fungsi blockchain.

Namun demikian, penggunaan solusi siap pakai dapat sangat mengurangi waktu pengujian untuk tim ini, jadi menurut saya perangkat lunak ini akan dikembangkan secara aktif di tahun-tahun mendatang.

Kesimpulan

Untuk menyimpulkan ulasan singkat ini, saya akan mencantumkan beberapa karakteristik penting dari alat pengujian blockchain:

  • Kemampuan untuk menyebarkan jaringan blockchain secara otomatis dalam kondisi yang berulang. Faktor ini penting ketika mengembangkan bagian sistem dari blockchain: algoritma konsensus, finalitas, kontrak pintar sistem.
  • Biaya kepemilikan sistem, sumber daya yang dikonsumsi, dan kenyamanan penggunaan terus-menerus. Faktor ini memberi proyek pengujian berkualitas tinggi dengan sedikit uang.
  • Fleksibilitas dan kesederhanaan konfigurasi pengujian. Faktor ini meningkatkan kemungkinan mengidentifikasi masalah sistem - kecil kemungkinannya untuk melewatkan sesuatu yang penting.
  • Kustomisasi untuk jenis blockchain tertentu. Mengembangkan solusi berdasarkan solusi yang sudah ada dapat meningkatkan kualitas dan mengurangi biaya waktu.
  • Kenyamanan dan aksesibilitas hasil yang diperoleh dan jenisnya (laporan, metrik, grafik, log, dll.). Hal ini mutlak diperlukan jika Anda ingin melacak sejarah perkembangan suatu produk, atau jika Anda memerlukan analisis mendalam tentang perilaku jaringan blockchain.

Semoga berhasil dengan pengujian Anda dan semoga blockchain Anda cepat dan toleran terhadap kesalahan!

Sumber: www.habr.com

Tambah komentar