EOS1.1版本新特性介紹


EOSIO/eos 目前在github的項目活躍度方面排名第一,release版本更新的速度讓人應接不暇。今天EOS的大版本1.1發布,我也有幸參與了貢獻,本篇文章重點介紹1.1版本的重大功能升級。

關鍵字:eos, eos 1.1, MongoDB,Read-Mode: HEAD,sync,優雅退出,keosd的硬件支持

MongoDB plugin

我們知道目前eos的本地存儲結構是簡單的文件存儲,對於備份和數據查詢等管理角度,略顯尷尬。新版本推出了MongoDB插件eosio::mongo_db_plugin,

eosio::mongo_db_plugin 將區塊鏈數據歸檔至MongoDB數據庫中。

這份區塊鏈的數據是只讀的,支持高可擴展以及方便的數據查詢工作。

支持部署和訪問一個MongoDB集群。

通過對源碼的瀏覽,可以查看到該插件支持的主要函數功能:

    void consume_blocks(); // 消費區塊
    
    void accepted_block( const chain::block_state_ptr& );
    void applied_irreversible_block(const chain::block_state_ptr&);
    void accepted_transaction(const chain::transaction_metadata_ptr&);
    void applied_transaction(const chain::transaction_trace_ptr&);

這些功能有消費區塊、接收區塊、應用不可逆區塊、接收交易、應用交易,在這些功能函數的實現中,也看到隊列的使用,很可能我們未來不必自己引入第三方隊列而直接使用這些新特性即可。這些功能從字面上就能感受到背后的潛力,未來會單獨介紹這個插件。

Read-Mode: HEAD

配置nodeos為“只讀頭區塊”模式,意味着所有RPC請求都會返回頭區塊的數據,頭區塊就是最新的一個區塊。

它的含義主旨要抓住:就是它不會讀取未確認的,或者花費在p2p網絡中延遲的交易。

這個模式也跟我們之前討論的交易確認的方案分析形成互動。我們可以通過這個模式下的請求判斷出某個交易是至少被一個生產者確認的,但可能還沒有最終定局。

nodeos的性能提升

一、同步速度加快

之前,一個新節點加入區塊鏈時,需要嘗試保持一個良好的網絡狀態,然后驗證以及轉播它接收到的交易。如果鏈數據有很大一部分需要同步到新節點,數據的驗證准確度會降低,驗證的耗費也會增多。所以新版本中:

新節點不轉播交易,在它沒完成數據同步之前。這樣可以提高新節點同步的速度。

二、數據庫大小警衛

EOSIO是通過兩個內存數據庫存儲數據:一個是state DB,一個是reversible block DB。現在使用警衛保護:

  • 允許運行的實例nodeos檢測即將到來的限制
  • 優雅退出,防止可怕的BAD_ALLOC異常引發的數據庫臟數據,必須要replay整條鏈進行修復。這是一個從dawn3.0就困擾我的問題。
    • 現在恢復一個數據庫的操作,就像修改單個配置一樣容易
    • 重新啟動的這個過程,再也不需要replay或resync的操作了。

Alpha:keosd的硬件支持

我們都知道,區塊鏈的賬戶的私鑰的保管是一個問題,登陸驗證身份的過程也很容易涉及安全的風險,從1.1開始,正式引入了對keosd的硬件支持,當前目前仍舊是測試版本,還未成為生產版本。

Apple's Secure Enclave

使用蘋果電腦的人們目前可通過Secure Enclave提供的基於硬件的秘鑰保護他們的EOSIO賬戶。通過命令

cleos wallet create_key -n SecureEnclave

使用Secure Enclave wallet來創建key,不需要import操作。另外,mac中你要訪問Secure Enclave的行為必須被簽名。

YubiHSM 2

YubiHSM 2是一個外部硬件安全模塊,可添加到任何用戶的電腦通過USB端口。keosd現在允許任何使用Linux發行版和MacOS的用戶保護他們的EOSIO賬戶,通過YUbiHSM 2提供的基於硬件的秘鑰。這個手段可能會被生產者大量使用。

login 插件

登錄插件是第一個支持基於EOSIO blockchain的應用驗證概念的組件。插件API允許您來驗證一個用戶是否能夠簽名滿足指定的權限。

目前login插件只是初步的設計,並無法上生產環境,就像存在了好幾個版本的MongoDB插件在當前這個版本才被正式推出一樣,login插件日后還會迎來大量修改。

其他的重要改變


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM