个人认为windows搭建智能合约底层服务不可行

一、背景

在登录 BSN区块链服务网络 后,点击进入联盟链服务——测试网服务,随后在我的测试服务页面点击新建,可以选择的平台类型如下:

二、平台类型及IDE选择

先说一下结论,首先,在 Windows 上直接部署智能合约的底层服务难度很大,不适合初学者,感觉需要很多精力研究,所以我放弃了。

  • 还是在 Windows 电脑上安装一下虚拟机软件,再在虚拟机上安装类Unix系统,然后部署智能合约底层服务会更加顺利一些;
  • 关于 FISCO-BCOSHyperledger-Fabric 之间的选择,个人感觉还是有 WeBank + Fisco-Bcos 的组合更好,因为 WeBank 有可视化页面;

2.1 FISCO-BCOS

FISCO BCOS 是一个稳定、高效、安全的区块链底层平台,经过多家机构、多个应用,长时间在生产环境运行的实际检验。

尤其在金融领域应用广泛。

阅读 Fisco Bcos 官方指导文档戳这里

2.1.1 WeBASE

于是,作为一名区块链入门开发者,我了解到 WeBASE 是可以用来写智能合约 的开发工具之一。

WeBASE:一站式开发环境

  • 微众银行自主研发并完全开源的区块链中间件平台
  • 提供一站式合约开发环境、覆盖合约的生命周期
  • 可视化交互,所见即所得
  • 提供账户管理、合约管理及数据查询能力

都 2022 年了,你居然没有 bat 脚本,只有 sh 脚本...我蛋疼了,而且这个 build_chain.sh 对于一个新手而言根本绕不过去呀!
环境搭建需要借助 Ubuntu 虚拟机,说实话有点小烦!因此,不推荐 Windows 系统的小伙伴入门时使用。

2.1.2 ChainIDE

注册即用的在线开发平台,可以选择由纯白矩阵开发的 https://chainide.com/ ,可以选择 Fisco 开发在线IDE -> https://fiscoide.com/

说实话,因为是国外的服务器,所以慢得一比,还经常打不开,不推荐!

2.2 Fabric

全称是 Hyperledger Fabric

部署参考文档:在WIN10下使用DOCKER安装FABRIC 2.0区块链测试网络

  1. D 盘创建 D:\fabric 文件夹,作为工作目录;
  2. 下载 fabric-samples 源码,在 CMD 中输入以下命令之一:
// 从国外 GitHub 下载
git clone https://github.com/hyperledger/fabric-samples.git
// 或者从国内 Gitee 下载
git clone https://gitee.com/hyperledger/fabric.git
  1. 访问网站 https://github.com/hyperledger/fabric/releases/tag/v2.3.2,并下载 hyperledger-fabric-windows-amd64-2.3.2.tar.gz

  1. 下载完成的 hyperledger-fabric-windows-amd64-2.3.2.tar.gz 放到工作目录 D:\fabric 下,并且用 7-Zip 提取到当前位置
  2. 再将解压得到的 hyperledger-fabric-windows-amd64-2.3.2.tar 文件,再次用 7-Zip 提取到当前位置,得到 binconfig 文件夹;

  1. 复制 binconfig 文件夹到 fabric-samples 文件夹;

  2. 使用 docker pull 拉取所需镜像:

docker pull hyperledger/fabric-tools:3.2.3
docker pull hyperledger/fabric-orderer:3.2.3
docker pull hyperledger/fabric-peer:3.2.3

访问网站 https://hub.docker.com/search?q=hyperledger%2Ffabric&type=image

  1. 修改 D:\fabric\fabric-samples\test-network\network.sh 第 71 行,latest 改为 2.3.2:
DOCKER_IMAGE_VERSION=$(${CONTAINER_CLI} run --rm hyperledger/fabric-tools:2.3.2 peer version | sed -ne 's/^ Version: //p')
  1. 修改 D:\fabric\fabric-samples\test-network\compose\compose-test-net.yaml ,修改 :latest:2.3.2
image: hyperledger/fabric-orderer:2.3.2
image: hyperledger/fabric-peer:2.3.2
image: hyperledger/fabric-tools:2.3.2
  1. 修改 D:\fabric\fabric-samples\test-network\compose\docker\docker-compose-test-net.yaml ,修改 :latest:2.3.2
image: hyperledger/fabric-peer:2.3.2
image: hyperledger/fabric-tools:2.3.2
  1. 打开 Git Bash,进入 /d/fabric/fabric-samples/test-network,运行指令 bash network.sh up

  2. docker ps 检查: 测试网络包含 2个peer( peer0.org1.example.compeer0.org2.example.com),1个orderer(orderer.example.com),1个cli。

了解更多 Test Network

2.2.1 安装链码

  1. Git Bash 中运行 ./network.sh down 停止服务
  2. 修改 fabric-samples\test-network\compose\compose-test-net.yaml,在 volumes 增加一行:
volumes:
  - /d/fabric/fabric-samples/chaincode:/opt/gopath/src/github.com/hyperledger/fabric/peer/chaincode/

表示将 fabric-samples\test-network\asset-transfer-basic 挂载到 Docker 容器中。
注意,这种写法只适用于 Git Bash,而不适用于 CMD。

  1. Git Bash 中运行 ./network.sh up createChannel

  2. cmd 中运行 docker exec -it cli /bin/bash

  3. 引入环境变量:

export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=peer0.org1.example.com:7051

  1. go代理和打包链码
go env -w GOPROXY=https://goproxy.io,direct
go env -w GO111MODULE=on
peer lifecycle chaincode package fabcar.tar.gz --path chaincode/fabcar/go/ --lang golang --label fabcar_go_1

前两步是设置国内go代理,第三步是打包链码。

  1. 安装链码失败
bash-5.1# peer lifecycle chaincode install fabcar.tar.gz
Error: chaincode install failed with status: 500 - failed to invoke backing implementation of 'InstallChaincode': could not build chaincode: docker build failed: docker image inspection failed: cannot connect to Docker endpoint

其他参考:基于windows的hyperledger/fabric开发环境搭建

posted @ 2022-03-29 11:07  极客子羽  阅读(274)  评论(0编辑  收藏  举报