以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > 幣贏 > Info

科普 | 如何開發出好用的輕量級客戶端:從以太坊狀態說起_DEFI:TRIN

Author:

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

科普|如何開發出好用的輕客戶端,Part-1

科普|如何開發出好用的輕客戶端,Part-2

大多數錢包軟件都依賴于Infura等中心化提供商。如果我們想要別出心裁一些,就需要開發一個可以在低資源設備上運行的新型輕客戶端。

在本文中,我們將介紹以太坊狀態是什么,以及如何讓輕客戶端輕而易舉地獲得它。

以太坊狀態

當我們提到“狀態”時,我們指的是所有賬戶信息以及所有存儲在智能合約中的數據。目前,狀態包括:

1.32億個賬戶大約10GB的賬戶數據大約30GB的合約storage數據大約60GB的Trie節點經常性數據我們先來看一下客戶端目前是如何訪問狀態的。

同步

以太坊節點需要訪問完整的狀態才能處理新挖出的區塊。我們可以通過執行從創世塊開始到鏈首塊的每個區塊來從頭計算出狀態。通常情況下,我們不會采用這個方法,因為計算成本太高。

客戶端傾向于直接從其它完全同步的客戶端那里獲取完整的狀態副本。雖然不同的客戶端執行該操作的具體方式不同,但無論是哪種客戶端,在首次上線或離線一段時間后再次上線的情況下,通常都要花費一段時間同步至最新區塊。

美國說唱歌手Megan Thee Stallion與Cash App合作發布比特幣科普視頻:美國說唱歌手Megan Thee Stallion與由Square開發的移動支付服務Cash App合作發布了一段名為“Bitcoin for Hotties”的視頻。該視頻從她的角度解釋了什么是比特幣,為什么比特幣有價值等內容。Megan Thee Stallion在Instagram上擁有超過2410萬粉絲,在 Twitter上擁有640萬粉絲。(Bitcoin News)[2021/8/8 1:41:10]

同步可能需要花費很多時間。如果你使用自己的節點與區塊鏈交互,這會是一大缺陷。要讓客戶端一直保持同步狀態,你不僅需要花時間等待客戶端同步,還需要消耗計算機的計算和存儲資源。

我們的解決方案是專門針對資源受限的設備而設計的,可以一舉解決上述兩個問題。我們的輕客戶端在運行時只需消耗最少的CPU/RAM/HDD/帶寬資源,而且可以保證永遠在線。

當然了,不同的設備之間存在差異,甚至有可能出現無法承受基礎負載的情況。為了應對這一情況,我們正在努力免去完全同步的需求。在我們設計的模型下,客戶端只需要準確獲得鏈首塊的信息即可。

歐易OKEx將于3月18日推出DeFi系列科普視頻:據歐易OKEx官方消息顯示,歐易OKEx將正式推出DeFi系列科普視頻《歐易DeFi20講》,本系列節目由歐易OKEx亞太區CEO馬克金主講。該視頻首期將于3月18日11:00(HKT)推出,用戶可以在歐易OKEx官方學院、金色財經觀看。

《歐易DeFi20講》主要包含DeFi入門指南、全景解讀DeFi生態及如何參與DeFi三個篇章,可以輕松使用戶了解DeFi原理,洞察DeFi價值,掌握DeFi熱點,更多詳情請關注歐易OKEx官方學院。[2021/3/18 18:55:59]

我們的最終目標是構建一個在首次安裝或離線一段時間后再次上線能夠立即使用的客戶端。這個客戶端只需能訪問正確的數據即可。

按需狀態可得性

在如今的DevP2P以太坊協議中,有一個名為GetNodeData的消息。它可以用來檢索以太坊狀態的任意部分。我們已經在Trinity中使用該網絡消息來開發“Beam”同步模式并證明了其可行性。這是我們進行的基礎研究之一,旨在證明這種新型輕客戶端是可以實現的。

火幣推出《一分鐘讀懂DeFi》系列科普視頻:據官方消息,8月24日,火幣推出《一分鐘讀懂DeFi》系列科普視頻,并與微博財經合作冠名播出,布道DeFi認知,助力行業發展《一分鐘讀懂DeFi》是由火幣成長學院打造的業內首個系統全面講解DeFi的系列科普動畫,繼推出《區塊鏈100問》后的再續佳作。《一分鐘讀懂DeFi》系列動畫對DeFi的發展進行系統梳理,適合想要由淺入深、全面系統了解區塊鏈DeFi的人們輕松了解DeFi。目前視頻已由火幣網官方微博發布。[2020/8/24]

遺憾的是,當前的DevP2P以太坊網絡并不合適用于輕客戶端用例,因為它需要每個節點都能存儲超過40GB的狀態數據,并提供狀態的任意部分。無法響應這些狀態數據請求的節點不太可能維持健康的對等連接。

