加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads

三分鐘學會閃電網絡應用開發_比特幣:ICE

Author:

Time:1900/1/1 0:00:00

原文標題:《干貨|閃電網絡應用開發速成指南》,作者MichaelRhee

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

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

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

大約一個月之前,我辭去了原本穩定的數據架構師工作,開始研究日新月異的比特幣生態。你會找到這篇文章,表明你已經邁出了這一步。

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

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

老實說,關于比特幣生態,我想寫的實在太多了,但是只能擇日再談了。現在開始進入正題:

閃電網絡的架構

-圖源:lnrouter.app-

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

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

Bitpanda在宣布裁員三分之一的三周前曾表示無大規模裁員計劃:7月2日消息,加密貨幣和大宗商品交易平臺Bitpanda此前曾告訴其員工,在經濟低迷時期不會進行大規模裁員,而就在三周后,該公司就宣布了進行大規模裁員的消息。

5月31日的Slack截圖顯示,該公司首席產品官Lukas Enzersdorfer-Konrad曾試圖消除該公司將裁員和停止招聘的“傳言”。

Enzersdorfer-Konrad稱:“Bitpanda內部不會有任何形式的大規模裁員。我們還沒有達到極限,并將繼續招聘,直到我們需要的職位都招滿為止。”

他當時表示,該公司“資金非常充足”,沒有流動性問題。同時也指出該公司2022年的財務業績“低于預算”,但他表示,這是由宏觀經濟條件造成的,包括供應危機和俄烏沖突。這位高管敦促員工專注于產品和技術基礎設施的改善,為“下一輪牛市”做準備。

一位Bitpanda發言人日前對此發表評論稱:“在公司宣布重組的三周前,我們還沒有這個計劃,而且我們一直在向員工透明地傳達這些信息。”他補充說:“由于法律限制,我們無法公開溝通,在官方宣布前幾天,我們才做出了這個艱難的決定。”Bitpanda表示,它正在盡最大努力支持那些受到重組影響的員工。

此前6月25日消息,Bitpanda宣布裁員,員工人數將削減至大約730人。雖然具體裁員人數暫未公布,但據LinkedIn數據,解雇的全職和兼職員工共計約277人。(The Block)[2022/7/2 1:46:13]

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

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

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

調查:近三分之一英國投資者認為已錯過比特幣投資良機:Parliament Street智庫發布一項針對英國投資者的最新調查顯示,近三分之一的英國投資者表示,他們不會投資比特幣或其他加密貨幣,他們認為現在投資加密貨幣太晚了,覺得已錯過了比特幣的投資良機。(Decrypt)[2021/3/11 18:34:29]

實現

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

目前有四家公司在閃電網絡協議開發中處于核心地位:LightningLabs、Blockstream、ACINQ和SquareCrypto,而且都有自己的實現:

LightningLabs—?lnd?(Go)

Blockstream—?c-lighting?(C)

ACINQ—?eclair?(Scala)

SquareCrypto—?RustLightning?(Rust)

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

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

你的開發環境

不廢話,使用?Polar?就行了。

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

Yearn.finance季度報告:三分之二收入來自yUSD vault:Yearn Finance(YFI)發布了第一份非正式季度報告,報告稱,Yearn Finance協議該季度的凈收入為379萬美元,其中大部分來自yVault的產品。yUSD vault占總收入的68%,是最大的收入來源。9月份引入的yETH vault在這段期間產生了54.5萬美元的收益,但為了降低風險和損失很快將其暫停。yETH vault仍然對存款人關閉,其收益不足1%,但是Yearn將在即將發布的第二版vault中重新推出yETH vault。報告指出,這些 vault的大部分收入來自于0.3%的提款費,并表示新的收費結構將很快實施。報告顯示,Yearn Finance總計30.6萬美元的運營支出中,行政薪酬和安全支出占比分別約為56%和27%。除了對生態系統貢獻者的一些資助外,還從費用中支付了一些審計和漏洞賞金。(Cointelegraph)[2020/12/10 14:46:33]

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

