您的位置:首頁>正文

EOS.IO發佈黎明2.0版本&開發更新

EOS.IO Dawn 2.0 已經發佈, 此次發佈提供了由 block.one 團隊維護的一個公開測試網路, 對於 2017 年秋季路線圖, 以及原定於 2017 年 12 月 21 日前完成的大部分功能,

此次發佈也都提供了 Alpha 實現。 正如我們路線圖所公佈的, “第二階段 – 最小可行測試網路”將在 2017 年秋季之前展示如下內容:

- P2P 網路代碼- wasm 檢測和 CPU 沙箱- 資源利用跟蹤/限制率- 創世塊導入測試- 鏈間通信

目前, 我們已經完成了大部分功能的初步實現。 但是, 由於並行開發路線的安排, 鏈間通信的實現在一個單獨的分支上進行, 所以初始測試網路將不會用上鏈間通信的功能。

如果您對 EOS.IO Dawn 2.0 的性能測試感興趣, 可以在 Github 倉庫找到啟動和操作一個私有網路的所有區塊鏈和網路代碼。 我們的內部測試表明, 在普通硬體上, 單執行緒實現可以承受每秒數千次傳輸和可處理多個塊。 即便如此, 對於一些已知的攻擊方式, 我們還沒有實現對應的解決方案。

比如, 首次編譯新合約可能需要 34 ms, 如果被利用, 可能導致網路以超過 30 TPS 的交易速率碎片化。

針對這個問題, 我們的解決方案是限制合約代碼更新的頻率, 並限制代碼更新與處理使用新代碼交易之間的時間延遲。 這個時間延遲將在 60 秒左右, 以期能夠讓所有的塊生產者有時間從 web assembly 中編譯/緩存優化後的 x86 指令。

由於這些不可忽視的攻擊方式, 私有測試網路的其中一項任務仍然是性能測試, 但是功能測試現在已經可以在公開測試網上進行了, 我們已經將公開測試網人為地限制在 30 TPS, 以確保正常的執行時間和訪問。

在接下來的 6 個月裡, 我們將不斷對網路進行測試和調試, 以提高穩定性和性能。

Dawn 2.0的新特徵初始狀態導入測試

我們實現了一個快照工具,

它將根據分佈在乙太坊網路上 EOS ERC-20代幣來導入初始狀態。 我們的測試網路只包含了註冊有效EOS公開金鑰的餘額。 大概有20%的ERC-20代幣已經註冊到了一個EOS的公開金鑰中。 我們的快照還為乙太坊帳戶所有未註冊的ERC-20代幣提供了一個回退工具, 這個工具可幫我們從已簽署的乙太坊交易中恢復公開金鑰。 這包含了99%的EOS ERC-20代幣, 但是還將需要你導入你的乙太坊私密金鑰到你的EOS.IO的錢包裡。

出於安全考慮, 我們的測試網路不會要求使用者導入他們的乙太坊私密金鑰然後通過回退工具進行恢復。 如果你的EOS私密金鑰在測試的時候受到威脅, 你可以隨時在乙太坊網路上註冊一個新金鑰。

代幣“水龍頭”

我們還實現了一個“水龍頭”功能,

這樣就可以允許那些沒有代幣或者還沒有註冊一個有效的EOS公開金鑰的人們進行網路測試。

資源使用和費率限制

我們實現了基本的費率限制和資源使用追蹤。 它追蹤頻寬、資料庫存儲以及計算力使用。 這個時候我們的費率限制演算法存在著一些已知的bugs, 但是這不會影響測試和應用程式的開發。

我們知道有很多人都很關心費率限制相關資訊, 比如誰將會被收費, 還有如何將它們的代幣租出去以此換來收益等等。

頻寬

所有的交易都會消耗掉區塊生產者設置的網路頻寬的最大值。 擁有交易所需許可權的所有帳戶根據交易的大小將會有3天的平均頻寬增加。 頻寬會要求授權帳戶(不是合約)放置代幣或由應用程式提供者委託代幣。

計算頻寬

所有的交易都消耗計算力。 計算可以是平行的進行的, 所以你可以把它想像成多個車道的高速公路, 每個車道都擁有不同的阻塞。 每個範圍(車道)都會有自己獨立的速率限制, 並且基於最擁擠的範圍, 用戶將針對請求的同時範圍(通道)的數量和速率限制來計費O(S ^ 2)。

