fabric 2.3 手动搭建网络&安装chaincode智能合约

这篇具有很好参考价值的文章主要介绍了fabric 2.3 手动搭建网络&安装chaincode智能合约。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

搭建好fabric之后,要在test-network下手动启动一个fabric网络。将下载过来的order和peer1两个文件夹放到~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network目录下。
生成证书文件:

cryptogen generate --config=./organizations/cryptogen/crypto-config-org1.yaml --output="organizations"
cryptogen generate --config=./organizations/cryptogen/crypto-config-org2.yaml --output="organizations"
cryptogen generate --config=./organizations/cryptogen/crypto-config-orderer.yaml --output="organizations"

生成创世块:

export FABRIC_CFG_PATH=${PWD}/configtx
configtxgen -profile TwoOrgsOrdererGenesis -channelID system-channel -outputBlock ./system-genesis-block/genesis.block

之后便可以去启动order和peer,分别进入order和peer1文件夹下,打开终端输入orderer startpeer node start

我在这里犯了个非常愚蠢的错误,启动order时候报错:Failed to get local msp config: could not load a valid signer certificate from directory /home/user/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts:…
是因为在配置文件写的/home/user路径中,我自己的用户名不是user,所以当然找不到这个路径了😂

启动成功的终端界面:org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节
生成通道文件并更新锚节点:

configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID mychannel

configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP
configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID mychannel -asOrg Org2MSP

如果报错 Error on inspectChannelCreateTx: org ‘Org1MSP’ does not have any anchor peers defined,说明configtx.yaml配置文件中的Org1,缺少了锚节点相关的属性:

        AnchorPeers:
            - Host: peer0.org1.qkltest.com
              Port: 7051     

安装智能合约
在test-network下打开一个终端切换环境:

export FABRIC_CFG_PATH=/home/user/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/peer1
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_ADDRESS=localhost:7051
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp

再打开一个终端切换环境:

export FABRIC_CFG_PATH=/home/user/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/peer2
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org2MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
export CORE_PEER_ADDRESS=localhost:9051
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp

创建通道:

peer channel create -o localhost:7050 -c mychannel --ordererTLSHostnameOverride orderer.example.com -f ./configtx/channel-artifacts/mychannel.tx --outputBlock ./configtx/channel-artifacts/mychannel.block –tls --cafile /home/user/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节
加入通道

peer channel join -b ./configtx/channel-artifacts/mychannel.block

org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节

这里补充一个点,当打包合约时报错Error: failed to normalize chaincode path: ‘go list’ failed with: error obtaining VCS status: exit status 128
Use -buildvcs=false to disable VCS stamping.: exit status 1
这个应该就是由于权限不足引起的,加一个sudo在前面就行了。org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节

链码终于安装成功了
org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节
org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节
org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节

按照学长GitHub上修改peer配置文件后再重新再重启peer后安装新的chaincode,出现错误
只要一重新创建channel命令,orderer就无法连接,并且报错日志文件

Error: failed to create deliver client for orderer: orderer client failed to connect to localhost:7050: failed to create new connection: context deadline exceeded
org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节

学长建议用

sudo ./network.sh down

关闭之前的网络,删掉之前的文件夹,重新试了之后也还是不行
org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节
--------------------------------------------分割线-----------------------------------------------------------
2022.5.2
目前的问题还是在让某一节点加入通道的时候,会让这个节点出现连接报错的现象。org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节
检查之后实在不知道是什么环节出现问题,打算再重建个虚拟机试一试。

2022.10.24补充:
评论区大佬说这个加入通道问题可能是此节点已经挂掉,可以用docker ps -a查看一下节点是否是up状态,如果按照文档来的话很少是证书得问题。还有就是可以尝试一下docker-compose down关停docker,然后docker volume prune清空容器内的东西,然后重启网络。

2022.5.10
重装了虚拟机部署之后还是差不多的问题,但是因为peer2的配置文件一直是我自己修改写的。怀疑两个peer不可同时运行那只能是配置文件哪里写的有问题吧,于是将学长的虚拟机上的peer2配置文件换到了我的虚拟机上,发现就可以运行了,后续在寻找一下到底是哪里写的不对。

各组织审议合约:
org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节
org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节
通道审议合约:
org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节
调用合约成功:
org 'org1msp' does not have any anchor peers defined,hyperledger fabric,fabric,区块链,ubuntu,linux,1024程序员节文章来源地址https://www.toymoban.com/news/detail-820445.html

