雷電服務(即監(jiān)控和尋址服務)的引入旨在通過以下方式提升雷電網(wǎng)絡的整體用戶體驗:
a) 在網(wǎng)絡中尋找較短或成本較低的資金傳輸路徑
b) 通過監(jiān)視開放的支付通道,讓用戶能夠安全地進入離線狀態(tài)
目前,雷電服務包(Raiden Service Bundle,RSB)注冊表計劃列出所有提供監(jiān)視和/或路徑搜索服務的供應商。
雷電服務的開發(fā)進展
監(jiān)控服務(MS)
監(jiān)控服務(譯者注:類似于 “瞭望塔服務”)能夠在用戶離線之時監(jiān)控開放的支付通道。如果一方在另一方離線時關閉支付通道(或是在一方提出 關閉通道 的請求后,在超出結算時限 80% 之時另一方仍未作出響應),那么監(jiān)視服務會將最新的賬戶余額證明發(fā)送給支付通道的智能合約,從而保證支付通道能夠正確結算。
詳解首個監(jiān)視服務(MS)實現(xiàn)的工作步驟
· 當 Alice 想讓她的某個支付通道受到監(jiān)控時,她可以將 RDN 代幣存入 UserDeposit 合約。
· 然后,她將余額證明(包括代幣網(wǎng)絡類型、通道 ID、nonce 、余額的哈希值,以及付給監(jiān)視服務的報酬)發(fā)送至公共聊天室,MS 會讀取聊天室里的余額證明。
· 每當該支付通道的狀態(tài)發(fā)生改變時,MS 都會收到更新通知,由于其收到的余額證明都是經(jīng)過哈希計算的,因此不會泄露賬戶的實際余額。
· MS 會接收上述信息并監(jiān)聽與該支付通道相關的鏈上活動。MS 可以選擇僅接收獎勵超過某個下限的監(jiān)控請求。
· 一旦通道關閉,MS 會給通道參與者一定的時間來自行更新通道狀態(tài),然后才會根據(jù)接收到的余額證明來調用 updateNonClosingBalanceProof 函數(shù)。
· 接著可以調用 settleChannel 函數(shù)來計算兩位通道參與者的正確代幣分配情況。
· 不管是 Alice 還是她的交易對手 Bob 都可以隨時調用 settleChannel 函數(shù)來執(zhí)行代幣分配。只有用戶所提交的余額數(shù)值與此前所提供的哈希值相匹配時,函數(shù)才會執(zhí)行。
· 該函數(shù)將根據(jù)鏈下轉賬完成后的余額情況來正確執(zhí)行代幣分配。
· 在成功提交賬戶余額的哈希值之后,MS 可以向 Alice 存入 RDN 代幣的智能合約索要鏈上付款。(詳見 claimReward 函數(shù))。
為了盡量避免監(jiān)視同一支付通道的 MS 之間出現(xiàn)沖突,結算階段分為三個部分:
· 首先,只有未關閉通道的參與者可以更新通道狀態(tài)。
· 其次,每個 MS 都會收到一個偽隨機數(shù)據(jù)塊,然后它們就可以代表用戶更新通道狀態(tài)(詳見 firstBlockAllowedToMonitor)。每個支付通道的指令都是獨一無二的,因此從長遠角度看,每個 MS 率先響應的概率都相同。
· 最后,只要支付通道未結算完畢,所有 MS 都可以更新通道狀態(tài)。
如果能降低不同 MS 之間發(fā)生沖突的概率,效率就會得到提高,進而降低用戶在監(jiān)視服務方面的總成本。
更多關于 MS 的內容和答疑請參閱該文章。
尋路服務(PFS)
尋路服務可以幫助用戶在網(wǎng)絡中搜索成本最低或最短的付款路徑。路徑搜索服務依賴于網(wǎng)絡中的智能合約以及調解節(jié)點所提供的信息等相關數(shù)據(jù),如需要收取的調解費用以及可用通道容量。在當前的設計中,用戶能選擇最短或成本最低的路徑。隨著越來越多的調解節(jié)點分享它們的更新情況,路徑搜索服務的質量將逐漸得到提升。
詳解首個路徑搜索服務(PFS)實現(xiàn)的工作步驟
· 為了減少摩擦,雷電網(wǎng)絡客戶端的目標是在啟動支付流程前先找到一條可行的付款路徑。
· 因此,必須大致了解整個網(wǎng)絡的當前狀態(tài),即支付通道的當前容量以及節(jié)點分布情況。這就好比現(xiàn)實世界里的路線規(guī)劃,你需要掌握這個街區(qū)的地圖以及從你家到目的地的交通狀況。
· 智能合約內僅存儲有關支付通道分布情況、存款和取款的信息。這就意味著,節(jié)點并不知道除己方通道以外的其它通道的容量。再打個比方,節(jié)點只知道這里有一條路,但它并不知道這條路是否足夠寬,可以讓我們的車通過。
· 因此,首個 PFS 實現(xiàn)會追蹤網(wǎng)絡的當前狀態(tài)(容量變化及通道分布)并提供路徑,以此賺取以 RDN 代幣支付的報酬。
· 節(jié)點可以將容量的變化情況發(fā)送至一個公共的 matrix room ,后者會將當前狀態(tài)告知 PFS 并為它們宣傳支付通道。目前,這是默認選項。
· 如果交易雙方都將上述容量變化情況發(fā)送給那個公共 matrix room ,PFS 只會考慮一條支付通道,并將接收到的容量情況反映在路由算法中。
· 如果一個節(jié)點想要保持私密性并且不想?yún)⑴c調解付款,其可以選擇不發(fā)送容量變化情況。這樣一來,該節(jié)點就可以避免參與調解,其容量也會被認為是 0。
· 當前的設置是,節(jié)點可以從雷電服務包注冊表上所列的服務提供商戶中選擇一位來提供 PFS 服務。
· 為便于客戶端向 PFS 請求路徑,PFS 將通過 HTTP 提供一個 API。除了路徑請求之外,雷電網(wǎng)絡節(jié)點還會發(fā)送一個引用 UserDeposit 合約中 RDN 代幣存款的簽名欠條。
· 同一節(jié)點的后續(xù)請求會增加欠條的數(shù)量,在此期間,PFS 可以一直保持等待狀態(tài),直到客戶端要兌現(xiàn)不斷增加的欠條余額為止。
PFS 實現(xiàn)在效率和隱私的權衡中偏向效率一方。節(jié)點可以選擇退出并保持匿名狀態(tài),但這樣一來就不能成為調解節(jié)點了。
如果您想了解更多有關訊息,請查閱雷電網(wǎng)絡路徑搜索服務(Raiden Pathfinding Service)規(guī)范。
誰有資格提供雷電服務?
從技術上來說,任何人都可以提供雷電服務。只需一臺運行速率較高的服務器即可。此外,服務提供者們需要一個用來收費的以太坊地址以及一個以太坊 RPC 端點。雖然從技術角度來說,不需要自己運行一個以太坊全節(jié)點,但是我們強烈建議,還是要跑一個全節(jié)點。
此外,服務提供者們還需要在 RSB 注冊表中質押 RDN。我們很快就會發(fā)布另一篇文章來詳細講解質押流程。
RSB 注冊表有什么作用?
RSB 注冊表列出了所有有資格在雷電網(wǎng)絡上提供服務的地址。質押這種途徑可以避免垃圾信息以及服務提供者零成本提供劣質服務等情況。
結語
請注意,對于 MS 和 PFS 而言,上述模型僅僅是其中一種可能的實現(xiàn),服務提供者馬上就可以用起來。我們也可以把其它策略、費用模型及算法納入考慮范圍內。我們期待看到在不久的將來,雷電服務能夠集眾家之所長,在各個領域大放異彩。
來源:?以太坊愛好者