FreeBSD Crypto - Cara Install BTCD Full Node Bitcoin dengan Go Lang
· 2 min read · Label UnixBSD
btcd adalah implementasi bitcoin simpul penuh alternatif yang ditulis dalam bahasa pemrograman Go (Go Lang). Proyek btcd sedang dalam pengembangan aktif dan berstatus Beta. Stabilitas btcd tidak kalah dari Bitcoin Core, dan telah digunakan dalam produksi sejak Oktober 2013.
Saat Anda menggunakan Bitcoin Core atau implementasi protokol Bitcoin lainnya, Anda memercayai perangkat lunak untuk mengimplementasikan protokol dengan benar dan menangani semua operasi dengan benar. Salah satu keuntungan paling menakjubkan tentang jaringan Bitcoin adalah ia dapat melindungi dirinya sendiri dari node yang berbahaya atau berperilaku buruk. Implementasi klien simpul penuh pertama dan masih populer saat ini adalah Bitcoin. Bitcoin Core adalah klien asli yang dirilis oleh Satoshi Nakamoto. Proyek Bitcoin bersifat sumber terbuka dan dikelola secara aktif oleh komunitas Bitcoin. Biner yang dapat diinstal tersedia di bitcoin.org untuk platform pilihan apa pun.
Selain Bitcoin Core, klien terkenal lainnya adalah BTCD oleh Conformal Systems. Btcd mengimplementasikan sebagian besar fungsi inti node kecuali fungsi dompet dan rantai. Tim tersebut malah memisahkan fungsionalitas dompet ke dalam aplikasi dompet terpisah yang disebut btcwallet. Aplikasi Klien btcd juga memiliki sedikit perbedaan dari inti Bitcoin, seperti mengaktifkan TLS untuk koneksi RPC secara default dan menerima permintaan HTTP dan Websockets. btcWallet adalah klien dompet bitcoin deterministik hierarkis (HD) untuk satu pengguna. Aplikasi ini bertindak sebagai klien RPC untuk btcd dan server RPC untuk klien dompet dan aplikasi RPC lama. btcWAllet menggunakan jalur HD untuk derivasi alamat BIP0044 dan mengenkripsi kunci pribadi dan data publik.
Btcd dapat mengunduh, memvalidasi, dan menyajikan rantai blok dengan benar menggunakan aturan yang tepat untuk penerimaan blok seperti Bitcoin Core. Dalam mengerjakan proyek ini, tim pengembangan sangat berhati-hati untuk menghindari btcd menyebabkan percabangan dalam rantai blok. Pekerjaan ini mencakup kerangka kerja pengujian validasi blok lengkap yang berisi semua pengujian penerimaan blok 'resmi' (dan beberapa pengujian tambahan) yang dijalankan pada setiap permintaan penarikan untuk membantu memastikannya mengikuti konsensus dengan benar. Selain itu, Btcd dapat melewati semua data uji JSON dalam kode Bitcoin Core.
Keuntungan Btcd tidak hanya itu, klien Btcd dapat menyampaikan blok yang baru ditambang dengan benar, memelihara kumpulan transaksi, dan menyampaikan transaksi individual yang belum dimasukkan ke dalam blok. Semua ini dapat memastikan semua transaksi individual yang diterima ke dalam kumpulan mengikuti aturan yang diwajibkan oleh blockchain dan juga mencakup pemeriksaan yang lebih ketat dengan memfilter transaksi berdasarkan persyaratan penambang.
Karena Btcd ditulis dalam bahasa Go, persyaratan utama untuk menginstalnya adalah Go harus diinstal pada server FreeBSD. Anda dapat membaca artikel kami sebelumnya tentang proses instalasi bahasa Go di FreeBSSD "Cara Install Bahasa Go Lang di Server Ubuntu".
Bagi Anda yang sudah terbiasa menginstal Bitcoin Core ataupun coin crypto lainnya, pasti akan sangat mudah untuk menginstal Btcd. Meskipun terdapat banyak abstraksi fitur, proses konfigurasinya hampir sama dengan Bitcoin Core. Btcd juga memiliki antarmuka RPC yang kompatibel dengan Bitcoin Core. Selain fitur dompet dan blockchain, semuanya hampir sama dengan Bitcoin Core.
FreeBSD tidak menyediakan paket PKG atau sistem port untuk Btcd, Anda harus mengunduhnya dari repositori resmi Btcd di Github. Ikuti petunjuk di bawah ini untuk memulai konfigurasi Btcd.
Untuk lebih memahami cara mengonfigurasi Btcd, jalankan perintah btcd -help untuk melihat di mana kita akan meletakkan opsi konfigurasi kita.
Sekarang Anda dapat mengedit berkas btcd.conf. Sesuaikan konfigurasi dengan peralatan komputer dan spesifikasi server FreeBSD Anda.
Setelah semuanya dikonfigurasi, jalankan Btcd dengan perintah "./btcd".
Saat Anda menggunakan Bitcoin Core atau implementasi protokol Bitcoin lainnya, Anda memercayai perangkat lunak untuk mengimplementasikan protokol dengan benar dan menangani semua operasi dengan benar. Salah satu keuntungan paling menakjubkan tentang jaringan Bitcoin adalah ia dapat melindungi dirinya sendiri dari node yang berbahaya atau berperilaku buruk. Implementasi klien simpul penuh pertama dan masih populer saat ini adalah Bitcoin. Bitcoin Core adalah klien asli yang dirilis oleh Satoshi Nakamoto. Proyek Bitcoin bersifat sumber terbuka dan dikelola secara aktif oleh komunitas Bitcoin. Biner yang dapat diinstal tersedia di bitcoin.org untuk platform pilihan apa pun.
Selain Bitcoin Core, klien terkenal lainnya adalah BTCD oleh Conformal Systems. Btcd mengimplementasikan sebagian besar fungsi inti node kecuali fungsi dompet dan rantai. Tim tersebut malah memisahkan fungsionalitas dompet ke dalam aplikasi dompet terpisah yang disebut btcwallet. Aplikasi Klien btcd juga memiliki sedikit perbedaan dari inti Bitcoin, seperti mengaktifkan TLS untuk koneksi RPC secara default dan menerima permintaan HTTP dan Websockets. btcWallet adalah klien dompet bitcoin deterministik hierarkis (HD) untuk satu pengguna. Aplikasi ini bertindak sebagai klien RPC untuk btcd dan server RPC untuk klien dompet dan aplikasi RPC lama. btcWAllet menggunakan jalur HD untuk derivasi alamat BIP0044 dan mengenkripsi kunci pribadi dan data publik.
![]() |
Bitcoin BTCD Alternatif Bitcoin Core Wallet |
Btcd dapat mengunduh, memvalidasi, dan menyajikan rantai blok dengan benar menggunakan aturan yang tepat untuk penerimaan blok seperti Bitcoin Core. Dalam mengerjakan proyek ini, tim pengembangan sangat berhati-hati untuk menghindari btcd menyebabkan percabangan dalam rantai blok. Pekerjaan ini mencakup kerangka kerja pengujian validasi blok lengkap yang berisi semua pengujian penerimaan blok 'resmi' (dan beberapa pengujian tambahan) yang dijalankan pada setiap permintaan penarikan untuk membantu memastikannya mengikuti konsensus dengan benar. Selain itu, Btcd dapat melewati semua data uji JSON dalam kode Bitcoin Core.
Keuntungan Btcd tidak hanya itu, klien Btcd dapat menyampaikan blok yang baru ditambang dengan benar, memelihara kumpulan transaksi, dan menyampaikan transaksi individual yang belum dimasukkan ke dalam blok. Semua ini dapat memastikan semua transaksi individual yang diterima ke dalam kumpulan mengikuti aturan yang diwajibkan oleh blockchain dan juga mencakup pemeriksaan yang lebih ketat dengan memfilter transaksi berdasarkan persyaratan penambang.
1. Proses Instalasi Btcd
Salah satu perbedaan mendasar antara Btcd dan Bitcoin Core adalah bahwa Btcd TIDAK menyertakan fungsi dompet dan ini merupakan keputusan pengembang Btcd untuk membedakan antara Bitcoin Core dan Btcd. Tanpa fungsi dompet, Anda tidak dapat melakukan atau menerima pembayaran secara langsung dengan Btcd. Fungsionalitas ini disediakan oleh proyek btcwallet dan Paymetheus (hanya untuk Windows) yang keduanya masih dalam tahap pengembangan aktif.Karena Btcd ditulis dalam bahasa Go, persyaratan utama untuk menginstalnya adalah Go harus diinstal pada server FreeBSD. Anda dapat membaca artikel kami sebelumnya tentang proses instalasi bahasa Go di FreeBSSD "Cara Install Bahasa Go Lang di Server Ubuntu".
Bagi Anda yang sudah terbiasa menginstal Bitcoin Core ataupun coin crypto lainnya, pasti akan sangat mudah untuk menginstal Btcd. Meskipun terdapat banyak abstraksi fitur, proses konfigurasinya hampir sama dengan Bitcoin Core. Btcd juga memiliki antarmuka RPC yang kompatibel dengan Bitcoin Core. Selain fitur dompet dan blockchain, semuanya hampir sama dengan Bitcoin Core.
FreeBSD tidak menyediakan paket PKG atau sistem port untuk Btcd, Anda harus mengunduhnya dari repositori resmi Btcd di Github. Ikuti petunjuk di bawah ini untuk memulai konfigurasi Btcd.
Jalankan perintah berikut untuk memperbarui btcd, semua dependensi, dan menginstalnya di FreeBSD.
Perintah install di atas akan membuat file bin yang dapat dieksekusi. Di FreeBSD, lokasi file bin Btcd adalah /root/go/bin. Terserah Anda apakah ingin memindahkan file bin atau tidak. Kami sarankan untuk memindahkan file ke folder Btcd.
2. Proses Konfigurasi Btcd
Karena Btcd dan Bitcoin core berada dalam keluarga yang sama, metode konfigurasinya hampir sama. Di FreeBSD, lokasi berkas data Btcd adalah "/root/.btcd". Salin berkas "/usr/local/etc/btcd/sample-btcd.conf", ke folder "/root/.btcd". Ikuti perintah berikut untuk menyalinnya.Perintah di atas digunakan untuk membuat folder .btcd dan menyalin serta mengganti nama file sample-btcd.conf menjadi btcd.conf.
Untuk lebih memahami cara mengonfigurasi Btcd, jalankan perintah btcd -help untuk melihat di mana kita akan meletakkan opsi konfigurasi kita.
root@ns7:/usr/local/etc/btcd # cd bin
root@ns7:/usr/local/etc/btcd/bin # ./btcd -h
Usage:
btcd [OPTIONS]
Application Options:
--addcheckpoint= Add a custom checkpoint. Format: '<height>:<hash>'
-a, --addpeer= Add a peer to connect with at startup
--addrindex Maintain a full address-based transaction index which makes the searchrawtransactions RPC available
--agentblacklist= A comma separated list of user-agent substrings which will cause btcd to reject any peers whose user-agent contains any of the blacklisted
substrings.
--agentwhitelist= A comma separated list of user-agent substrings which will cause btcd to require all peers' user-agents to contain one of the whitelisted
substrings. The blacklist is applied before the blacklist, and an empty whitelist will allow all agents that do not fail the blacklist.
--banduration= How long to ban misbehaving peers. Valid time units are {s, m, h}. Minimum 1 second (default: 24h0m0s)
--banthreshold= Maximum allowed ban score before disconnecting and banning misbehaving peers. (default: 100)
--blockmaxsize= Maximum block size in bytes to be used when creating a block (default: 750000)
--blockminsize= Minimum block size in bytes to be used when creating a block
--blockmaxweight= Maximum block weight to be used when creating a block (default: 3000000)
--blockminweight= Minimum block weight to be used when creating a block
--blockprioritysize= Size in bytes for high-priority/low-fee transactions when creating a block (default: 50000)
--blocksonly Do not accept transactions from remote peers.
-C, --configfile= Path to configuration file (default: /root/.btcd/btcd.conf)
--connect= Connect only to the specified peers at startup
--cpuprofile= Write CPU profile to the specified file
--memprofile= Write memory profile to the specified file
-b, --datadir= Directory to store data (default: /root/.btcd/data)
--dbtype= Database backend to use for the Block Chain (default: ffldb)
-d, --debuglevel= Logging level for all subsystems {trace, debug, info, warn, error, critical} -- You may also specify <subsystem>=<level>,<subsystem2>=<level>,...
to set the log level for individual subsystems -- Use show to list available subsystems (default: info)
--dropaddrindex Deletes the address-based transaction index from the database on start up and then exits.
--dropcfindex Deletes the index used for committed filtering (CF) support from the database on start up and then exits.
--droptxindex Deletes the hash-based transaction index from the database on start up and then exits.
--externalip= Add an ip to the list of local addresses we claim to listen on to peers
--generate Generate (mine) bitcoins using the CPU
--limitfreerelay= Limit relay of transactions with no transaction fee to the given amount in thousands of bytes per minute (default: 15)
--listen= Add an interface/port to listen for connections (default all interfaces port: 8333, testnet: 18333)
--logdir= Directory to log output. (default: /root/.btcd/logs)
--maxorphantx= Max number of orphan transactions to keep in memory (default: 100)
--maxpeers= Max number of inbound and outbound peers (default: 125)
--miningaddr= Add the specified payment address to the list of addresses to use for generated blocks -- At least one address is required if the generate option
is set
--minrelaytxfee= The minimum transaction fee in BTC/kB to be considered a non-zero fee. (default: 1e-05)
--nobanning Disable banning of misbehaving peers
--nocfilters Disable committed filtering (CF) support
--nocheckpoints Disable built-in checkpoints. Don't do this unless you know what you're doing.
--nodnsseed Disable DNS seeding for peers
--nolisten Disable listening for incoming connections -- NOTE: Listening is automatically disabled if the --connect or --proxy options are used without also
specifying listen interfaces via --listen
--noonion Disable connecting to tor hidden services
--nopeerbloomfilters Disable bloom filtering support
--norelaypriority Do not require free or low-fee transactions to have high priority for relaying
--nowinservice Do not start as a background service on Windows -- NOTE: This flag only works on the command line, not in the config file
--norpc Disable built-in RPC server -- NOTE: The RPC server is disabled by default if no rpcuser/rpcpass or rpclimituser/rpclimitpass is specified
--nostalldetect Disables the stall handler system for each peer, useful in simnet/regtest integration tests frameworks
--notls Disable TLS for the RPC server -- NOTE: This is only allowed if the RPC server is bound to localhost
--onion= Connect to tor hidden services via SOCKS5 proxy (eg. 127.0.0.1:9050)
--onionpass= Password for onion proxy server
--onionuser= Username for onion proxy server
--profile= Enable HTTP profiling on given port -- NOTE port must be between 1024 and 65536
--proxy= Connect via SOCKS5 proxy (eg. 127.0.0.1:9050)
--proxypass= Password for proxy server
--proxyuser= Username for proxy server
--prune= Prune already validated blocks from the database. Must specify a target size in MiB (minimum value of 1536, default value of 0 will disable
pruning)
--regtest Use the regression test network
--rejectnonstd Reject non-standard transactions regardless of the default settings for the active network.
--rejectreplacement Reject transactions that attempt to replace existing transactions within the mempool through the Replace-By-Fee (RBF) signaling policy.
--relaynonstd Relay non-standard transactions regardless of the default settings for the active network.
--rpccert= File containing the certificate file (default: /root/.btcd/rpc.cert)
--rpckey= File containing the certificate key (default: /root/.btcd/rpc.key)
--rpclimitpass= Password for limited RPC connections
--rpclimituser= Username for limited RPC connections
--rpclisten= Add an interface/port to listen for RPC connections (default port: 8334, testnet: 18334)
--rpcmaxclients= Max number of RPC clients for standard connections (default: 10)
--rpcmaxconcurrentreqs= Max number of concurrent RPC requests that may be processed concurrently (default: 20)
--rpcmaxwebsockets= Max number of RPC websocket connections (default: 25)
--rpcquirks Mirror some JSON-RPC quirks of Bitcoin Core -- NOTE: Discouraged unless interoperability issues need to be worked around
-P, --rpcpass= Password for RPC connections
-u, --rpcuser= Username for RPC connections
--sigcachemaxsize= The maximum number of entries in the signature verification cache (default: 100000)
--simnet Use the simulation test network
--signet Use the signet test network
--signetchallenge= Connect to a custom signet network defined by this challenge instead of using the global default signet test network -- Can be specified multiple
times
--signetseednode= Specify a seed node for the signet network instead of using the global default signet network seed nodes
--testnet Use the test network
--torisolation Enable Tor stream isolation by randomizing user credentials for each connection.
--trickleinterval= Minimum time between attempts to send new inventory to a connected peer (default: 10s)
--utxocachemaxsize= The maximum size in MiB of the UTXO cache (default: 250)
--txindex Maintain a full hash-based transaction index which makes all transactions available via the getrawtransaction RPC
--uacomment= Comment to add to the user agent -- See BIP 14 for more information.
--upnp Use UPnP to map our listening port outside of NAT
-V, --version Display version information and exit
--whitelist= Add an IP network or IP that will not be banned. (eg. 192.168.1.0/24 or ::1)
Help Options:
-h, --help Show this help message
Setelah semuanya dikonfigurasi, jalankan Btcd dengan perintah "./btcd".
Proses sinkronisasi dapat memakan waktu 3-4 hari, tergantung pada koneksi internet dan spesifikasi mesin Anda. Namun, Anda dapat mulai menguji data blockchain terlebih dahulu saat sinkronisasi berlangsung. Gunakan bitcoin testnet dengan menambahkan tanda --testnet ke btcd. Dengan cara ini, Anda dapat dengan mudah menguji transaksi dengan koin testnet.
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar