FEESIM adalah program estimasi biaya bitcoin. Tidak seperti estimasi biaya dalam inti bitcoin, FeESIM memanfaatkan negara bagian mempool saat ini dan tingkat kedatangan transaksi, yang memungkinkannya responsif terhadap lonjakan lalu lintas. Perkiraan biaya dapat dilihat di sini.
Estimasi biaya dalam FeESIM berbasis model; Perkiraan diperoleh dari simulasi Monte Carlo dari model antrian jaringan Bitcoin. Intinya, kami menemukan solusi untuk pertanyaan: "Jika kami berasumsi bahwa penambang memprioritaskan transaksi dengan tarif biaya, tunduk pada ukuran blok maksimal dan tarif biaya min, dan transaksi itu sampai pada tingkat yang sama dengan satu jam terakhir, kemudian diberikan pada Ukuran MEMPOOL saat ini, berapa tarif biaya yang diperlukan untuk transaksi yang akan dikonfirmasi dalam blok X (dengan probabilitas keberhasilan P)? "
Ini memungkinkan algoritma estimasi untuk mengakomodasi variasi dalam kondisi jaringan. Misalnya, jika satu blok belum ditemukan dalam satu jam dan ada simpanan mempool yang besar, algoritma tersebut harus mengakui hal itu dan menaikkan perkiraan biaya. Sebagai alternatif, jika ada jeda harian dalam tingkat kedatangan transaksi, perkiraan biaya juga harus mencerminkan hal itu, memungkinkan pengguna untuk membayar biaya yang lebih rendah selama periode jeda.
FeESIM mengumpulkan data jaringan Bitcoin melalui API JSON-RPC Core Bitcoin, dan menghitung estimasi untuk:
(txFeerate, txSize)*Lihat Commit D895E64
Bersama dengan keadaan mempool saat ini, ini digunakan untuk melakukan simulasi dan mendapatkan estimasi biaya. Perkiraan kebijakan penambangan dapat dilihat di sini, dan tarif byte kedatangan transaksi sebagai fungsi tingkat biaya dapat dilihat di sini.
Selama operasi normal, FeESIM akan memprediksi waktu konfirmasi setiap transaksi dan menjaga penghitungan proporsi transaksi yang memenuhi prediksi. Proporsi ini harus dekat dengan probabilitas keberhasilan (default 90%), jika modelnya akurat. Skor ini dapat dilihat di sini.
Instal dari sumber menggunakan setidaknya GO 1.6:
$ go get github.com/bitcoinfees/feesim FeESIM menggunakan Eksperimen Vendor GO 1.5, jadi sebagai alternatifnya, Anda dapat menginstal dengan GO 1.5 dengan mengatur variabel lingkungan GO15VENDOREXPERIMENT=1 .
FeESIM membutuhkan akses JSON-RPC ke simpul inti Bitcoin (versi> 0,13.0, yang dapat dipangkas). Pengaturan RPC harus ditentukan dalam config.yml , dengan demikian:
bitcoinrpc :
username : myusername
password : mypassword
# host: localhost
# port: 8332File konfigurasi harus ditempatkan di direktori data:
~/.feesim~/Library/Application Support/Feesim%LOCALAPPDATA%Feesim Setelah menjalankan feesim start , program akan memulai pengumpulan data, dan kemudian mulai menjalankan simulasi setelah ada data yang cukup. Perlu online sepanjang waktu, karena mengumpulkan data mempool yang tidak dapat diperoleh dengan analisis offline.
feesim status menunjukkan status program:
$ feesim status
result : Tx estimation window size was 0s, should be at least 600s
txsource : Tx estimation window size was 0s, should be at least 600s
blocksource : Block coverage was only 0/2016, should be at least 1008/2016.
mempool : OK result menunjukkan apakah perkiraan biaya tersedia atau tidak. Secara default, perkiraan biaya membutuhkan setidaknya 10 menit data transaksi, dan data dari 1008 blok 2016 terakhir.
Setelah ada data yang cukup, simulasi akan mulai berjalan dan menghasilkan perkiraan biaya. Antarmuka mencerminkan bitcoin-cli estimatefee :
$ feesim estimatefee 1
0.00030112Ini menunjukkan tingkat biaya minimum untuk transaksi yang akan dikonfirmasi dalam 1 blok, dengan probabilitas 90% (dapat dikonfigurasi).
Tidak seperti bitcoin-cli , jika argumen inputnya adalah ommitted atau 0, estimasi untuk semua waktu konfirmasi dikembalikan:
$ feesim estimatefee
1: 0.00030138
2: 0.00026738
3: 0.00020492
4: 0.00015988
5: 0.00012805
6: 0.00011478
7: 0.00010616
8: 0.00010001
9: 0.00007519
10: 0.00005020
11: 0.00005000
12: 0.00005000 API JSON-RPC yang mendasari ini kompatibel dengan inti bitcoin, sehingga FEESIM dapat digunakan sebagai pengganti drop-in untuk estimatefee API:
$ bitcoin-cli -rpcport=8350 estimatefee 1
0.00030138FeESIM saat ini mengasumsikan bahwa penambang memiliki minrelaytxfee yang sama dengan simpul Anda, jadi jangan atur terlalu rendah, atau tunggu perkiraan waktu untuk biaya rendah tidak akan akurat. Tetap dengan default seharusnya baik -baik saja. Lihat Commit D895E64 untuk detailnya.
Anda mungkin ingin mengonfigurasi maxmempool Bitcoin Core menjadi lebih rendah dari default, karena ini akan membuat simulasi lebih cepat dan membutuhkan lebih sedikit memori. maxmempool=100 baik -baik saja jika Anda tetap dengan pengaturan feesim default (khususnya maxBlockConfirms). Kelemahannya memiliki data mempool yang kurang komprehensif.
Simulasi ini intensif CPU, sedangkan pengumpulan data tidak, jadi Anda mungkin tidak ingin menjalankan SIM sepanjang waktu, sambil tetap mengumpulkan data. Untuk melakukan ini, gunakan feesim pause untuk menjeda simulasi, dan feesim unpause untuk melanjutkan.
Secara default, perkiraan biaya diperbarui setiap menit. Namun, mungkin, menjalankan simulasi tunggal memakan waktu lebih dari satu menit, karena sumber daya CPU yang tidak mencukupi atau lalu lintas transaksi yang sangat tinggi. Secara umum, ini tidak akan menyebabkan masalah besar; Ini hanya menyebabkan perkiraan biaya diperbarui secara kurang teratur. Namun demikian, mungkin untuk mengurangi waktu menjalankan simulasi dengan menurunkan maxblocksconfirms atau numiters di konfigurasi.
Anda dapat memantau waktu menjalankan simulasi dengan feesim metrics ; sim.X adalah statistik waktu lari, di nanodetik, untuk kira -kira simulasi X terakhir berjalan.
Silakan lihat config.yml di repositori ini untuk file konfigurasi contoh.
Seperti disebutkan sebelumnya, FeESIM mensyaratkan, secara default, data dari 1008 blok 2016 terakhir (harus online ketika blok ditemukan agar data dicatat). Ini sekitar 1 minggu; Jika Anda tidak ingin menunggu selama itu, Anda dapat menghubungi saya untuk salinan data blok.