fabric2.4.9 运行测试网络

该文详细介绍了如何在Ubuntu20.4环境下使用Fabric2.4.9搭建测试网络,包括停止现有网络、启动网络、创建通道、部署链码以及使用CLI工具进行链码的初始化和查询操作。文章强调了在部署链码时遇到的问题及解决方法,并提供了设置环境变量与节点交互的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

fabric2.4.9 运行测试网络

分享的内容基于官网,加入了些许自我理解等额外内容,本次主要是对网络进行测试,并对链码操作进行简单讲解,具体的链码操作和解释请看下节。
https://hyperledger-fabric.readthedocs.io/en/release-2.4/test_network.html

运行前提是上个帖子分享的环境配置

ubuntu20.4安装fabric2.4.x

运行testnetwork

· 首先进入到文件夹下

cd fabric-samples/test-network

· 现停掉之前的避免出错

./network.sh down

· 在通过脚本启动

./network.sh up

· 通过docker ps -a 查询
在这里插入图片描述· 创建通道

./network.sh createChannel

出现这个就算成功!
在这里插入图片描述

也可以通过-c参数指定名称,例如创建一个名为channel1的通道

./network.sh createChannel -c channel1`.

· 在通道上部署链码
使用系统链码,部署在刚创建的通道上

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

-ccn: 链码名
-ccp: 链码安装路径
-ccl: 语言参数

第一次部署会安装依赖
在这里插入图片描述
这里报错,没有jq
在这里插入图片描述
只需要安装一下

sudo apt-get jq

再运行上面链码,稍等一会就会成功!
实际上这个脚本会自动完成一整个链码的生命周期,关于生命周期和如何编写链码会放到以后分享。
在这里插入图片描述` 使用CLI与网络进行交互

  1. 在test-network中将节点的二进制文件加入到cli路径中
export PATH=${PWD}/../bin:$PATH
  1. 将fabric-cgf——path设置为指向fabric-samples中的core.yaml文件
export FABRIC_CFG_PATH=$PWD/../config/
  1. 操作peer的环境变量cli作为org1:
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

以上命令的意思为:

  1. 启用peer之间的TLS加密通信
  2. 指定当前节点所属的组织名称
  3. 指定peer的根证书文件路径
  4. 指定当前节点的msp配置文件路径
  5. 指定指定当前节点的地址和端口号,用于与peer建立连接
  1. 调用InitLedger函数初始化链码
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":[]}'
  1. peer chaincode invoke -o localhost:7050:调用peer chaincode invoke命令,并指定输出端口为7050。
  2. –ordererTLSHostnameOverride orderer.example.com:设置orderer的TLS主机名覆盖,这里将orderer的TLS主机名设置为orderer.example.com。
  3. –tls --cafile “${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem”:启用TLS加密通信,并指定证书文件路径。
    4.-C mychannel -n basic:指定chaincode所在的channel名称为mychannel,chaincode的命名空间为basic。
  1. –peerAddresses localhost:7051:指定当前节点的地址和端口号,用于与peer建立连接。
  2. –tlsRootCertFiles “${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt”:指定当前节点的root证书文件路径。
  1. –peerAddresses localhost:9051:指定另一个peer的地址和端口号,用于与另一个peer建立连接。

  2. –tlsRootCertFiles “${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt”:指定另一个peer的root证书文件路径。

  3. -c ‘{“function”:“InitLedger”,“Args”:[]}’:调用chaincode的InitLedger函数,并传递一个空的参数列表 -c 参数是用来指定调用的chaincode的名称和输入参数的。在上面的例子中,我们通过 -c ‘{“function”:“InitLedger”,“Args”:[]}’ 来调用名为 InitLedger 的chaincode函数,并传递一个空的输入参数列表。

实际使用中可以精简为:

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

在这里插入图片描述5. 查询账本

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

成功结果如下
在这里插入图片描述6. 更改资产的所有者

调用了链码中的transferasset函数,参数为[“asset6”,“Christopher”],其他参数与上述类似不多重复。

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"]}'

在这里插入图片描述7. 将org2设置为环境变量


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
  1. 查询运行在org2上的资产转移链码
peer chaincode query -C mychannel -n basic -c '{"Args":["ReadAsset","asset6"]}'

在这里插入图片描述9. 最后关闭网络

./network.sh down
### 集成 Fabric 2.4.9 和 Vue 的方法 Fabric.js 是一个用于处理 HTML5 Canvas 元素的强大库,而 Vue.js 则是一个流行的前端框架。为了在 Fabric 2.4.9 中集成 Vue 或下载与其兼容的 Vue 资源,可以按照以下方式操作。 #### 1. 安装必要的依赖项 确保安装了最新版本的 Node.js 和 npm/yarn 工具链。通过这些工具来管理项目中的依赖关系[^3]。 ```bash npm install fabric@2.4.9 vue ``` 或者如果更倾向于使用 Yarn: ```bash yarn add fabric@2.4.9 vue ``` 这一步会将指定版本的 Fabric.js (v2.4.9) 和 Vue 添加到项目的 `dependencies` 中。 --- #### 2. 创建 Vue 组件并引入 Fabric.js 创建一个新的 Vue 单文件组件(`.vue` 文件),并将 Fabric.js 初始化逻辑嵌入其中。 以下是示例代码片段: ```html <template> <div id="app"> <canvas ref="fabricCanvas"></canvas> </div> </template> <script> import { fabric } from &#39;fabric&#39;; export default { name: "App", mounted() { const canvas = new fabric.Canvas(this.$refs.fabricCanvas, { width: 800, height: 600, }); // 示例:绘制矩形对象 const rect = new fabric.Rect({ left: 100, top: 100, fill: &#39;green&#39;, width: 200, height: 150, }); canvas.add(rect); }, }; </script> <style scoped> #app { display: flex; justify-content: center; } canvas { border: 1px solid black; } </style> ``` 上述代码展示了如何在一个 Vue 应用程序中初始化 Fabric.js 并渲染基本图形[^4]。 --- #### 3. 处理潜在的兼容性问题 由于 Fabric.js 版本较旧(2.4.9),可能存在某些功能与现代浏览器不完全匹配的情况。建议测试目标环境中是否存在任何已知问题,并考虑升级至更高版本的 Fabric.js 如果可能的话[^5]。 另外需要注意的是,在实际开发过程中可能会遇到模块加载器差异带来的挑战;例如 Webpack 可能需要额外配置才能正确解析特定类型的静态资源文件路径等问题。 --- #### 4. 寻找社区支持或第三方插件 对于更加复杂的场景需求而言,可以直接搜索是否有开发者已经制作好的针对该组合使用的开源解决方案。比如 GitHub 上有许多关于 “Vue + Fabric” 主题下的仓库可供参考学习[^6]。 --- ### 总结 综上所述,可以通过 NPM/YARN 来获取所需版本号对应的软件包,并将其无缝融入基于 VUE 构建的应用体系当中去实现绘图编辑等功能特性。同时也要留意官方文档说明以及网络上的教程指南等内容帮助解决可能出现的各种技术难题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值