Future of Lightning Plugins Is Bright – Majalah Bitcoin

Mencoba menavigasi implementasi Lightning yang berbeda dapat menjadi tantangan. Meskipun awalnya ada tiga implementasi: c-lightning, eclair dan lnd, lebih banyak terus keluar dari kayu sepanjang waktu dengan ptarmigan, petir karat dan Electrum yang paling baru untuk memasuki keributan.

Seringkali, tampaknya pengembang dan pengembang yang bercita-cita memilih untuk menggunakan atau berkontribusi pada implementasi tertentu berdasarkan bahasa yang ditulisnya. Akrab dengan Scala? Pilih eclair. Bersemangat dengan potensi Karat? Pilih karat-kilat. Namun, ada pertimbangan utama lainnya seperti tujuan, filosofi desain, kasus penggunaan dan pertukaran dari implementasi yang berbeda. Selain itu, hanya karena suatu implementasi ditulis dalam bahasa tertentu, tidak berarti Anda harus membuat kode dalam bahasa itu untuk berkontribusi pada ekosistem di sekitar implementasi itu.

Perbedaan yang muncul antara implementasi lnd dan rust-light dieksplorasi pada panel di Breaking Bitcoin 2019 dan dalam hal ini Majalah Bitcoin artikel. Sementara saya berupaya menghilangkan beban pengembang dan menyediakan fungsionalitas terbaik di luar kotak, lampu kilat berusaha menawarkan fleksibilitas tertinggi dengan pengembang didorong untuk membawa komponen mereka sendiri dan memasukkannya.

Sebaliknya, c-lightning menawarkan cara ketiga. Ia memelihara inti yang kuat dan aman yang dirancang untuk tidak diubah atau diganti oleh pengembang. Fleksibilitas dan fungsionalitas tambahan tersedia melalui penggunaan plugin yang dapat ditulis oleh pengembang dalam berbagai bahasa seperti Python atau Go. Tujuannya adalah agar ekosistem c-lightning muncul sebagai testbed untuk bereksperimen dengan fitur-fitur baru yang canggih, yang sebelumnya merupakan medan implementasi lain seperti lnd dan eclair, tanpa mengorbankan kinerja dan ketahanan inti.

Plugin adalah subproses yang dimulai oleh daemon lightningd utama. Mereka bekerja sama dengan petir. Setiap plugin yang kelebihan untuk persyaratan tidak perlu dijalankan. Beberapa plugin benar-benar membutuhkan pengait tertentu untuk dimasukkan ke dalam petir yang akan memberi tahu plugin tentang peristiwa internal dan / atau mengubah perilaku petir.

Plugins C-Lightning Pertama

Blockstream memiliki a seri posting blog Sedang untuk menampilkan beberapa plugin pertama yang ditulis oleh tim c-lightning. Ini termasuk plugin "Ringkasan" yang menyediakan ringkasan status node termasuk satoshi satusatunya jaringan, apa artinya dalam istilah fiat, jumlah rekan, jumlah saluran, seberapa seimbangnya mereka, dll.

Plugin “Probe” menentukan apakah ada rute untuk melakukan pembayaran ke simpul tertentu dalam jaringan, mengembalikan tingkat biaya yang diperlukan dan menunjukkan saluran mana yang mencegah pembayaran yang berhasil. Ini dapat digunakan untuk menyiapkan dasar untuk pembayaran di masa depan atau hanya untuk mengeksplorasi topologi jaringan.

Plugin "Prometheus" mengumpulkan data tentang kinerja node Anda untuk memberikan visualisasi dan peringatan. Dengan semua plugin ini, Anda dapat memilih untuk berkontribusi pada plugin dengan menambahkan fitur atau membuat sendiri dari awal.

Plugin Komunitas

Secara total ada 16 plugin "dikuratori komunitas" untuk c-lightning yang tersedia pada saat penulisan. Ini termasuk plugin autopilot porting dari perpustakaan yang dibangun oleh Rene Pickhardt. Autopilots memutuskan node mana yang akan dibuka saluran atas nama pengguna. Pengguna perlu memberi tahu autopilot persentase dana di bawah kendali mereka, jumlah saluran yang akan dibuka dan ukuran saluran minimum. Autopilot juga perlu diberitahukan oleh petir ketika saluran dibuka dan ditutup oleh pihak-pihak yang jauh. Membangun autopilot yang efektif merupakan tantangan karena preferensi pengguna, seperti memaksimalkan kemungkinan pembayaran yang berhasil, dapat bertentangan dengan kesehatan jaringan, seperti tingkat desentralisasi.

Ada juga a plugin penyeimbangan kembali, yang menggerakkan likuiditas antara saluran pengguna untuk memastikan ada cukup likuiditas yang masuk dan keluar; dan sebuah Plugin pembayaran tanpa faktur, yang memungkinkan pengguna melakukan pembayaran tanpa terlebih dahulu menerima faktur. Saat menjalankan c-lightning Anda dapat memilih untuk menghidupkan atau mematikan kombinasi dari plugins ini.

Sebagai Lisa Neigut (@niftynei) berkata dalam dirinya tweetstorm, c-lightning tidak menyediakan "antarmuka HTTP yang dapat diakses standar di luar kotak atau skema otentikasi" untuk pengembang aplikasi pihak ketiga seperti yang dilakukan oleh lnd. Tetapi plugin yang dibangun oleh komunitas menawarkan kesempatan untuk membangun yang setara untuk c-lightning yang ada di implementasi lain.

