Baru-baru ini, elemen dasar dari biaya dinamis ARK diuraikan dalam posting blog 2 Oktober. Sekarang, kami menyajikan panduan untuk mengaktifkan dan menguji struktur biaya baru saat kami menyelidiki sisi teknis biaya dinamis dalam rilis ARK Core v2 yang akan datang.
Biaya dinamis memungkinkan delegasi menetapkan biaya minimum yang dapat diterima sendiri untuk transaksi dan membiarkan pengguna menentukan biaya maksimum yang bersedia mereka bayar untuk transaksi. "Pasar" yang dihasilkan memungkinkan persaingan di antara para delegasi dalam menetapkan biaya, memungkinkan pengguna memilih biaya yang diperlukan untuk kecepatan transaksi mereka, dan akhirnya membuat biaya rendah untuk pengguna akhir.
Posting ini masuk lebih dalam ke aspek teknis biaya dinamis dan lihat file biaya dinamis berkaitan dengan pengaturan dan pengujian mereka menggunakan CLI Tester untuk mengirim transaksi kustom melalui shell. Pengujian biaya dinamis dapat dilakukan sekarang di DevNet dan dengan posting blog ini kami secara resmi memulai pengujian pertama yang kami targetkan.
Jika Anda memiliki pertanyaan, silakan bergabung dengan saluran Slack (#devnet) kami, Anda kemudian akan dapat mempertanyakan pengembang ARK dan meminta panduan tambahan jika diperlukan.
Perincian Teknis
Rincian teknis yang lebih rinci dijelaskan dalam proposal AIP untuk Biaya Dinamis .
Melihat skenario inklusi dari proses node, langkah-langkahnya adalah:
1. Kirim dan proses payload transaksi dari klien / pengirim
Gambar 1: Mengirim dan memproses transaksi pada node
2. Transaksi permintaan Forger dari pool
Ketika Forger menarik transaksi dari pool, transaksi diperiksa untuk melihat apakah mereka cocok. Metode dipanggil sesuai dengan diagram urutan di bawah ini.
Gambar 2: Forger meminta transaksi dari node
Misalnya, transaksi transfer dasar dengan payload terlihat seperti ini:
Diterjemahkan ke versi serial dari payload ini:
Panjang transaksi serial adalah 160 byte. Panjang ini dimasukkan ke dalam rumus perhitungan yang digariskan dalam proposal AIP-16 .
Ukuran transaksi bervariasi dan terkait dengan ukuran vendorField. Jenis transaksi termasuk dalam perhitungan biaya dinamis, karena suara atau mendelegasikan transaksi pendaftaran membutuhkan lebih banyak kekuatan pemrosesan. Di sinilah dynamicOffset memainkan peran. Offset ditentukan dalam pengaturan jaringan (network.json). Nilai default terlihat seperti ini:
Biaya dinamis dihitung berdasarkan penerapan rumus, seperti yang dapat dilihat di sini:
Dan akhirnya, proses mengambil transaksi dari pool terlihat dalam potongan kode berikut. Kode ini dijalankan sesuai dengan setiap transaksi sebelum kembali ke pemalsu ( Gambar 2 - Forger meminta transaksi dari node ), metode checkIfDynamicFeeMatch (transaksi).
Bantu Kami Menguji
Fitur-fitur baru dan fungsi inti diuji oleh tim kami secara internal. Namun, pengujian publik sangat penting untuk meninjau semua skenario penggunaan dan kasus tepi dari perspektif baru (pengembang tidak selalu menjadi penguji terbaik). Dompet yang menggabungkan biaya dinamis akan tersedia sebelum rilis v2 MainNet, saat ini hanya alat CLI yang akan tersedia untuk pengujian di DevNet.
Semua orang diundang ke DevNet kami untuk melakukan pengujian yang tepat (bergabung dengan Slack , saluran #devnet kami) - dari biaya dinamis ke transaksi multigraf dan apa pun yang dapat Anda pikirkan. Semakin kita menguji semakin baik fondasi untuk Core v2 baru kita.
Jika Anda menemukan bug, harap berikan informasi mendalam dan terperinci mengenai repositori GitHub Core kami ( klik ), di mana semua instruksi sudah menunggu untuk Anda.
Delegasi
Semua delegasi yang menjalankan node akan memiliki opsi untuk menyesuaikan biaya dalam file konfigurasi sesuai dengan jaringan tempat mereka menjalankan node mereka ( misalnya file konfigurasi DevNet Dynamic Fee ).
Intro to Core Tester CLI
ARK Core v2 dilengkapi dengan built in testing suite. Menganggap ARK Commander digunakan untuk menginstal Core, kita dapat pindah ke direktori Tester:
cd ~ / ark-core / packages / core-tester-cli
Dari sini Anda dapat menjalankan perintah untuk mengirim transaksi uji coba di seluruh jaringan. Mereka semua telah membangun validasi / tes untuk memastikan transaksi diproses dengan benar.
Untuk mengirim satu atau lebih transaksi, Anda cukup menjalankan perintah dan menyesuaikan parameter. Seperti yang Anda lihat, perintah pertama memulai penguji dan memberitahukannya transaksi mana yang akan dijalankannya. The "" pada akhirnya berarti garis akhir dan lebih banyak parameter (perintah) akan mengikuti. Setiap parameter dimulai dengan "-" dan diakhiri dengan "" yang menetapkan bahwa ada lebih banyak parameter yang akan datang. Ketika Anda mencapai parameter terakhir tidak ada "" di bagian akhir. Misalnya untuk menghasilkan 2 transaksi, Anda akan menjalankan perintah berikut:
./bin/tester transfer \
-n 2 \
--base-url http://167.114.29.34 \
--passphrase "kata kunci 12 kata Anda"
Dalam contoh di atas, n mewakili jumlah transaksi yang ingin Anda kirim, base-url adalah node IP yang disiarkan ke (ganti dengan IP Node Anda) dan frasa sandi adalah dompet yang ingin Anda kirimi transaksinya.
Dengan mengeksekusi perintah, Anda mendapatkan output berikut di terminal Anda:
Jika kita memeriksa transaksi di dexplorer.ark.io kita dapat melihat bahwa dua transaksi yang dikonfirmasi dan dipalsukan:
Paket core-tester-cli dilengkapi dengan perintah berikut:
1./bin/tester transfer - Kirim beberapa transaksi
2./bin/tester second-signature - Buat dompet dengan tanda tangan kedua
3./bin/tester delegate-registration - Buat beberapa delegasi
4./bin/tester suara - Buat beberapa suara untuk delegasi
5./bin/tester multi-signature - Buat
beberapa dompet multi-signature
Paket tester-CLI menyimpan alamat dan frasa sandi dari setiap dompet yang dibuat dalam file ~ / ark-core / packages / core-tester-cli / test-wallets. Anda dapat membuka file cukup dengan membukanya dengan editor Anda. Sebagai contoh:
nano ~ / bahtera-inti / paket / core-tester-cli / test-wallet
Inti-tester-cli kami memiliki beberapa bantuan dasar dan parameter yang disertakan. Jika Anda menulis:
./bin/tester -h
Anda mendapat bantuan dasar dan jika Anda menulis:
./bin/tester COMMAND NAME -h
Anda akan mendapatkan informasi lebih detail tentang parameter dan perintah.
Anda juga dapat membaca perintah dan nilai-nilai mereka yang dihormati di sini:
https://github.com/ArkEcosystem/core/tree/develop/packages/core-tester-cli/bin/tester#L23
Menetapkan parameter biaya dinamis dalam transaksi yang dihasilkan
Setiap perintah memiliki daftar parameter (lihat tautan di atas). Salah satu parameter memungkinkan spesifikasi biaya khusus yang pengguna bersedia membayar untuk pemrosesan transaksi.
Perintah transfer berisi opsi - transfer-fee
di mana biaya pasti dapat ditentukan arktoshi.
./bin/tester transfer \
-n 2 \
--base-url http://127.0.0.1 \
--transfer-biaya 5000 \
--passphrase "kata kunci 12 kata Anda"
Anda juga dapat menentukan batas acak untuk parameter --transfer-biaya
. Misalnya Anda dapat menentukan rentang biaya transfer sebagai berikut:
--transfer-biaya 1000–5000
Ini secara acak akan memilih nilai yang berbeda untuk biaya dalam kisaran yang disediakan antara 1000 dan 5000 arktoshi.
Jika Anda melihat output log Anda, Anda akan melihat pesan-pesan berikut:
(dalam hal ini transaksi tidak dipalsukan karena mereka di bawah mendelegasikan biaya minimum yang ditentukan).
Mari kita jalankan perintah berikut menghasilkan 10 transaksi transfer dengan biaya acak antara 29000 dan 50000 arktoshi.
./bin/tester transfer \
-n 10 \
--base-url http://127.0.0.1 \
--transfer-fee 29000–50000 \ --passphrase
"kata kunci 12 kata Anda"
Dalam contoh di atas, biaya akan dihasilkan secara acak untuk masing-masing dari 10 transaksi mulai dari 29.000-50000 arktoshis. Ini bagus untuk menguji batas dan biaya yang diterima min.
Jika Anda menjalankan port khusus untuk API dan P2P, Anda memiliki 2 flag yang tersedia untuk itu (mereka ditetapkan ke 4002 dan 4003 karena kami menjalankan ini di devnet):
--api-port 4003 \
--p2p-port 4002 \
Bagaimana cara menetapkan biaya untuk jenis transaksi lain dalam Core Tester CLI?
Setiap transaksi memiliki parameter tersendiri dalam paket core-tester-cli. Lihatlah file perintah penguji di mana semua parameter terlihat. Secara umum, kami memiliki opsi berikut untuk pengaturan biaya dinamis yang terkait dengan berbagai jenis transaksi.
1./bin/tester transfer dengan parameter --transfer-fee
2./bin/tester tanda tangan kedua dengan parameter - tanda tangan -biaya
3./bin/tester delegate-registration dengan parameter --delegate-fee
4./bin/tester suara dengan parameter --vote-fee
5./bin/tester multi-signature dengan parameter - multisig-fee
Bagaimana cara mengkonfigurasi simpul saya untuk menerima biaya dinamis?
Last but not least, Anda perlu mengaktifkan node Anda (delegasi Anda) untuk menerima biaya dinamis. Pendekatan rinci ditulis dalam proposal AIP-16.
Ada dua langkah utama untuk mengonfigurasi dan mengaktifkan biaya dinamis.
1. Menetapkan parameter biaya Anda sebagai delegasi
Seorang delegasi dapat menentukan parameter rumusnya untuk feeMultiplier dan membatasi transaksi masuk dengan nilai minAcceptableFee. Semua pengaturan dalam ARKTOSHI per byte. Pengaturan delegasi dapat ditemukan di delegates.json .
Dengan asumsi inti-komandan digunakan untuk menginstal inti, file konfigurasi jaringan Anda dapat dibuka dengan perintah berikut:
nano ~ / .ark / config / delegates.json
Dan di sana Anda memiliki opsi untuk mengubah feeMultipler atau minAcceptableFee.
“DynamicFees”: {
"feeMultiplier": 1000,
"minAcceptableFee": 30000
}
Jika Anda mengubahnya jangan lupa untuk memulai ulang proses Core Anda untuk memuat pengaturan yang diperbarui.
2. Menghidupkan biaya dinamis
Aktifkan biaya dinamis di file konfigurasi jaringan Anda. Dengan asumsi inti-komandan digunakan untuk menginstal inti, file konfigurasi jaringan Anda dapat dibuka dengan perintah berikut:
nano ~ / .ark / config / network.json
Dengan menetapkan nilai dinamis menjadi true dan menentukan tonggak baru dan tinggi blok dari mana pengaturan akan berlaku, kita dapat mengaktifkan atau menonaktifkan biaya dinamis pada tingkat node.
Misalnya pengaturan di bawah ini akan memungkinkan penerimaan biaya dinamis dari tinggi blok 10 dan seterusnya:
"height": 10,
"fees": {
"dynamic": true
Contoh di bawah ini akan menonaktifkan pemrosesan biaya dinamis dari blok 20 dan seterusnya:
"tinggi": 20,
"biaya": {
"dinamis": salah
Semua biaya akan dihitung sesuai dengan biaya statis yang ditentukan dalam network.json .
Jika Anda mengubahnya jangan lupa untuk memulai ulang proses Core Anda untuk memuat pengaturan yang diperbarui.
Ini mencakup penggunaan dasar dan pengujian biaya dinamis. Sampai jumpa di saluran #devnet di Slack!
Ingat kami juga menjalankan program karunia GitHub untuk semua permintaan tarik yang bisa digabung:
https://blog.ark.io/ark-github-development-bounty-113806ae9ffe
Mantablah bro
Posted using Partiko Android
trims cing bro...
Biaya dinamis yang ekonomis
ya praktis dan ekonomis, ark memang oke.