关于区块链、超级账本、智能合约等概念,请自行谷哥和度娘。建议直接参考官网文档 https://hyperledger-fabric.readthedocs.io/en/release-1.4/
-
本例仅限搭建原型用于验证技术可行性目的,远达不到产品级可用;
-
本例采用了3个组织,每组织2个节点,用于不动产、房管、税务三个部门做背书节点;3份智能合约(网签合同、纳税凭证、不动产权证书)跑在1个通道;状态数据库采用CouchDB; DEMO 地址 :http://104.197.81.156:8080/
本例采用hyperledger 1.4.3版本。以下步骤在centos7上完成,并适用于ubuntu/MACOS/WINDOWS等
- 安装环境(go1.3以上,docker-ce,docker-compose,git)
cd /opt
wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz
tar zxvf go*.gz
yum install -y yum-utils device-mapper-persistent-data lvm2
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-compose git
- 下载超级账本官方超级账本网络示例
若带梯子,下载官方脚本执行:
curl -sSL http://bit.ly/2ysbOFE | bash -s -- 1.4.3 1.4.3 0.4.15
若无梯子,直接运行已下载的脚本执行:
./1-1.hy-sample.sh -- 1.4.3 1.4.3 0.4.15
将会在当前/opt目录下生成fabric-samples目录,并自动下载命令工具和镜像。
-
将fabric-samples/bin和/opt/go/bin 加入本地PATH
-
下载本示例
cd /opt/fabric-samples
git clone https://github.com/long0419/fcc.git
cd fcc
- 启动示例网络,创建区块链网络(2个组织,每组织2个节点) 如果启动报错exec 权限不够,就需要整体进行 setenforce 0
chmod +x *.sh
./1-2.startNetwork.sh
完成后,结果显示:
========= All GOOD, BYFN execution completed ===========
- 加入第3个组织,2个节点
./2.addOrg3.sh
完成后,结果显示:
========= Org3 is now halfway onto your first network =========
- 部署政务智能合约,并实例化
./3-1.installNetcon.sh #合约:网签合同备案
./3-2.installEstateBook.sh #合约:不动产权证书
./3-3.installEstateTax.sh #合约:不动产业务缴税
完成后,结果显示:
Get instantiated chaincodes on channel mychannel:
Name: estatebook, Version: 1.0, Path: github.com/chaincode/estatebook, Escc: escc, Vscc: vscc
Name: estatetax, Version: 1.0, Path: github.com/chaincode/estatetax, Escc: escc, Vscc: vscc
Name: netcon, Version: 1.0, Path: github.com/chaincode/netcon, Escc: escc, Vscc: vscc
- 编译后台。 代码位于appcode/fccserver/src 可自行编译,或直接使用已编译完成的可执行文件。
chmod +x appcode/fccserver/src/fccserver
启动后台容器
./4.startAppcli.sh
docker logs -f appcli
如果启动正常,会显示:
[fcc-server] 2019/12/12 03:03:55 system db initiated successfully.
[fcc-server] 2019/12/12 03:03:56 Chaincode client initialed successfully.
[fcc-server] 2019/12/12 03:03:56 Server started on :1206
-
编译和部署前端。 前端采用VUE,也可使用其它前端框架或HTML。使用GNINX或其它WEB服务器部署编译后的前端代码。注:当前未使用登录和权限设置。 第一次操作数据上链时,区块链网络后端会根据背书节点和合约数量创建镜像并启动容器(本例为3*2) 大约耗时30-60秒,之后每次上链操作约1秒,查询小于1秒。
-
重建后台容器或重建整个区块链网络:
./4-0.stopAppcli.sh #重建后台容器
./0.stopNetwork.sh #重建整个区块链网络
- 背书节点与查询节点:涉及合约数据的变更操作(新建、修改、删除)需要多个背书节点(AND、OR策略),查询合约和节点可在同一通道或不同通道;
- 共识:需要采用KAFKA+ZK集群或ETCD集群;
- 证书与权限:通过CA集群和MSP来管理发放不同权限的证书,考虑用证书或其它方式实现基于RBAC的权限控制;
- 如果可以,采用国产加密算法;