Apakah itu permainan pengesah atau "bagaimana untuk melancarkan blockchain bukti kepentingan"

Jadi, pasukan anda telah menyelesaikan versi alfa blockchain anda, dan tiba masanya untuk melancarkan testnet dan kemudian mainnet. Anda mempunyai blockchain sebenar, dengan peserta bebas, model ekonomi yang baik, keselamatan, anda telah mereka bentuk tadbir urus dan kini tiba masanya untuk mencuba semua ini dalam tindakan. Dalam dunia kripto-anarki yang ideal, anda meletakkan blok genesis pada rangkaian, kod akhir nod dan pengesah sendiri melancarkan segala-galanya, meningkatkan semua perkhidmatan tambahan, dan semuanya berlaku dengan sendirinya. Tetapi ini adalah dalam dunia fiksyen, tetapi dalam dunia nyata, pasukan mesti menyediakan banyak perisian tambahan dan pelbagai manipulasi untuk membantu pengesah melancarkan rangkaian yang stabil. Inilah yang dimaksudkan dengan artikel ini.

Melancarkan rangkaian berdasarkan konsensus jenis "bukti kepentingan", di mana pengesah ditentukan oleh undian pemegang token sistem, adalah acara yang agak khusus, kerana walaupun melancarkan sistem tradisional yang diuruskan secara berpusat dengan puluhan dan ratusan pelayan bukanlah sesuatu yang mudah. tugas itu sendiri, dan blockchain perlu dimulakan dengan usaha peserta yang setia tetapi bebas. Dan, jika dalam sebuah syarikat, apabila dimulakan, pentadbir mempunyai akses penuh kepada semua mesin, log, pemantauan umum, maka pengesah tidak akan membenarkan sesiapa mengakses pelayan mereka dan, kemungkinan besar, akan memilih untuk membina infrastruktur mereka secara bebas, kerana ia mengawal akses kepada aset utama pengesah - pertaruhan pengundi. Tingkah laku inilah yang memungkinkan untuk membina rangkaian selamat yang diedarkan - kebebasan penyedia awan yang digunakan, pelayan maya dan "baremetal", sistem pengendalian yang berbeza, semua ini membolehkan anda membuat serangan pada rangkaian sedemikian sangat tidak berkesan - terlalu jauh berbeza perisian digunakan. Sebagai contoh, Ethereum menggunakan dua pelaksanaan nod utama, dalam Go dan dalam Rust, dan serangan yang berkesan untuk satu pelaksanaan tidak berfungsi untuk yang lain.

Oleh itu, semua proses untuk melancarkan dan mengendalikan blokchain mesti diatur sedemikian rupa sehingga mana-mana pengesah, atau bahkan sekumpulan kecil pengesah, boleh pada bila-bila masa membuang komputer mereka keluar dari tingkap dan pergi, sementara tiada apa yang harus pecah dan pengesah yang tinggal harus terus menyokong rangkaian operasi dengan berkesan dan menyambungkan pengesah baharu. Apabila melancarkan rangkaian, apabila seorang pengesah berada di Eropah, yang kedua di Amerika Selatan, dan yang ketiga di Asia, agak sukar untuk mencapai kerja yang diselaraskan oleh beberapa dozen kumpulan bebas dan menarik minat mereka sebagai hasilnya.

Pengesah

