EOSIO/eos 目前在github的項目活躍度方面排名第一,release版本更新的速度讓人目不暇接。今天EOS的大版本1.1發佈,我也有幸參與了貢獻,本篇文章重點介紹1.1版本的重大功能升級。html
關鍵字:eos, eos 1.1, MongoDB,Read-Mode: HEAD,sync,優雅退出,keosd的硬件支持node
咱們知道目前eos的本地存儲結構是簡單的文件存儲,對於備份和數據查詢等管理角度,略顯尷尬。新版本推出了MongoDB插件eosio::mongo_db_plugin,git
eosio::mongo_db_plugin 將區塊鏈數據歸檔至MongoDB數據庫中。github
這份區塊鏈的數據是隻讀的,支持高可擴展以及方便的數據查詢工做。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&);
這些功能有消費區塊、接收區塊、應用不可逆區塊、接收交易、應用交易,在這些功能函數的實現中,也看到隊列的使用,極可能咱們將來沒必要本身引入第三方隊列而直接使用這些新特性便可。這些功能從字面上就能感覺到背後的潛力,將來會單獨介紹這個插件。網絡
配置nodeos爲「只讀頭區塊」模式,意味着全部RPC請求都會返回頭區塊的數據,頭區塊就是最新的一個區塊。app
它的含義主旨要抓住:就是它不會讀取未確認的,或者花費在p2p網絡中延遲的交易。函數
這個模式也跟咱們以前討論的交易確認的方案分析造成互動。咱們能夠經過這個模式下的請求判斷出某個交易是至少被一個生產者確認的,但可能尚未最終定局。
以前,一個新節點加入區塊鏈時,須要嘗試保持一個良好的網絡狀態,而後驗證以及轉播它接收到的交易。若是鏈數據有很大一部分須要同步到新節點,數據的驗證準確度會下降,驗證的耗費也會增多。因此新版本中:
新節點不轉播交易,在它沒完成數據同步以前。這樣能夠提升新節點同步的速度。
EOSIO是經過兩個內存數據庫存儲數據:一個是state DB,一個是reversible block DB。如今使用警衛保護:
咱們都知道,區塊鏈的帳戶的私鑰的保管是一個問題,登錄驗證身份的過程也很容易涉及安全的風險,從1.1開始,正式引入了對keosd的硬件支持,當前目前仍舊是測試版本,還未成爲生產版本。
使用蘋果電腦的人們目前可經過Secure Enclave提供的基於硬件的祕鑰保護他們的EOSIO帳戶。經過命令
cleos wallet create_key -n SecureEnclave
使用Secure Enclave wallet來建立key,不須要import操做。另外,mac中你要訪問Secure Enclave的行爲必須被簽名。
YubiHSM 2是一個外部硬件安全模塊,可添加到任何用戶的電腦經過USB端口。keosd如今容許任何使用Linux發行版和MacOS的用戶保護他們的EOSIO帳戶,經過YUbiHSM 2提供的基於硬件的祕鑰。這個手段可能會被生產者大量使用。
登陸插件是第一個支持基於EOSIO blockchain的應用驗證概念的組件。插件API容許您來驗證一個用戶是否可以簽名知足指定的權限。
目前login插件只是初步的設計,並沒有法上生產環境,就像存在了好幾個版本的MongoDB插件在當前這個版本才被正式推出同樣,login插件往後還會迎來大量修改。