欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

當前位置:主頁 > 區(qū)塊鏈 > 區(qū)塊鏈技術 > 閃電網(wǎng)絡應用開發(fā)速成指南

區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南

2021-12-13 15:38:42 | 來源: | 作者:Michael Rhee
這篇文章主要介紹了區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南的相關資料,希望這篇關于閃電網(wǎng)絡應用開發(fā)速成指南的文章,能夠幫助到各位朋友對閃電網(wǎng)絡應用開發(fā)的理解。

如果你想要入門閃電網(wǎng)絡編程,又不在乎所謂正確、最佳的做法,這篇文很適合你。換言之,這篇指南具有很強的 主觀性。如果你偏好 O'Reilly 式的權威文本,這篇文章可能不對你的胃口。但是,如果你想要了解閃電網(wǎng)絡的最小開發(fā)環(huán)境及其基本內(nèi)容,不妨讀一讀。我寫本文的目的是提煉出創(chuàng)建閃電網(wǎng)絡應用的基礎知識點,讓新手能夠快速構建和實驗。

我相信,只要掌握了基礎知識點,你就能編寫出更加復雜安全的應用。但是,每個人都得有個開始,我個人的感受是萬事開頭難,我認為將這些思想整合到一起可以幫助一些迷途羔羊緩解痛苦。

在深入介紹細節(jié)之前,請允許我簡單介紹一下自己的背景:

大約一個月之前,我辭去了原本穩(wěn)定的數(shù)據(jù)架構師工作,開始研究日新月異的比特幣生態(tài)。你會找到這篇文章,表明你已經(jīng)邁出了這一步(或者正在考慮這么做)。

簡單來說,我認為比特幣是我所見過最有趣的技術創(chuàng)新。我越了解比特幣,就越被它吸引。比特幣技術有希望改變乃至重塑如今的交互方式,使之脫胎換骨。我希望貢獻自己的一份力量。

這就是為什么我會選擇在比特幣上開發(fā)。我希望這篇文章能夠讓不熟悉閃電網(wǎng)絡生態(tài)及其潛力的開發(fā)者受益,鼓勵更多開發(fā)者為比特幣領域注入創(chuàng)造力。

老實說,關于比特幣生態(tài),我想寫的實在太多了(其中,“由能源支持的貨幣”這一概念排在第一位),但是只能擇日再談了。現(xiàn)在開始進入正題:

區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南

閃電網(wǎng)絡的架構

區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南

-圖源:lnrouter.app-

閃電網(wǎng)絡的基礎設計是利用通道實現(xiàn)節(jié)點間的一對一連接。開通通道需要存入一定數(shù)量的比特幣,該事務會記錄在比特幣區(qū)塊鏈上。然后,用戶可以使用特殊的鏈下合約在節(jié)點之間轉移通道內(nèi)的比特幣,無需提交新的事務到區(qū)塊鏈上。

實際做法是實時追蹤通道內(nèi)的余額變化。例如,你在與 Alice 開通的通道內(nèi)存入 100 satoshi,你有大約 100 satoshi (減去鏈上交易手續(xù)費)的轉賬額度,既可以直接轉給 Alice ,也可通過 Alice 間接轉給其他人。這些轉賬幾乎是即時的,因為我們只需根據(jù)每筆交易調(diào)整通道的余額。這種調(diào)整是通過在付款方和收款方之間傳遞加密消息實現(xiàn)的。

閃電應用是在閃電網(wǎng)絡(所謂的比特幣二層)上運行的。閃電應用同樣以比特幣作為支付方式,但是結算速度更快、交易費更低。

雖然我只是非常簡略地概括了閃電網(wǎng)絡協(xié)議,但是知道這些已經(jīng)足夠入門了。如果你想更詳細地了解閃電網(wǎng)絡是如何運作的,這里有一些很好的閱讀材料。小心不要沉溺在知識的海洋里,坐在電腦前讀到很晚,卻一行代碼都沒有敲。也不是說這樣一定不好,只是我們的目的還是在于實踐。另外,保證充足的睡眠也很重要。

我認為,若想了解閃電網(wǎng)絡及其節(jié)點的運作方式,更好的辦法是自己運行一個節(jié)點并弄清楚如何通過節(jié)點路由付款。雖然這個辦法需要付出更多時間和金錢,但是既有趣又長知識。1

實現(xiàn)

閃電網(wǎng)絡是開放式協(xié)議。這就意味著,閃電網(wǎng)絡有標準的消息通信和解釋方式。就像 HTTPS 和 TCP/IP 不歸任何人所有那樣,閃電網(wǎng)絡協(xié)議也是如此。任何人只要遵守標準都可以參與閃電網(wǎng)絡。不僅如此,隨著開發(fā)者不斷加固協(xié)議并增加新功能,這一標準也會持續(xù)發(fā)展。

目前有四家公司在閃電網(wǎng)絡協(xié)議開發(fā)中處于核心地位:Lightning Labs、Blockstream、ACINQ 和 Square Crypto,而且都有自己的實現(xiàn):

Lightning Labs — lnd (Go)

Blockstream — c-lighting (C)

ACINQ — eclair (Scala)

Square Crypto — Rust Lightning (Rust)

上述所有實現(xiàn)都能通過閃電網(wǎng)絡進行通信。區(qū)別在于這些實現(xiàn)的 API。本文只聚焦于 Lightning Labs 的 lnd,因為這是我最先接觸、也是了解最多的。雖然我最終選擇 Ind 有偶然成分在里面,但是不得不夸一下,Lightning Labs 的 Ind 文檔寫得很好,而且開發(fā)者能夠通過官方 Slack 頻道獲得很多幫助和支持。

請注意,下文將圍繞 Ind 展開討論,但是基本概念適用于所有閃電網(wǎng)絡實現(xiàn)。

你的開發(fā)環(huán)境

不廢話,使用 Polar 就行了。

好吧,再多說兩句。無論你是開發(fā)者還是用戶,在閃電網(wǎng)絡上進行構建的最大障礙是如何創(chuàng)建后端。我說的不只是一個錢包,因為有很多簡單快速的托管解決方案可以用。我指的是真正的后端 —— 運行比特幣和閃電網(wǎng)絡的節(jié)點。

區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南

我之所以這么說,是因為你的應用需要擁有節(jié)點的某些權限,才能完成一些重要操作,例如,通過 API/gRPC 調(diào)用創(chuàng)建發(fā)票和監(jiān)控付款。如果有節(jié)點運營者授予你節(jié)點的訪問權限,你同樣可以完成這些操作,但還是自己運營一個節(jié)點比較好。

能夠用于閃電網(wǎng)絡開發(fā)的節(jié)點必須運行兩個進程:(1)同步到比特幣區(qū)塊鏈最新區(qū)塊的比特幣客戶端;(2)已開啟通道(可以收發(fā)支付)的閃電網(wǎng)絡客戶端。

如果你使用的是普通的家用寬帶,光是同步區(qū)塊鏈就需要花費至少幾天的時間。你可以試一下 Neutrino(一款輕量級比特幣錢包),但是我聽說用它在閃電網(wǎng)絡上開發(fā)可能會導致一些問題。我沒有親身嘗試過。不管怎樣,如果你才剛開始接觸這類工具,我想最好去除那些可能會產(chǎn)生負面影響的變量。因此,如果你負擔得起,我建議你同步完整的區(qū)塊鏈就好。

如果我們對比特幣的分層進行排序,閃電網(wǎng)絡層就是比特幣的二層。正如我上文提到的,我們需要在閃電網(wǎng)絡上開啟通道來進行交易。雖然在閃電網(wǎng)絡上開啟通道不是很難,但是你需要一些計劃和協(xié)調(diào),還要付出比特幣。你當然可以質押比特幣來開啟通道,然后開始交易。但是,你沒必要承擔這種金融風險。2

