Running Linux dengan Bitcoin Full Node - Instalasi dan Konfigurasi | UNIX LINUX EXPLORE
Edit

Running Linux dengan Bitcoin Full Node - Instalasi dan Konfigurasi

Bitcoin Full Node telah ditingkatkan ke Bitcoin Core V0.25 terbaru beserta bitcoin-qt, bitcoin-cli, dan bitcoin-wallet di Ubuntu 24.04. Versi ini juga menyediakan Ordinal terbaru yang terinstal, yaitu skema penomoran untuk satoshi yang memungkinkan pelacakan dan transfer satoshi individual. Untuk keterangan lebih lanjut, silakan kunjungi Dokumentasi Ordinal

Full node adalah program yang memvalidasi transaksi dan blok secara penuh. Hampir semua simpul penuh juga membantu jaringan dengan menerima transaksi dan blok dari simpul penuh lainnya, memvalidasi transaksi dan blok tersebut, lalu meneruskannya ke full node lainnya.

Sebagian besar full node juga melayani klien ringan dengan memungkinkan mereka mengirimkan transaksi mereka ke jaringan dan memberi tahu mereka saat transaksi memengaruhi dompet (wallet) mereka. Jika tidak cukup simpul yang menjalankan fungsi ini, klien tidak akan dapat terhubung melalui jaringan peer-to-peer dan mereka harus menggunakan layanan terpusat sebagai gantinya.

Banyak orang dan organisasi yang mengajukan diri untuk menjalankan Bitcoin Full Node menggunakan sumber daya komputasi dan bandwidth cadangan, tetapi lebih banyak sukarelawan diperlukan agar Bitcoin dapat terus tumbuh. Dokumen ini menjelaskan bagaimana Anda dapat membantu dan berapa biaya yang akan Anda keluarkan untuk membantu.




Full Node Bitcoin dapat dijangkau melalui alamat IPv4, IPv6, dan sebagai Layanan Tersembunyi melalui jaringan Tor. Pada artikel ini kita akan menginstal apa yang disebut dengan Bitcoin full node.


1. Ruang Penyimpanan (Storage Space)

Blockchain Bitcoin sangat besar dan terus tumbuh. Hal ini dikarenakan setiap Bitcoin yang ditambang dan setiap transaksi yang pernah dilakukan dicatat dalam blockchain. Pada April 2015, blockchain ini berukuran 32 Gigabyte. Bersama dengan indeks dan data lainnya, satu node penuh menempati sekitar 42 GB (Gigabyte) ruang penyimpanan disk di server.

Anda dapat melihat pertumbuhan blockchain dari waktu ke waktu di situs web Bitcoin Blockchain Size. Untuk memeriksa ruang kosong yang tersedia pada disk server anda yang akan menampung basis data Bitcoin.


runtu@runtu-desktop:~$ df -h /var/lib
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/server--vg-root  456G  102G  331G  24% /
Anda dapat memeriksa ruang disk yang digunakan oleh node yang sedang berjalan dengan perintah berikut:


