中移链是在满足我国信息化监管需要、合规可控的前提下,打造的中国移动区块链服务平台。它容许应用插件来扩大其性能,以适应各种不同的应用场景。
什么是中移链插件呢?如果把中移链比作一个操作系统,那么插件就类比于操作系统上的软件,软件通过装置、重启等形式来扩大操作系统的性能,相似的,中移链插件也是通过配置、加载来启用,扩大中移链性能。
01
性能介绍
中移链有哪些罕用插件呢?咱们以中移链一个版本为例,介绍一些插件及其具体性能:
1.chain插件:这个是链解决插件,它承载了链节点程序与区块链交互的基本功能,包含读取本地不可逆区块链根本信息、设置本地链检查点、设置本地链参数、设置可逆区块数据库参数、设置账户黑/白名单、设置智能合约黑/白名单、重载区块链初始状态文件,以及删除、重写、替换本地区块链数据 (包含开始、进行等动作) 。
2.chain_api插件:依赖于chain插件,它提供与内部调用链相干操作的接口服务。
3.net插件:这个是P2P网络插件,它承载了链零碎的P2P网络中TCP/IP层相干性能,包含建设节点之间握手并互联;监听、发送、接管新交易申请;监听、发送、接管新区块申请;验证接收数据合法性。
4.net_api插件:依赖于net插件,它提供与内部调用及网络相干操作的接口服务。
5.http插件:这个是网络HTTP插件,它承载了链零碎的P2P网络中HTTP层相干性能,包含监听、发送、接管新交易申请;验证接收数据合法性。
6.producer插件:这个是区块生产节点的性能插件,其中性能包含生产、打包新区块 数据;对新区块签名;对接管的区块进行验证,包含区块头合法性、签名合法性和交易合法性。
7.producer_api插件:依赖于producer插件,它提供与内部调用及区块生产节点相干性能的接口服务。
8.blockvault_client插件:该插件为以后版本新增,即从以后版本开始退出了blockvault性能,它次要使区块链可能施行行业标准的劫难复原,以最大限度地缩短生产者的失常运行工夫。该插件容许块生产者将部署为单个逻辑生产者的两个或多个节点集群。如果其中一个节点呈现故障,集群中的其余节点将持续运行,从而满足生产者在最小服务中断的状况下持续运行的某些保障。
9.http_client插件:定义了中移链网络HTTP层响应申请,并做相应的平安验证的客户端插件。
10.resource_monitor插件:用于监控节点的资源应用状况,并通过API接口提供资源应用状况的统计信息,不便开发者进行剖析和调优。
11.history插件:定义了查问指定账户中指定公钥的所有历史交易记录的插件。
12.history_api插件:将history的性能裸露给由http插件治理的RPC API接口,提供对区块链数据的只读拜访;因为该插件对服务器资源耗费较大,在以后版本已弃用,开发者能够采纳state_history插件或者trace_api插件代替。
13.state_history插件:这个插件捕获区块链状态的历史数据,又称为“状态历史插件”。
14.login插件:依赖于http插件,这个插件应用HTTP Basic Authentication (HTTP 基 本认证) 来进行用户身份验证。
15.db_size_api插件:这个插件提供与内部调用及数据无关的接口服务。
16.trace_api插件:依赖于chain插件和http插件,这个插件提供了一些能够用来获取和剖析节点操作的接口,比方获取区块链中的所有操作、获取交易的执行跟踪后果等等。
通过下面介绍,能够理解到中移链局部插件及其性能,开发者能够依据须要来抉择插件,上面通过两个示例阐明一下插件的开启和敞开。
02
应用阐明
中移链插件开启很不便,在配置文件中以“cmeos.load(“插件名称”,{“相干参数”});”格局 配置插件,节点在启动时会读取配置文件进行初始化,在初始化过程中会加载已配置的插件,当初始化实现后,插件性能也失常开启。以下是一则开启插件的示例。
示例一,假如咱们须要启动一个生产节点,开启http、net、chain、chain_api、producer和producer_api等6个插件,这些插件蕴含了网络、链解决及其接口服务、生产节点及其接口服务等性能,在配置文件中增加这些插件并配置相应的参数,而后启动节点。配置如下图:
如上图所示,在配置文件中,通过“cmeos.load(“插件名称”,{“相干参数”});”格局来启用http、net、chain、chain_api、producer、producer_api等插件,并设置插件相应的参数。
中移链插件敞开也不便,是在配置文件中移除插件的相干配置,并重启节点,因为重启会再次读取配置文件进行初始化,这样未配置的插件就不再被启用了。以下是一则敞开插件的示例。
示例二,假如eosio不再作为生产者进行出块,此时咱们能够将eosio生产节点革新为 同步节点(即仅从其它生产节点同步区块,自身不生产区块) ,即在配置文件中移除producer和producer_api插件,而后重启节点即可,如下图所示:
如上图所示,此配置文件中,移除了producer和producer_api插件及其相干参数,重启节点后,节点不再具备生产区块的性能。
03
结尾
本文介绍了一些常见的插件性能,并提供了两个示例配置演示如何开启和敞开插件。
可见,中移链插件机制的灵活性为开发者提供了十分高的自由度,开发者能够抉择和组合不同的插件,来实用不同的场景。
04
参考资料
[1]BSN凋谢联盟链:https://opb.bsnbase.com/main/index
[2]EOSIO的GitHub源代码仓库:https://github.com/EOSIO/eos/tree/v2.1.0/plugins-END-