链码的安装、实例化、查询、调用

news/2024/11/24 6:36:44/

目录

1、首先保证网络已经处于启动状态

 2、进入CLI容器

 3、检查当前节点已经加入到哪些通道中(刚进来,默认是 peer0.example.com)

链码的安装

1、检查通道名称是否设置正确

2、使用install安装链码

 3、实例化链码

 4、查詢链码

发起交易

查询交易

问题

1.链码安装在一个节点中还是安装在多个节点中?有什么区别?

2.链码执行查询与执行事务的流程相同吗?

 3.背书策略具体指的是什么?

4.如果在实例化链码时没有指定背书策略,那么会有节点进行背书吗?


1、首先保证网络已经处于启动状态

 使用docker ps 查看有6个节点在Up状态

具体参考我的另一篇博文:Hyperledger Fabric网络快速启动_FAFU_kyp的博客-CSDN博客

 2、进入CLI容器

sudo docker exec -it cli bash

 3、检查当前节点已经加入到哪些通道中(刚进来,默认是 peer0.example.com)

peer channel list

上面所示的输出内容,说明当前节点已成功加入一个名为mychannel的应用通道中。
Peer加入应用通道后,可以执行链码调用的相关操作,并进行测试。如果Peer节点没有加入通道中,则先将当前的Peer节点加人已创建的应用通道中。

链码的安装

调用链码处理交易之前必须将其部署到Peer节点上,实现步骤如下:
1)将其安装在指定的Peer节点上。
2)安装完成后对其进行实例化。

1、检查通道名称是否设置正确

echo CHANNEL_NAME

设置环境变量,指定应用通道名称为mychannel(因为我们创建的应用通道及当前的Peer节点加入的应用通道名称为mychannel):

没查到的话: export CHANNEL_NAME=mychannel   

2、使用install安装链码

 peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go/

这个命令是用于安装链码(chaincode)到Hyperledger Fabric网络中的对等节点。

以下是命令中使用的参数及其含义:

  • -n, --name mycc:指定链码的名称为mycc
  • -v, --version 1.0:指定链码的版本为1.0
  • -p, --path github.com/chaincode/chaincode_example02/go/:指定链码的路径,即链码源代码所在的路径。在这个示例中,链码位于github.com/chaincode/chaincode_example02/go/路径下。

该命令会将链码的源代码打包并安装到对等节点的链码环境中,使其准备好在网络中部署和执行。

注意:链码需要根据指定的背书策略(见实例化链码部分)安装在需要背书的所有Peer节点中。 

 3、实例化链码

peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -v 1.0 -c  '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer')"

这个命令用于在Hyperledger Fabric网络中实例化链码(chaincode)。

以下是命令中使用的参数及其含义:

  • -o orderer.example.com:7050:指定要连接的Orderer节点的地址和端口。
  • --tls:使用TLS进行安全通信。
  • --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem:指定TLS根证书的文件路径。
  • -C $CHANNEL_NAME:指定要在哪个通道(channel)上实例化链码。$CHANNEL_NAME是一个环境变量,需要替换为你实际使用的通道名称。
  • -n mycc:指定要实例化的链码的名称为mycc
  • -v 1.0:指定要实例化的链码的版本为1.0
  • -c '{"Args":["init","a","100","b","200"]}':指定要传递给链码的初始化参数,以JSON格式提供。在这个示例中,传递了["init","a","100","b","200"]作为初始化参数。
  • -P "OR ('Org1MSP.peer','Org2MSP.peer')":指定链码的背书策略(endorsement policy)。在这个示例中,使用了一个OR条件,要求Org1MSP.peerOrg2MSP.peer中的任一节点进行背书。

该命令将在指定的通道上实例化指定版本的链码,并将初始化参数传递给链码的init函数进行初始化。

 4、查詢链码

peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'

 5、调用链码

        如果要发起交易,则需要开启TLS验证并指定对应的证书路径,且在调用相应链码函数时须根据不同的实际情况指定相应的所需参数。

        使用invoke命令调用链码

  1. 发起交易

peer chaincode invoke -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}'

这个命令用于在Hyperledger Fabric网络中调用已实例化的链码(chaincode)。

以下是命令中使用的参数及其含义:

  • -o orderer.example.com:7050:指定要连接的Orderer节点的地址和端口。
  • --tls:使用TLS进行安全通信。
  • --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem:指定TLS根证书的文件路径。
  • -C $CHANNEL_NAME:指定要在哪个通道(channel)上调用链码。$CHANNEL_NAME是一个环境变量,需要替换为你实际使用的通道名称。
  • -n mycc:指定要调用的链码的名称为mycc
  • -c '{"Args":["invoke","a","b","10"]}':指定要传递给链码的调用参数,以JSON格式提供。在这个示例中,传递了["invoke","a","b","10"]作为调用参数。

