• 个人认为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开发环境搭建

  • 相关阅读:
    U盘修复
    在tomcat中配置jdk的不同版本
    集​群​t​o​m​c​a​t​+​a​p​a​c​h​e​配​置​文​档
    如何挂自己的web项目(免费拥有自己的网站及域名)
    JQuery对表格进行排序
    JQuery中对各种域进行隐藏和显示操作
    大文件批量上传断点续传文件秒传
    web 开发常用字符串表达式匹配
    spring 工具类大集合
    spring 是如何注入对象的和bean 创建过程分析
  • 原文地址:https://www.cnblogs.com/kendoziyu/p/16065009.html
Copyright © 2020-2023  润新知