Dimungkinkan untuk menulis ke blockchain bitcoin tidak hanya transaksi keuangan, tetapi juga hampir semua data. Data yang direkam dalam blockchain Bitcoin menjadi publik dan hampir tidak mungkin untuk menghapus atau mengubahnya. Fitur ini dapat digunakan, misalnya, untuk membuat situs terdesentralisasi yang tidak dapat diblokir.
Menggunakan pustaka blockchaindata-lib, menulis dan membaca data pada blockchain dapat diatur hanya dalam beberapa baris kode.
Alat-alatnya
Perpustakaan blockchaindata-lib ditulis dalam node.js. Kode sumber dengan contoh tersedia di
github.com/3s3s/blockchaindata-lib github. Untuk menambahkan perpustakaan ke proyek Anda, jalankan saja satu perintah di konsol
npm install blockchaindata-lib
Untuk bekerja dengan blockchain, Anda harus mengonfigurasi akses RPC ke dompet Bitcoin atau garpu yang kompatibel dengan Bitcoin (Litecoin, Dogecoin, dll.). Secara default, blockchaindata-lib akan mencoba mengakses server RPC pada detail berikut:
: http://127.0.0.1:18332 : rpc_btc_test : rpc_btc_password_test
Default dapat diubah oleh fungsi perpustakaan
updateNetwork(url, user, password)
Jadi, untuk dapat bekerja dengan perpustakaan, hal pertama yang perlu Anda lakukan adalah meluncurkan dompet uji Bitcoin:
- Unduh dompet Bitcoin (atau garpu yang kompatibel.)
- Buat file ~ / .bitcoin / bitcoin.conf (atau di windows% APPDATA% / Bitcoin / bitcoin.conf)
- Dalam file bitcoin.conf, tulis pengaturan berikut
testnet=1 server=1 rpcbind=127.0.0.1 rpcallowip=127.0.0.1 rpcuser=rpc_btc_test rpcpassword=rpc_btc_password_test txindex=1
- Simpan perubahan ke bitcoin.conf dan jalankan bitcoind (atau di windows bitcoin-qt.exe)
- Tunggu sinkronisasi blockchain
Dengan pengaturan di atas, dompet akan diluncurkan di jaringan uji Bitcoin.
Rekaman data
Dalam bitcoin, transaksi di mana tidak ada pengeluaran dilarang. Karena itu, sebelum Anda menulis sesuatu ke blockchain Bitcoin, Anda harus mengisi kembali dompet Anda. Bitcoin untuk jaringan uji dapat diperoleh secara gratis jika Anda mencari di Google untuk sesuatu seperti "bitcoin testnet faucet". Ketika dompet diisi ulang, Anda akhirnya dapat merekam data.
Perpustakaan memiliki beberapa fungsi untuk merekam data:
SaveTextToBlockchain( dataString ) SaveJSONToBlockchain( objectJSON ) SaveFileToBlockchain( data )
Pada prinsipnya, apa fungsi ini jelas dari namanya. Hasil Fungsi - Objek
{hasil: <true | false>, pesan: <string>, txid: <string>}
Pertimbangkan contoh penggunaan:
'use strict'; const blockchaindata = require('blockchaindata-lib') async function test1() { try {
Jika kode ini dijalankan tanpa kesalahan, hash transaksi akan ditampilkan di konsol. Anda dapat membaca data dari hash ini.
Membaca data
Untuk membaca data yang direkam sebelumnya di blockchain, Anda hanya perlu mengetahui hash transaksi. Dompet mungkin kosong, yaitu, jika Anda hanya ingin membaca data, maka pengisian dompet tidak diperlukan.
Contoh kode
'use strict'; const blockchaindata = require('blockchaindata-lib'); async function test2() {
Jika kode ini berfungsi tanpa kesalahan, maka teks html dari halaman yang sebelumnya saya simpan di blockchain akan ditampilkan di konsol.
Di mana melamar?
Di blockchain, misalnya, Anda dapat menyimpan situs statis. Situs ini praktis tidak mungkin dihapus atau diblokir. Namun, untuk membaca situs seperti itu, Anda akan memerlukan perangkat lunak tambahan: browser baru atau ekstensi browser.
Ekstensi browser adalah solusi termudah. Contoh ekstensi tersebut dapat ditemukan di sini
github.com/3s3s/blockchaindataAnda dapat mengunduh dan menginstal ekstensi ini untuk Firefox di sini:
yadi.sk/d/a3xM9BCepP4nBwSetelah instalasi, Firefox akan memotong dan memproses tautan ke situs dalam format
http: // tbtc / <txid>
Misalnya, tautan seperti itu akan berfungsi
http: // tbtc / 8af6633160b982a0b0b4d4962ad28e0d5b3dd97e05e27cc2dd64ec0c56820df5Keefektifan
Pustaka blockchaindata-lib memampatkan data sebelum menempatkannya di blockchain menggunakan algoritma deflate, sehingga metode ini sangat efektif untuk menulis dokumen teks. Selama pengujian, saya berhasil menulis hingga 70 kb data terkompresi ke blockchain. Meskipun tidak ada batasan pada ukuran data yang masuk, kesalahan pada set data besar muncul karena implementasi internal dari kode bitcoin.
Saat menulis data ke blockchain, seseorang juga harus memperhitungkan komponen keuangan. Membaca dan menulis data ke jaringan uji Bitcoin menggunakan perpustakaan blockchaindata-lib sederhana dan gratis. Namun, jika Anda ingin menulis data ke jaringan bitcoin yang berfungsi, maka Anda harus memperhitungkan harga bitcoin yang tidak nol.