按需狀態訪問模式

當前網絡的設計是同步完整狀態。GetNodeData消息適合我們的按需狀態檢索實驗只是一個巧合。為了讓客戶端能夠同步完整的狀態,高效的訪問模式是按順序遍歷數據,獲得連續的大數據塊。然而,在錢包用例以及我們的新型輕節點用例中,訪問狀態的需要需要很大程度上是隨機的。

動態 | 人民日報官方微博科普區塊鏈 強調區塊鏈不等于比特幣:人民日報官方微博今早發表9圖科普區塊鏈。其中涉及區塊鏈的特點有:1、安全;2、不可篡改;3、可訪問;4、無第三方。區塊鏈對未來的影響:1、不需繁瑣個人證明;2、看病避免反復檢查;3、旅行消費更加便捷;4、交易無需第三方。同時強調,區塊鏈不等于比特幣。比特幣只是區塊鏈技術的一種應用,區塊鏈還有醫療衛生、食品安全、版權保護等諸多應用領域。[2019/10/28]

錢包訪問狀態的主要方式是通過以下JSON-RPC方法:

eth_getBalance用來檢查賬戶余額eth_call用來查詢合約數據eth_getTransactionCount和eth_estimateGas用來構建交易eth_getBalance和eth_getTransactionCount僅從主要賬戶Trie中讀取值。因此,可以通過調用該方法獲得Trie上現有的1億多個賬戶中任意一個地址的情況。

eth_call和eth_estimateGas都涉及實際的EVM執行。EVM執行可以從1億多個賬戶中的任意一個及其底層合約存儲Trie中讀取數據。

動態 | 浙江衛視節目科普支付寶區塊鏈防偽溯源產品:昨日,在浙江衛視播出的科普綜藝欄目《智造將來》現場,支付寶首次展示了支付寶區塊鏈防偽溯源產品,以接地氣的方式公開向大眾展示區塊鏈在生活中的應用。[2019/3/4]

我們發現,錢包只需讀取少量數據,而且讀取的需要是隨機的。這在根本上與同步完整狀態不同,因此這兩個用例不太可能通過同一個解決方案來解決。

我們需要解決的問題

新的網絡需要解決當前網絡存在的一些缺陷。

如何分擔并降低存儲壓力

這個網絡上的節點要能為存儲完整狀態貢獻少量存儲空間。我們想讓網絡中的每個節點存儲一小部分狀態,而非完全復制所有狀態。有了足夠多的節點,整個網絡就可以輕而易舉地以極高的復制因子存儲所有狀態。

如何找到你需要的狀態

由于每個節點只需存儲小部分狀態,我們再也不能盲目地向網絡中的任意節點請求數據。因此,網絡需要一個節點發現機制,以便節點獲取所需數據。

如何確保數據永遠是最新的

不同于可以構建成只能添加型文件的區塊鏈歷史記錄,以太坊狀態是持續變化的。每個交易都會導致賬戶余額和合約存儲發生變化,這些更新需要在網絡中廣播。

如何從網絡中讀取數據

重要的是,客戶端要能高效地從網絡中讀取數據。調用eth_estimateGas將根據最新的狀態根預測執行交易,來確定交易需要消耗的gas。如果是一個只涉及兩個賬號的簡單轉賬交易,所需的數據量相對較小。然而,如果是與智能合約交互并且需要用到合約存儲的復雜交易,客戶端需要從數據庫讀取的數據量則大得多。

假設一次網絡往返需要100ms,那么一筆需要100個狀態部分的交易需要花費大約10秒時間來估算gas使用量。如果延遲太久,一些操作可能需要花費過多時間才能完成,這會大幅降低網絡的可用性。

如何解決合約存儲失衡問題

賬戶Trie在設計上是平衡的,但合約存儲不是。這就導致合約存儲很難處理。

潛在解決方案

人們正在積極研究按需狀態可得性。目前,我們還不清楚該研究的未來方向,但是我們目前主要聚焦于兩個不同的方法。

GetNodeData風格的原生KademliaDHT

我們可以采用的最簡單的解決方案之一就是,采用與GetNodeData相同的運作方式,但是僅要求每個節點存儲距離自己最近的數據,而非所有數據。Trie上的每個節點都有一個哈希值,我們可以使用這些哈希值將Trie數據與DHT鍵空間關聯起來。你可能還記得,KademliaDHT網絡有一個新特性:遍歷鍵空間只需O(log(N))。

這個方法的缺陷在于效率和速度。存儲由單個節點哈希哈希作為鍵的Trie數據需要存儲大量中介Trie節點,這會導致網絡需要存儲的數據總量翻倍。