資料庫存儲

EOS.IO合約有訪問記憶體中資料庫的許可權, 它們可以在該資料庫存儲狀態。 合約收費是根據它們存儲資料的總和以及每個獨立資料庫條目的固定開銷 , 這個記憶體中資料庫是獨立的並且與EOS.IO的存儲協定是分開的, 這樣做是為了讓記憶體的膨脹不那麼集中。

P2P 網路代碼

對於網狀網路代碼, 我們已經有了基本實現,並且這些代碼正在公開測試網路中試運行。目前 Block.one 運行了 21 個獨立的伺服器,每個伺服器都配置了一個初始生產者。

EOS黎明3.0

EOS Dawn 3.0將通過安全的區塊鏈間通信,重新解釋單鏈水準擴展和無限擴展。有了這兩個特點,對於區塊鏈技術可以建立什麼樣的東西,以及區塊鏈網路如何去中心化就都沒有限制了。

無限擴展與無限去中心化

區塊鏈技術的聖杯是在兩個獨立區塊鏈之間實現安全通信,而不需要某一區塊鏈驗證另一個區塊鏈上的所有內容。這需要使一個區塊鏈成為另一個區塊鏈的輕用戶端。

輕用戶端只使用塊頭和Merkle證明來驗證交易。 EOS.IO將成為第一個支持輕用戶端驗證的POS協定。更重要的是,它將能首次產生Proof-of-Completeness。這意味著您可以證明您已經提前收到來自其他鏈的所有相關消息,無需等待或接受挑戰的時間。

而傳統的輕用戶端必須處理所有的塊頭,EOS.IO將使輕用戶端只需要當出塊人改變、或需要一個更近塊的新消息時再處理塊頭。這將使得高效率的頻繁通信成為可能。在最壞的情況下,兩個區塊鏈每500毫秒一次通信的開銷將比發送的消息總數高出約2個交易。

在這種模式下,只要至少有三分之一的生產者是誠實的,通信就會得到保證。此外,即使一個生產者腐敗,如果他們簽署任何可能破壞輕客戶(或者叫外部區塊鏈)的消息,他們會自動受到懲罰。

最後,傳遞到另一個區塊鏈的往返時間取決於每個鏈不可逆的最終確定性等待時間。一個基於EOS.IO的鏈將能夠發送一條消息給外部的EOS.IO鏈,並在3秒內得到一個密碼學驗證的回應。

這種級別的鏈間通信和安全性使得能夠以非常低的延遲在鏈之間創建雙向掛鉤。雖然雙向掛鉤是最常見的例子,但任何商業之間的通信都可以用同樣的方法進行。

公有/私有通信

通過跨鏈通信,私有區塊鏈可以與公有區塊鏈進行安全的雙向通信。這使得各種不適合公有性質的傳統區塊鏈應用成為可能。例如,有人可以創建瑞士銀行的區塊鏈,除了銀行業主和個人之外,對每個人都是超級秘密。

開發進展

為了交付我們的公共測試網路,我們將開發劃分為兩條平行路徑,以便我們可以重構代碼的重要部分以實現可讀性、性能和跨鏈通信。這個重構工作已經在eos-noon分支上開展。

在過去的更新中,我們表示我們打算專注於共用記憶體架構,以便開發人員可以輕鬆地與其他合約執行同步讀取訪問和原子事務。這種方法的後果是喪失了單台高性能機器的水準擴展性。

借助EOS Dawn 3.0,我們將通過使用最多65000個不同的分區region來恢復執行多機橫向擴展的能力。所有分區將共用相同的帳戶和合約代碼,但在記憶體中資料庫中是獨立的。一個分區內的合同必須使用非同步交易與其他分區的合作夥伴進行通信。有了這個架構,一個塊生產者可以作為一個集群來實現。

集成蘋果的安全硬體

在上次更新中,我們宣佈了我們打算支持Apple,Android和許多智慧卡使用的橢圓曲線。我們的eos-noon分支現在包括一個全功能的驗證概念,在最新的MacBook Pro上使用Touch ID(也包括Face ID)對消息進行簽名和驗證。類似的代碼也適用於本機iPhone應用程式。這意味著基於EOS.IO的移動應用將成為已知最安全的區塊鏈錢包

