EOS1.1版本新特性介绍

EOSIO/eos 目前在github的项目活跃度方面排名第一,release版本更新的速度让人目不暇接。今天EOS的大版本1.1发布,我也有幸参与了贡献,本篇文章重点介绍1.1版本的重大功能升级。html

关键字:eos, eos 1.1, MongoDB,Read-Mode: HEAD,sync,优雅退出,keosd的硬件支持node

MongoDB plugin

咱们知道目前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&);

这些功能有消费区块、接收区块、应用不可逆区块、接收交易、应用交易,在这些功能函数的实现中,也看到队列的使用,极可能咱们将来没必要本身引入第三方队列而直接使用这些新特性便可。这些功能从字面上就能感觉到背后的潜力,将来会单独介绍这个插件。网络

Read-Mode: HEAD

配置nodeos为“只读头区块”模式,意味着全部RPC请求都会返回头区块的数据,头区块就是最新的一个区块。app

它的含义主旨要抓住:就是它不会读取未确认的,或者花费在p2p网络中延迟的交易。函数

这个模式也跟咱们以前讨论的交易确认的方案分析造成互动。咱们能够经过这个模式下的请求判断出某个交易是至少被一个生产者确认的,但可能尚未最终定局。

nodeos的性能提高

1、同步速度加快

以前,一个新节点加入区块链时,须要尝试保持一个良好的网络状态,而后验证以及转播它接收到的交易。若是链数据有很大一部分须要同步到新节点,数据的验证准确度会下降,验证的耗费也会增多。因此新版本中:

新节点不转播交易,在它没完成数据同步以前。这样能够提升新节点同步的速度。

2、数据库大小警卫

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插件往后还会迎来大量修改。

其余的重要改变

相关文章
相关标签/搜索