Antarmuka Transaksi Generik, Bidang SmartBridge Lebih Besar & ID Blok SHA256 Lengkap
Salah satu perubahan utama dalam ARK Core v2.3 adalah pengenalan Generic Transaction Interface (GTI). Iterasi pertama antarmuka ini akan membuat ARK Core lebih fleksibel! GTI merupakan prasyarat untuk pengembangan mendatang termasuk jenis transaksi baru yang sangat dinanti - multisignature, timelocks, multipayment dan banyak lagi. Dengan pemikiran itu, kami bangga mempersembahkan rilis Core terbaru v2.3 yang melengkapi tonggak utama pengembangan lainnya di ARK.
Hanya satu bulan telah berlalu sejak rilis Core terbaru kami (v2.2), yang menampilkan CLI semua baru, Core sebagai paket NPM dan banyak lagi. Dengan v2.3 kami memperkenalkan lebih banyak bagian dasar untuk ARK Core yang akan membuka kemungkinan baru yang menarik untuk pengembangan di masa depan. Mari kita bicara tentang apa yang ada di dalamnya!
Apa yang Baru di Core v2.3?
Ada 3 komponen utama dari rilis terbaru ini. Masing-masing membuat Core lebih kuat, menyediakan fungsionalitas tambahan, dan memperlancar proses pengembangan kami bergerak maju. Dengan kemampuan untuk membuat jenis transaksi baru dan terstandarisasi, v2.3 membuat ARK lebih dapat diperluas dan lebih mudah dimodifikasi untuk komunitas bridgechain kami.
1. AIP 29: Antarmuka Transaksi Generik
Permata terpenting dari v2.3 adalah pengenalan AIP 29 , Antarmuka Transaksi Generik. Ini adalah perubahan signifikan yang meningkatkan utilitas use-case langsung dari ARK Core. Singkatnya, GTI adalah suatu kerangka kerja untuk dengan mudah menerapkan jenis-jenis transaksi baru tanpa perlu membuat tangan Anda kotor turun ke ruang bawah tanah Core.
GTI bertujuan untuk memberikan pengembang dan bisnis cara mudah untuk cepat mengembangkan jenis transaksi baru dengan logika bisnis khusus di belakangnya. Implementasi awal adalah pratinjau teknis tentang apa yang datang dengan jenis tx kustom baru pertama kami yang didefinisikan dalam AIP 11 dan AIP 18 yang keluar segera setelah P2P WebSockets di Core v2.4. Pada titik itu kita akan mencapai fungsionalitas penuh dari apa yang sebenarnya dimaksudkan oleh AIP 29 - mesin template untuk pengembangan jenis transaksi khusus . Templat transaksi khusus juga akan dikembangkan untuk segmen berbeda yang ingin kami tangani - IoT, Tata Kelola, dan Permainan.
2. Peningkatan Ukuran Vendorfield (64 hingga 255 Bytes)
Perubahan kedua adalah peningkatan dalam berapa banyak data yang dapat disimpan oleh Smartbridge (Vendorfield) kami. Peningkatan empat kali lipat dalam ukuran akan memperluas Vendorfield dari 64 byte ke 255 byte. Perluasan ini akan memberikan kapasitas data transaksi tambahan yang berharga untuk memperluas lanskap kasus penggunaan yang menyediakan lebih banyak ruang untuk instruksi atau informasi lainnya. Ini juga akan memberikan dasar untuk beberapa fitur potensial dari tipe tx baru yang akan kami perkenalkan dengan AIP 11. Pembaruan akan diaktifkan pada ketinggian blok 8.128.000 yang akan terjadi sekitar Kamis, 25 April 2019 pukul 12:30 : 00 UTC.
3. Lengkap ID Blok SHA256
Perubahan besar ketiga adalah transisi ke ID blok SHA256 lengkap, yang dikodekan sebagai string hex. Secara sederhana, ini menghilangkan potensi tabrakan ID blok dengan tinggi blockchain atau ID blok lainnya, membuat ARK lebih aman dan tahan di masa depan. Contoh dari penerapan lama ID blok adalah sekumpulan angka seperti "1051922236637126565" yang meskipun tidak mungkin, dapat dihasilkan lagi dibandingkan dengan menggunakan SHA256 penuh untuk ID blok seperti "ad0da204d62191c3bf65f5577ac79227f717a06a42ebbeb2995590 Perubahan ini akan diaktifkan pada ketinggian blok 8.204.000 yang akan terjadi sekitar Kamis 2 Mei pukul 13:30:00 UTC.
Untuk operator simpul dari Core ARK saat ini, untuk memperbarui, harap ikuti instruksi migrasi ini (v2.2 ke v2.3):
https://docs.ark.io/releases/v2.3/migrating_2.2_2.3.3 .html
Beberapa perubahan lain di v2.3 termasuk:
Core Tester CLI telah sepenuhnya ditulis ulang dari awal. Perangkat ini membantu pengembang dengan cepat menghasilkan transaksi, mengirim transaksi, menghasilkan alamat, dan banyak lagi.
Winston logger telah diganti dengan Pino yang secara signifikan meningkatkan kinerja logging ketika menghasilkan banyak data dalam situasi seperti sinkronisasi. Pino juga merupakan integrasi yang jauh lebih ringan daripada Winston, pada dasarnya mengurangi penggembungan ketergantungan besar pada Core.
Sebagai bagian dari AIP29, bidang aset transaksi perlu disimpan langsung di tabel transaksi. Efek samping yang bagus adalah bahwa verifikasi integritas sekarang dapat secara langsung menanyakan aset transaksi tanpa harus deserialize yang sangat mempercepat startup node. Migrasi awal dapat memakan waktu hingga beberapa menit karena perlu mengisi kolom aset untuk semua catatan yang ada.
Menambahkan 5 peristiwa baru untuk membuat beberapa data yang berpotensi sulit diambil lebih mudah diakses:
block.received - dihasilkan ketika blok baru masuk
block.disregarded - dihasilkan ketika blok baru diabaikan
transaction.pool.added - dihasilkan ketika transaksi ditambahkan ke kumpulan, selalu menghasilkan serangkaian transaksi.
transaction.pool.not-added - dihasilkan ketika transaksi tidak ditambahkan ke kumpulan, selalu menghasilkan berbagai transaksi.
transaction.pool.removed - dihasilkan ketika suatu transaksi dihapus oleh ID-nya, hanya mengeluarkan ID dari transaksi tersebut.Validasi yang tepat bahwa alamat penerima berada di jaringan yang benar, mengurangi pengiriman ke alamat yang salah di blockchains lain (BTC, ETH, ...).
Slip44 default dan wif jaringan sekarang juga tersedia melalui konfigurasi node endpoint API.
Jumlah delegasi aktif sekarang dapat disesuaikan melalui tonggak sejarah dan Core menyesuaikan ukuran putaran secara dinamis. Misalnya sebuah bridgechain sekarang bisa mulai dengan 5 delegasi dan beralih ke 11 setelah blok ke 10.000.
Implementasi Axios telah diganti dengan Got , yang merupakan pustaka yang jauh lebih ringan. Axios juga memiliki masalah dengan timeout yang dapat menyebabkan masalah secara acak dan dikelola dengan baik seperti Got.
Integrasi Core Webhook dari SQLite3 telah diganti dengan lowdb secara signifikan mengurangi ukuran paket dan dependensinya.
Tabel dompet telah dihapus dari DB karena belum digunakan sejak rilis Core v2 (itu adalah peninggalan dari Core v1). Ini akan mengurangi ukuran blockchain ARK dan membuatnya lebih ramping, menghapus data usang yang dapat diakses dengan cara lain. Semua informasi terkait dompet dilayani dari dalam memori yang jauh lebih cepat dan memberi Anda data real-time instan.
Diganti micromatch(182 dependensi, 4.17M) dengan nanomatch(11 dependensi, 0.27M) untuk kinerja keseluruhan yang lebih baik dan mengurangi angka ketergantungan bersama dengan ukurannya.
Lebih banyak perubahan dan perbaikan di Core v2.3 dapat ditemukan kemudian di bawah posting blog.
Apa Selanjutnya untuk Core?
Iterasi ARK Core v2.4 selanjutnya akan menggali lebih dalam ke mekanika P2P (Peer 2 Peer) tentang bagaimana node berkomunikasi satu sama lain. HTTP API saat ini akan diganti dengan WebSockets menggunakan perpustakaan SocketCluster untuk komunikasi P2P.
WebSockets lebih masuk akal untuk komunikasi P2P antara node karena mereka memungkinkan koneksi aktif untuk masing-masing rekan bukan permintaan HTTP independen. Waktu transfer data akan ditingkatkan karena tidak ada header HTTP yang berarti lebih sedikit data untuk ditransfer. Juga, itu akan skala dengan mudah dengan menggunakan koneksi bersamaan.
SocketCluster adalah kerangka kerja WebSocket yang solid yang menawarkan fitur-fitur hebat termasuk koneksi ulang otomatis, logika middleware, dan multi-threading.
Core v2.4 juga akan menampilkan banyak refactoring dan pembersihan kode mati. Ini akan membuatnya lebih ramping, lebih bersih dan meningkatkan kinerja.
Pengujian inti v2.4 di Jaringan Pengembangan akan dimulai pada awal Mei dan dalam waktu kurang dari sebulan kita akan memiliki lapisan P2P baru.
Sebagian besar ingin mendengar tentang bagaimana kemajuan AIP 11 dan AIP 18. Kami sangat tertarik pada pengembangan AIP 11 dan AIP 18 dan kami memperkirakan keduanya akan siap pada Q2 tahun 2019 untuk pengujian pada Jaringan Pengembangan. Ini akan memungkinkan lebih banyak fitur baru dan kasus penggunaan ARK yang potensial. Kami sangat senang bisa mengeluarkan ini sesegera mungkin!
Perubahan Angka (dari 2,2 ke 2,3)
- 14 pengembang berbeda berkontribusi pada Core.
- 185 komitmen baru untuk Core.
- 1.198 file diubah dalam Core.
- 40.894 penambahan kode ke Core.
- 38.593 penghapusan kode dalam Core.
Mematahkan Perubahan
- Menghapus walletstabel dari basis data ( # 2209 ) *
- Ganti SQLite3 dengan lowdb di core-webhooks( # 2124 )
- Diganti core-logger-winstondengan core-logger-pino( # 2134 )
- Menulis ulang core-tester-clidari awal ( # 2133 )
- Digabung core-debugger-clike core-tester-clidan usang itu ( # 2133 )
- Gunakan node.js EventEmitterdari eventsbukan eventemitter3( # 2329 )
*** Catatan: Core 2.0 telah sepenuhnya bergantung pada dompet dalam memori sejak rilis 2.0. Rilis ini hanya menghilangkan pembuangan dompet ke dalam basis data karena membuang-buang ruang dan tidak melayani tujuan apa pun. Jika Anda memiliki aplikasi yang mengandalkan database, Anda harus memigrasikannya sesegera mungkin untuk menggunakan API karena hanya data yang disediakan secara real-time.**
Ditambahkan
- Terapkan AIP29 ( # 2122 )
- Cari delegasi dengan nama pengguna mereka di core-api( # 2143 )
- Menerapkan ark reinstallperintah dalam core( # 2192 )
- Menambahkan --forcebendera ke ark updateperintah di core( # 2190 )
- Menambahkan lebih banyak parameter untuk pencarian delegasi di core-api( # 2184 )
- Tambahkan /v2/delegates/activetitik akhir ke core-api( # 2205 )
- Menambahkan bendera restart ke ark updateperintah di core( # 2218 )
- Menambahkan make:blockperintah core-tester-cliuntuk membuat blok ( # 2221 )
- Kolom aset transaksi ditambahkan ke database ( # 2236 )
- Menambahkan core-error-tracker-rollbarpaket ( # 2287 )
- Menambahkan core-error-tracker-raygunpaket ( # 2288 )
- Menambahkan core-error-tracker-airbrakepaket ( # 2289 )
- Menambahkan core-logger-signalepaket ( # 2343 )
- Menambahkan lebih banyak acara untuk blok dan kumpulan transaksi ( # 2321 )
- Kembali slip44dan wifmelalui v2/node/configuration( # 2388 )
Tetap
- Urutkan teman sebaya dengan versi mereka ( # 2229 )
- Kebocoran memori dalam proses pemantauan core-forger( # 2341 )
- Tangani ukuran bundar dinamis dengan tonggak ( # 2370 )
- Validasi penerima transaksi di jaringan yang sama ( # 2394 )
- Pegangan kosong rowsdi mapBlocksToTransactions( # 2404 )
- Cegah pengindeksan / pembuatan dompet hantu ( # 2405 )
- Menolak transaksi dari pengirim dengan registrasi tanda tangan kedua yang tertunda dan tidak dapat dikembalikan ketika menolak blok ( # 2458 )
Berubah
- Meningkatkan panjang bidang vendor menjadi 255 byte ( # 2159 )
- Diganti micromatchdengan nanomatchuntuk meningkatkan kinerja ( # 2165 )
- Diganti axiosdengan gotuntuk menyelesaikan masalah batas waktu yang diketahui dengan axios( # 2203 )
- Alihkan blok id ke SHA256 penuh ( # 2156 )
Dihapus
- Kode bendera bangun ulang cepat yang belum digunakan sejak rilis 2.0 ( # 2210 )
Terima kasih khusus
Terima kasih kepada semua yang telah membantu menguji Core on Development Network terbaru, sebelum memindahkannya ke Public Network, dengan memberikan umpan balik yang berharga, melaporkan masalah, dan membantu menyelesaikan masalah dengan membuka permintaan tarik.
Bagi mereka yang menjalankan server Anda sendiri dengan ARK Core, jika Anda mengalami kesalahan atau masalah, silakan buka laporan masalah Github untuk pelacakan dan resolusi yang lebih mudah: https://github.com/ArkEcosystem/core/issues .
Congratulations @arkindonesia! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
To support your work, I also upvoted your post!
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Congratulations @arkindonesia! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!