Strele v steklenici

Uvod

V drugem delu naše serije strelovodov bomo podrobno opisali svoje izkušnje s strelovodjo in nekatere pasti, ki smo jih odkrili na poti. V tretjem delu naše serije bomo začeli našo vadnico, kako zagnati svoja lokalna vozlišča, vozlišče strele iz telefona Android in narediti plačilni kanal med mobilnim in lokalnim vozliščem.

Pregled

Začeli smo nalogo vzpostaviti bitcoin vozlišče in strelo v oblaku AWS, strelovod, ki teče iz androidnega telefona, in končno vzpostaviti plačilni kanal med obema strelovodnima vozloma. Za začetek smo želeli, da bi vse, kar deluje lokalno, na Bitcoin testnem omrežju, preden smo poskusili vozlišča teči iz oblaka. Za del Android smo uporabili ACINQ-ovo izvajanje Scala mreže strele. Rad bi se jim zahvalil za odprt vir njihovega projekta in ekipi LND za zagotavljanje neskončne podpore na njihovem ohlapnem kanalu!

Uporabljena orodna veriga

  • Android Java s Scala implementacijo Lightning Network
  • LND-jevo izvajanje strelovodne mreže
  • btcsuite izvaja bitcoin protokol
  • Docker za skladiščenje naših vozlišč
  • serveo za izpostavljanje mojega lokalnega strela svetu

Nameravali smo uporabiti AWS za zmogljivosti v oblaku, vendar smo naleteli na več kot pravičen delež vprašanj, ki nam preprečujejo, da bi dosegli to točko v razvoju.

Lokalno delovanje

Lokalna vozlišča

Priprava in delovanje vozlišč Bitcoin in Lightning ni bila preveč zapletena in je bila večinoma vključena v namestitev vseh ustreznih odvisnosti in nalaganje Bitcoin blockchaina. Ker smo uporabljali testnet, je trajalo le približno 4 ure. Poleg tega je bilo pomembno tudi to, da imamo pravilno nameščene zastavice in konfiguracije za vozlišča.

Android

Zagon omrežja Lightning na telefonu Android je trajal bistveno več truda. Najprej smo si morali ogledati ACINQ-ovo denarnico eclair, da bi razumeli, kako uporabiti njihovo izvedbo Scala Network of Lightning. Na prvi pogled se je zdelo precej zapleteno, vendar smo ga po delih razbili in izolirali komponente, ki smo jih potrebovali za osnovno kodo plošče kotla.

Dodatna namestitev

Zadnji korak, ki je bil potreben za lažjo komunikacijo med mojimi lokalnimi vozlišči in zunanjim svetom, je bil, da jih izpostavim preko SSH strežnika za posredovanje vrat. Za to smo uporabili serveo, vendar tudi ngrok deluje prav tako dobro.

Začetni izzivi

Testiranje je bilo najbolj mučen vidik pri vzpostavljanju in obratovanju vozlišč ter o plačilnem kanalu. Ker smo uporabljali testnet, smo morali še počakati na 6 potrditev rudarjev in lahko traja tudi do 30 minut. Kadarkoli bi ustvarili finančno transakcijo za zunaj verižne transakcije ali zaprli in poravnali plačilni kanal, smo čakali navzgor za pol ure.

Druga neprijetnost, ki smo jo imeli, je, da po odprtju nismo mogli financirati plačilnega kanala. V bistvu so sredstva, s katerimi ste odprli plačilni kanal, vsa sredstva, ki jih morate porabiti, preden mora država oddati v glavni verigi. V nasprotju s plačilnimi kanali, ki jih izvajamo v omrežju Ethereum, plačilni kanali v strelovodnem omrežju nimajo naslovov ali vsaj izpostavljenih naslovov, ki bi jim lahko poslali sredstva.

Splošna nepredvidljivost omrežja je bila pomembna tema v celotnem našem raziskovanju mreže strele. Večkrat bi poskušali odpreti plačilni kanal z naključnim vozliščem, s katerim smo povezani, in pozdravili bi nas z naslednjo napako:

Napaka govori o tem, da nimamo dovolj denarja v denarnici, da bi financirali uvodno transakcijo. skupaj 505281 satoshis. V svoji denarnici imamo 41173093, več kot dovolj za financiranje transakcije.

Nazadnje, ko opravljate zunaj verižne transakcije v Lightning Network, še vedno plačate pristojbino, če mora vaša transakcija potovati skozi več vozlišč! Ustvarjalci mreže strele ocenjujejo, da bi moral biti honorar 1 satoshi na vozlišče ali manj. Pristojbina je nominalna, vendar morate kljub temu plačati pristojbino vozliščem, skozi katera prehajate, za razliko od plačilnih kanalov Ethereum, kjer pristojbine sploh ni.

  1. Satoshi je najnižje ime bitcoina. Njegova vrednost je sto milijona Bitcoina. Preprosto povedano, 1BTC = 10⁸ satoshis.

Vozlišča v oblakih

Dockerizing naših vozlišč

Docker je programska oprema, ki vam omogoča, da posodobite svoje strežnike in ustvarite slike, iz katerih je mogoče več strežnikov. Pogosto se uporablja v stiku z AWS, tako da so vaši strežniki zaprti in se lahko enostavno vrtijo.

Ko smo prebrali github LND-a, smo našli Dockerjeve slike in zagonske skripte, ki jih je že izdelala ekipa LND, zato smo se odločili, da jih poskusimo. Hitro smo naleteli na več napak, ko smo poskušali sestaviti slike, opazili pa smo tudi, da so slike povezane prek Docker-jevih povezav. Gradnja slik je bila dovolj preprosta, zdaj smo morali samo deliti potrdilo rpc z uporabo prostornine med vozliščem Bitcoin in strelo strele… Ali tako smo si mislili.

Kljub deljenju potrdila rpc med vozlišči in preverjanju, da sta prisotni v obeh vsebnikih, strelo Lightning ni moglo vzpostaviti povezave z Bitcoin vozlom. Dvakrat smo preverili, ali so na obeh posodah odprta vsa prava vrata, vendar s tem še vedno nismo imeli sreče.

  1. Docker povezave so način povezovanja zabojnikov skozi varen kanal, da se omogoči komunikacija med njimi. Ko namesto tega uporablja Dockerjevo omrežje, Docker ustvari navidezno omrežje, kjer imajo vsebniki svoj podomrežji ip naslove.

V zaključku

Naše izkušnje z Lightning Network so bile zanimive, zabavne in poučne. Izvedeli smo veliko o protokolu Lightning in potencialu, ki ga ima tehnologija. Na žalost se tehnologija še vedno zdi preveč nestabilna in nerazvita, da bi jo lahko uporabili pri rešitvi za obsežno proizvodnjo. Zagotovo bomo držali oči, da bomo videli, kam gre tehnologija.

Hvala za branje našega bloga, upamo, da ste se iz naše izkušnje z Lightning Network naučili še malo. Bodite prepričani, da se boste seznanili s 3. delom, kjer vam bomo pokazali, kako naj v vozilu Android poiščite svoja vozlišča, vozlišče in naredite plačilni kanal med njimi!