主流区块链技术特点及Fabric V0.6&V1.0版本特点
声明:文章内容来源于网络。
一、主流区块链技术特点
二、Hyperledger的fabric V0.6总体架构:
对应的0.6版本的运行时架构:
0.6版本的架构特点是:
结构简单: 应用-成员管理-Peer的三角形关系,主要业务功能全部集中于Peer节点;
架构问题:由于peer节点承担了太多的功能,所以带来扩展性、可维护性、安全性、业务隔离等方面的诸多问题,所以0.6版本在推出后,并没有大规模被行业使用,只是在一些零星的案例中进行业务验证;
三、Hyperledger的fabric V1.0
最新的1.0运行时架构:
1.0 架构要点:
分拆Peer的功能,将Blockchain的数据维护和共识服务进行分离,共识服务从Peer节点中完全分离出来,独立为Orderer节点提供共识服务; 基于新的架构,实现多通道(channel)的结构,实现了更为灵活的业务适应性(业务隔离、安全性等方面) 支持更强的配置功能和策略管理功能,进一步增强系统的灵活性和适应性;
1.0版本架构目标:
1、chaincode信任的灵活性:支持多个ordering服务节点,增强共识的容错能力和对抗orderer作恶的能力
2、 扩展性: 将endorsement和ordering进行分离,实现多通道(实际是分区)结构,增强系统的扩展性;同时也将chaincode执行、ledger、state维护等非常消耗系统性能的任务与共识任务分离,保证了关键任务(ordering)的可靠执行
3、保密性:新架构对于chaincode在数据更新、状态维护等方面提供了新的保密性要求,提高系统的业务、安全方面的能力
4、共识服务的模块化:支持可插拔的共识结构,支持多种共识服务的接入和服务实现
Fabric 1.0 的重要特征是支持多chain和多channel
所谓的chain(链)实际上是包含Peer节点、账本、ordering通道的逻辑结构,它将参与者与数据(包含chaincode在)进行隔离,满足了不同业务场景下的”不同的人访问不同数据“的基本要求。同时,一个peer节点也可以参与到多个chain中(通过接入多个channel);如下图所示
关于通道
通道是有共识服务(ordering)提供的一种通讯机制,类似于消息系统中的发布-订阅(PUB/SUB)中的topic;基于这种发布-订阅关系,将peer和orderer连接在一起,形成一个个具有保密性的通讯链路(虚拟),实现了业务隔离的要求;通道也与账本(ledger)-状态(worldstate)紧密相关;如下图所示:
peer 1,2和N订阅红色通道,并共同维护红色账本; peer 1和N订阅蓝色通道并维护蓝色账本; 类似地,peer 2和peer N在黑色通道上并维护黑色账本。
在这个例子中,peer N在订阅了所有通道,我们看到每个通道都有一个相关的账本。 一般来说,我们称不涉及所有peer的账本为子账本,另一种是系统账本,即全账本。
通道和账本的组合是一个虚拟链,因此一个区块链网络可以具有1个共识服务的多个链。 系统通道和全账本构成系统链。 每个区块链网络只有1个系统链。如果交易是公开的,区块链网络可能永远不需要多个链; 所有的交易对所有Peers成员都可见。 然而,在成员间进行私密交易(例如双边合同),单独的链是隔离数据、提供保密的方式。
交易(数据)流程说明
新版本的架构变化导致新的交易流程的变化,如下:
应用程序通过SDK发送请求道Peer节点(一个或多个)
peer节点分别执行交易(通过chaincode),但是并不将执行结果提交到本地的账本中(可以认为是模拟执行,交易处于挂起状态),参与背书的peer将执行结果返回给应用程序(其中包括自身对背书结果的签名)
应用程序 收集背书结果并将结果提交给Ordering服务节点
Ordering服务节点执行共识过程并生成block,通过消息通道发布给Peer节点,由peer节点各自验证交易并提交到本地的ledger中(包括state状态的变化)
上述过程对应的执行序列图如下:
总体流程如下图所示:在新的架构中,Peer节点负责维护区块链的账本(ledger)和状态(State),本地的账本称为PeerLedger,其结构如下:
整个区块结构分为文件系统存储的Block结构和数据库维护的State状态,其中state的存储结构是可以替换的,可选的实现包括各种KV数据库(LEVELDB,CouchDB等);
1.0版本的版本计划
很明显Febric V0.6与V1.0的架构及流程差异极大,在V0.6下开发的应用很难在V1.0环境下运行,所以我们还是不要费劲折腾V0.6,还是从V1.0开始吧!(官方公布的计划)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
rsyslog对接kafka
对于日志收集统计分析方案现在主流的有ELK redis kafka flume +大数据平台,ELK我们以后再介绍,这里先简单介绍下rsyslog对接kafka kafka中的术语 BrokerKafka集群包含一个或多个服务器,这种服务器被称为broker Topic每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处) PartitionParition是物理上的概念,每个Topic包含一个或多个Partition. Producer负责发布消息到Kafka broker Consumer消息消费者,向Kafka broker读取消息的客户端。 Consumer Group每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group) kafka架构 下载kafka_2.10-0.10.1.0.t...
- 下一篇
Ansible批量部署zabbix-agent
Ansible的目录树结构如下: # tree zabbix/ zabbix/ ├──defaults ├──files │└──zabbix.tar.gz ├──handlers ├──meta ├──tasks │└──main.yml ├──templates │└──zabbix_agentd.conf.j2 └──vars └──main.yaml zabbix.tar.gz:tar包是编译安装完zabbix后打的tar包 zabbix_agentd.conf.j2:编译安装完zabbix,copy的zabbix_agentd.conf文件,略微添加点东西,后面会展示。 zabbix_agentd:文件也是编译安装完zabbix,copy的启动脚本文件,修改了里面的zabbix_home变量。 zabbix playbook文件如下: catzabbix.yml -hosts:all roles: -zabbix tasks文件内容如下: #catmain.yml -name:scpzabbix到client copy:src=zabbix.tar.gzdest={{zabb...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Hadoop3单机部署,实现最简伪集群
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境