basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

这篇具有很好参考价值的文章主要介绍了basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

解决了官方示例指令需要科学上网才能运行的问题(通过手动下载二进制文件和拉取官方fabric-samples)。具体的将bootstrap.sh脚本解读了一遍 具体可以参照我的博客 fabric中bootstrap.sh到底帮助我们干了什么?(curl -sSL https://bit.ly/2ysbOFE | bash -s执行不成功,如何手动执行相相关操作?)_sh bootstrap.sh_小小小小关同学的博客-CSDN博客

前期的准备工作不再记录 也就是安装go docker docker-compose等操作

链码部署与调用等操作基于完成克隆fabric-samples仓库、拉取二进制文件、下载需要的镜像这些操作之后

这个脚本可以快速帮助我们搭建起自己的fabric网络 是一个单机多节点的示例。对于脚本的具体实现在搭建完多级部署后再看会有不一样的体会,将一些指令通过脚本的方式封装执行节省了使用者的操作,类似于一个fabric尝鲜。笔记中还有对basic链码的标注,看懂链码学会调用!


1.查看test-network脚本的使用说明

./network.sh -h  

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

可以看出我们可以通过他给出的这些指令来完成对应的功能,也可以用过一些参数也自定义通道名称。

2.启动测试网络

./network.sh up

启动后创建了四个结点: cli ;两个peer结点 一个排序结点。

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

3.创建通道

 

./network.sh createChannel  (可以带上 -c 通道名称  来指定)我使用的是默认名称mychannel

 执行成功后

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

4.在通道上安装一个链码

 在我们安装链码之前最好去链码所在的目录去查看一下链码所需要的依赖包是否成功导入:

可以先进入到链码所在的目录看一看:../asset-transfer-basic/chaincode-go 就是这个目录下。

 cd ../asset-transfer-basic/chaincode-go

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

这里已经有了vendor 之前遇见过没有的情况 也就是要自己手动拉取一下(go mod vendor)

然后回到test-network执行部署链码命令

./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go

成功后:

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

 注意:

如果没有vendor的话可与参考下面的方法,有的话直接跳过就可以(有的时候没有的话也先执行一些启动连链码的那条指令 可能会帮助拉取vendor)

执行前注意使用 go env 查看go环境 确认配置好了gomoudle ,然后在chaincode-go目录下输入

go mod vendor 即可 然后再次查看就能看到vendor

回到测试网络.sh文件所在的目录下 重新启动链码即可

 

5 与网络交互

到现在我们的basic链码已经成功安装了,现在我们可以对basic链码的功能来一个测试了:

  • 使用以下命令将这些二进制文件添加到您的CLI路径:
export PATH=${PWD}/../bin:$PATH
  • 您还需要将fabric-samples代码库中的FABRIC_CFG_PATH设置为指向其中的core.yaml文件:
export FABRIC_CFG_PATH=$PWD/../config/
  • 现在,您可以设置环境变量,以允许您作为Org1操作peer CLI:
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=localhost:7051
  • 运行以下命令用一些资产来初始化账本:
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"InitLedger","Args":[]}'

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

这是初始化账本的源码实现,就是讲结构变量通过json.Marshal转换成json 再通过PutState讲资产存入世界状态。

  • 现在你可以用你的 CLI 工具来查询账本。运行以下指令来获取添加到通道账本的资产列表(在运行指令之前可以先看看链码中对于这个函数的实现到底是怎样的):

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

可以看到这个想要调用这这个函数 只需要一个传入一个交易上下文接口就可以了,但是在使用中这个应该是fabric内部自己传入的并不需要我们来传入,所以对于这个函数我们并不需要传入任何参数,直接给出函数名即可。

peer chaincode query -C gdwchannel -n basic -c '{"Args":["GetAllAssets"]}'

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

  • basic中还给出了一些其他函数,我们可以看看具体怎么实现的 然后来调用它
  • 添加资产

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

命令:(下面命令一次性输入)

peer chaincode invoke -o localhost:7050 \

--ordererTLSHostnameOverride orderer.example.com \

--tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" \

-C mychannel \

-n basic \

--peerAddresses localhost:7051 \

--tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" \

--peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" \

-c '{"function":"CreateAsset","Args":["asset7","pink","20","HEUN","888"]}'

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

  • 删除资产

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

peer chaincode invoke -o localhost:7050 \

--ordererTLSHostnameOverride orderer.example.com \

--tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" \

-C mychannel \

-n basic \

--peerAddresses localhost:7051 \

--tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" \

--peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" \

-c '{"function":"DeleteAsset","Args":["asset1"]}'

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

  • 更新资产(修改资产)

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

peer chaincode invoke -o localhost:7050 \

--ordererTLSHostnameOverride orderer.example.com \

--tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" \

-C mychannel \

-n basic \

--peerAddresses localhost:7051 \

--tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" \

--peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" \