Mari bayangkan pelancaran blockchain moden hipotesis (kebanyakan yang diterangkan adalah sesuai untuk blockchain berdasarkan mana-mana keluarga blockchain moden: Ethereum, EOS, Polkadot, Cosmos dan lain-lain, yang menyediakan konsensus bukti kepentingan. Watak utama blockchain tersebut adalah pasukan pengesah , terlibat dalam memasang pelayan bebas mereka sendiri yang mengesahkan dan menghasilkan blok baharu, dan menerima ganjaran yang disediakan oleh rangkaian untuk mereka yang mengambil bahagian dalam konsensus. Untuk melancarkan rangkaian baharu, beberapa dozen pengesah diperlukan (begitu ramai yang boleh sekarang lebih kurang berkesan mencapai konsensus dalam beberapa saat), jadi projek itu mengumumkan pendaftaran, di mana pengesah berkongsi maklumat awam tentang diri mereka dengan pengguna, meyakinkan mereka bahawa mereka akan menyediakan perkhidmatan berkualiti tinggi kepada rangkaian yang dilancarkan.

Pengesahan ialah perniagaan yang membolehkan anda menilai potensi pendapatan pengesah dengan sangat tepat, memindahkan kuasa antara projek dengan cepat, dan jika rangkaian yang dipilihnya berjaya, pengesah boleh, sebagai peserta sepenuhnya dalam DAO dan orang yang bertanggungjawab, membangunkan projek itu, atau hanya menyediakan perkhidmatan teknikal yang sangat baik untuk wang yang benar-benar telus, diperoleh dengan jujur. Apabila mengira ganjaran untuk pengesah, projek cuba mengambil kira kos pengesah dan membuat ganjaran untuk blok supaya perniagaan ini menguntungkan, tetapi pada masa yang sama tidak membenarkan pengesah menjatuhkan ekonomi dengan membanjiri mereka dengan wang dan menafikan pengguna rangkaian lain daripadanya.

Perniagaan pengesah memerlukan memastikan toleransi kesalahan yang tinggi terhadap perkhidmatan, yang bermaksud tahap latihan yang tinggi untuk devops dan pembangun serta sumber pengkomputeran yang mahal. Walaupun tanpa perlu melombong cincang dalam rangkaian bukti kerja, nod blockchain ialah perkhidmatan besar yang mengambil banyak memori, menggunakan banyak pengiraan, mengesahkan, menulis pada cakera dan menghantar sejumlah besar data ke rangkaian . Untuk menyimpan log urus niaga dan rantaian blok bagi blok blok dengan beberapa ribu transaksi kecil dalam satu blok, penyimpanan 50 Gb atau lebih kini diperlukan, dan untuk blok ia mestilah SSD. Pangkalan data blockchain negeri dengan sokongan untuk kontrak pintar sudah boleh melebihi 64Gb RAM. Pelayan dengan ciri yang diperlukan agak mahal; nod Ethereum atau EOS boleh berharga dari 100 hingga 200 $/bulan. Tambah ini dengan kenaikan gaji untuk kerja 10 jam pemaju dan devops, yang semasa tempoh pelancaran menyelesaikan masalah walaupun pada waktu malam, kerana beberapa pengesah boleh dengan mudah ditempatkan di hemisfera lain. Walau bagaimanapun, pada saat yang tepat, memiliki nod pengesah boleh membawa pendapatan yang serius (dalam kes EOS, sehingga $000 sehari).

Pengesahan hanyalah salah satu daripada peranan IT yang berpotensi baharu untuk usahawan dan syarikat; apabila pengaturcara menghasilkan algoritma yang lebih dan lebih canggih yang memberi ganjaran kepada kejujuran dan menghukum penipuan dan kecurian, perkhidmatan muncul yang melaksanakan fungsi penerbitan data penting (oracles), melaksanakan penyeliaan (mendeposit memotong dan menghukum penipu dengan menerbitkan bukti penipuan), perkhidmatan penyelesaian pertikaian, insurans dan pilihan, malah kutipan sampah adalah pasaran yang berpotensi besar dalam sistem kontrak pintar di mana ia perlu membayar untuk penyimpanan data.

Masalah melancarkan blockchain

Keterbukaan rantaian blok, yang membolehkan komputer dari mana-mana negara untuk mengambil bahagian secara bebas dalam rangkaian dan kemudahan untuk menyambungkan mana-mana kiddie skrip ke rangkaian mengikut arahan pada GitHub, bukanlah satu kelebihan. Mengejar token baru sering memaksa pengesah untuk "melombong syiling baru pada permulaan," dengan harapan bahawa kadar akan meningkat dan peluang untuk membuang pendapatan mereka dengan cepat. Selain itu, ini bermakna bahawa pengesah anda boleh menjadi sesiapa sahaja, malah orang yang tidak dikenali, anda boleh mengundinya dengan cara yang sama seperti pengesah lain (namun, sukar bagi orang yang tidak dikenali untuk mengumpul undi pihak berkepentingan untuk dirinya sendiri, jadi kami' akan meninggalkan cerita menakutkan tentang mata wang kripto tanpa nama kepada ahli politik) . Namun begitu

Pasukan projek mempunyai tugas - untuk entah bagaimana masuk ke dalam rangkaiannya mereka yang pada masa hadapan dapat memastikan operasi nod yang stabil, memahami keselamatan, tahu cara menyelesaikan masalah dengan cepat, bekerjasama dengan pengesah lain dan bertindak bersama - kualiti itu sangat bergantung sepenuhnya pada kualiti ini sebagai tanda di mana peserta rangkaian akan melaburkan masa dan sumber mereka. Pengasas yang mencukupi, apabila menilai risiko, faham dengan baik bahawa apabila melancarkan perisian sebesar ini, anda pasti akan menghadapi ralat dalam kod dan konfigurasi nod, dan bahawa kestabilan rangkaian bergantung pada sejauh mana pembangun dan pengesah akan menyelesaikan bersama. masalah sebegini.

Pasukan bersedia untuk mengundi di mainnet untuk mana-mana pengesah, hanya untuk mengetahui yang mana, yang mana yang bagus? Portfolio terbesar? Hampir tiada siapa yang memilikinya sekarang. Berdasarkan profil Linkedin pasukan? Devops yang berpengalaman atau pakar keselamatan tidak akan memberi anda sebarang profil Linkedin. Mengikut kenyataan dalam sembang, siaran dan membantu orang lain semasa fasa persediaan? Baik, tetapi subjektif dan tidak tepat.

Dalam keadaan sedemikian, satu perkara kekal - sesuatu yang menyelesaikan masalah semua orang dengan baik - permainan di mana ia akan menjadi mungkin untuk memilih pengesah terbaik, tetapi perkara utama adalah untuk menguji blockchain untuk kekuatan dan menjalankan ujian pertempuran skala penuh blockchain dalam keadaan penggunaan aktif, perubahan dalam konsensus, penampilan dan pembetulan ralat . Prosedur ini mula-mula dibentangkan sebagai permainan oleh lelaki dari projek Cosmos, dan idea ini sudah pasti cara terbaik untuk menyediakan rangkaian untuk pelancaran mainnet yang boleh dipercayai dan tahan terhadap kesalahan

Permainan Pengesah

Saya akan menerangkan permainan pengesah kerana kami mereka bentuknya untuk rantaian blok DAO.Casino (DAOBet) berdasarkan garpu EOS, yang dipanggil Haya dan mempunyai mekanisme tadbir urus yang serupa - pengesah dipilih dengan mengundi daripada mana-mana akaun, di mana bahagian baki yang digunakan untuk mengundi pengesah dibekukan. Mana-mana akaun yang mempunyai token BET utama pada bakinya boleh mengundi pengesah yang dipilih dengan mana-mana bahagian bakinya. Undian disimpulkan dan pengesah teratas dibina berdasarkan keputusan. Dalam rantaian blok yang berbeza, proses ini disusun secara berbeza, dan biasanya di bahagian ini blok blok baharu berbeza daripada blok induk, dan saya mesti mengatakan bahawa dalam kes kami, EOS mewajarkan sepenuhnya "OS" dalam namanya, kami benar-benar menggunakan EOS sebagai sistem pengendalian asas untuk penggunaan versi blockchain yang diubah suai untuk tugas DAOBet.

Saya akan menerangkan masalah individu dan bagaimana ia boleh diselesaikan dalam permainan. Mari bayangkan rangkaian di mana pelayan anda boleh diserang secara terbuka, di mana untuk mengekalkan kedudukan pengesah anda perlu terus berinteraksi dengan rangkaian, mempromosikan pengesah anda dan memastikan bahawa dia menghasilkan blok dan ia dihantar kepada pengesah lain tepat pada masanya, jika tidak, pengesah akan dibuang daripada senarai.

Bagaimana untuk memilih pemenang teratas?

Keperluan teknikal utama untuk permainan ialah keputusannya boleh disahkan secara terbuka. Ini bermakna keputusan permainan: Pemenang TOP, mesti dibentuk dengan ketat berdasarkan data yang boleh disahkan oleh mana-mana peserta. Dalam sistem berpusat, kami boleh mengukur "masa aktif" setiap pengesah dan memberi ganjaran kepada mereka yang paling kerap berada dalam talian atau melalui trafik rangkaian maksimum. Anda boleh mengumpul data pada pemproses dan beban memori serta memberi ganjaran kepada mereka yang telah bekerja dengan baik. Tetapi mana-mana koleksi metrik sedemikian bermakna kewujudan pusat pengumpulan, dan nod semuanya bebas dan boleh berkelakuan seperti yang mereka mahu dan menghantar sebarang data.

Oleh itu, penyelesaian semula jadi ialah pemenang harus ditentukan berdasarkan data dari blokchain, kerana ia boleh digunakan untuk melihat pengesah mana yang menghasilkan blok mana dan transaksi apa yang disertakan di dalamnya. Kami memanggil nombor ini Mata Pengesah (VP), dan memperolehnya ialah matlamat utama pengesah dalam permainan. Dalam kes kami, metrik "kebergunaan" pengesah yang paling mudah, mudah disahkan secara terbuka dan berkesan ialah VP = bilangan blok yang dihasilkan oleh pengesah dalam tempoh masa tertentu.

Pilihan mudah ini adalah disebabkan oleh fakta bahawa tadbir urus dalam EOS telah menyediakan banyak masalah yang muncul, kerana EOS adalah pewaris kepada tiga generasi rantaian blok yang sebenarnya berfungsi dengan pengalaman luas dalam pengurusan rangkaian yang kompleks, dan hampir sebarang masalah pengesah dengan rangkaian, pemproses, cakera membawa kepada hanya satu masalah - dia menandatangani lebih sedikit blok, menerima kurang bayaran untuk kerja itu, yang sekali lagi membawa kita kepada bilangan blok yang ditandatangani - untuk EOS ini adalah pilihan yang sangat baik dan mudah.

Untuk blok blok lain, cara Pengiraan Mata Pengesah mungkin berbeza, contohnya, untuk konsensus berasaskan pBFT (Tendermint/Cosmos, konsensus Aura daripada Parity Substrat), di mana setiap blok mesti ditandatangani oleh berbilang pengesah, adalah wajar untuk mengira pengesah individu tandatangan dan bukannya blok. Mungkin masuk akal untuk mengambil kira pusingan konsensus yang tidak lengkap, yang membazirkan sumber pengesah lain, secara amnya ini sangat bergantung pada jenis konsensus.

Bagaimana untuk mensimulasikan keadaan operasi sebenar

Tugas pengasas adalah untuk menguji pengesah dalam keadaan yang hampir dengan realiti, tanpa mempunyai sebarang kawalan berpusat. Masalah ini boleh diselesaikan menggunakan kontrak faucet, yang mengagihkan jumlah token utama yang sama kepada pengesah dan orang lain. Untuk menerima token pada baki anda, anda perlu membuat transaksi dan memastikan bahawa rangkaian memasukkannya ke dalam blok. Oleh itu, untuk menang, pengesah mesti sentiasa mengisi bakinya dengan token baharu dan mengundi dirinya sendiri, mempromosikan dirinya ke puncak. Aktiviti ini mencipta beban berterusan pada rangkaian, dan parameter boleh dipilih supaya aliran permintaan cukup teruk untuk ujian rangkaian penuh. Oleh itu, rancang kontrak faucet terlebih dahulu sebagai alat penting untuk melancarkan rangkaian dan mula memilih parameternya terlebih dahulu.

Meminta token daripada faucet dan mengesahkan undian masih tidak sepenuhnya mencontohi operasi kepala peledak, terutamanya dalam mod yang sangat sarat. Oleh itu, pasukan blockchain masih perlu menulis penanda aras tambahan dalam satu cara atau yang lain untuk memuatkan rangkaian. Peranan istimewa dalam hal ini dimainkan oleh kontrak pintar yang dicipta khas yang membenarkan ujian subsistem yang berasingan. Untuk menguji storan, kontrak menyimpan data rawak dalam rantaian blok, dan untuk menguji sumber rangkaian, kontrak ujian memerlukan sejumlah besar data input, dengan itu meningkatkan jumlah urus niaga - dengan melancarkan aliran transaksi sedemikian pada titik masa yang sewenang-wenangnya, pasukan secara serentak menguji kestabilan kod dan kekuatan pengesah.

Isu berasingan ialah mengemas kini kod nod dan menjalankan garpu keras. Sekiranya berlaku pepijat, kelemahan atau pakatan sulit pengesah yang berniat jahat, pengesah harus mempunyai pelan tindakan yang telah diusahakan dalam permainan pengesah. Di sini anda boleh membuat skema untuk mengakru VP untuk menggunakan garpu keras dengan cepat, contohnya, dengan mendenda semua pengesah yang masih belum melancarkan versi baharu kod nod, tetapi ini sukar untuk dilaksanakan dan merumitkan pengiraan. Anda boleh mensimulasikan situasi penggunaan kecemasan garpu keras dengan "memecahkan" rantaian blok secara buatan pada blok tertentu. Pengeluaran blok dihentikan, dan akhirnya pemenang adalah mereka yang melompat masuk terlebih dahulu dan mula menandatangani blok, jadi VP berdasarkan bilangan blok yang ditandatangani adalah sesuai di sini.

Cara untuk memaklumkan peserta tentang status rangkaian dan membetulkan ralat

Walaupun terdapat ketidakpercayaan antara pengesah, penerimaan maklumat terkini tentang keadaan rangkaian tepat pada masanya bermanfaat untuk semua orang untuk membuat keputusan dengan lebih cepat, jadi pasukan projek meningkatkan perkhidmatan untuk mengumpul dan menggambarkan banyak metrik daripada pelayan pengesah, yang membolehkan anda melihat keadaan secara serentak untuk keseluruhan rangkaian, membolehkan anda menentukan dengan cepat apa yang sedang berlaku. Selain itu, adalah berfaedah untuk kedua-dua pengesah dan projek bahawa pasukan projek dengan cepat membetulkan ralat yang ditemui, jadi sebagai tambahan kepada mengumpul metrik, masuk akal untuk segera mula mengumpul log dan data ralat daripada mesin pengesah pada mesin yang tersedia untuk blockchain pemaju. Di sini, adalah tidak berfaedah bagi sesiapa untuk memutarbelitkan maklumat, jadi perkhidmatan ini dibangunkan oleh pasukan projek dan boleh dipercayai. Adalah masuk akal untuk mengumpul metrik sistem daripada pengesah, dan, sudah tentu, metrik terpenting blokchain itu sendiri - untuk DAOBet - ialah masa pemuktamadan dan ketinggalan blok terakhir yang dimuktamadkan. Terima kasih kepada ini, pasukan melihat peningkatan dalam penggunaan memori pada nod semasa menjalankan penanda aras, masalah dengan pengesah individu

Perkara penting untuk menjalankan permainan validator

Ternyata, jika anda ingin secara rasmi membenarkan pengesah untuk menyerang mesin masing-masing (secara tidak rasmi mereka boleh melakukan ini juga), anda perlu merumuskan ini secara berasingan secara sah sebagai ujian keselamatan, kerana di bawah undang-undang sesetengah negara DDoS atau serangan rangkaian boleh dihukum. Satu lagi isu penting ialah cara memberi ganjaran kepada pengesah. Hadiah semula jadi ialah token projek, yang akan dipindahkan ke mainnet, tetapi pengedaran besar-besaran token kepada sesiapa sahaja yang dapat melancarkan nod juga bukan pilihan terbaik. Kemungkinan besar anda perlu mengimbangi antara dua pilihan yang melampau:

Agihkan keseluruhan kumpulan hadiah mengikut VP yang diperolehi
ia sangat demokratik dan membolehkan semua orang yang telah melaburkan masa dan sumber ke dalam permainan pengesah memperoleh wang
tetapi menarik orang rawak ke permainan tanpa infrastruktur yang disediakan

Edarkan kumpulan hadiah N teratas kepada pengesah berdasarkan keputusan permainan
Pemenang berkemungkinan besar ialah pengesah yang bertahan paling konsisten semasa permainan dan sangat bertekad untuk menang
sesetengah pengesah tidak mahu mengambil bahagian, menilai rendah peluang mereka untuk menang, terutamanya jika peserta termasuk pengesah yang dihormati

Pilihan yang mana untuk dipilih terpulang kepada anda

Terdapat satu lagi perkara - sama sekali bukan fakta bahawa berpuluh-puluh pengesah akan tergesa-gesa untuk mengambil bahagian dalam permainan atas panggilan anda, dan daripada mereka yang memutuskan untuk mencuba, tidak semua daripada mereka akan memasang dan melancarkan nod - biasanya, pada peringkat ini, projek mempunyai dokumentasi yang agak jarang, ralat ditemui, dan pembangun yang bekerja di bawah tekanan masa tidak menjawab soalan dengan cepat. Oleh itu, sebelum melancarkan permainan, ia juga perlu menyediakan tindakan jika bilangan pengesah yang diperlukan tidak tercapai. Dalam kes ini, pada permulaan permainan, pengesah yang hilang dilancarkan oleh pasukan projek, mengambil bahagian dalam konsensus, tetapi tidak boleh menjadi pemenang.

Kesimpulan

Sebagai kesimpulan, saya cuba menyusun daripada di atas senarai perkara yang perlu difikirkan, dibuat dan dilancarkan untuk menjalankan permainan pengesah dengan berkesan

Perkara yang perlu anda lakukan untuk menjalankan permainan pengesah sebenar:
bangunkan blockchain anda sendiri :)

  • membuat dan meningkatkan antara muka web dan menyediakan CLI untuk mengundi untuk pengesah
  • pastikan metrik daripada nod pengesah yang sedang berjalan boleh dihantar ke perkhidmatan terpusat (contohnya Prometheus)
  • naikkan pelayan pengumpulan metrik (Prometheus + Grafana) untuk permainan pengesah
  • fikirkan bagaimana Mata Pengesah (VP) akan dikira
  • membangunkan skrip awam yang mengira pengesah VP berdasarkan data daripada rantaian blok
  • membangunkan antara muka web untuk memaparkan pengesah teratas, dan status permainan pengesah (berapa banyak masa yang tinggal sehingga tamat, siapa yang mempunyai berapa banyak VP, dll.)
  • membangun dan mengautomasikan pelancaran nombor arbitrari nod anda sendiri, reka proses menyambungkan pengesah kepada permainan (bila dan cara memutuskan sambungan nod anda, menyerahkan dan mengalih keluar undian untuk mereka)
  • kira berapa banyak token yang perlu dikeluarkan dan bangunkan kontrak faucet
  • buat skrip penanda aras (pemindahan token, penggunaan storan besar-besaran, penggunaan rangkaian besar-besaran)
  • kumpulkan semua peserta dalam satu sembang untuk komunikasi pantas
  • lancarkan blockchain lebih awal sedikit daripada permulaan permainan
  • tunggu blok permulaan, mulakan permainan
  • menguji rangkaian dengan beberapa jenis transaksi
  • keluarkan garpu keras
  • tukar senarai pengesah
  • ulangi langkah 13,14,15, XNUMX, XNUMX dalam susunan yang berbeza, mengekalkan kestabilan rangkaian
  • tunggu blok akhir, tamatkan permainan, kira VP

Ia mesti dikatakan bahawa permainan pengesah adalah cerita baru, dan ia dijalankan hanya beberapa kali, jadi anda tidak boleh mengambil teks ini sebagai panduan siap sedia. Tiada analog dalam perniagaan IT moden - bayangkan bahawa bank, sebelum melancarkan sistem pembayaran, bersaing antara satu sama lain untuk melihat siapa yang akan menjadi yang terbaik dalam menjalankan transaksi pelanggan. Pendekatan tradisional tidak mungkin membantu anda mencipta rangkaian terdesentralisasi yang besar, jadi kuasai model perniagaan baharu, jalankan permainan anda, kenal pasti yang layak, beri ganjaran kepada mereka dan pastikan sistem edaran anda berjalan dengan cepat dan stabil.

Sumber: www.habr.com

Tambah komen