Sebelum memulai cara setup node Lightning Network Bitcoin, perlu dipahami terlebih dahulu beberapa komponen dasarnya. Beberapa elemen penting tersebut adalah LND dan BTCD. Keduanya adalah implementasi dasar yang dikembangkan pertama kali, ditulis dengan menggunakan Golang.
Pengembangan dan implementasi Ligtning Network telah banyak dihasilkan. Selain LND, berikut adalah hasil implementasi lainnya:
Tentu, untuk lebih mengetahui mendetail bagaimana Lightning Network Bitcoin ini bekerja, meski sedikit rumit, namun pada akhirnya kita akan mempelajari banyak hal jika memulai dengan apa dan bagaimana LND terlebih dahulu.
1. LND (Lightning Network Daemon)
LND (lnd) ini adalah kepanjangan dari The Lightning Network Daemon. LND berfungsi sebagai komponen software utama yang menggerakkan jaringan Lightning Network. LND bekerja untuk mengelola database, membuat koneksi peer node, membuat dan menutup channel transaksi, membuat faktur pembayaran, mengirim transaksi, forward transaksi, revoke payment atau membatalkan pembayaran, memberikan respon jika terjadi pelanggaran, dan juga banyak fungsi lainnya.
Lebih lanjut, di dalam LND, lncli akan menjadi interface utama dalam membuka baris perintah di dalamnya. Kita dapat melihat berbagai macam perintah yang dapat digunakan di LND dengan menuliskan lncli — help.
Selanjutnya, LND akan membutuhkan btcd dalam membuat address maupun transaksi, membuka dan menutup channel transaksi lightning network, sekaligus untuk singkronisasi blockchain.
2. BTCD
BTCD adalah hasil implementasi alternatif full node bitcoin yang ditulis menggunakan Go (golang). BTCD ini, sebenarnya telah mulai dikembangkan sejak bulan Oktober 2013. Karena BTCD memang dibangun menjadi sebuah alternatif untuk menjalankan full node bitcoin, maka tentu BTCD juga dapat digunakan untuk mengunduh salinan blockchain bitcoin, memvalidasi transaksi seseuai dengan aturan yang ada di dalam Core Bitcoin.
Garis besarnya, BTCD akan menjadi sebuah gateway, yang dibutuhkan node lnd untuk dapat berinteraksi dengan network Bitcoin maupun Litecoin jika anda menginginkannya. Jika anda telah akrab dengan tesnet bitcoin untuk menjalankan serangkaian ujicoba ataupun pengembangan bitcoin, maka di dalam BTCD juga menggunakan network tesnet itu dengan nama simnet.
Jika anda ingin menjalankan BTCD ini di tesnet bitcoin, maka anda hanya cukup mengubah –simnet, menjadi –tesnet, begitupun jika anda sudah cukup yakin untuk menjalankannya di mainnet bitcoin.
Perbedaan mendasar antara BTCD dengan Bitcoin Core, adalah pada BTCD tidak menyediakan wallet seperti di Bitcoin Core. Sehingga nantinya anda tidak akan bisa benar-benar melakukan pembayaran atau menerima pembayaran secara langsung di BTCD ini.
Dalam ujicoba cara setup Lightning Network Bitcoin ini, EB menggunakan Ubuntu 16.04 LTS. Jangan khawatir, untuk pengguna windows akan kita bahas lebih lanjut di kesempatan berbeda selanjutnya.
Install LND
Pertama, karena LND ditulis menggunakan GO, maka tentu terlebih dahulu kita juga harus install GO. Ikuti langkahnya dibawah ini:
– Install GO
(Versi GO minimum yang mendukung LND adalah Go 1.8 keatas).
Unduh dulu file zip GO disini:
GOLANG
Buka terminal, lalu extrak file Go yang telah diunduh tadi ke folder /usr/localtar -C /usr/local -xzf nama-file-go-anda.tar.gz
Ubah PATH GO ke path standarexport GOROOT=$HOME/go-VERSI-ANDA
export PATH=$PATH:$GOROOT/bin
Logout linux anda, lalu login kembali. Setelah itu, coba untuk cek hasil instalasi GO anda, apakah berjalan sukses atau tidak dengan ketikkan “go” di terminal.
Selanjutnya, kita perlu menambahkan PATH yang semula masih dalam setingan standar Go, dengan cara ini:export GOPATH=~/gocode
export PATH=$PATH:$GOPATH/bin
– Install Glide
Glide ini dibutuhkan Go anda untuk mengatur dependency yang selanjutnya digunakan dalam build LND. Jadi selanjutnya tentu kita harus juga menginstall Glide ini.go get -u github.com/Masterminds/glide
– Instal LND
Untuk mendukung instalasi LND sudah terpenuhi semua setelah anda berhasil menginstal GO, dan Glide. Selanjutnya, bisa kita lanjutkan dengan menginstal LND seperti dibawah ini:git clone https://github.com/lightningnetwork/lnd GOPATH/src/github.com/lightningnetwork/lnd
cd $GOPATH/src/github.com/lightningnetwork/lnd
glide install
go install . ./cmd/...
Setelah selesai, kita mesti update terlebih dahulu versi LND tadi dengan perintah berikut:cd $GOPATH/src/github.com/lightningnetwork/lnd
git pull && glide install
go install . ./cmd/…
Kalau LND telah terinstal, kita bisa melanjutkan untuk menginstal BTCD
Instal BTCD
Yang perlu diketahui untuk instalasi BTCD ini, kita membutuhkan versi btcd yang telah support segwit. Mengapa butuh segwit, tentu aktivasi segwitlah yang membuat lightning network ini bisa bekerja di Bitcoin. Untungnya, aktivasi segwit sudah berhasil dilakukan beberapa bulan lalu di Bitcoin. Sejauh ini, varian BTCD yang telah support segwit adalah dari roasbeef.
Jadi jelas mengapa segwit cukup penting, karena segwit pada akhirnya menjadi jembatan dari begitu banyak pengembangan lanjutan yang bisa dilakukan di bitcoin, dan salah satunya adalah Lightning Network.
Langsung saja, mari kita install btcd seperti dibawah ini:git clone https://github.com/roasbeef/btcd $GOPATH/src/github.com/roasbeef/btcd cd $GOPATH/src/github.com/roasbeef/btcd
glide install
go install . ./cmd/...
Lanjutkan untuk mengecek apakah instalasi LND dan BTCD yang telah dilakukan tadi berjalan dengan benar. Caranya adalah dengan menjalankan perintah berikut ini di terminal:go install; go test -v -p 1 $(go list ./... | grep -v '/vendor/')
Jika instalasi LND dan BTCD berjalan mulus, maka anda akan melihat respon seperti gambar dibawah ini:
Setelah berhasil, maka kita lanjutkan dengan proses Sync block tesnet.
Singkronisasi
Proses singkronisasi block, dibutuhkan sebelum kita menjalankan LND. Saat LND berjalan, btcd juga membutuhkan rekam block tesnet yang sepenuhnya telah tersingkronisasi dengan jaringan tesnet. Begitupun halnya jika kita menjalankan di mainnet, blockchain di mainnet juga harus telah singkron sepenuhnya.
Proses singkronisasi ini akan membutuhkan waktu hingga beberapa jam, menyesuaikan dengan tingkat koneksi dan perangkat yang anda gunakan. Semakin cepat kapabilitas perangkat dan koneksi anda, maka prosesnya bisa berjalan relatif lebih cepat.
Agar bisa memulai proses sync, yang kita perlukan adalah dengan membuat sertifikat rpc klien (rpc.cert) dan konfigurasi standar btcd (btcd.conf). Keduanya, dapat kita lakukan secara langsung dengan menuliskan perintah seperti di bawah ini:btcd --testnet --txindex –rpcuser=NAMA_RPC_ANDA –rpcpass=Password_RPC_ANDA
Selanjutnya anda tinggal menunggu saja sampai proses sync tersebut benar-benar telah selesai. Proses sync yang telah berjalan, akan nampak seperti gambar di bawah ini:
Cek koneksi peer dan koneksi node anda
Untuk bisa mengecek proses sync yang telah berjalan, kita bisa menjalankan perintah “getinfo” dari btcd. Perlu dicatat, bahwa cara ini dapat anda lakukan di terminal yang berbeda. Selanjutnya, untuk setiap perintah LND yang akan dilakukan, anda juga perlu mengatur kembali PATH yang telah sebelumnya anda lakukan terminal yang saat ini sedang dalam proses Sync.
Pertama, kita arahkan dulu PATH Go anda, ketik kembali perintah ini di terminal yang baru:export GOPATH=~/gocode
export PATH=$PATH:$GOPATH/bin
Catatan: agar anda tidak mengulangi pengaturan PATH di setiap terminal baru, anda juga bisa mengatur hal ini di file .bashrc LND anda.
Berikutnya, copy dan paste perintah berikut untuk melihat informasi sync anda:btcctl --testnet --rpcuser=NAMA_RPC_ANDA --rpcpass=Password_RPC_ANDA getinfo
dan perintah dibawah ini untuk melihat koneksi peer anda:btcctl --testnet --rpcuser= NAMA_RPC_ANDA --rpcpass= Password_RPC_ANDA getpeerinfo
Pada kesempatan selanjutnya, kita akan membahas lanjutan untuk membuka dan menutup channel transaksi.
2 Comments
Mau tanya gan, di bagian: btcd –testnet –txindex –rpcuser=NAMA_RPC_ANDA –rpcpass=Password_RPC_ANDA
rpcuser sama rpcpass itu kita sendiri yang buat?
Mohon penjelasannya!
iya