Cara Setup Node Lightning Network di Tesnet dengan LND dan BTCD

Cara Setup Node Lightning Network di Tesnet dengan LND dan BTCD

Komunitas Tutorial
February 1, 2018 by Edukasi Bitcoin
26
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: ECLAIR C-Lightning LIT Lightning-Onion Lightning-integration Ptarmigan Tentu, untuk lebih mengetahui
Cara Setup Node Lightning Network di Tesnet dengan LND dan BTCD

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.

  1. 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/local
tar -C /usr/local -xzf nama-file-go-anda.tar.gz

Ubah PATH GO ke path standar
export 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:

test-lnd-btcd

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:

sync tesnet

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

Add a comment