(转)Fabric 1.0 读写集】的更多相关文章

本文译自Fabric 1.0 文档,这篇文档详述了当前读写集语义实现的细节.文档地址为: https://hyperledger-fabric.readthedocs.io/en/latest/readwrite.html 交易模拟和读写集 在一个背书人上进行交易模拟期间,会为交易准备一个读写数据集.读集包含一份唯一键的列表和该键的提交版本,用于交易模拟期间读取.写集包含一份唯一键的列表(键值可能与读集有重叠)和交易写入的对应的新键值.如果交易更新是删除该键,那么会对该键做一个删除标记. 进一步…
6.1.平台特定使用的二进制文件配置 该方案与Hyperledger Fabric 1.0 从零开始(五)--运行测试e2e类似,根据企业需要,可以控制各节点的域名,及联盟链的统一域名.可以指定单独节点的访问,生成指定的公私钥.证书等文件.具体的参数配置可以参考generateArtifacts.sh文件,可执行自动化生成,也可以按照该脚本里的命令手动生成. 参照3.1.运行fabric-samples的问题说明,首先我们在/opt/gopath/src/github.com/hyperledg…
Read-Write set semantics(读写集) 本文讨论了关于读写集当前实现的细节. Transaction simulation and read-write set(事务模拟和读写集) 客户端提交事务到peer,peer会执行背书验证并模拟该事务的请求结果,为该事务的请求准备一个读写集.读集包含了该事务在读取本地账本时的一列事务版本信息及该信息对应的的一列唯一键,写集包含了一个唯一键(可能也允许与读集中的键重复)列表和事务写入的最新值.如果事务的执行是删除操作,那么将为这一列唯一…
如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为就是Transaction的处理.而HyperLedger Fabric在1.0对系统架构进行了升级,使得事务的处理更加复杂. 一.架构 让我们来看看Fabric 0.6到1.0的架构图: 这个图来自IBM微课堂第三讲,我们可以看到原来单一的peer节点在1.0中进行了拆分,分为peer(背书节点和…
这篇文章详细介绍fabric的交易流程,以图片加文字的形式呈现. Fabric 1.0交易流程 fabric中的所有交易都是通过chaincode执行 1.应用程序客户端通过SDK调用证书服务(CA)服务,进行注册和登记,并获取身份证书. 2.应用程序客户端通过SDK创建好交易提案(Proposal),交易提案把带有本次交易要调用的合约标识.合约方法和参数信息以及客户端签名等信息发送给背书(Endorser)节点. 3.背书(Endorser)节点收到交易提案(Proposal)后,开始进行验证…
简述 在搭建HyperLedger Fabric环境的过程中,我们会用到一个configtx.yaml文件(可参考Hyperledger Fabric 1.0 从零开始(八)——Fabric多节点集群生产部署),该配置文件主要用于构建创世区块(在构建创世区块之前需要先创建与之对应的所有节点的验证文件集合),其中在配置Orderer信息中有一个OrdererType参数,该参数可配置为"solo" and "kafka",之前博文所讲的环境配置皆是solo,即单节点共…
5:启动Fabric多节点集群 5.1.启动orderer节点服务 上述操作完成后,此时各节点的compose配置文件及证书验证目录都已经准备完成,可以开始尝试启动多机Fabric集群. 首先启动orderer节点,切换至orderer.example.com服务器,即前文指定的10.130.116.8服务器,执行如下命令进入启动docker进程: docker-compose -f docker-compose-orderer.yaml up -d 运行完毕后我们可以使用docker ps看到…
4:创建Fabric多节点集群 4.1.配置说明 首先可以根据官方Fabric自带的e2e_cli列子中的集群方案来生成我们自己的集群,与案例不同的是我们需要把容器都分配到不同的服务器上,彼此之间通过网络来进行通信,网络构建完成后则进行相关的channel和chaincode操作. 笔者目前申请了五台服务器,所有的服务器均是按照上述e2e_cli环境构建与测试步骤配置.计划其中四台服务器运行peer节点,另外一台服务器运行orderer节点,为其它四个节点提供order服务. 虚拟机具体参数如下…
在HyperLedger/Fabric发布0.6的时候,公司就已经安排了一个团队研究这一块,后来也请IBM的专家组过来培训了一批人,不幸的是,这批人后来全走了,然后没过多久1.0就发布了.自从2017年7月HyperLedger/Fabric发布了1.0正式版后(可以参考:Hyperledger Fabric 1.0发布:基于区块链的开源分布式账本),公司领导就更加关注这个领域.然后,就安排我一个人来接手,我主要是做Android和iOS方向的开发,偶尔客串一下java后台服务开发,对linux…
在 Hyperledger Fabric 1.0 从零开始(十二)--fabric-sdk-java应用 中我已经把官方sdk具体改良办法,即使用办法发出来了,所有的类及文件都是完整的,在文章的结尾也说明了用法主要都依赖于ChaincodeManager这个智能合约管理器,建议以单例的形式生成该对象. 鉴于新入门的朋友在实际运用上可能需要更加简单明了的方案,这里就把最直接的方案给出,具体是写了一个FabricManager管理器,这个管理器将会接管整个java sdk与peer节点服务器及ord…