区块链技术让参与系统中任意多个节点通过密码学算法把系统的全部信息数据计算和记录到一个数据块,并且生成该数据块的指纹用于chain下个数据块和校验,系统中所有参与节点达成共识。
特点:只可添加记录不能篡改记录的一条链;通过达成共识分布式控制;密码学机制无法抵赖和破坏,保护用户信息和隐私。
个人认为区块链的应用不是完全的去中心化而是分布式或者多中心化,本人主要学习的是hyperledger1.0。
每个环境变量名称都有一个前缀,每个模块都是单独设置的,比如ORDERER_GENERAL_LEDGERTYPE的前缀ORDERER,代表排序服务节点(Peer节点前缀CORE),对应orderer.yaml配置文件的General.LedgerType。
Gossip协议:提供原子广播服务(逻辑上所有节点接收到消息的顺序相同、相同序号都是相同内容),Gossip模块负责连接排序服务和Peer节点上,实现数据分发。
共享账本:采用背书、共识模型。交易模拟:读集包含键的版本、写集只会包含键的最新值。版本采用高度来表示,高度为一个二元组Height(blockNumber--区块号,txNuber--区块内的交易编号)。
gossip目的:不需要所有节点都连接到排序服务获取账本区块数据的情况下,超级账本网络中所有节点还能有相同的账本数据、状态信息。系统运行中新加入节点或者落后节点可以不直接连接到排序服务从网络中获取账本、状态信息。
智能合约:chaincode签名表明谁创建的连码以及验证连码内容和连码是否被篡改。(步骤一)应用程序通过gRPC请求向背书节点发起链码的调用请求,背书节点再转发给链码执行,应用程序不能直接和链码通讯。(步骤二)背书节点检查链码是否启动,检查方法查看本地维护的映射表里是否有指定的链码名称和版本记录,如果没有通过Docker API发起创建或者启动容器的命令(步骤三)链码和背书节点建立好gRPC连接,转发应用程序请求,调用背书节点的ESCC对模拟执行的结果进行背书,ESCC对模拟执行进行签名,返回背书的结果。背书节点将结果给应用程序。链码在业务逻辑的处理过程中会读取和操作账本数据。
peer节点:可以作为记账节点、背书节点(背书节点是动态的角色,与具体链码绑定,应用程序向背书节点发起交易时才是背书节点,其余只是记账节点)、主节点(和排序节点通讯的节点)。
order节点:接收包含已经背书签名的交易,对未打包的交易进行排序生成区块,广播给peer节点。
ca节点:客户认证节点,ca节点接收客户端的注册申请,返回注册密码用于用户登录。
原文发布时间为:2018年02月04日
本文作者:sxfhaifeng
本文来源:CSDN,如需转载请联系原作者。