在HyperLedger/Fabric发布0.6的时候,公司就已经安排了一个团队研究这一块,后来也请IBM的专家组过来培训了一批人,不幸的是,这批人后来全走了,然后没过多久1.0就发布了。自从2017年7月HyperLedger/Fabric发布了1.0正式版后(可以参考:Hyperledger Fabric 1.0发布:基于区块链的开源分布式账本),公司领导就更加关注这个领域。然后,就安排我一个人来接手,我主要是做Android和iOS方向的开发,偶尔客串一下java后台服务开发,对linux的了解不是很深入,更别提什么zookeeper和kafka这些对我一个小小前端来讲都特别高大上的服务组件。接手后就开始按照已离职那批人留下的文档一行一行的敲和调试,其实就是copy代码到linux命令行里面,最后看到一个跑通的提示信息,然后也不知道是什么原理,就有个可用的restful服务,能够实现deploy、invoke和query等操作,当时是用了一台服务器做的,我也天真的以为这就搞定了,就好比tomcat里放个war包一样简单,但真正的噩梦才刚刚开始。
HyperLedger/Fabric1.0版本,相比较于0.6版本不仅性能上有了大幅的调优(Hyperledger Fabric1.0架构概览,主要是架构上的调整更加友好),在实际搭建和使用的方法上更是有了巨大的变化,这就导致我这个自我感觉入门了的门外汉彻底变成了一个连门在哪个方向都不知道的门外汉,尤其是当我得知restful方案已经被废弃后(参考这个:Remove deprecated devops REST API),简直悲愤欲绝,想死的心都有了。而且当我深入一点了解的时候,发现这是需要多台服务器做分布式部署,之前那团队干的压根就是个demo,最可悲的是我想申请IBM培训资源,直接被拒了……
好吧,上述吐槽仅是片面,关于Fabric这个项目的吐槽以后都会集中在此,不会在后续篇章中废话。
截止今天,笔者的Fabric项目基本已经完成整体搭建,所以就抽空来开个博客,写写这方面的内容,希望能够帮助那些从零开始的朋友们。
后面也会分篇来介绍如何一步一步从零开始做这个项目,这个真的是从零开始,因为到现在,我都不敢说自己区块链入门了!
后续篇章具体包含如下内容:
目录
超级账本HyperLedger-Fabric 1.0部署方案
1:环境构建
1.1:Docker安装
1.2:Docker-Compose安装
1.3:Go语言安装
2:Fabric源码及镜像文件处理
2.1下载Fabric源码
2.2下载Fabric相关镜像文件
2.3镜像备份和拷贝(该步骤并非必须,若无此需求,可以略过本步骤)
3:运行测试e2e
3.1、运行fabric-samples的问题说明
3.2、运行e2e_cli项目
3.3、e2e_cli与Linux内核bug
4:创建Fabric多节点集群
4.1、配置说明
4.2、生成公私钥、证书、创世区块等
4.3、配置多服务器
4.4、设置peer0.org1.excmple.com节点的docker-compose文件
4.5、设置peer1.org1.excmple.com节点的docker-compose文件
4.6、设置order节点的docker-compose文件
5:启动Fabric多节点集群
5.1、启动orderer节点服务
5.2、启动peer节点服务
5.3、创建channel和运行chaincode
6:Fabric多节点集群生产部署
6.1、平台特定使用的二进制文件配置
6.2、生成组织证书与私钥
6.3、定义configtx.yaml配置文件
6.4、生成orderer源文件
6.5、生成channel源文件
6.6、生成channel下节点集合认证文件
7:Fabric多节点集群生产启动
7.1、多节点服务器配置
7.2、启动orderer排序服务节点
7.3、启动TKMSP peer节点
7.4、创建并加入channel
7.4.1、注意事项-必读
8:智能合约
8.1、智能合约介绍
8.2、Chaincode API
8.3、编写简单的智能合约
8.3.1、选择代码创建的位置
8.3.2、头文件编辑
8.3.3、chaincode接口结构
8.3.4、初始化chaincode-init
8.3.5、执行(调用)chaincode-invoke
8.3.6、实现set与get函数
8.3.7、启动chaincode
8.4、安装chaincode
8.5、实例化chaincode
上述目录是笔者最近在做这个项目的时候一步一步记录下来的操作路径,主要也是担心自己会忘记流程,最终整理成博文需要慢慢来,也算是对自己在这个项目上有个交代了。