能夠用于閃電網絡開發的節點必須運行兩個進程:同步到比特幣區塊鏈最新區塊的比特幣客戶端;已開啟通道的閃電網絡客戶端。

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

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

動態 | Lisk(LSK)已將區塊獎勵降低了三分之一:Lisk(LSK)已于區塊高度7451520將其區塊獎勵降低了三分之一,由每個區塊3 LSK降至2 LSK同時將通脹率降低至4.58%。(BeInCrypto)[2019/10/16]

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

-你看!是不是等不及想同步了!-

Polar的優點在于,當你準備好將應用轉移到測試網或主網后端時,你只需要更新一些配置即可。我已經可以做到在本地、測試網和主網后端之間輕松切換,只需在應用中添加或注釋掉幾行代碼即可。

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

再重申一遍:使用?Polar?就好。這是一種快速且簡單的入門方法。再者說,萬一你根本不喜歡在閃電網絡上開發呢?早日發現這一點,總好過在一個你不一定會使用的系統上浪費過多時間和金錢。話說回來,如果你發現自己沉迷于?StephanLivera的播客,每晚收聽不可自拔,可以搭建一個更嚴肅的開發環境。

設置Polar

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

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

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

近三分之二英國人不會支持由英國央行發行的加密貨幣:據bitcoin news援引英國“每日快報”報道,一項調查顯示,近三分之二的英國人不會支持央行發行的加密貨幣。調查還顯示,93%的英國人已經聽說過比特幣,這一數字在今年1月份為91%,2017年11月為80%。然而,只有三分之一的受訪者承認,如果加密貨幣受到監管,將更有可能投資加密貨幣。這項調查的結果與今年早些時候針對英國金融專業人士的調查形成了對比,當時的研究表明,英國超過一半的已投資加密貨幣的金融專業人士打算在今年購買更多的加密貨幣。[2018/4/19]

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

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

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

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

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

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

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

首選選中Alice的Ind節點,進入“Actions”界面,點擊“Terminal”下面的“Launch”,接著會出現一個命令提示符,如下圖所示:

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

lncli--help

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

lncliopenchannel--node_key--local_amt100000

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

lnclilistchannels

如果該命令返回的列表為空,請嘗試使用比特幣節點挖幾個區塊。這樣做應該有助于確認交易并開啟通道。

現在,我們可以通過listchannels響應看到Alice和Bob之間已經成功開啟通道,且通道余額約為10萬satoshi。這10萬不到的satoshi就是Alice可以通過閃電網絡支付給Bob的可用余額。

支付流程

迄今為止,閃電網絡上最簡單支付流程是通過發票。發票本質上是一組帶有“金額”和“收款方”的支付指令。還有其它參數和變體可以幫助支付指令解鎖更多有趣的可能性,但是本文只關注最基本的模式。

繼續設置我們的Polar,我們先創建一個發票,但是這回要用Bob的節點。因此,我們要啟動Bob的終端并運行以下命令:

lncliaddinvoice--amt100

以上命令創建了一個價值100satoshi的發票。我們可以通過返回的響應看到這個發票的信息:

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

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

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

lnclisendpayment--pay_req

結果得到:

成功。

開始你的冒險征程

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

一些額外的建議和參考:

有很多庫可以幫助開發者少寫些樣板代碼、直奔主題。就我本人而言,學習如何使用這些庫帶給我的更多是挫敗感,而非更高的效率。問題主要出在我身上。抽象確實很棒,但前提是你要對被抽象的內容有基本了解。我在起步時還沒有領悟到這一點。我覺得Ind的?API文檔學起來最容易。當我按照這個指南使用Javascript編寫gRPC客戶端時,我就已經步入正軌了。

