Yritä navigoida eri Lightning-toteutuksissa voi olla haaste. Vaikka toteutuksia oli alun perin kolme: c-salama, eclair ja lnd, yhä enemmän tulee edelleen ulos puusta ptarmiganin, ruostesalaman ja Electrumin kanssa, joista viimeisin tuli taisteluun..

Usein näyttää siltä, ​​että kehittäjät ja kehittäjät pyrkivät käyttämään tiettyä toteutusta tai osallistumaan siihen tietyn kielen perusteella, jolla se kirjoitetaan. Tunnetko Scalan? Valitse eclair. Innoittanut Rustin potentiaali? Valitse ruostesalama. On kuitenkin muitakin keskeisiä näkökohtia, kuten eri toteutusten tavoitteet, suunnittelufilosofiat, käyttötapaukset ja kompromissit. Lisäksi pelkästään se, että toteutus on kirjoitettu tietyllä kielellä, ei välttämättä tarkoita sitä, että sinun on koodattava kyseisellä kielellä myötävaikuttaaksesi toteutuksen ympäristöön.

Ensimmäisen ja ruostesalaman toteutusten välisiä kontrasteja tutkittiin Breaking Bitcoin 2019 -paneelissa ja tässä Bitcoin Magazine -artikkelissa. Vaikka lnd pyrkii ottamaan kuorman pois kehittäjiltä ja tarjoamaan lopullisen toiminnallisuuden heti laatikosta, ruoste-salama pyrkii tarjoamaan äärimmäistä joustavuutta kehittäjien kannustamana tuomaan omat komponentinsa ja sijoittamaan ne sisään.

Sitä vastoin c-salama tarjoaa kolmannen tavan. Se ylläpitää vankkaa ja turvallista ydintä, joka on suunniteltu niin, ettei kehittäjä säädä sitä tai korvaa sitä. Joustavuutta ja lisätoimintoja on saatavana käyttämällä laajennuksia, jotka kehittäjä voi kirjoittaa useilla kielillä, kuten Python tai Go. Tavoitteena on, että c-salama-ekosysteemi tulee esiin testikenttänä kokeilemaan uusia huippuluokan ominaisuuksia, aikaisemmin muiden toteutusten, kuten lnd: n ja eclairin, maastoa uhraamatta ytimen suorituskykyä ja kestävyyttä.

Laajennukset ovat aliprosesseja, jotka käynnistää salaman päädemon. He työskentelevät yhteistyössä salaman kanssa. Laajennuksia, jotka ovat ylimääräisiä vaatimusten suhteen, ei tarvitse suorittaa. Jotkut laajennukset tarvitsevat tietyt koukut, jotta ne voidaan lisätä salamalaitteeseen, joka ilmoittaa laajennuksille sisäisistä tapahtumista ja / tai muuttaa salaman käyttäytymistä..

Ensimmäiset C-Lightning-laajennukset

Blockstreamilla on a sarja Medium-blogiviesteistä esittelemään joitain ensimmäisiä c-salamatiimin kirjoittamia laajennuksia. Näitä ovat “Yhteenveto” -laajennus, joka tarjoaa yhteenvedon solmun tilasta, mukaan lukien satoshis onchain, mitä tämä tarkoittaa fiat-termeinä, ikäisensä lukumäärä, kanavien lukumäärä, kuinka tasapainossa ne ovat jne..

“Probe” -laajennus määrittää, onko reitillä maksua tietylle verkon solmulle, palauttaa vaaditun maksutason ja osoittaa, mitkä kanavat estävät onnistuneen maksun. Tätä voidaan käyttää valmistelemaan tulevan maksun perusta tai vain tutkia verkon topologiaa.

“Prometheus” -laajennus kerää tietoja solmusi suorituskyvystä visualisointien ja hälytysten tarjoamiseksi. Kaikkien näiden laajennusten avulla voit osallistua laajennukseen lisäämällä ominaisuuden tai rakentamalla oman alusta alkaen.

Yhteisön laajennukset

Kirjoitushetkellä on yhteensä 16 ”yhteisön kuratoitua” c-salama-laajennusta. Näitä ovat autopilotti-laajennus siirretty Rene Pickhardtin rakentamasta kirjastosta. Autopilotit päättävät, minkä solmujen kanssa kanavat avataan käyttäjän puolesta. Käyttäjän on kerrottava autopilotille niiden hallinnoimien varojen prosenttiosuus, avattavien kanavien määrä ja kanavan vähimmäiskoko. Autopilotille on myös ilmoitettava salamavalolla, kun etäosapuolet avaavat ja sulkevat kanavat. Tehokkaan autopilotin rakentaminen on haastavaa, koska käyttäjän mieltymykset, kuten onnistuneen maksun todennäköisyyden maksimointi, voivat olla ristiriidassa verkon terveyden kanssa, kuten hajauttamisen taso.

Siellä on myös tasapainottaa laajennus, joka siirtää likviditeettiä käyttäjän kanavien välillä sen varmistamiseksi, että saapuvaa ja lähtevää likviditeettiä on riittävästi; ja laskuton maksulaajennus, jonka avulla käyttäjä voi suorittaa maksun saamatta ensin laskua. Kun suoritat c-salamaa, voit ottaa minkä tahansa näiden laajennusten yhdistelmän käyttöön tai poistaa sen käytöstä.

Hahmona Lisa Neigut (@helsinki) sanoi hänessä tweetstorm, c-salama ei tarjoa “standardoitua HTTP: n käytettävissä olevaa käyttöliittymää alusta eikä todennusjärjestelmää” kolmansien osapuolten sovelluskehittäjille, kuten lnd. Mutta yhteisön rakentamat laajennukset tarjoavat mahdollisuuden rakentaa vastaavia c-salamalaitteille, joita esiintyy muissa toteutuksissa.

