Uruchomienie Electrum (z Lightning Network) na Testnet
Electrum to portfel programowy na Bitcoina. Umożliwia przyjmowanie i wysyłanie Bitcoinów innym. Niestety wersje rozwojowe (z gita) mogą się okazać trudne do przetestowania. A tam znajduje się testnetowa wersja Electrum z lightning network, czyli technologią znacznie zwiększającą szybkość transakcji. Dzisiaj napiszę jak zainstalować testową wersję Electrum z Lightning.
Oczywiście wszystko jest przygotowane na systemy Pingwinowe, czyli Linuksy. Sam używam Devuan Ceres.
Git, pobranie repozytorium
Git to program, który kontroluje wersje kodu. Pozwala on nie tylko cofać się w tył z kodem, ale także ma system tzw. branch - gałęzi. Na oddzielnych gałęziach mogą być pisane i testowane nowe rozwiązania, które z powodu swojej wagi - nie są tworzone na głównej linii (tzw. master).
Najpierw pobierzmy cały projekt na dysk, wykonujemy to poleceniem:
git clone https://github.com/spesmilo/electrum
Pobieramy ogólnie repozytorium i zostajemy na domyślnej gałęzi czyli master. Aby zmienić na "lightning" należy wpisać:
cd electrum
git checkout lightning
Ogólnie wchodzimy do katalogu electrum i zmieniamy gałąź na lightning.
Interfejs graficzny
Możliwe, że nie mamy bibliotek do obsługi interfejsu graficznego. Electrum można używać również w konsoli co umożliwia np. oprogramowywanie botów.
Jeśli używamy Debiana lub pochodną tego systemu, w konsoli wpisujemy:
sudo apt-get -y install python3-pyqt5
Co doinstaluje biblioteki QT5 dla Pythona.
Ikona
Z jakiegoś powodu Electrum z interfejsem wymaga wygenerowania ikony dla QT5? Aby tego dokonać należy wpisać:
pyrcc5 icons.qrc -o electrum/gui/qt/icons_rc.py
Odpalamy
Możemy spróbować uruchomić Electrum uruchamiając plik ./run-electrum. Wyrzuci jednak błąd, że ta wersja działa tylko na testnet. W takim razie polecenie wygląda:
./run-electrum --testnet
Brawo - działa :)
A gdyby tak Mainnet?
O ile Lightning Network to technologia używana przez wiele firm (może nie ma tak dużo jak na onchain, ale jednak) - Electrum z jakiegoś powodu jest na testnet i nie chce z Lightningiem iść na Mainnet. Można oczywiście oszukać nasz program by uruchomił się normalnie.
Aby tego dokonać należy wedytować plik run_electrum i usunąć (lub zahaszować) linie od 393 do 400. To one odpowiadają za blokadę uruchomienia programu na czystej sieci, oto jak wygląda ten kawałek kodu:
if config.get('testnet'):
constants.set_testnet()
elif config.get('regtest'):
constants.set_regtest()
elif config.get('simnet'):
constants.set_simnet()
else:
raise Exception('lightning branch not available on mainnet')
Oczywiście używasz wtedy sieci Lightning na własną odpowiedzialność :)