如果你想看一個更具體的應用示例,不妨看看LightningLabs構建者指南的教程。如果你熟悉教程中用到的工具express、mobx和React,那么我很推薦這個教程。如果你不熟悉這些工具,你可能不會從這篇教程中得到很大幫助,但還是能夠學到一些東西。我喜歡這個教程的一個原因是,它展示了利用閃電網絡構建應用可以實現的一些有趣功能。

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

感謝閱讀。

加油。

腳注

如果你想運行節點,Umbrel?很適合初學者。我聽說?MyNode、RaspiBolt?和?RaspiBlitz?也不錯。如果你喜歡修補軟件系統),那么運行節點往壞了說是一種有趣的消遣,往好了說是一場高成本且無休止的優化游戲。

你還可以在測試網上進行實驗,通過比特幣水龍頭獲得一些實驗用比特幣。這些幣一文不值,但是當個守財奴的體驗會很有趣。如果你對自己配置和管理節點不感興趣,可以使用?Voltage?之類的服務。Voltage?是即用即付的云上服務,支持測試網和主網節點。

好吧,我們不能百分之百確定。謹慎起見,請查看?lndSlack?的開發者頻道。我在這里遇到過很多構建并維護這些工具的開發者。你可能會看到我!有人可能經歷過你正在面臨的問題。如果沒有,那就太棒了——大家都能從你的問題中有所收獲。

區塊鏈是一個公共數據庫,每個人都有root權限。如需了解更多信息,請查看:https://balajis.com/yes-you-may-need-a-blockchain/

關于發票中其它字段的詳細解釋,可以查看這篇總結。如需了解更多關于底層合約的信息,請閱讀這篇文章。

Tags:比特幣ICELICALICE買比特幣賺了500萬存到銀行卡違法嗎RICEPublic GoodsALICE幣

酷幣交易所
斯蒂芬·庫里:加密貨幣還處于起步階段,目前重點是教育_FTX:ITZ

9月13日消息,NBA球星斯蒂芬·庫里成為FTX品牌大使后接受專訪時表示:我們顯然還處于起步階段,加密領域已經發展了一段時間,但大眾仍不太了解它會如何成為下個時代的組成部分.

1900/1/1 0:00:00
【Deribit期權市場播報】0912——本周期權總結_ANK:ANKR

播報數據由Greeks.liveDataLab格致數據實驗室和Deribit官網提供。本周伊始,比特幣氣勢如虹突破50000美元,但是正如播報中提到的,主要期限IV未見明顯上漲,突破關鍵點位也未.

1900/1/1 0:00:00
Rangers Protocol:支持NFT及復雜應用的開發以及資產跨鏈_RAN:GER

RangersProtocol?是用于由RangersEngine?和?Rangers??Connector組成.

1900/1/1 0:00:00
CertiK干貨分享 | 全面詳解工作證明機制(PoW)和權益證明機制(PoS)_POW:比特幣

共識機制是我們在了解區塊鏈后常常會聽到的詞匯。但如果你和朋友聊天,滿嘴PoW、PoS,那你的朋友也許會是這樣:一方面,作為同樣可保障區塊鏈網絡安全且擁有驗證交易功能的共識機制,它們都可以使用符合.

1900/1/1 0:00:00
烏克蘭議會加密貨幣顧問:烏克蘭未禁止加密貨幣挖礦,也不需要許可證_加密貨幣:虛擬資產

9月13日消息,烏克蘭目前對加密貨幣挖礦的監管仍未確定。烏克蘭議會一位主要的加密貨幣事務顧問KonstantinYarmolenko稱,盡管不受監管,但也不禁止加密貨幣挖礦.

1900/1/1 0:00:00
蘋果App Store又“作妖”,以太坊錢包Gnosis因NFT功能無法發布_APP:gno幣價格

本文來自?Decrypt,原文作者:JeffBensonGnosis可能必須刪除?NFT?功能才能獲得AppleAppStore的批準。其他錢包也表示曾遭遇相關發布問題.

1900/1/1 0:00:00
ads