Poskus krmarjenja po različnih izvedbah strele je lahko izziv. Čeprav so bile sprva tri izvedbe: c-lightning, eclair in lnd, še več izstopa iz lesa ves čas s ptarmiganom, rjavo-strelo in Electrumom, ki je zadnji vstopil v boj.

Pogosto se zdi, da se razvijalci in ambiciozni razvijalci odločijo za uporabo ali prispevanje k določeni izvedbi glede na jezik, v katerem je napisan. Ste seznanjeni s Scalo? Izberite eclair. Navdušeni nad potencialom Rust? Izberite rjavo strelo. Vendar obstajajo tudi drugi ključni premisleki, kot so cilji, filozofije oblikovanja, primeri uporabe in kompromisi različnih izvedb. Poleg tega to, da je izvedba napisana v določenem jeziku, ne pomeni nujno, da morate kodirati v tem jeziku, da prispevate k ekosistemu okoli te izvedbe..

Nastajajoči kontrasti med izvedbami lnd in rjave strele so bili raziskani na plošči na Breaking Bitcoin 2023 in v tem članku Bitcoin Magazine. Medtem ko si lnd prizadeva razbremeniti razvijalce in zagotoviti popolno funkcionalnost iz škatle, rja-strela skuša ponuditi največjo prilagodljivost z razvijalci, ki jih spodbujajo, naj prinesejo svoje komponente in jih vstavijo.

Nasprotno pa c-strela ponuja tretjo pot. Vzdržuje trdno in varno jedro, ki je zasnovano tako, da ga razvijalec ne popravi ali zamenja. Prilagodljivost in dodatna funkcionalnost sta na voljo z uporabo vtičnikov, ki jih razvijalec lahko napiše v različnih jezikih, kot sta Python ali Go. Cilj je, da se ekosistem c-strela pojavi kot preizkuševališče za eksperimentiranje z novimi vrhunskimi lastnostmi, prej tereni drugih izvedb, kot sta lnd in eclair, ne da bi pri tem žrtvovali zmogljivost in robustnost jedra.

Vtičniki so podprocesi, ki jih zažene glavni strelovski demon. Delajo v sodelovanju z Lightningd. Vseh vtičnikov, ki presegajo zahteve, ni treba zagnati. Nekateri vtičniki potrebujejo določene kljuke, ki jih je treba vstaviti v lightningd, ki bodo vtičnike obveščali o notranjih dogodkih in / ali spreminjali vedenje lightningda.

Prvi vtičniki C-Lightning

Blockstream ima serije od Medium blog prispevkov za predstavitev nekaterih prvih vtičnikov, ki jih je napisala ekipa c-lightning. Sem spada vtičnik »Summary«, ki vsebuje povzetek stanja vozlišča, vključno s satoshi onchain, kaj to pomeni v fiat izrazih, število vrstnikov, število kanalov, kako uravnoteženi so itd..

Vtičnik „Probe“ določa, ali obstaja pot za plačilo do določenega vozlišča v omrežju, vrne zahtevano raven provizije in navede, kateri kanali preprečujejo uspešno plačilo. S tem lahko pripravimo podlago za prihodnje plačilo ali zgolj za raziskovanje topologije omrežja.

Vtičnik »Prometheus« zbira podatke o zmogljivosti vašega vozlišča za vizualizacije in opozorila. Z vsemi temi vtičniki lahko dodate prispevek k vtičniku tako, da dodate funkcijo ali ustvarite svojega iz nič.

Vtičniki skupnosti

V času pisanja je na voljo skupno 16 vtičnikov, ki jih kurira skupnost. Sem spadajo vtičnik za avtopilot preneseno iz knjižnice, ki jo je zgradil Rene Pickhardt. Samodejni piloti se odločijo, s katerimi vozlišči v imenu uporabnika odpreti kanale. Uporabnik mora avtopilotu sporočiti odstotek sredstev pod svojim nadzorom, število odprtih kanalov in najmanjšo velikost kanala. Tudi avtopilota mora strelec obvestiti, ko daljinski upravljalci odpirajo in zapirajo kanale. Izdelava učinkovitega avtopilota je zahtevna, saj lahko nastavitve uporabnika, kot je povečanje verjetnosti uspešnega plačila, v nasprotju z zdravjem omrežja, kot je raven decentralizacije..

Obstaja tudi vtičnik za ponovno uravnoteženje, ki premika likvidnost med uporabniškimi kanali, da se zagotovi zadostna dohodna in odhodna likvidnost; in an vtičnik za plačilo brez računa, ki uporabniku omogoča plačilo, ne da bi prej prejel račun. Pri zagonu c-lightning lahko vklopite ali izklopite katero koli kombinacijo teh vtičnikov.

Kot Lisa Neigut (@niftynei) je rekel v njej tweetstorm, c-lightning za neodvisne razvijalce aplikacij, kot to ponuja lnd, ne zagotavlja “standardiziranega vmesnika, dostopnega HTTP, niti sheme za preverjanje pristnosti”. Toda vgrajeni vtičniki ponujajo priložnost za izdelavo ekvivalentov za c-lightning, ki obstajajo v drugih izvedbah.