這個方法也會讓數據檢索變得低效。通過該結構查找數據時,你必須從狀態根開始遍歷Trie節點。對于賬戶Trie來說,這平均需要7次查詢,才能獲得實際的賬戶數據。

這個方法確實具有很大的優勢。它徹底避開了合約存儲失衡問題,因為各個Trie節點的哈希值是隨機的,因此數據會自動呈隨機分布。再進一步來看,如果網絡大到足以存儲完整的6TB存檔歷史,這個網絡最終將變成一個歸檔節點。

這個方法的另一個主要優勢是,可以免去對證明的需求。我們直接構建Trie和所有中間節點,因此無需相關的默克爾證明。

目前,我們正在努力確定這個方法是否能夠達到性能要求。

葉子節點和證明

另一個方法是將Trie的葉子節點組成共享同一條基礎路徑的連續的塊。各個節點會存儲KademliaDHT網絡中離自己最近的Trie路徑“周圍”的所有葉子節點。對于高度平衡的賬戶Trie來說,這個方法非常有吸引力。

通過Trie路徑處理數據,我們無需遍歷Trie,訪問葉子數據的復雜度將下降到O(1)。如果你還記得的話,GetNodeData風格的原生方法平均需要7次網絡往返,才能訪問存儲在Trie葉子節點中的數據。然而,本節所介紹的方法在性能上的優勢非常重要,而且是實現網絡可用性必不可少的。

這個方法的優勢也是有代價的。確保數據是最新的會極大提高復雜性。有很多方法可以做到這點,但是每個方法都有權衡取舍。雖然數據可以就地更新,但是這需要每個節點都進行昂貴的計算。或者,每次挖出一個新的區塊后,更新后的證明都會廣播至全網節點。這些方法都在計算和帶寬之間進行了權衡取舍。但無論是計算還是帶寬,這兩個在我們眼中都是稀缺資源。

我們的研究結果將指明我們的新網絡要采取的發展方向。

本系列的下一篇文章應該是最后一篇介紹性的材料。我們將檢視這種新型的客戶端實際長什么樣,以及我們如何理解它的使用方式。我們將提供概要的路線圖,說明我們將如何實現它;以及,我們所做的一切與“無狀態以太坊”有何關聯。

原文鏈接:https://snakecharmers.ethereum.org/the-winding-road-to-functional-light-clients-part-3/作者:PiperMerriam翻譯&校對:閔敏&阿劍

Tags:TRIEFIDEFIDEFTRINnSights DeFi TraderDeFiChainDefi Factory

幣贏
Charles Hoskinson等人表示愿意幫助說唱歌手Soulja Boy發幣_AIN:Chain

美國說唱歌手DeAndreCortezWay近日發推稱,“誰可以幫助我使SouljaCoin成為真實的產品,又不會與SEC等部門產生任何法律糾紛……就像真實和合法的問題一樣.

1900/1/1 0:00:00
加密分析師:比特幣頂部即將出現,預計為68710.15美元,隨后或將面臨70%的大回調_AVE:比特幣sv發行價

昨日,一位化名為DavetheWave的加密分析師在推特表示,牛市頂部可能即將出現。這位分析師在2019年曾準確預測比特幣會從11600美元暴跌至6400美元.

1900/1/1 0:00:00
愛沙尼亞財政部正收緊加密許可證監管,已獲許可公司將重新提交申請_COIN:COI

據Cointelegraph2月5日消息,愛沙尼亞財政部正尋求制定更嚴格的加密許可證制度。愛沙尼亞財政部早在1月份就發布了立法草案,收緊了該國加密行業監管力度.

1900/1/1 0:00:00
數字貨幣寫進多地“十四五”規劃綱要草案 專家建議擴大數字人民幣試點范圍_數字人:aia幣區塊鏈

來源:證券日報,作者:包興安近日,地方“兩會”陸續召開,各地新一年的政府工作報告接連發布。作為“十四五”開局之年,各地如何謀劃布局2021年的經濟發展工作備受關注.

1900/1/1 0:00:00
法律分析 | 無權處分人轉讓比特幣,第三人可以善意取得嗎?_COIN:OIN

|合規聯盟原創出品?| 近年來,比特幣的投資者呈現出多元化。除了自然人投資者,一些公司的股東多人共同持有一定數量的比特幣也屢見不鮮。即多人共有一定數量的比特幣,也是常見的持有比特幣形式.

1900/1/1 0:00:00
魚池正式宣布支持EIP-1559_門羅幣:CPOOL

2月26日,魚池發布題為《站在歷史的正確一邊:EIP-1559》的文章,表示正式支持EIP-1559提案。文章提到,社區和核心開發人員都支持不斷發展的以太坊,包括EIP-1559.

1900/1/1 0:00:00
ads