You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下Hyperledger Fabric新区块创建方法及通道疑问

嘿,我来帮你搞定这个Hyperledger Fabric的区块创建问题!

关于通道的疑问:现有通道完全可行,无需新建

首先明确说:不需要新建通道,你现有的通道就是基于创世区块搭建的,后续所有新区块都是在这个通道内通过交易生成的——创世块是通道的"根",记录了通道的初始配置和状态,之后每一笔被确认的交易都会被排序节点打包成新的区块,追加到这条链上。

Linux环境下基于创世块创建2个新区块的步骤

假设你已经有一个运行中的Fabric网络(节点、排序服务都已启动),且已经成功创建了通道(基于你的创世块)。下面是具体操作步骤:

1. 配置Peer节点环境变量

先切换到你的Fabric工作目录,设置当前操作的Peer节点身份信息(以Org1的peer0为例):

export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_MSPCONFIGPATH=/your/path/to/org1/msp  # 替换成你实际的MSP路径
export CORE_PEER_ADDRESS=peer0.org1.example.com:7051  # 替换成你的Peer节点地址

2. (可选)如果还没部署链码,先完成安装和实例化

区块是基于交易生成的,而交易需要通过链码触发。如果还没部署链码,先执行以下步骤:

  • 安装链码(以Fabcar示例链码为例,也可以用你自己的链码):
peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/fabcar/go/
  • 实例化链码(初始化状态,比如给a、b账户赋值):
peer chaincode instantiate -o orderer.example.com:7050 --tls true --cafile /your/path/to/orderer/tls/ca.crt -C mychannel -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "AND ('Org1MSP.peer','Org2MSP.peer')"

注意:替换命令中的路径、通道名、排序节点地址为你实际的配置。

3. 提交第一笔交易,生成第一个新区块

调用链码发起交易,比如把a的10个单位转到b:

peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /your/path/to/orderer/tls/ca.crt -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}'

执行成功后,排序节点会将这笔交易打包成区块1(创世块是区块0),同步到通道内的所有Peer节点。

4. 提交第二笔交易,生成第二个新区块

再发起一笔交易,比如把b的5个单位转到c:

peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /your/path/to/orderer/tls/ca.crt -C mychannel -n mycc -c '{"Args":["invoke","b","c","5"]}'

这笔交易完成后,会生成区块2。

5. 验证新区块是否生成

你可以通过以下命令获取并查看区块:

  • 获取区块2:
peer channel fetch 2 block2.pb -o orderer.example.com:7050 --tls true --cafile /your/path/to/orderer/tls/ca.crt -C mychannel
  • 查看区块内容:
peer channel inspect block2.pb

输出内容里会包含区块号、交易信息、哈希值等,确认是你刚生成的区块即可。

内容的提问来源于stack exchange,提问作者S.M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:12:56