Kristaps Kaupe je ustanovil GitHub repo za vtičnike, ki posnemajo nekatere ukaze lnd. Drugi avtorji vtičnikov, ki jih je vredno izpostaviti, so Richard Bondi, ki je napisal zbirko vtičnikov v storitvi Go, vključno z vtičniki za prepoved vrstnikov; fiatjaf, ki je napisal izvedbo vtičnika URL LN pomagati plačniku pri interakciji s prejemnikom plačila; in Conor Scott, ki je v Pythonu napisal številne vtičnike, vključno z vtičniki za ustvarjanje kanalov z vozlišči z največjo zmogljivostjo. Končno, Justin Moon je zgradil preizkusni vtičnik za financiranje Lightning kanalov s strojno denarnico.

Izzivi vtičnikov

Čeprav se zdi, da ta arhitektura vtičnikov ponuja najboljše iz obeh svetov, predstavlja nekaj izzivov in potencialnih slabosti. V tej fazi ni jasno, ali bo končna prilagodljivost rjave strele pomenila, da je primernejša za obstoječe Bitcoin denarnice, ki želijo Lightning vključiti v svojo obstoječo kodno bazo.

Poleg tega, ko se število vtičnikov skupnosti množi in vrednost Bitcoina, ki se zanaša na te vtičnike, narašča, bosta varnost in kuriranje kritični. Med vtičniki bo neizogibno prišlo do podvajanja in prekrivanja.

Kuracija je zahtevna, ker učinkovito priporoča (neuradno, opozorilo emptor), katere vtičnike je treba uporabiti in katere ne. Brez kuriranja uporabniki in razvijalci ne morejo hitro začeti, ne da bi preučili vse konkurenčne vtičnike. Obstaja argument, da so nekateri jeziki (in nekateri razvijalci!) Primernejši za pisanje varnostno kritične programske opreme. Vendar pa je mogoče posebej nevarne metode JSON-RPC namestiti samo z možnostjo razvijalca in so namenjene samo testiranju in odpravljanju napak s pomočjo ekipe c-lightning. Na voljo so tudi napotki o nevarnostih, ki jih lahko povzroči razvijalec vtičnikov, ko izkoristi določeno kljuko, ki lahko spremeni privzeto vedenje c-strele.

Ni res, da ta pristop ustvarja popolnoma brez dovoljenj okolje za razvijalce, saj bodo nekateri prihodnji vtičniki vseeno potrebovali dodatne kljuke, ki jih bo skupina c-lightning združila v kodno bazo c-lightning. Na primer, nameščen je kavelj za olajšanje vtičnika stražnega stolpa diskusija v času pisanja. Možno je, da nekateri kljuki ne bodo združeni zaradi varnostnih težav ali podrobnosti izvedbe.

Treba je še ugotoviti, ali primeri vozlišč c-lightning, ki izvajajo različne nabore vtičnikov, povzročajo težave z združljivostjo med vozlišči c-lightning ali z drugimi izvedbami. Zagotavljati združljivost med različnimi izvedbami je že izziv, če predpostavljamo, da vsa vozlišča c-lightning poganjajo isto izdajo. Vendar je eksperimentiranje pomembno in izkušnje iz tega eksperimentiranja se bodo izkazale za neprecenljive pri dokončanju specifikacij BOLT za protokol Lightning.

London Bitcoin Devs

Priložnost za gradnjo in poigravanje z novimi vtičniki v širokem izboru različnih jezikov pritegne razvijalce k gradnji na vrhu c-lightninga. Antoine Poinsot (@darosior) je prišel v London, da bi se predstavil na London Bitcoin Devs srečanje marca 2023. Poinsot razvija a upravitelj vtičnikov imenovan Reckless, ki bo uporabniku ponudil izbor vtičnikov in izbrane vtičnike dinamično zagnal. Zgradil je tudi kavelj za ukaze RPC, ki vtičniku omogoča, da prevzame kateri koli ukaz RPC in ga spremeni. To je potencialno nepremišljeno in eksperimentalno, saj so ukazi RPC način, kako uporabniki komunicirajo s strelo. Če je ukaze RPC mogoče sprejeti, zavrniti ali spremeniti, se odpre več primeri uporabe ampak tudi možnosti, da uporabniki izgubijo sredstva.

Ta ukazni kljuk RPC je bil osnova najnovejše predstavitve Rusty Russell v spletu Boltathon 2. Še vedno obstaja celo vrsto vtičnikov, iz katerih bi lahko nastali trampolin do Računi HODL, in Christian Decker pričakuje “Obstaja že vtičnik, ki to počne”, da postane meme. V tem primeru bosta Decker in skupnost c-lightning morda le odrezala svoje delo, da bi kuratovala to nastajajočo džunglo vtičnikov.

Hvala Antoineu Poinsotu in Christianu Deckerju za prispevek k temu članku.