总体来看,网络上成体系的可用的 Fabric 教程极少--不是直接在 Fabric 官网复制内容大谈基础理论就是在描述一个几乎无法复现的项目实践,以至于学习 Fabric 的效率极低,印象最深刻的就是我曾经花费几天时间尝试按照官方教程 CA Deployment steps 搭建自己的 CA 服务,却始终无法成功也找不到原因.因此,为了提高生产效率,本系列虚拟了一个工作室联盟链需求并将逐步实现,致力于提供一个易理解.可复现的工程项目,其中工程部署配置的各个环节都清晰可见,并且可以通过流程脚本能够…
介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密.便捷扩展.部署灵活及可插拔等特性.它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态系统中存在的复杂性和高精度性. HyperLedger Fabric与其它的区块链平台解决方案相比,提供了一种独特的扩展便捷和灵活部署的架构.它更多的适用于联盟链形式,即适合企业级之间的区块链联盟方向,建立在可信任的基础上.如果是企业级区块链部署的话,建议可以采用HyperLedger Fabric…
现在所有的文件都已经准备完毕,我们可以启动fabric网络了. 一.启动orderer节点 在orderer服务器上运行: cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli docker-compose -f docker-compose-orderer.yaml up -d 运行完毕后我们可以使用docker ps看到运行了一个名字为orderer.example.com的容器. 二.启动peer节点 2.1安装couchdb…
接下来我要做的是用fabric sdk来做出应用程序,代替CLI与整个区块链网络交互.并且实现一个http API,向社区提供一个简单的接口,使社区轻松的与区块链交互. 官方虽然提供了Node.JS,Java,Go(最近刚出了python)等多种语言的SDK,但是很多SDK还不成熟和完善,有的甚至文档都没有.我使用Node.js的原因有三.1.官方例子使用的是Node.js SDK 2.以前我做以太坊智能合约开发的时候也用过Node.js 3.最后是因为Node.js实现一个http服务器是非常…
前几章已经分别把三台虚拟机环境和配置文件准备好了,在启动fabric网络之前我们要准备好写好的chaincode.chaincode的开发一般是使用GO或者JAVA,而我选择的是GO语言.先分析一下官方最典型的一个chaincode--fabcar,然后着重介绍一下shim.ChaincodeSubInterface,最后在贴上我自己的chaincode. 一.chaincode主要框架结构 1.1 引入了4个程序库,用于格式化.处理字节.读取和写入JSON,以及字符串操作.2个Hyperled…
三个月前上面发了一个关于智群汇聚和问题求解研究的项目,我们公司做其中的一个子项目,就是基于区块链的科技信息联盟构建.利用区块链的去中心化特性,构建一个基于区块链的科技社区,以提供科技群智汇聚采集的基础承载平台.科技工作者可以发布自己的论文.问题,以及对他人问题的交互讨论.由于采用区块链技术,包括最新科技创想在内的讨论内容所形成的知识资产可以得到确权,不可编造.不可否认.联盟的参与节点是各个社区,所有节点维护相同的数据,所有附带作者的内容都附带作者的数字签名,知识产权的确认将变得非常容易.最后,数…
Building you first network 网络结构: 2个Orgnizations(每个Org包含2个peer节点)+1个solo ordering service 打开fabric-sample下的示例first-network 其中byfn.sh为启动这个网络的启动脚本,启动脚本中除建立一个包含4个节点和1个Order service的网络外,还会启动一个容器用来执行脚本在channel中加入节点,部署和初始化chaincode,以及在部署的chaincode上执行交易. 启动脚…
接下来讲一下在本地测试区块链网络的过程.我要部署的是2peer+1orderer架构,所以需要准备三台虚拟机,为了方便起见可以先把一台配置好,然后复制出剩余两台即可.搭建虚拟机我用的是virtualbox,系统统一用ubuntu16.04LTS,镜像在官方下载.网络模式用NAT就行,复制虚拟机的时候记得勾选重新初始化所有网卡的MAC地址.以下是我用到的三台主机名和IP: orderer.example.com 10.0.2.10 peer0.org1.example.com 10.0.2.11…
Hyperledger Fabric 学习 什么是区块链 什么是区块链在我们没有接触的时候,只知道它是一个去中心化的存储方式.当我们发生交易,或者动作的时候我们会将记录通知给所有参与者共同维护,达到去中心化的进行存储.并且我们会将记录使用加密技术保证记录一旦添加到了账本中就无法修改(无法修改的账本就可以追溯信息根源)这个也就是区块链有时候被称为证明系统. 区块链使用场景 多方参与 跨机构数据共享需求 能够除本增收 提高工作效率 智能合约 智能合约也就是我们说的链码,我们可以通过智能合约访问我们的…
上个版本的chaincode有很多功能不完备,所以要部署新版本的chaincode.Fabric支持在保留现有状态的前提对chaincode进行升级. 一.新版chaincode 新版本的chaincode增加的功能如下: 1.增加了数据追溯功能,在社区用户发起transaction时,chaincode将自动在用户证书中提取用户信息,将其存储在帖子的字段里. 2.加入了敏感词监管功能,敏感词字典和敏感词过滤功能在外部提供,chaincode通过http api(post 请求)调用服务. 3.…
一.生成公私钥和证书 Fabric中有两种类型的公私钥和证书,一种是给节点之前通讯安全而准备的TLS证书,另一种是用户登录和权限控制的用户证书.这些证书本来应该是由CA来颁发,但是目前只有两个社区,所以目前暂时没有启用CA节点,但是Fabric帮我们提供了一个crytogen工具来生成证书. 1.1编译cryptogen 编译生成 cryptogen之前我们需要安装一个软件包,否则编译时会报错 sudo apt install libtool libltdl3-dev Fabric提供了专门编译…
一.证书目录解析   通过cryptogen生成所有证书文件后,以peerOrgannizations的第一个组织树org1为例,每个目录和对应文件的功能如下:   ca: 存放组织的根证书和对应的私钥文件,默认采用EC算法,证书为自签名.组织内的实体将基于该证书作为证书根. tlsca:存放组织tls连接用的根证书和私钥文件.(TLS是传输层安全协议,其实就是SSL,现在叫TLS了) msp:存放代表该组织的身份信息.        admincerts:组织管理员的身份验证证书,被根证书签名…
一.启动elasticsearch服务 官网下载压缩包解压,进入bin目录启动: ./elasticsearch 通过ip访问 localhost:9200,可以看到如下信息 { name: "n1HFjO-", cluster_name: "elasticsearch", cluster_uuid: "njH6T6eMS-mDf3tloN5THg", version: { number: "5.2.2", build_has…
前言 在Hyperledger Fabric组织的动态添加和删除中,我们已经完成了在运行着的网络中动态添加和删除组织,但目前为止,我们启动 orderer 节点的方式都是通过系统通道的方式,这样自带系统通道的网络很不简洁优雅.好在 Fabric 2.3 以上就开始支持无系统通道创建应用通道的功能,本文将对此功能进行详细解释和介绍,然后通过无系统通道的方式启动联盟链网络并在此基础上完成通道的添加和删除.本实验必要的准备工作和 DNS 配置请参考 准备工作. 背景介绍 实验准备 本文网络结构直接将…
前言 在实验Hyperledger Fabric无排序组织以Raft协议启动多个Orderer服务.多组织共同运行维护Orderer服务中,我们已经完成了让普通组织运行维护 Orderer 服务,但是最后发现由于运行排序服务的组织需要较为开放的访问策略,可能会降低组织的安全性,所以本实验将尝试使用提供 TLS-CA 服务的 council 组织运行维护 Raft 协议的三个 orderer 节点.本文将在之前的实验基础上,启动一个没有 orderer 组织的 Fabric ,其中由 counci…
前言 在实验Hyperledger Fabric无排序组织以Raft协议启动多个Orderer服务.TLS组织运行维护Orderer服务中,我们已经完成了使用提供 TLS-CA 服务的 council 组织运行维护 Raft 协议的三个 orderer 节点.但目前我们都是在单个主机上启动 Fabric 网络,本文将尝试将 Hyperledger Fabric无排序组织以Raft协议启动多个Orderer服务.TLS组织运行维护Orderer服务 中的网络结构部署在多个主机上. 工作准备 本文工…
前言 在上个实验 Hyperledger Fabric 多组织多排序节点部署在多个主机上 中,我们已经实现了多组织多排序节点部署在多个主机上,但到目前为止,我们所有的实验都只是研究了联盟链的网络配置方法(尽管这确实是重难点),而没有考虑具体的应用开发.本文将在前面实验的基础上,首先尝试使用 Go 语言开发了一个工作室联盟链的项目信息智能合约,并成功将其部署至联盟链上:然后依据官方示例,使用 fabric-gateway 模块实现了一个能够管理项目信息智能合约的客户端:之后对比了 fabric-g…
前言 在Fabric定制联盟链网络工程实践中,我们虚拟了一个工作室的联盟链网络需求,并根据此需求分析了整个网络的架构且已经完成了一个简单 fabric 网络模型.本文将在其基础上,在 mychannel 通道上添加新的 hard 组织,并在之后删除 soft 组织,本实验必要的准备工作和 DNS 配…
今天的文章来自Wen Aviva, 坐Jerry面对面的程序媛. Jerry在之前的公众号文章<在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图>已经介绍过Aviva了,SAP成都C4C开发团队中其他同事评价她为:"美腻与智慧的化身","云时代女王","是大家前沿技术的引路人".因为Jerry和Aviva就在一个组,所以我的看法是,这些评价都实至名归. 比如Jerry了解到的Javascript 3D渲染,增强现…
hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM.Intel.各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量.本文中我们依次讨论:区块链的共通特性.fabric核心概念.fabric的交易执行流程.本文来源于笔者欲对公司部分业务上链而进行培训的PPT,故图多文字少,不要怕太长. 1.区块链解决方案的特性1.1 分布式帐本区块链核心概念是分布式帐本,就像下面的图1所示,同样的帐本(全量的交易数据,详见下节)在任意一台节点(不包括客户端…
HyperLedger Fabric 学习思路分享 HyperLedger Fabric最初是由Digital Asset和IBM公司贡献的.由Linux基金会主办的一个超级账本项目,它是一个目前非常流行并广为人知的区块链网络框架的实现方案.作为一种基于模块化架构开发应用程序或解决方案的基础,HyperLedger Fabric支持如共识和会员服务等即插即用的组件,它的设计初衷是支持不同组件的可插拔实现,并适应整个经济生态系统的复杂性和高精度性.HyperLedger Fabric利用容器技术运…
区块链开源实现HYPERLEDGER FABRIC架构详解 区块链开源实现HYPERLEDGER FABRIC架构详解 2018年5月26日 陶辉 Comments 10 Comments hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM.Intel.各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量.本文中我们依次讨论:区块链的共通特性.fabric核心概念.fabric的交易执行流程.本文来源于笔者欲对公司部分业务上链而进行培训的P…
相关实验源码已上传:https://github.com/wefantasy/FabricLearn 前言 在基于truffle框架实现以太坊公开拍卖智能合约中我们已经实现了以太坊智能合约的编写及部署,但其工作方式注定其只能应用于有限的业务场景中.相比之下,基于超级账本的Fabric具有高可扩展性和高可定制性,能够应用在更为复杂的商业场景中,但Fabric技术涉及很多新的概念,源代码跟新速度快且各版本间兼容性差,对初学者很不友好.为了使能够快速掌握Fabric,本文基于其目前最新的2.4版本搭建…
前言 在基于Debian搭建Hyperledger Fabric 2.4开发环境及运行简单案例中,我们已经完成了Fabric 2.4的环境搭建及fabric-samples/test-network官方案例的运行.毫无疑问test-network是一个优秀的入门项目,让我们仅仅通过几行命令就能搭建起…
HyperLedger/Fabric JAVA-SDK with 1.1 该项目可直接在github上访问. 该项目介绍如何使用fabric-sdk-java框架,基于fabric-sdk-java v1.1正式版开发,可向下兼容1.0版本. 该项目没有对原JAVA-SDK做修改,主要是结合HyperLedger Fabric与fabric-sdk-java中的交互方式做了个人感觉更为清晰的描述,希望能够帮助更多的人尽快熟悉fabric-sdk-java的操作流程和方式. sdk-advance…
文章目录 什么是Hyperledger Fabric? Hyperledger架构是怎么工作的? Hyperledger交易如何执行 总结 Hyperledger Fabric基础知识 本文我们会介绍Hyperledger Fabric的基础知识,并了解如何充分利用这个多功能的区块链框架. 区块链技术为创新提供了丰富的机会.它提供了一种新的交易方式,从而可以从根本上改变业务的实现. 那么,在众多的区块链框架中,开发人员应该首先掌握哪个框架呢?IBM开发的Hyperledger Fabric肯定是…
前言 在Hyperledger Fabric组织的动态添加和删除中,我们已经完成了在运行着的网络中动态添加和删除组织.本文将在其基础上,详细介绍了如何在 soft 组织上添加新的 peer2 节点,并在简要概述了删除节点的方法,本实验必要的准备工作和 DNS 配置请参考 准备工作. 背景介绍 实验准…
前言 在Hyperledger Fabric无系统通道启动及通道的创建和删除中,我们已经完成了以无系统通道的方式启动 Hyperledger Fabric 网络,并将链码安装到指定通道.但目前为止,实验中的 orderer 服务都是通过单独的排序组织来维护且只有一个,那能不能不要排序组织而使用普通组织来运行维护多个 orderer 服务呢?当然是可以的,本文将在之前的实验基础上,启动一个没有 orderer 组织的 Fabric 网络,网络中包含三个组织且每个组织运行维护着一个 Raft 协议的…
Hyperledger gossip   本文记述了Hyperledger Fabric 中 一种网络数据同步协议--gossip,它的主要作用是致力于账本数据的安全传输,保证不同节点之间状态的同步和完整.   在fabric的网络中gossip的message是持续存在的,一个peer节点会不断.实时的接收到来自同一channel其他peers的账本数据.每一个gossip message都携带发送方的签名信息,这可以使得接受方轻易的辨别对方的身份和校验消息的完整性和合法性.当一个peer由于…
联盟链IBM的超级账本Hyperledger Fabric框架,JP Morgan’s Quorum JP Morgan’s Quorum https://www.coindesk.com/jpmorgan-ethereum-blockchain-quorum 这个是联盟链,联盟链一般都基于IBM开源的那个超级账本Hyperledger Fabric框架开发的 目前最活跃最被认可的应用于联盟链的典型开源区块链代码项目,是由IBM推出的Fabrice以及金链盟开源的FISCO BCOS -----…