fabric1.1 创建多通道(部署多链码)

本文详细介绍了使用Hyperledger Fabric搭建企业级区块链网络的关键步骤。强调了每个节点加入通道及更新锚节点的重要性,确保网络间组织的正确通信。通过具体操作指导,帮助读者理解并实践Fabric网络的配置流程。

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

参考博客:https://blog.youkuaiyun.com/mx1222/article/details/82627785

注意事项:

第五步:加入通道,每个节点都要加入通道。

第六、七步:更新每个组织的锚节点,比如有org1,org2,org3。fabric默认当前节点是peer0org1,每次更新其他组织的锚节点,都要切换cli客户端到其他组织。所以第六步重复三次。此外,输入的命令前加上export。

### Hyperledger Fabric 多节点网络中链部署教程 在 Hyperledger Fabric 的多节点环境中,链部署涉及多个关键步骤,包括链的编写、打包、安装、批准以及最终提交到通道。以下是关于这些过程的具体说明: #### 链的编写与准备 链通常由开发者基于业务逻辑实现,可以使用 Go、Node.js 或 Java 编写。一旦完成开发,需将其转换为可执行文件并打包以便后续安装。 ```bash # 打包链 (以 Node.js 为例) peer lifecycle chaincode package cp.tar.gz --lang node --path ./contract --label cp_0 [^4] ``` 此命令会创建一个名为 `cp.tar.gz` 的压缩包,其中包含了链的相关元数据和代。 --- #### 安装链至各 Peer 节点 为了使链能够在整个网络中生效,必须先将其安装到参与交易处理的所有 Peer 节点上。这一步骤通过以下命令完成: ```bash # 将链安装到指定 Peer 节点 peer lifecycle chaincode install cp.tar.gz [^2] ``` 上述命令会在当前配置的 Peer 节点上存储该链的副本,并返回唯一的链包 ID(Package ID),这是下一步的重要参数之一。 > **注意**: 如果存在多个 Peer 节点,则需要分别登录各个节点重复执行以上命令。 --- #### 查询已安装的链 可以通过查询来确认链是否成功安装到了目标 Peer 节点上: ```bash # 查看本地 Peer 已安装的链列表 peer lifecycle chaincode queryinstalled ``` 这条指令将显示所有已经安装成功的链及其对应的 Package ID[^3]。 --- #### 批准链定义 在实际应用之前,还需要让每个组织内的 Peer 对链定义进行审批。这一阶段主要验证链版本号、背书策略以及其他属性设置是否满足需求。 ```bash # 提交链定义前的批准请求 peer lifecycle chaincode approveformyorg \ --channelID mychannel \ --name papercontract \ --version 1.0 \ --package-id $(<PACKAGE_ID>) \ --sequence 1 \ --init-required \ --tls true \ --cafile $ORDERER_CA_FILE ``` 在此过程中,`$(<PACKAGE_ID>)` 应替换为先前获得的实际 Package ID 值;而其他选项则依据具体场景调整。 --- #### 提交链定义给通道 当所有必要的组织都完成了对其链定义的认可之后,就可以正式向共享同一通道上的成员广播这个新加入的功能模块了。 ```bash # 向通道提交经过全体同意后的链定义 peer lifecycle chaincode commit \ --channelID mychannel \ --name papercontract \ --version 1.0 \ --sequence 1 \ --init-required \ --signature-policy "AND ('Org1MSP.member', 'Org2MSP.member')" \ --tls true \ --cafile $ORDERER_CA_FILE ``` 这里需要注意的是签名策略部分 `"AND ('Org1MSP.member', 'Org2MSP.member')"` 表明只有同时得到这两个机构认可才能激活该功能。 --- #### 初始化实例化链 最后一步是对刚上线的新版程序做初始化调用,从而启动其内部状态机进入可用模式。 ```bash # 实例化链 peer chaincode invoke \ --orderer localhost:7050 \ --channelID mychannel \ --name papercontract \ --ctor '{"Args":["init","a", "100", "b", "200"]}' \ --waitForEvent timeout=30s \ --tls true \ --cafile $ORDERER_CA_FILE [^1] ``` 至此,在一个多节点组成的联盟链架构下顺利完成了一次完整的智能合约发布流程! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值