EOSIO Dawn 3.0到底發生了那些變化?
以下是正文:
距離上次發布EOSIO Dawn 2.0過去了四個月時間,這次EOSIO Dawn 3.0到底給我們帶來了那些變化?下面我參照官方提供的資料介紹一下大家關心的話題。
我們都知道EOS是基於BM之前bitshares和Steemit兩個至今成功運行的項目經驗進行研發的,對於EOS團隊來說這裡面最大的考驗是怎樣將之前項目經驗轉換成一個平台產品。項目經驗和平台之間的差別就是平台需要更高的性能、方便擴展以及便於開發人員進行DAPP的開發。可喜的是Block.one公司目前推出的Dawn 3.0已經完成了一個項目到產品轉換,團隊在eos開發的過程中一邊學習,一邊設計,最終做出了一個超出想像的產品——Dawn 3.0。 截止到現在Dawn 3.0是EOS整個一年開發周期里一個最重要的里程碑,在這個過程中全球的開發人員夜以繼日的努力工作才使得這項偉大的工作得以順利實現。
可擴展性
可擴展性一直是EOS在設計開發過程中重點考慮的一個因素,在這個版本里只做了部分的優化而已。雖然目前這個版本還不支持並行運算,但在設計上已經考慮到了未來並行運算的需要,這樣做的好處是能夠保證EOS未來在不分叉的情況下實現並行計算並可以大幅度提高吞吐量。
跨鏈通訊
跨鏈通訊是提高擴展性的聖杯。提高擴展性方面現在的商用解決方案有側鏈、Plasma和分片。跨鏈通訊使得區塊鏈可以通過一種安全的方式驗證另一個區塊鏈時間的真實性,這個版本目前已經實現這個特性,使得跨鏈通訊可以像智能合約之間通訊一樣安全。
跨鏈通訊只不過是實現了一個輕量級客戶端智能合約,這個客戶端可以在不需要處理整個區塊鏈的情況下驗證交易的有效性。需要說明的是,輕量級客戶端驗證必須在一開始研發的時候就考慮到設計中,而不是之後進行改造。
在跨鏈通訊方面,EOS採用了拜占庭容錯部分頭部驗證(sparse-header validation),具體來說,它需要2/3以上區塊鏈生產者為了欺騙一個輕量級客戶端而進行作惡,進一步來說輕量級客戶端只需驗證在線的區塊生產者相關的信息。這樣的做法就可以顯著的減少拜占庭容錯輕量級客戶端的天花板,有效提高跨鏈通訊的效率。
上下文無關的行為也是提高跨鏈通訊性能的一個關鍵特徵。舉個例子,在驗證一個默克證明和簽名時,由於這些計算是上下文無關的行為因此可以並行進行驗證和計算。
事務壓縮
在區塊鏈中有許多數據需要壓縮。其中一個不可避免的就是智能合約代碼,還有一些介面文檔和賬戶合約。在實際應用中,類似社交媒體有許多用戶產生的內容需要進行壓縮。通過壓縮事務可以提高事務存儲和交換的效率。
解釋器和即使編譯
從Dawn2.0到Dawn3.0一個最大的變化就是WebAssembly運行環境的變化,Dawn3.0默認使用Binaryen WebAssembly解釋器而不是更快的JIT編譯器。這個決定降低了性能但是提高了穩定性和一致性,同時允許我們在需要更高性能時使用JIT環境。將來我們會使用更慢但是更低延遲的解釋器,在執行新合約時候同時進行合約的後台編譯和優化。這種雙重實現意味著我們所有的單元測試都是針對編譯和解釋的代碼進行測試的,因此在部署之前,我們可以發現潛在的不確定性或不符合標準的行為。
資源測量和速率限制
在Dawn3.0時代,我們現在有了一個全新的資源限制系統。也許最大的變化是引入了一個相對客觀的指令計數演算法。這樣做的一主要原因是允許單個事務執行比以前可能更多的計算。另外的變化是允許EOSIO在沒有Token情況下被使用私有鏈和聯盟鏈中。
500毫秒區塊間隔和BFT DPOS
在Dawn3.0中,我們已經將區塊間隔從3秒降低到了0.5秒,這大大減少了確實的延遲時間。在使用了BFT DPOS後,事務可以在1秒內保證不可逆。不可逆性的延遲時間對區塊鏈跨鏈通信有著重要的影響,因為另一個區塊鏈在合併證明時必須等待事務不可逆。兩個基於eos的區塊鏈應該能夠在3秒內完成往返通信。在Ethereum上類似的通信模式需要9分鐘。
BIOS架構
BIOS架構是Dawn2.0後的一個重要架構變化。在Dawn3.0中,主要的區塊鏈邏輯都被移到一個智能合約中,這樣做的好處是以後升級無需分叉。一個基本架構的區塊鏈只需要一個生產者,不需要token、投票和DPOS,唯一要做的事情是創建賬戶、部署合約和資源分配。所有需要DPOS共識機制的token、投票、資源分配都是基於系統合約定義的WEB Assembly。
有了這個新的體系結構,我們就能夠將開發集中於區塊鏈的靜態非webassembly部分。這部分對系統的穩定性至關重要,而且最難升級。在EOSIO Dawn 3.0和EOSIO 1.0的發布之間,我們將討論系統合同的最終細節和投票。
安全
對計算機系統安全是非常重要的事情,EOSIO是目前市場上最安全的公鏈。安全涉及到方方面面的因素,包括黑客攻擊、硬體故障、硬體丟失、密碼丟失。硬體錢包可以有效的防止黑客攻擊,但是硬體故障會使得你無法控制賬戶,進一步來說,紙錢包和硬體錢包都可能存在丟失或者被盜。
Dawn3.0最重要特徵是增加了用戶不同行為的延遲。有了延遲,一個事務在生效之前必須等待幾個小時或者幾天才能廣播到區塊鏈網路中。在這個期間用戶可以採取措施重置自己的賬戶和取消交易。這方面相對其他公鏈EOS解決了現在區塊鏈賬戶管理的難題。
在EOS中每個賬戶至少有兩個不同許可權的賬號: 「owner」 and 「active」。owner賬戶可以使用合作夥伴進行多重簽名,但合作夥伴不會擁有你的owne私鑰。在active賬戶私鑰丟失或者被盜的情況下,owner賬戶有許可權重置active賬戶。如果你丟失了owner私鑰或者合作夥伴不配合,在主賬戶30天不活動的情況下,active賬戶可以申請重置owner賬戶,owner賬戶有7天的時間質疑active賬戶的行為。
在這種賬戶體系下,硬體錢包可以防禦黑客攻擊和硬體丟失。如果你使用了帶了指紋或者人臉識別的Apple iPhone保護私鑰,攻擊者需要偷到你的iPhone、指紋或者人臉,通常情況下你的合作夥伴也會使用生物識別技術保護硬體設備,這使得黑客攻擊變得幾乎不可行。
對於智能合約開發,EOS支持C++語言開發、支持浮點運算、支持標準的C++庫、支持自動的數據範圍、支持多索引的資料庫API。
性能
Dawn3.0目前的單機性能最差不低於1000TPS,在使用JIT編譯器的情況下使用多節點單線程方式性能可以達到3000TPS,一旦實現了並行簽名驗證,在使用JIT編譯器的情況下使用多節點單線程方式性能可以達到6000TPS,理論上是可以支持8000TPS。
從目前比特幣、以太坊的實際情況來看,EOS性能已經是最好的了。
跨鏈通訊可以將負載分擔到不同的鏈上,token可以安全可靠的在不同鏈之間進行通訊。一旦有一個1000個鏈並行計算EOS的性能將會達到每秒百萬級的性能。這就代表了其它區塊鏈給出的理論性能建議的實際實現。
我們強烈建議區塊鏈生產者基於公鏈運行更多的鏈以滿足用戶的需求。所有鏈都使用相同的token作為基礎進行持股和分配資源。這樣使用eos token可以創建最大可能的網路效應,並利用由高市值代幣創建信任和安全的經濟刺激。
後續工作
後續我們會圍繞Dawn3.0核心平台的穩定性開展工作。在主網上線之前,我們會準備最終的系統合約實現所有的股份、投票和治理機制,我們也會確定token標準。
一旦系統合約成熟我們將會啟動一個新的測試網路,到時候會簡化啟動測試網路和開發應用的流程,之後幾周我們也會關閉當前的測試。
總結
EOSIO Dawn3.0是一個功能完整開發者版本,我們相信平台已經足夠強大足以支撐開發者構建自己的應用。到目前為止EOSIO與我們一年前期望的一樣,已經變得更加強大和易於開發。
我們的團隊正在快速的發展中,在過去的一個月中,我們在github提交的代碼是最活躍的10個c++庫之一,一切都按計劃在高質量的開展中,EOSIO 1.0六月份正式發布。
本文參考了EOS官方最新發布的文章,原文請查看https://medium.com/eosio/eosio-dawn-3-0-now-available-49a3b99242d7
※今天不聊人魚與吉爾莫,我們來談一談這位永遠的少女
※柳外輕雷池上雨,雨聲滴碎楊桃香
TAG:全球大搜羅 |