MultiChain 2.1: Variabel dan Pustaka

Node Sumber: 1587135

Membuat Filter Cerdas jauh lebih pintar

Hari ini, dengan senang hati kami merilis MultiChain 2.1, dengan dua fitur baru yang penting untuk pengembang MultiChain.

Satu setengah tahun yang lalu, MultiChain 2.0 diperkenalkan Filter Cerdas, yang memungkinkan logika khusus disematkan dalam blockchain untuk memvalidasi transaksi dan data. Filter Cerdas secara konseptual mirip dengan "kontrak pintar" yang disediakan oleh platform blockchain lain, tetapi memiliki desain yang berbeda agar sesuai dengan model transaksi MultiChain yang lebih cepat.

Filter Cerdas hadir dalam dua jenis - filter transaksi dan filter aliran. Filter transaksi memvalidasi transaksi on-chain secara keseluruhan, dengan memeriksa input, output, dan metadatanya. Jika transaksi tidak lolos filter, itu ditolak oleh setiap node di jaringan. Filter aliran memvalidasi item individual yang ditulis ke a Aliran MultiChain, melihat kunci mereka, penerbit dan data on-chain atau off-chain, dalam format JSON, teks atau biner. Jika item tidak lolos filter, itu ditandai sebagai tidak valid dan datanya disembunyikan oleh setiap node yang berlangganan aliran.

Kedua jenis Filter Pandai ditulis dalam JavaScript dan dijalankan dalam versi deterministik Google V8, mesin JavaScript super cepat yang memberdayakan Chrome, Node.js, dan banyak platform lainnya. Filter sederhana mudah dikodekan dan dipahami - misalnya, berikut filter aliran yang memvalidasi bahwa item memiliki setidaknya dua kunci:

fungsi filterstreamitem() { var item=getfilterstreamitem(); // fungsi panggilan balik jika (item.keys.length2) mengembalikan "Setidaknya diperlukan dua kunci"; }

Secara keseluruhan, kami mendapat masukan yang bagus tentang Filter Cerdas, tetapi kami juga berulang kali mendengar tentang dua cara untuk membuatnya lebih baik. Pertama, banyak pengguna menginginkan filter yang dapat membaca informasi yang ada di blockchain tetapi tidak dalam transaksi atau item aliran yang divalidasi. Kasus penggunaan termasuk daftar perubahan negara yang diizinkan, nilai tukar yang disediakan oleh "oracle" eksternal atau sakelar untuk mengubah aturan tertentu.

Kedua, beberapa pengembang ingin menggunakan sekumpulan fungsi JavaScript dalam beberapa filter, tanpa menduplikasi kode. Mereka juga ingin dapat memperbarui fungsi ini, untuk memperbaiki bug atau menutupi beberapa situasi baru, tanpa menonaktifkan filter yang ada dan membuat yang baru sebagai gantinya. Misalnya, kode bersama dapat berisi logika khusus aplikasi, pustaka pihak ketiga untuk memvalidasi JSON atau mengurai konten PDF.

MultiChain 2.1 Memperbarui memperkenalkan dua jenis entitas on-chain baru, variabel dan perpustakaan, untuk menjawab kebutuhan tersebut.

Variabel

Mari kita mulai dengan variabel MultiChain. Ini berfungsi seperti bahasa pemrograman biasa, tetapi dengan sentuhan blockchain. Sejumlah variabel bernama dapat dibuat di blockchain. Setiap variabel memiliki satu set alamat dinamis yang diizinkan untuk memperbarui nilainya, dan set ini dikelola oleh satu atau lebih administrator variabel (secara default, hanya pembuat variabel). Variabel dibuat atau diperbarui dalam transaksi blockchain, yang dapat dikirim menggunakan perintah API tingkat tinggi sederhana. Alternatifnya, API tingkat yang lebih rendah dapat digunakan untuk membangun transaksi kompleks yang secara atomis menetapkan satu atau beberapa variabel, menulis item aliran, mentransfer aset, mengubah izin, dan sebagainya.

Nilai variabel itu sendiri dapat berisi struktur JSON apa pun, termasuk angka, string, boolean, objek dan array bersarang, dan disimpan secara on-chain secara efisien. UBJSON format serialisasi. Tentu saja, Smart Filters dapat menanyakan nilai variabel saat ini menggunakan fungsi callback sederhana. Tetapi karena ini adalah blockchain, riwayat lengkap nilai variabel dan penulis juga tersedia, dan dapat diambil sebagian atau seluruhnya menggunakan fungsi panggilan balik lainnya. Untuk mempermudah pengembangan, callback ini juga tersedia melalui API yang menghadap aplikasi.

perpustakaan

Mari beralih ke perpustakaan, yang merupakan saudara variabel yang lebih besar. Seperti variabel, sejumlah pustaka bernama dapat dibuat di blockchain. Tetapi perpustakaan memiliki model yang lebih kaya untuk diperbarui, dengan tiga mode yang tersedia - abadi, saat, dan tunduk pada persetujuan.

Sekali a abadi perpustakaan dibuat, kodenya tidak pernah dapat diubah. Perpustakaan dengan saat pembaruan dapat diubah seperti variabel, dengan satu set alamat yang dapat mengganti kodenya secara individual. Tapi di perpustakaan dengan tunduk pada persetujuan pembaruan, pembaruan hanya diterapkan setelah disetujui oleh sebagian dari administrator global blockchain. Mode terakhir ini memberikan pertukaran yang baik antara keamanan dan fleksibilitas.

Kode untuk pustaka ditulis dalam JavaScript biasa, dan mendefinisikan satu atau beberapa fungsi untuk digunakan Smart Filters. Seperti variabel, perpustakaan dibuat atau diperbarui dalam transaksi khusus, dikirim dengan mudah menggunakan API. Saat Filter Cerdas dibuat, pustaka yang diperlukannya kemudian disediakan dalam parameter opsional. Pustaka selalu berjalan dalam konteks filter yang memerlukannya, sehingga dapat menggunakan callback Filter Cerdas jika sesuai. MultiChain menyediakan fungsionalitas ekstensif untuk menguji (dan memutar kembali) pustaka dan pembaruannya secara lokal, sebelum membuat perubahan pada blockchain.

Kesimpulan

Seperti semua fitur yang berkaitan dengan aturan blockchain, variabel dan pustaka tersedia di edisi Komunitas dan Perusahaan dari MultiChain 2.1. Dokumentasi pengembang kami memberikan penjelasan rinci tentang yang baru API JSON-RPC dan Callback Filter Cerdas tersedia. Untuk menggunakan fitur baru pada blockchain yang sudah berjalan, pertama-tama migrasikan node ke MultiChain 2.1, lalu meningkatkan protokol rantai ke versi 20012.

Jadi apa selanjutnya? Selama beberapa bulan mendatang, kami akan fokus pada beberapa pekerjaan under-the-hood yang mendetail dan intens, untuk meningkatkan kinerja dan konkurensi MultiChain saat sedang dalam beban yang signifikan. Ini akan meningkatkan daya tanggap aplikasi yang perlu melakukan kueri sebuah node sambil terus memproses ratusan atau ribuan transaksi baru per detik.

Sementara itu, kami semua di tim MultiChain mendoakan kesehatan dan kewarasan pengguna dan pelanggan kami di tahun mendatang. Kami tahu ini adalah masa-masa sulit bagi semua orang, dan kami berharap dapat kembali ke ritme rapat dan konferensi yang normal segera setelah aman.

Silakan kirim komentar di LinkedIn.

Stempel Waktu:

Lebih dari Multichain