此外,eos-noon分支現在已經整合了對多種簽名類型的支持,這意味著可以使用安全硬體來簽名需要在eos-noon上進行驗證的交易。

500毫秒區塊確認

在我們的eos-noon分支上,我們對底層的DPOS框架實施了一些改變,以支持500 ms的塊(每秒2個塊)。這一變化將大大提高去中心化應用程式的回應速度。為了實現這一點,我們在區塊調度發生方面進行了一些改變。

同一個生產者將連續生產12塊,然後交給下一個生產者。這解決了從生產者到生產者交接的塊生產中最大的瓶頸。在新的結構下,意外延遲可能會導致每次切換時都會丟失幾個塊,但是在切換之間應該有非常快的確認。我們將嘗試不同的交接期。交接期時間越長,在正常操作期間丟失的塊越少,但是如果單個節點停機,則停機時間越長。在500毫秒的時間內,每隔12個區塊,“停機時間”也不會比單個生產者在Steem和BitShares上丟失單個區塊時更差。在這種情況下,首次確認可能需要6秒。

去除替補生產者

跨鏈通信需要輕用戶端跟蹤活躍生產者集合發生變化的所有區塊。“替補生產者名錄”造成每分鐘會增加或刪除一個新生產者,這迫使輕客戶每分鐘處理至少一個塊頭。為了減少生產者變更的頻率,我們改變了區塊調度結構,只包括前21名生產者。我們正在考慮為替補生產者提供某種待命薪酬,但他們實際上不會負責生產區塊。

一秒不可逆

每個區塊生產者將簽署每個區塊,只要大於2/3的生產者簽署了該區塊,這個區塊就可以被標記為不可逆的。生產者只能在每個塊高度上簽署一個塊頭。這意味著,如果有分叉,生產者不能在兩條分叉的相同高度上簽名區塊。任何這樣的簽名都是生產者不當行為的密碼證明,可以通過多種方法處理,包括自動喪失生產者地位,潛在的抵押損失,以及仲裁可能造成的損害賠償責任。

不像其他協定需要在出下一個塊之前收集大於2/3的簽名,EOS的DPOS流水線允許區塊鏈在“等候狀態”中前進而簽名收集。這些額外的簽名發生在區塊鏈之外,並且在Steem或BitShares的傳統DPOS規則下,區塊在變得不可逆轉之後可以進行修剪。

在這個模型下,有可能實現拜占庭容錯,因為任何塊不可能接收到大於2/3的非拜占庭節點的密碼證據簽名。

刪除生產者洗牌計畫

為了最小化生產者切換期間丟失塊數量,我們希望可以最小化兩個生產者之間的延遲。如果紐約的生產者計畫跟隨中國的生產者,在正常情況下(塊間隔的50%)可能需要250ms的時間才能接收到該資料塊,如果網路擁堵,可能需要更長的時間。另一方面,紐約和德克薩斯州的生產者只有50ms的延遲(塊間隔的10%)。這意味著在從紐約到德克薩斯的交接比從紐約到中國的路由丟失的可能性要低得多。

如果我們安排從紐約到德克薩斯州、加利福尼亞州、夏威夷、日本、中國、印度、以色列、義大利、英國、冰島,然後回到紐約的區塊生產,那麼從來沒有超過50到100ms。但是,如果順序是隨機的,那麼平均交接時間將顯著增高。

生產者洗牌被引入,以最大限度地減少一個生產者選擇後續生產者的潛力。這個風險存在於一個生產者被認為是惡意的世界,但在高度審查公有的生產者與高品質的資料中心的世界裡,它不再有意義。如果一個生產者故意傷害他的鄰居,會有憲法和可預期的行為流程來解決爭端。

在EOS下,生產者將以平均等待時間最小化的方式對生產者排序進行投票,把網路擁塞而導致的總丟失塊最小化。

已知的問題

EOS Dawn 2.0 存在一些已知的問題,不過早期版本出現嚴重的不穩定性也在預料之內。 這次發佈的目的在於展示基本功能,在未來的 6 個月,我們的團隊將會致力於解決 bug,提高穩定性和性能。

為了支援測試網路的穩定性,我們已經禁止了生產者投票。

結束語

在這裡要感謝我們的開發團隊,為了開發交付 EOS Dawn 2.0,全球範圍內展開了通力工作,,這是一個將成為最強大,性能最高,最分散的應用平臺的 alpha 版本。 我們正在按照我們發佈的路線圖執行,並提供比原計劃更多的功能和能力。 我們期待到2018年,並且有信心在EOS權杖分發完成之前,所有功能都將完成並解決錯誤。