到了这里,关于fabric 2.3 手动搭建网络&安装chaincode智能合约的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2.搭建Fabric区块链网络环境——前提条件和fabric的安装

    这些前提条件的满足确保了你可以顺利地搭建和运行 Fabric 区块链网络,并进行链码的开发、部署和执行。 安装 Docker:确保系统上已经安装了 Docker,并且 Docker 服务正在运行。 Docker:Fabric 使用 Docker 容器化技术来部署和管理区块链网络的各个组件。Docker 提供了一个轻量级、

    2024年02月11日
    浏览(40)
  • Hyperledger Fabric 使用 CouchDB 和复杂智能合约开发

    在上个实验中,我们已经实现了简单智能合约实现及客户端开发,但该实验中智能合约只有基础的增删改查功能,且其中的数据管理功能与传统 MySQL 比相差甚远。本文将在前面实验的基础上,将 Hyperledger Fabric 的默认数据库支持 LevelDB 改为 CouchDB 模式,以实现更复杂的数据检

    2023年04月15日
    浏览(37)
  • Hyperledger Fabric 智能合约开发及 fabric-sdk-go/fabric-gateway 使用示例

    在上个实验 Hyperledger Fabric 多组织多排序节点部署在多个主机上 中,我们已经实现了多组织多排序节点部署在多个主机上,但到目前为止,我们所有的实验都只是研究了联盟链的网络配置方法(尽管这确实是重难点),而没有考虑具体的应用开发。本文将在前面实验的基础上

    2024年01月20日
    浏览(43)
  • 如果Fabric的智能合约函数陷入死循环会怎么样

    大家好,我是 powervip !今天和大家一起探讨一下:如果Fabric的智能合约函数陷入死循环会怎么样 先看一段合约函数代码: func (t *SimpleChaincode) Test(stub shim.ChaincodeStubInterface, args []string) pb.Response { // 选择商品价格在1元到100元之间的商品名称和数量 s := \\\"{\\\"fields\\\": [\\\"GoodsName\\\",

    2023年04月21日
    浏览(34)
  • 8. Fabric2.2 区块链农产品溯源系统 - 智能合约设计

    根据上小节的需求分析与方案设计来进行智能合约的设计。 智能合约设计最核心的是存储字段的设计、也就是索引设计,Fabric 常见的时间状态存储引擎是LevelDB 或 CouchDB,这两个数据库是KV存储,KV存储不像SQL类型存储,一张表创建多个字段,多个字段索引可以进行各种复查询

    2023年04月08日
    浏览(31)
  • 11. Fabric2.2 区块链农产品溯源系统 - 智能合约开发-1

    智能合约与业务逻辑关联度高,承载大量业务逻辑,本小节教大家搭建智能合约开发环境GoLand,并编写合约打包脚本。 作者在windows电脑安装ubuntu18.04版本虚拟机(vmware),Linux环境也有Goland版本,可用性丝毫不差,所有的区块链开发在Linux环境进行。 官方可以下载,要么评估

    2023年04月20日
    浏览(71)
  • 超级账本(Hyperledger Fabric)—Jar方式安装合约

    1.1上传jar 进入到/fabric-samples/chaincode/,目录下, 并将合约jar上传 1.2 返回到test-network所在目录, 启动测试网络 进入/fabric-samples/test-network/目录下, 启动测试网络 1.3 将bin目录中二进制文件添加到CLI路径 所需格式的链码包可以使用peer CLI创建,使用以下命令将这些二进制文件添加到

    2024年02月02日
    浏览(88)
  • Hyperledger Fabric网络环境手动配置及其链码自动化部署

    目录 5.1 网络环境的搭建 5.1.1 生成组织结构与身份证书 5.1.2 生成创世区块和通道 5.1.3 启动Fabric网络 5.1.4  创建Fabric-SDK-GO对象并建立通道 5.1.5  Fabric-SDK-Go实现链码的自动部署 5.2 链码实现 5.1.1 生成组织结构与身份证书 Hyperledger Fabric框架通过采用大量的证书确保系统交易(签名

    2023年04月22日
    浏览(39)
  • 搭建 Hyperledger Fabric区块链网络

    这里以下载最新版为例,得益于官网文档;网址为:教程 或者使用该命令下载指定版本  wget https://studygolang.com/dl/golang/go1.19.linux-amd64.tar.gz 之后解压到指定文件,一般为 /usr/local/下 ,需要配置环境变量

    2024年01月20日
    浏览(50)
  • 区块链学习笔记(6)-搭建fabric开发网络

    使用cryptogen模板,修改配置 EnableNodeOUs:表示是否在组织底下设置组织单元,将false改为true。将文件保存到crypto-config.yaml. ca :该文件夹包含证书颁发机构(Certificate Authority)相关的文件,用于生成和管理证书。 msp :该文件夹包含成员服务提供者(Membership Service Provider)相关的

    2024年03月26日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包