暫時先別管這些。Polar 是一個很棒的工具,可以讓你在筆記本電腦上的 Docker 容器內(nèi)模擬運行這些進程。另外,它還提供一個精美的 UI 界面,為你展示網(wǎng)絡可視化效果。

區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南

-你看!是不是等不及想同步了!(Polar 界面)-

Polar 的優(yōu)點在于,當你準備好將應用轉移到測試網(wǎng)或主網(wǎng)后端時,你只需要更新一些配置即可。我已經(jīng)可以做到在本地、測試網(wǎng)和主網(wǎng)后端之間輕松切換,只需在應用中添加或注釋掉幾行代碼即可。(我最后會得到 .env 文件。當然了,測評工具不是本文的目的。)

Polar 也支持 lnd、c-lighting 和 eclair 節(jié)點。這就意味著你可以靈活嘗試其它實現(xiàn)。

再重申一遍:使用 Polar 就好。這是一種快速且簡單的入門方法。再者說,萬一你根本不喜歡在閃電網(wǎng)絡上開發(fā)呢?早日發(fā)現(xiàn)這一點,總好過在一個你不一定會使用的系統(tǒng)上浪費過多時間和金錢。話說回來,如果你發(fā)現(xiàn)自己沉迷于 Stephan Livera(知名比特幣主播)的播客,每晚收聽不可自拔,可以搭建一個更嚴肅的開發(fā)環(huán)境。

設置 Polar

區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南

點擊 “Create Network(創(chuàng)建網(wǎng)絡)”,即可在 Polar 中輕松創(chuàng)建模擬閃電網(wǎng)絡環(huán)境。你可以隨意命名這個網(wǎng)絡(我個人認為 “test(測試)” 是個聰明的選擇)并添加兩個 lnd 節(jié)點和一個 Bitcoin Core 節(jié)點。實際上,對于剛入門的人來說,這些只是最低配,之后還可以添加更多節(jié)點。你創(chuàng)建好網(wǎng)絡后就可以啟動它。首次啟動網(wǎng)絡時需要的時間可能會長一些,因為你必須下載所有 Docker 鏡像。順帶一提,你需要在自己的設備上運行 Docker。就像我之前說的,這里還是得靠自己摸索。

最后,你會看到一個類似下圖的 Polar 界面:

區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南

在上圖所示界面中,我們可以看到 Alice 和 Bob 的 Ind 節(jié)點,而且這兩個節(jié)點都與 Bitcoin Core 后端進程相連。另外還要注意的是,這時的區(qū)塊高度是 1。這是我們的創(chuàng)世塊!不同于實時區(qū)塊鏈,Polar 只有在開發(fā)和測試過程中提交交易時才會出塊。

下一步是在 Alice 和 Bob 之間創(chuàng)建一條通道,用來進行閃電付款。點擊 Alice 的節(jié)點,右側控制面板會顯示我們可以與該節(jié)點交互的不同方式。點擊 “Actions(操作)” ,我們就會看到向 Alice 的錢包充值模擬比特幣以及在 Alice 和 Bob 之間開啟通道所需的一切工具。接下來,我們先向 Alice 的錢包充值一些資金,再開啟 Alice 與 Bob 的通道吧。

點擊 “Deposit(充值)” ,接著將 100 萬 satoshi 充值進 Alice 的錢包。

區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南

如果一切按計劃進行,你就會看到區(qū)塊高度和 Alice 的錢包余額發(fā)生了變化。如果沒有,請尋求幫助。這不是你的錯。3

現(xiàn)在,我們可以在 Alice 和 Bob 之間開啟通道。現(xiàn)在,Alice 已經(jīng)有錢了,我們可以讓她開啟一個與 Bob 的 “Outgoing(轉出)” 通道。所謂的轉出通道,就是 Alice 可以通過該通道轉給 Bob 一定數(shù)量的比特幣。Alice 和 Bob 之間可以進行多筆轉賬交易,只要通道內(nèi)有余額即可。但是,請注意,該通道剛開啟時,只有 Alice 可以向 Bob 轉賬,因為可用余額都在她那里。當然了,等到 Alice 向 Bob 轉過賬之后,Bob 就可以向 Alice 轉賬了。