Kristaps Kaupe telah memulai GitHub repo untuk plugin meniru beberapa perintah lnd. Pengaya plugin lain yang patut disorot adalah Richard Bondi, yang telah menulis koleksi plugin di Go, termasuk plugin untuk melarang teman; fiatjaf, yang telah menulis implementasi plugin URL LN untuk membantu pembayar berinteraksi dengan penerima pembayaran; dan Conor Scott, yang telah menulis sejumlah plugin dengan Python termasuk plugin untuk membuat saluran dengan node berkapasitas tinggi. Akhirnya, Justin Moon telah membangun plugin proof-of-concept untuk mendanai saluran Lightning dengan dompet perangkat keras.

Tantangan Plugin

Meskipun arsitektur plugin ini tampaknya menawarkan yang terbaik dari kedua dunia, itu memang menghadirkan beberapa tantangan dan kelemahan potensial. Tidak jelas pada tahap ini apakah fleksibilitas akhir dari karat-cahaya akan berarti lebih cocok untuk dompet Bitcoin yang ada yang berusaha mengintegrasikan Lightning ke dalam basis kode yang ada.

Selain itu, karena jumlah plugin komunitas bertambah banyak dan nilai Bitcoin yang bergantung pada plugin ini meningkat, keamanan dan kurasi akan menjadi sangat penting. Pasti akan ada duplikasi dan tumpang tindih antara plugin.

Lihat juga

Protokol perpesanan asli dapat menawarkan komunikasi terenkripsi yang lebih pribadi dan sangat mudah. Tetapi apakah pengguna akan beralih?

Kurasi itu menantang karena merekomendasikan secara efektif (tidak resmi, emptor peringatan) plugin mana yang harus digunakan dan mana yang tidak. Tanpa kurasi, menjadi tidak mungkin bagi pengguna dan pengembang untuk memulai dengan cepat tanpa memeriksa semua plugin yang bersaing. Ada argumen bahwa beberapa bahasa (dan beberapa pengembang!) Lebih cocok untuk menulis perangkat lunak keamanan-kritis. Namun, metode JSON-RPC yang sangat berbahaya hanya dapat diinstal dengan opsi pengembang dan hanya dimaksudkan untuk pengujian dan debugging dengan bantuan tim c-lightning. Ada juga panduan yang tersedia tentang bahaya yang mungkin ditimbulkan oleh pengembang plugin saat mengambil keuntungan dari hook tertentu yang dapat mengubah perilaku default c-lightning.

Ini bukan kasus bahwa pendekatan ini menciptakan lingkungan yang benar-benar tanpa izin bagi pengembang, karena beberapa plugin di masa depan masih akan membutuhkan kait tambahan untuk digabungkan ke dalam basis kode c-lightning oleh tim c-lightning. Misalnya, sebuah pengait untuk memfasilitasi plugin Menara Pengawal ada diskusi pada saat penulisan. Ada kemungkinan bahwa beberapa kait tidak akan digabung karena masalah keamanan atau detail implementasi.

Masih harus dilihat apakah instance dari c-lightning node yang menjalankan berbagai set plugin menyebabkan masalah kompatibilitas antara c-lightning node atau dengan implementasi lainnya. Sudah sulit untuk memastikan kompatibilitas antara implementasi yang berbeda, dengan asumsi node c-lightning semua menjalankan rilis yang sama. Eksperimen penting, dan pelajaran dari eksperimen ini akan terbukti sangat berharga ketika menyelesaikan spesifikasi BOLT untuk protokol Lightning.

London Bitcoin Devs

Kesempatan untuk membangun dan bermain-main dengan plugin baru dalam berbagai pilihan bahasa yang berbeda menarik pengembang untuk membangun di atas c-lightning. Antoine Poinsot (@dioriordatang ke London untuk hadir di London Bitcoin Devs bertemu pada Maret 2020. Poinsot sedang mengembangkan a pengelola plugin disebut Reckless yang akan menawarkan pilihan plugin kepada pengguna dan memulai plugin yang dipilih secara dinamis. Dia juga telah membangun kait perintah RPC yang memungkinkan plugin untuk mengambil alih perintah RPC dan mengubahnya. Ini berpotensi sembrono dan eksperimental karena perintah RPC adalah bagaimana pengguna berinteraksi dengan lightningd. Jika perintah RPC dapat diterima, ditolak atau diubah, akan membuka sejumlah gunakan kasing tetapi juga kemungkinan bagi pengguna untuk kehilangan dana mereka.

RPC command hook ini menjadi dasar dari presentasi terbaru Rusty Russell di online Boltathon 2. Masih ada sejumlah besar plugin yang dapat dibangun perutean trampolin untuk Faktur HODL, dan Christian Decker mengharapkan "Sudah ada plugin yang melakukan itu" untuk menjadi meme. Dalam hal itu, Decker dan komunitas c-lightning mungkin hanya memotong pekerjaan mereka merawat hutan plugins yang muncul ini.

Terima kasih kepada Antoine Poinsot dan Christian Decker untuk kontribusi mereka pada artikel ini.