發文時比特幣價格 ¥76685.16

我們已經有了基本實現,並且這些代碼正在公開測試網路中試運行。目前 Block.one 運行了 21 個獨立的伺服器,每個伺服器都配置了一個初始生產者。

EOS黎明3.0

EOS Dawn 3.0將通過安全的區塊鏈間通信,重新解釋單鏈水準擴展和無限擴展。有了這兩個特點,對於區塊鏈技術可以建立什麼樣的東西,以及區塊鏈網路如何去中心化就都沒有限制了。

無限擴展與無限去中心化

區塊鏈技術的聖杯是在兩個獨立區塊鏈之間實現安全通信,而不需要某一區塊鏈驗證另一個區塊鏈上的所有內容。這需要使一個區塊鏈成為另一個區塊鏈的輕用戶端。

輕用戶端只使用塊頭和Merkle證明來驗證交易。 EOS.IO將成為第一個支持輕用戶端驗證的POS協定。更重要的是,它將能首次產生Proof-of-Completeness。這意味著您可以證明您已經提前收到來自其他鏈的所有相關消息,無需等待或接受挑戰的時間。

而傳統的輕用戶端必須處理所有的塊頭,EOS.IO將使輕用戶端只需要當出塊人改變、或需要一個更近塊的新消息時再處理塊頭。這將使得高效率的頻繁通信成為可能。在最壞的情況下,兩個區塊鏈每500毫秒一次通信的開銷將比發送的消息總數高出約2個交易。

在這種模式下,只要至少有三分之一的生產者是誠實的,通信就會得到保證。此外,即使一個生產者腐敗,如果他們簽署任何可能破壞輕客戶(或者叫外部區塊鏈)的消息,他們會自動受到懲罰。

最後,傳遞到另一個區塊鏈的往返時間取決於每個鏈不可逆的最終確定性等待時間。一個基於EOS.IO的鏈將能夠發送一條消息給外部的EOS.IO鏈,並在3秒內得到一個密碼學驗證的回應。

這種級別的鏈間通信和安全性使得能夠以非常低的延遲在鏈之間創建雙向掛鉤。雖然雙向掛鉤是最常見的例子,但任何商業之間的通信都可以用同樣的方法進行。

公有/私有通信

通過跨鏈通信,私有區塊鏈可以與公有區塊鏈進行安全的雙向通信。這使得各種不適合公有性質的傳統區塊鏈應用成為可能。例如,有人可以創建瑞士銀行的區塊鏈,除了銀行業主和個人之外,對每個人都是超級秘密。

開發進展

為了交付我們的公共測試網路,我們將開發劃分為兩條平行路徑,以便我們可以重構代碼的重要部分以實現可讀性、性能和跨鏈通信。這個重構工作已經在eos-noon分支上開展。

在過去的更新中,我們表示我們打算專注於共用記憶體架構,以便開發人員可以輕鬆地與其他合約執行同步讀取訪問和原子事務。這種方法的後果是喪失了單台高性能機器的水準擴展性。

借助EOS Dawn 3.0,我們將通過使用最多65000個不同的分區region來恢復執行多機橫向擴展的能力。所有分區將共用相同的帳戶和合約代碼,但在記憶體中資料庫中是獨立的。一個分區內的合同必須使用非同步交易與其他分區的合作夥伴進行通信。有了這個架構,一個塊生產者可以作為一個集群來實現。

集成蘋果的安全硬體

在上次更新中,我們宣佈了我們打算支持Apple,Android和許多智慧卡使用的橢圓曲線。我們的eos-noon分支現在包括一個全功能的驗證概念,在最新的MacBook Pro上使用Touch ID(也包括Face ID)對消息進行簽名和驗證。類似的代碼也適用於本機iPhone應用程式。這意味著基於EOS.IO的移動應用將成為已知最安全的區塊鏈錢包

此外,eos-noon分支現在已經整合了對多種簽名類型的支持,這意味著可以使用安全硬體來簽名需要在eos-noon上進行驗證的交易。

500毫秒區塊確認