這種通道內(nèi)資金管理方式是為了保證雙方都具備交易能力,這就是我們所說的閃電網(wǎng)絡的 流動性。實際上,用戶只能使用通道內(nèi)的余額。更深入一點來講,只有當付款方和收款方之間的通道內(nèi)有足夠的余額(且資金流向正確)時,付款才能成功。否則付款就會失敗。如何管理閃電網(wǎng)絡中有限的流動性以及如何找到變通之法本身就是一個值得探討的話題。

坦白來說,我在使用 Polar 開啟通道時遇到過一些問題。我懷疑這是 UI 和后端之間的狀態(tài)差異導致的,但是我并不確定。有時,關閉并重啟節(jié)點(或整個網(wǎng)絡)會有幫助。完全退出并重啟 Polar 同樣有效。另外,遇到這類情況時,出門晃悠 10 分鐘可以讓你的頭腦和精神得到很好的放松。

不管是什么原因,我發(fā)現(xiàn)進行這些節(jié)點操作的最佳方式是通過 Polar 提供的 CLI。雖然 UI 不一定會顯示出變化,但是我們可以直接查詢數(shù)據(jù)庫(可以這么說4)來確定 UI 是否如實反映變化。Polar 讓這一切變得簡單了。我們現(xiàn)在就上手做吧。

首選選中 Alice 的 Ind 節(jié)點,進入 “Actions” 界面,點擊 “Terminal(終端)” 下面的 “Launch(啟動)”,接著會出現(xiàn)一個命令提示符,如下圖所示:

區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南

現(xiàn)在,我們可以使用該 Ind 節(jié)點的 lncli 工具開啟通道、創(chuàng)建發(fā)票和付款了。首先,運行下方命令來了解大致情況:

lncli --help

我們可以運行下方命令在 Alice 和 Bob 之間開啟一條余額為 10 萬 satoshi 的通道:

lncli openchannel --node_key <bob's public node key> --local_amt 100000

你會看到一個帶有 “funding_txid” 的響應,對應的是 Alice 和 Bob 廣播到我們的模擬比特幣區(qū)塊鏈上的充值交易。運行下方命令查看我們新創(chuàng)建的通道:

lncli listchannels

如果該命令返回的列表為空,請嘗試使用( “Actions” 界面下的)比特幣節(jié)點挖幾個區(qū)塊。這樣做應該有助于確認交易并開啟通道。

現(xiàn)在,我們可以通過 listchannels 響應看到 Alice 和 Bob 之間已經(jīng)成功開啟通道,且通道余額約為 10 萬 satoshi(減去交易費)。這 10 萬不到的 satoshi 就是 Alice 可以通過閃電網(wǎng)絡支付給 Bob 的可用余額。

支付流程

迄今為止,閃電網(wǎng)絡上最簡單(我相信也是最常見的)支付流程是通過發(fā)票(invoice)。發(fā)票本質上是一組帶有 “金額” 和 “收款方” 的支付指令。還有其它參數(shù)和變體可以幫助支付指令解鎖更多有趣的可能性(例如,hodl 發(fā)票和 BOLT12 提案),但是本文只關注最基本的模式。

繼續(xù)設置我們的 Polar,我們先創(chuàng)建一個發(fā)票,但是這回要用 Bob 的節(jié)點。因此,我們要啟動 Bob 的終端并運行以下命令:

lncli addinvoice --amt 100

以上命令創(chuàng)建了一個價值 100 satoshi 的發(fā)票(實際上,我在執(zhí)行這些步驟時遇到了連接錯誤。如果你也遇到同樣的問題,請停止并重啟 Bob 的節(jié)點)。我們可以通過返回的響應看到這個發(fā)票的信息:

{    "r_hash": "7d91cafaba85b6086924142dfd890f350eb53b17b80e2993d0a2ce5ccc7252f1",    "payment_request": "lnbcrt1u1ps3lu04pp50kgu4746skmqs6fyzsklmzg0x58t2wchhq8zny7s5t89enrj2tcsdqqcqzpgsp55rtlzlf5rt0z5zg34nc2rlcm9mw6nd77x45r85z6zp07qumphr7q9qyyssqzrvxdlsluaeu7esscvv8skcmaly4794j7pg9ytapmn50uukezf4xpqma9758s39wpn4pwk475dztezg4tff8xpylksl4mww57q8hj7cq7s7222",    "add_index": "1",    "payment_addr": "a0d7f17d341ade2a0911acf0a1ff1b2edda9b7de356833d05a105fe07361b8fc"}

現(xiàn)在,我們只關注 “payment_request” 部分,因為這部分數(shù)據(jù)包含 Alice 向 Bob 付款所需的一切信息,即,付款金額和收款方地址5。

如果我們切回 Alice 的節(jié)點終端,就可以得到付款請求并將它作為參數(shù)傳遞給下方命令:

lncli sendpayment --pay_req <payment_request>

結果得到:

區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南

成功。

開始你的冒險征程

區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南

這時,你應該已經(jīng)具備了足夠的基礎知識和工具,可以開始構建應用了。上圖概述了一個簡單的示例應用,使用的正是我們在 Polar 中用來創(chuàng)建并支付發(fā)票的 API 調(diào)用。這就是搭建一個最基礎的應用架構所需的一切。當然了,這只是一個例子,我們在開發(fā)過程中還會遇到許多其它問題(目前還只是開始),但是你會慢慢弄清楚自己需要什么以及如何解決這些問題。

一些額外的建議和參考:

有很多庫可以幫助開發(fā)者少寫些樣板代碼、直奔主題。就我本人而言,學習如何使用這些庫帶給我的更多是挫敗感,而非更高的效率。問題主要出在我身上。抽象確實很棒,但前提是你要對被抽象的內(nèi)容有基本了解。我在起步時還沒有領悟到這一點。我覺得 Ind 的 API 文檔學起來最容易。當我按照這個指南使用 Javascript 編寫 gRPC 客戶端時,我就已經(jīng)步入正軌了。如果你想看一個更具體的應用示例,不妨看看 Lightning Labs 構建者指南的教程。如果你熟悉教程中用到的工具 express、mobx 和 React,那么我很推薦這個教程。如果你不熟悉這些工具,你可能不會從這篇教程中得到很大幫助,但還是能夠學到一些東西。我喜歡這個教程的一個原因是,它展示了利用閃電網(wǎng)絡(和密碼學證明)構建應用可以實現(xiàn)的一些有趣功能。

最后,如果你認為本文有任何寫的不清楚或不準確之處,歡迎向我提出反饋或問題。

  1. 如果你想運行節(jié)點,Umbrel 很適合初學者。我聽說 MyNode、RaspiBolt 和 RaspiBlitz 也不錯。如果你喜歡修補軟件系統(tǒng)(或 SimCity(模擬城市游戲)),那么運行節(jié)點往壞了說是一種有趣的消遣,往好了說是一場高成本且無休止的優(yōu)化游戲(需要付出真金白銀的那種)。
  2. 你還可以在測試網(wǎng)上進行實驗,通過比特幣水龍頭獲得一些實驗用比特幣。這些幣一文不值,但是當個守財奴的體驗會很有趣。如果你對自己配置和管理節(jié)點不感興趣,可以使用 Voltage 之類的服務。Voltage 是即用即付的云上服務,支持測試網(wǎng)和主網(wǎng)節(jié)點。
  3. 好吧,我們不能百分之百確定。謹慎起見,請查看 lnd Slack 的開發(fā)者頻道。我在這里遇到過很多構建并維護這些工具的開發(fā)者。你可能會看到我!有人可能經(jīng)歷過你正在面臨的問題。如果沒有,那就太棒了 —— 大家都能從你的問題中有所收獲。
  4. 區(qū)塊鏈是一個公共數(shù)據(jù)庫,每個人都有 root 權限。如需了解更多信息,請查看:https://balajis.com/yes-you-may-need-a-blockchain/
  5. 關于發(fā)票中其它字段的詳細解釋,可以查看這篇總結。如需了解更多關于底層合約的信息,請閱讀這篇文章。