-c '{"function":"UpdateAsset","Args":["asset7","RED","20","gdw","888"]}'

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

  • 转移资产

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"TransferAsset","Args":["asset6","Christopher"]}'

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

  • 切换身份

之前都是使用组织1来验证代码的增删改查操作,现在我们可以再开一个终端,用组织2来验证功能,只需要变更环境变量即可!

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_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp export CORE_PEER_ADDRESS=localhost:9051

然后就可以在 peer0.org2.example.com上来调用一些智能合约,比如来查询我们自定义的资产7看看是否能在组织二上查询到

peer chaincode query -C mychannel -n basic -c '{"Args":["ReadAsset","asset7"]}'

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

完成后想要关闭测试网络的话可以执行:

./network.sh down文章来源地址https://www.toymoban.com/news/detail-400551.html

到了这里,关于basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • fabric2.2环境搭建,链码部署至通道

    一 Fabric-X86 1.查看虚拟机环境 显示X86架构 centos7发行版本 2.源码克隆 选定位置进行GitHub代码克隆,命令为 克隆成功后生成文件夹fabric,源码克隆成功 在fabric目录切换版本至V2.2.5 3.golang版本升级 根据要求部署fabric2.2.5版本,go的版本需要最低达到1.14.1版本 下载安装包 解压

    2024年02月07日
    浏览(45)
  • fabric1.4环境手动部署及链码测试

    先在fabric文件夹下建一个aberic文件夹,并将一些必要的配置文件文件放入 如图 然后根据crypto-config.yaml生成证书文件 ./bin/cryptogen generate --config=./crypto-config.yaml 接下来,使用configtxgen工具执行configtx.yaml文件以创建orderer Genesis block,在此之前需要为configtxgen工具指定configtx.yaml文件

    2024年02月10日
    浏览(40)
  • 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日
    浏览(55)
  • Fabric 超级账本学习【2】Fabric2.4网络环境下部署自己编写的go语言链码并实例化测试(手把手教学,步骤超详细)

    搭建部署 Fabric2.4网络的具体教程可见我写的这篇博客: Fabric 超级账本学习【4】Ububtu环境下部署搭建 Hyperledger Fabric2.4 (2.X)区块链网络 1、前提是搭建好了Fabric 2.4(Fabric2.x)版本的区块链网络,并在以此环境下部署自己编写的链码,如下图先进入 test-network 文件夹目录下 2、

    2023年04月16日
    浏览(48)
  • 【Testing】基于Mockito的FeignClient单元测试

           在微服务框架模式下,往往需要在外部服务没有准备好的情况下进行测试。本文主要是讨论在SpringCloud体系下,以FeignClient进行通信时,对其进行mock的方式。 微服务B通过FeignClient依赖其他服务调用。 3.1)构建基础测试类 3.2)Mock FeignClient 主要就是初始化feignClient的方式(

    2024年02月12日
    浏览(38)
  • 链码的相关概念

             智能合约在Hyperledger Fabric中称为链码,也就是链上代码。         链码一般是由开发人员使用Golang语言(也支持Java等语言)编写的,提供分布式账本的状态处理逻辑。链码被部署在Hyperledger Fabric的网络节点中,能够独立运行在具有安全特性的受保护的Docker容器中

    2024年02月12日
    浏览(32)
  • Hyperledger Fabric 链码

    懂哪写哪,随时补充 链码在开发过程中需要实现链码接口,交易的类型决定了哪个接口函数将会被调用,链码的接口定义如下: 链码的必要结构如下: shim.ChaincodeStubInterface接口 1、Init方法 Init方法中,首先通过stub的GetFunctionAndParameters()方法提取本次调用的交易中所指定的

    2023年04月08日
    浏览(47)
  • API Testing 一个基于 YAML 文件的开源接口测试工具

    目录 前言: 如何使用? 本地模式 服务端模式 文件格式 后续计划 API Testing 是一个基于 YAML 文件的开源接口测试工具,它可以帮助开发者快速地进行接口测试。 在选择工具时,可以从很多方面进行考量、对比,以下几点是该工具的特色或者优点:

    2024年02月16日
    浏览(45)
  • Fabric使用自己的链码进行测试-go语言

    书接前文 Fabric链码部署-go语言 通过上面这篇文章,你可以部署好自己的链码 (后面很多命令是否需要修改,都是根据上面这篇文章来的,如果零基础的话建议先看上面这篇) 就进行下一步 在测试网络上运行自己的链码 目录 1、导航到test-network目录 1.1 打开日志Logspout(可选

    2024年02月05日
    浏览(39)
  • Hyperledger Fabric测试网络运行官方Java链码[简约版]

    启动测试网络 network.sh的脚本语法是: network.sh mode [flag] 在java源码路径下 回到test-network路径下 使用peer CLI测试链码 设置环境变量 作为Org1操作peer CLI: 调用链码 初始化账本 查询账本 修改账本

    2024年02月16日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包