在我們的eos-noon分支上,我們對底層的DPOS框架實施了一些改變,以支持500 ms的塊(每秒2個塊)。這一變化將大大提高去中心化應用程式的回應速度。為了實現這一點,我們在區塊調度發生方面進行了一些改變。

同一個生產者將連續生產12塊,然後交給下一個生產者。這解決了從生產者到生產者交接的塊生產中最大的瓶頸。在新的結構下,意外延遲可能會導致每次切換時都會丟失幾個塊,但是在切換之間應該有非常快的確認。我們將嘗試不同的交接期。交接期時間越長,在正常操作期間丟失的塊越少,但是如果單個節點停機,則停機時間越長。在500毫秒的時間內,每隔12個區塊,“停機時間”也不會比單個生產者在Steem和BitShares上丟失單個區塊時更差。在這種情況下,首次確認可能需要6秒。

去除替補生產者

跨鏈通信需要輕用戶端跟蹤活躍生產者集合發生變化的所有區塊。“替補生產者名錄”造成每分鐘會增加或刪除一個新生產者,這迫使輕客戶每分鐘處理至少一個塊頭。為了減少生產者變更的頻率,我們改變了區塊調度結構,只包括前21名生產者。我們正在考慮為替補生產者提供某種待命薪酬,但他們實際上不會負責生產區塊。

一秒不可逆

每個區塊生產者將簽署每個區塊,只要大於2/3的生產者簽署了該區塊,這個區塊就可以被標記為不可逆的。生產者只能在每個塊高度上簽署一個塊頭。這意味著,如果有分叉,生產者不能在兩條分叉的相同高度上簽名區塊。任何這樣的簽名都是生產者不當行為的密碼證明,可以通過多種方法處理,包括自動喪失生產者地位,潛在的抵押損失,以及仲裁可能造成的損害賠償責任。

不像其他協定需要在出下一個塊之前收集大於2/3的簽名,EOS的DPOS流水線允許區塊鏈在“等候狀態”中前進而簽名收集。這些額外的簽名發生在區塊鏈之外,並且在Steem或BitShares的傳統DPOS規則下,區塊在變得不可逆轉之後可以進行修剪。

在這個模型下,有可能實現拜占庭容錯,因為任何塊不可能接收到大於2/3的非拜占庭節點的密碼證據簽名。

刪除生產者洗牌計畫

為了最小化生產者切換期間丟失塊數量,我們希望可以最小化兩個生產者之間的延遲。如果紐約的生產者計畫跟隨中國的生產者,在正常情況下(塊間隔的50%)可能需要250ms的時間才能接收到該資料塊,如果網路擁堵,可能需要更長的時間。另一方面,紐約和德克薩斯州的生產者只有50ms的延遲(塊間隔的10%)。這意味著在從紐約到德克薩斯的交接比從紐約到中國的路由丟失的可能性要低得多。

如果我們安排從紐約到德克薩斯州、加利福尼亞州、夏威夷、日本、中國、印度、以色列、義大利、英國、冰島,然後回到紐約的區塊生產,那麼從來沒有超過50到100ms。但是,如果順序是隨機的,那麼平均交接時間將顯著增高。

生產者洗牌被引入,以最大限度地減少一個生產者選擇後續生產者的潛力。這個風險存在於一個生產者被認為是惡意的世界,但在高度審查公有的生產者與高品質的資料中心的世界裡,它不再有意義。如果一個生產者故意傷害他的鄰居,會有憲法和可預期的行為流程來解決爭端。

在EOS下,生產者將以平均等待時間最小化的方式對生產者排序進行投票,把網路擁塞而導致的總丟失塊最小化。

已知的問題

EOS Dawn 2.0 存在一些已知的問題,不過早期版本出現嚴重的不穩定性也在預料之內。 這次發佈的目的在於展示基本功能,在未來的 6 個月,我們的團隊將會致力於解決 bug,提高穩定性和性能。

為了支援測試網路的穩定性,我們已經禁止了生產者投票。

結束語

在這裡要感謝我們的開發團隊,為了開發交付 EOS Dawn 2.0,全球範圍內展開了通力工作,,這是一個將成為最強大,性能最高,最分散的應用平臺的 alpha 版本。 我們正在按照我們發佈的路線圖執行,並提供比原計劃更多的功能和能力。 我們期待到2018年,並且有信心在EOS權杖分發完成之前,所有功能都將完成並解決錯誤。

發文時比特幣價格 ¥76685.16

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示