runtu@runtu-desktop:~$ sudo du -hs /var/lib/bitcoind/*|sort -h
0       /var/lib/bitcoind/db.log
20K     /var/lib/bitcoind/fee_estimates.dat
84K     /var/lib/bitcoind/wallet.dat
212K    /var/lib/bitcoind/debug.log
952K    /var/lib/bitcoind/peers.dat
732M    /var/lib/bitcoind/chainstate
41G     /var/lib/bitcoind/blocks

2. Alamat IP (IP Address)

Panduan ini mengasumsikan bahwa kita mengalokasikan alamat IP berikut untuk daemon Bitcoin yang akan kita jalankan.
  • 2001:db8::39 sebagai alamat IPv6 publik global.
  • 192.0.2.39 sebagai alamat IPv4 lokal privat (port yang diteruskan dari alamat IPv4 publik).
  • 36.90.10.34 sebagai alamat Internet publik dinamis yang disediakan ISP MyIndiHome.
Setelah kita mengetahui alamat IP, saatnya menentukan IP tersebut pada server yang akan digunakan.


runtu@runtu-desktop:~$ sudo ip addr add 192.0.2.39/24 dev eth0
runtu@runtu-desktop:~$ sudo ip addr add 2001:db8::39/64 dev eth0
Jagan lupa, tambahkan juga ke file /etc/network/interfaces untuk membuatnya tetap statis meskipun sistem direstart.


# btc.example.net
iface eth0 inet static
    address 192.0.2.39/24
iface eth0 inet6 static
address 2001:db8::39/64
Pada pegnaturan server DNS anda, tambahkan lamat IP4 dan IP6 untuk server Bitcoin.

Name Type Content                 Priority     TTL
btc         A         198.51.100.240                           300
btc         AAAA 2001:db8::39


Perlu anda ketahui, daemon Bitcoin mendengarkan koneksi masuk pada port TCP 8333 dan 18333. Oleh karena itu anda harus melakukan forwarding ke port Bitcoin tersebut

IPv4 NAT port forwarding (private)

Protocol Port No.         Forward To Description
TCP 8333 192.0.2.39 Bitcoin network
TCP 18333 192.0.2.39 Bitcoin test network

Izinkan juga koneksi untuk IP6

Protocol Port No.         Destination Description
TCP 8333 2001:db8::39 Bitcoin network
TCP 18333 2001:db8::39 Bitcoin test network


3. Tor Hidden Service

Agar funsi keamanan Bitcoin ful node lebih kuat, aktifkan TOR yang dapat membuat jaringan kita anonymous. Untuk mengaktifkannya anda harus mengedit /etc/tor/torrc.


# BitCoin Full Node Hidden Service for btc.example.net
HiddenServiceDir /var/lib/tor/hidden_services/bitcoin
HiddenServicePort 8333
HiddenServicePort 18333
Restart aplikasi TOR yang telah anda aktifkan di atas.


runtu@runtu-desktop:~$ sudo service tor reload
Anda dapat melihat naam host TOR (.onion) yang telah anda buat di atas dengan perintah berikut.


runtu@runtu-desktop:~$ sudo cat /var/lib/tor/hidden_services/bitcoin/hostname
duskgytldkxiuqc6.onion

4. Buat User Yang Bisa Mengakses server Bitcoin

Dengan alasan keamanan, sebaiknya anda jalankan daemon Bitcoin dengan profil pengguna/user yang tidak memiliki hak istimewa. Buat user yang dapat mengakses daemon Bitcoin di sistem server Ubuntu anda dengan perintah berikut.


runtu@runtu-desktop:~$ sudo adduser --system --group --home /var/lib/bitcoind bitcoin

5. Prose Instalasi Bitcoin Full Node

Hampir semua sistem Linux, Bahkan BSD paket Bitcoin tidak tersedia secara default di repositrinya. Untuk menginstall Bitcoin anda terlebih dahulu harus memasang paket Bitcoin ke dalam sistem Linux/ubuntu anda.


runtu@runtu-desktop:~$ sudo apt-add-repository ppa:bitcoin/bitcoin
runtu@runtu-desktop:~$ sudo apt-get update
runtu@runtu-desktop:~$ sudo apt-get install bitcoind
setelah proses instalasi Bitcoin kelar, buat direktori konfigurasi dan file konfigurasi kosong setelah itu anda tetapkan hak akses terhadap file file tersebut.


runtu@runtu-desktop:~$ sudo mkdir /etc//bitcoin
runtu@runtu-desktop:~$ sudo touch /etc/bitcoin/bitcoin.conf
runtu@runtu-desktop:~$ sudo chmod 600 /etc/bitcoin/bitcoin.conf
Kami memerlukan kata sandi untuk panggilan prosedur jarak jauh (remote) ke daemon bitcoin. Pembuatan kata sandi ini harus anda buat manual, caranya anda buka file "/etc/bitcoin/bitcoin.conf" dan pada file tersebut anda tambahkan script di bawah ini.


rpcuser=bitcoinuser
rpcpassword=bitcoinpassword
Di bawah ini kami berikan contoh lengkap dari script file "/etc/bitcoin/bitcoin.conf".

contoh script "/etc/bitcoin/bitcoin.conf"
# Bitcoind Daemon Configuration
#

# General options
datadir=/var/lib/bitcoind
alertnotify=echo %s | mail -s "Bitcoin Alert" root

# Connection options
bind=192.0.2.39
bind=[2001:db8::39]
externalip=btc.example.net

# Tor Hidden Service Options
onion=127.0.0.1:9150
bind=127.0.0.1
externalip=duskgytldkxiuqc6.onion

# Long running Bitcoin Nodes on the Tor Network
# http://nodes.bitcoin.st/tor/
addnode=pqosrh6wfaucet32.onion
addnode=btc4xysqsf3mmab4.onion
addnode=gb5ypqt63du3wfhn.onion
addnode=3lxko7l4245bxhex.onion

# Verified Online Bitcoin nodes on the Tor Network from 
# https://rossbennetts.com/2015/04/running-bitcoind-via-tor/
addnode=kjy2eqzk4zwi5zd3.onion
addnode=it2pj4f7657g3rhi.onion

# Verified Online Bitcoin nodes on the Tor Network from 
# https://en.bitcoin.it/wiki/Fallback_Nodes#Tor_nodes
addnode=hhiv5pnxenvbf4am.onion
addnode=bpdlwholl7rnkrkw.onion
addnode=vso3r6cmjoomhhgg.onion
addnode=kjy2eqzk4zwi5zd3.onion

# Verified Online Bitcoin nodes on the Tor Network from 
# https://sky-ip.org
addnode=h2vlpudzphzqxutd.onion
addnode=xyp7oeeoptq7jllb.onion

# RPC server options
rpcuser=bitcoinrpc
rpcpassword=HkFbv9YaWgEgyy7X4B9vi3GsENtGWgPNpwUf2ehsvXX1

# Maintain a full index of historical transaction IDs
# Required by Electrum Server
txindex=1
Setelah itu anda berikan hak kepemilikan file dan folder pada daemon Bitcoin.


runtu@runtu-desktop:~$ sudo chown -R bitcoin:bitcoin /etc/bitcoin

6. Ubuntu Upstart

Proyek Bitcoin merekomendasikan menjalankan daemon sebagai layanan Upstart di Ubuntu dan menyiapkan skrip Upstart untuk bitcoind. Unduh dan instal Skrip Upstart.


runtu@runtu-desktop:~$ cd downloads
runtu@runtu-desktop:~$ wget https://raw.githubusercontent.com/bitcoin/bitcoin/0.10/contrib/init/bitcoind.conf
runtu@runtu-desktop:~$ sudo cp bitcoind.conf /etc/init/
Langkah terakhir adalah jalankan Bitcoind


runtu@runtu-desktop:~$ sudo start bitcoind
bitcoind start/running, process 17019
Bila sudah muncul tulisan "bitcoind start/running, process 17019" artinya daemon Bitcoind anda telah berjalan normal.


7. Pemantauan/Monitoring

Tak lengkap rasanya jika menjalankan daemon bitcoin bila tak dilakukan monitoring. Proses monitoring juga berguna untuk memeriksa tiap log yang sedang berjalan. Dengan log tersebut, anda dapat memeriksa tiap kesalahan dari server Bitcoin.


runtu@runtu-desktop:~$ sudo -u bitcoin multitail /var/lib/bitcoind/debug.log
Untuk melihat apakah node Anda dikenal dan dapat dijangkau dalam jaringan Bitcoin, periksa situs web Bitnodes.

https://getaddr.bitnodes.io/nodes/192.0.2.39-8333/
https://getaddr.bitnodes.io/nodes/2001:db8::39-8333/

Anda juga dapat memeriksa node *.onion Tor Hidden Service Anda, dengan memasukkan alamatnya dalam formulir di bagian bawah halaman dan klik tombol “Check Node”. Namun tidak ada rincian yang akan ditampilkan kecuali untuk fakta bahwa node tersebut menerima koneksi atau tidak.

Untuk melihat transaksi yang telah diproses oleh node IPv4 Anda.

https://blockchain.info/ip-address/192.0.2.39

Node Layanan Tersembunyi IPv6 dan Tor tidak didukung oleh blockchain.info. Jadi info lengkapnya tak bisa ditampilkan.

Seperti yang disebutkan sebelumnya, basis data yang menyimpan blockchain BitCoin sangat besar. Namun karena ini adalah basis data peer-to-peer terdistribusi yang tersedia untuk umum, tidak perlu dicadangkan oleh node individual. Jika terjadi kehilangan data pada satu node, node lain juga dapat digunakan dan node mana pun dapat mengunduh ulang dan memproses ulang blockchain kapan saja.