Kristaps Kaupe on aloittanut GitHubin repo laajennuksille, jotka jäljittelevät joitain lnd-komentoja. Muut korostamisen arvoiset laajennuskirjailijat ovat Richard Bondi, kuka on kirjoittanut Go-laajennuskokoelman, mukaan lukien laajennuksen ikäisensä kieltämiseksi; fiatjaf, kuka on kirjoittanut laajennuksen LN URL auttaa maksajaa olemaan vuorovaikutuksessa maksunsaajan kanssa; ja Conor Scott, joka on kirjoittanut useita lisäosia Pythoniin, mukaan lukien laajennus kanavien luomiseen, joissa on huippukapasiteettisolmut. Lopuksi, Justin Moon on rakentanut proof-of-concept-laajennuksen rahoittamaan Lightning-kanavia laitteistolompakoilla.

Laajennusten haasteet

Vaikka tämä laajennusarkkitehtuuri näyttää tarjoavan molempien maailmojen parhaat puolet, se tuo mukanaan joitain haasteita ja mahdollisia haittoja. Tässä vaiheessa ei ole selvää, tarkoittaako ruostesalaman lopullinen joustavuus sitä paremmin olemassa oleville Bitcoin-lompakoille, jotka haluavat integroida salaman olemassa olevaan kooditietokantaansa.

Lisäksi kun yhteisölaajennusten määrä lisääntyy ja näihin lisäosiin luottavan Bitcoinin arvo kasvaa, turvallisuus ja kuratointi ovat kriittisiä. Laajennusten välillä on väistämättä päällekkäisyyksiä ja päällekkäisyyksiä.

Kuratointi on haastavaa, koska se suosittelee tehokkaasti (epävirallisesti varoitus tyhjentäjää) mitä laajennuksia tulisi käyttää ja mitä ei. Ilman hoitoa käyttäjien ja kehittäjien on mahdotonta päästä nopeasti alkuun tutkimatta kaikkia kilpailevia laajennuksia. On väite, että jotkut kielet (ja jotkut kehittäjät!) Soveltuvat paremmin tietoturvakriittisten ohjelmistojen kirjoittamiseen. Erityisen vaaralliset JSON-RPC-menetelmät voidaan kuitenkin asentaa vain kehittäjävaihtoehdolla, ja ne on tarkoitettu vain testaukseen ja virheenkorjaukseen c-salamatiimin avulla. Saatavilla on myös ohjeita vaaroista, joita laajennuskehittäjä saattaa kohdata käyttäessään tiettyä koukkua, joka voi muuttaa c-salaman oletusasetuksia.

Ei ole, että tämä lähestymistapa luo täysin luvattoman ympäristön kehittäjille, koska jotkut tulevat laajennukset edellyttävät edelleen, että c-salama-tiimi sulauttaa lisäkoukut c-salaman kooditietokantaan. Esimerkiksi on koukku vartiotorni-laajennuksen helpottamiseksi keskustelu kirjoitushetkellä. Joitakin koukkuja ei voida yhdistää turvallisuusongelmien tai toteutuksen yksityiskohtien vuoksi.

Vielä on nähtävissä, aiheuttavatko c-salaman solmut, jotka käyttävät erilaisia ​​laajennussarjoja, yhteensopivuusongelmia c-salaman solmujen välillä tai muiden toteutusten kanssa. Eri toteutusten yhteensopivuuden varmistaminen on jo haastavaa olettaen, että kaikki C-salaman solmut käyttävät samaa julkaisua. Kokeilu on kuitenkin tärkeää, ja tämän kokeilun kokemukset ovat korvaamattomia, kun viimeistellään Lightning-protokollan BOLT-määritykset.

Lontoon Bitcoin Devs

Mahdollisuus rakentaa ja pelata uusien laajennusten kanssa laajalla valikoimalla eri kieliä houkuttelee kehittäjiä rakentamaan c-salaman päälle. Antoine Poinsot (@darosior) tuli Lontooseen esiintymään Lontoon Bitcoin Devs tapaaminen maaliskuussa 2020. Poinsot kehittää plugin manager nimeltään Reckless, joka tarjoaa valikoiman laajennuksia käyttäjälle ja käynnistää valitut laajennukset dynaamisesti. Hän on myös rakentanut RPC-komentokoukun, jonka avulla laajennus voi ottaa minkä tahansa RPC-komennon haltuunsa ja muuttaa sitä. Tämä on mahdollisesti piittaamatonta ja kokeellista, koska RPC-komennot ovat käyttäjien vuorovaikutuksessa salaman kanssa. Jos RPC-komennot voidaan hyväksyä, hylätä tai muuttaa, se avaa joukon Käytä koteloita mutta myös käyttäjien mahdollisuudet menettää varojaan.

Tämä RPC-komentokoukku muodosti perustan Rusty Russellin uusimmalle esitykselle verkossa Boltathon 2. Vielä on olemassa joukko laajennuksia, joista voitaisiin rakentaa trampoliinin reititys että HODL-laskut, ja Christian Decker odottaa “Siellä on jo laajennus, joka tekee sen” tulla meemiksi. Tällöin Decker ja c-salama-yhteisö saattavat vain leikata työnsä kuratoimalla tätä uutta laajennusten viidakkoa.

Kiitos Antoine Poinsotille ja Christian Deckerille heidän panoksestaan ​​tähän artikkeliin.