该命令将在指定的通道上调用已实例化的链码,并将调用参数传递给链码的invoke函数执行相应的操作。

  1. 查询交易

        交易执行完毕之后,为了验证交易是否被正确执行,可以再次执行查询命令,根据输出的查询结果判断交易是否正确。
        执行查询a账户的命令,并查看输出结果:

peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'

 执行成功则输出结果,如90。

问题

1.链码安装在一个节点中还是安装在多个节点中?有什么区别?

        在实际生产环境中,必须在应用通道上每一个要运行链码的背书节点上安装链码。
        其他未安装链码的节,点不能执行链码,但仍可以验证交易并提交到账本中。
        背书节点需要由联盟的成员共同指定,然后在实例化链码时指定背书策略,但链码的安装一定要在所有预先指定的背书Peer节,点中进行。


2.链码执行查询与执行事务的流程相同吗?

不相同,如果执行查询操作,则客户端接收到背书的交易提案响应后不会再将交易请求提交给Orderer节点。如果执行事务操作,则会执行完整的交易流程。

 3.背书策略具体指的是什么?

     背书策略是一种在实例化链码时指定由当前通道中的哪些成员节点进行背书签名的策略。

4.如果在实例化链码时没有指定背书策略,那么会有节点进行背书吗?

        如果在实例化链码时没有明确指定背书策略,则默认的背书策略是MSP标识DEFAULT成员的签名。


http://www.ppmy.cn/news/688545.html

相关文章

iOS iPadOS safari 独立Web应用屏幕旋转的时候 window.innerHeight 数值不对。

iOS iPadOS safari 独立Web应用屏幕旋转的时候 window.innerHeight 数值不对 一、问题描述 我有一个日记应用,是可以作为独立 Web 应用运行的那种,但在旋转屏幕的时候获取到的 window.innerHeight 和 window.innerWidth 就不对了,不是屏幕的…

学习记录-博客阅读

学习记录-博客阅读 深入浅出JS—13 Set和Map应用场景 深入浅出JS—13 Set和Map应用场景_爱你小前端的博客-CSDN博客 ES5和ES6的区别 ES5和ES6的区别_肥肥呀呀呀的博客-CSDN博客 defer async link 标签和 script 标签中 dns-prefetch、prefetch、preload、defer、async 字段…

一款基于android的运动辅助软件

部分软件截图,源代码和展示视频下载地址:http://pan.baidu.com/s/1jGKCm8Y 

运动蓝牙耳机哪个品牌好?运动耳机品牌排行榜

在运动场上不停地挥洒汗水,尽情享受肾上腺素带来的兴奋与快乐。现在城市里运动场所越来越多,人们的体育活动也渐渐丰富起来,马拉松、健身、骑行、户外活动、滑板等等。在锻炼身体的同时也是对意志的磨练。很多人都喜欢在运动的时候佩戴耳机&a…

微信运动刷步数软件有哪些?微信运动刷步软件推荐[

随着健身浪潮的掀起,不少的朋友都在朋友圈中晒自己在微信运动中的排名,当然很多都是刷步刷出来的哟,那么微信运动刷步数软件有哪些?下面清风小编就给大家推荐几款微信运动刷步软件。 一、乐动力: 乐动力 是一款能够全天…

下载keep运动软件_keep运动软件下载

keep运动软件下载,keep减肥软件是一款可以为你制定、提供各种健身课程的掌上健身助教,不管你是工作太忙没时间、还是健身房不知道如何正确健身都可以选择keep运动软件开始你的健身之路。 keep如何制定运动计划 第一步:运动能力测试 打开keep,…

跑步运动软件调研

跑步运动软件调研 1 调研背景 随着生活水平的提高,身体健康已经被越来越多的人放在重要的位置。相比健身房运动,跑步是一种相对而言更大众更廉价的运动方式。从2012年开始,民众对路跑运动的热衷开始显现,并从2015年开始呈现爆发之…

运动软件产品测试

一,计划说明 a.本次测试所选择的产品: keep&悦跑圈 b.预估项目完成时间 项目内容说明预估耗时(分钟)实际耗时(分钟)Planning计划1010Estimate估计这个任务需要多少时间55Testing Design测试设计6050Ana…