以上就是區(qū)塊鏈掃盲:閃電網(wǎng)絡應用開發(fā)速成指南的詳細內(nèi)容,更多關于閃電網(wǎng)絡應用開發(fā)速成指南的資料請關注腳本之家其它相關文章!

聲明:文章內(nèi)容不代表本站觀點及立場,不構成本平臺任何投資建議。本文內(nèi)容僅供參考,風險自擔!

你可能感興趣的文章

幣圈快訊

  • 數(shù)據(jù):過去24小時全網(wǎng)爆倉4.51億美元,多單爆倉5975.06萬,空單爆倉3.91億

    2025-06-10 16:00
    ChainCatcher消息,據(jù)Coinglass數(shù)據(jù),過去24小時全網(wǎng)爆倉4.51億美元,多單爆倉5975.06萬,空單爆倉3.91億。其中比特幣多單爆倉958.95萬美元,比特幣空單爆倉1.96億美元,以太坊多單爆倉1637.83萬美元,以太坊空單爆倉9574.08萬美元。此外,最近24小時,全球共有107499人被爆倉,最大單筆爆倉單發(fā)生在Binance-BTCUSDT價值405.96萬美元。
  • PundiAI與ElizaOS合作,為開發(fā)者提供去中心化數(shù)據(jù)和更智能的AI代理

    2025-06-10 15:55
    ChainCatcher消息,PundiAI宣布與ElizaOS建立合作伙伴關系,旨在為開發(fā)者提供去中心化數(shù)據(jù)訪問和更智能的AI代理工具。通過結合PundiAI的去中心化技術與ElizaOS的開源AI代理平臺,雙方希望為開發(fā)者創(chuàng)造一個更加高效、安全和靈活的開發(fā)環(huán)境。
  • 李澤楷旗下MoneyHero將拓展香港數(shù)字資產(chǎn)財富管理服務

    2025-06-10 15:51
    金色財經(jīng)報道,李澤楷旗下MoneyHero宣布將拓展香港數(shù)字資產(chǎn)財富管理服務,MoneyHero表示,隨著香港對數(shù)字資產(chǎn)的興趣不斷提升,市場對對多樣化、合規(guī)金融服務的需求亦日益增長,此舉旨在讓平臺用戶可以比較更多元化的理財產(chǎn)品。
  • OKX將下線XUSDT、BSVUSDT等永續(xù)合約

    2025-06-10 15:47
    6月10日消息,據(jù)官方公告,為了防范市場風險,給用戶提供良好的交易體驗,OKX將于2025年6月12日下午4:00(UTC8)下線以下永續(xù)合約:XUST、BSVUSDT、GUNUSDT、BRUSDT及SWELLUSDT。官方提示,由于合約下線前行情可能會劇烈波動,建議用戶通過降低實際杠桿倍數(shù)或提前平倉等方式做好風險控制。
  • 分析師:美聯(lián)儲近期不太可能降息

    2025-06-10 15:47
    金色財經(jīng)報道,普信集團策略師蒂姆?默里表示,在關稅相關的不確定性消退或勞動力市場出現(xiàn)明顯惡化之前,美聯(lián)儲將繼續(xù)按兵不動。默里預計短期內(nèi)不會出現(xiàn)「美聯(lián)儲認沽期權」,即美聯(lián)儲降息救市。美聯(lián)儲的政策制定者知道,降低利率并不是解決不確定性的良方??紤]到關稅將推高通脹的風險,美聯(lián)儲也不愿降息。默里預計美聯(lián)儲將堅持其依賴數(shù)據(jù)的做法,避免提供前瞻指引,并避免發(fā)出任何「政治信息」。
  • 查看更多