一、搭建基础网络
1、组织架构准备
1)组织架构文件编写,cryto-config.yaml 配置排序服务节点和组织节点;(预创建10倍业务组织,后续拓展方便)
2)使用cryptogen根据配置文件生成证书文件:根证书、tls等文件;
2、创世区块与通道准备
1)创世区块与通道配置编写,configtx.yaml 配置创世区块和通道的相关信息,创世区块在orderer启动的时候会用到,通道配置在创建通道的时候会用到;
2)使用configtxgen工具根据配置文件生成创世区块.block和通道配置.tx文件;
3)新增通道时,需要修改配置文件,重新生成新通道的.tx文件;(只能增加或减少已有组织)
3、基础网络启动
1)编写节点docker.yaml配置,包括zk、kafka、peer、ordderer、ca等节点配置,根据每个节点docker中数据保存位置进行数据外部文件映射,从而进行数据固化,注意节点地址和端口配置;
2)分发各个配置文件到相应的服务器上,建议每个peer一个服务器,如果服务器不够用,可以使用zk、kafka、和orderer混合使用服务器;
3)启动各个服务器上的docker节点,注意启动顺序,zk->kafka->orderer->peer
4、通道创建,操作之前需要先配置cli环境
0)理解channel用途,在所有组织中搭建一个相当于局域网的东西,进行网络隔离
1)创建通道,peer channel create
2)各个节点joinchannel,如果未join则不会进行数据同步
3)安装锚节点,即每个组织指名grpc通信的节点
5、基础网络搭建完成
1)基础网络模块工作基本完成,相当于某个软件安装完成,如mysql等
2)以上建议编写脚本自动执行
二、智能合约
1、智能合约编写
1)数据结构设计,结合fabric特性,设计数据对象和交易动作对象;
2)业务接口设计,根据实际业务场景进行设计相应接口;
3)整体框架搭建,注意编码规范;
4)数据结构与接口编码实现,根据框架搭建情况,可分工编写;
5)复杂业务逻辑建议单独函数封装,然后模拟输入在go环境下进行测试(不上链,当作普通go程序测试)
2、智能合约上链
1)在每个peer中install链码;
2)选择其中一个peer节点进行链码实例化
3)调用框架中自己定义的校验函数进行测试
4)链码更新upgrade
3、智能合约测试
1)使用cli环境进行链码的测试
三、应用开发
应用开发设计跟一般设计类似,不做详述
1)设计,与一般应用不同,这里需要多设计一个区块链浏览器,让用户可以浏览区块相关信息
2)开发
3)sdk的使用跟普通sdk类似,但是注意区块链建议使用异步,避免阻塞
四、运维安全
1、数据持久化
将docker中各个节点的数据映射出来保存在本地,避免docker镜像丢失时数据丢失
2、数据备份
将docker映射的文件进行定期备份,映射数据包括:通道信息、区块信息等
网友评论