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

基于Fabric 1.1.0/Composer 0.18.2,如何在多独立节点启动REST API服务器?

多独立VM节点环境下启动Hyperledger Composer REST API服务器的正确方式

环境确认

先明确你的当前环境,避免后续操作踩坑:

  • Fabric版本:1.1.0
  • Composer版本:0.18.2
  • VM1:双组织first-network,已完成E2E测试,运行着3000/3001端口的REST服务器
  • VM2:通过自定义eyfn.sh加入VM1的网络,已完成E2E测试

核心思路

因为VM2是跨节点加入VM1的Fabric网络,REST服务器不能直接用本地默认配置,关键是修改连接配置文件指向跨VM的Fabric节点,同时确保身份权限和网络连通性。


具体操作步骤

1. 确保VM间网络连通性

首先必须保证VM1和VM2的网络能互相访问:

  • 关闭两台VM的防火墙(或开放Fabric核心端口:7050/7051/7054/7053等)
  • 测试连通性:在VM2执行ping <VM1的内网/公网IP>,以及telnet <VM1-IP> 7051(测试peer端口)、telnet <VM1-IP> 7050(测试orderer端口),确保能正常连接。

2. 配置VM2的连接配置文件(connection.json)

VM1生成的默认connection.json是针对本地节点的,VM2需要修改它:

  • 从VM1复制first-network下的connection.json到VM2的对应目录(比如~/fabric-samples/first-network/)
  • 修改所有节点的url字段:把localhost替换成VM1的实际IP,比如:
    "url": "grpc://localhost:7051" → "url": "grpc://192.168.1.100:7051"
    
  • 如果VM2有自己的peer节点(通过eyfn.sh新增的组织节点),需要在connection.json中添加该节点的配置,包括url、tlsCACerts的本地路径(指向VM2本地的证书文件)

3. 导入合法身份到VM2的Composer钱包

REST服务器需要有权限的身份才能访问Fabric网络:

  • 从VM1复制对应身份的私钥和证书文件到VM2(比如管理员身份的priv_sk和cert.pem)
  • 执行导入命令:
    composer identity import -p first-network -u Admin@org1.example.com -f ~/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/priv_sk -c ~/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem
    
  • 如果你用的是VM2自身组织的管理员身份,直接用本地的证书和密钥即可。

4. 创建并导入业务网络卡片

  • 生成业务网络卡片(假设你的业务网络名称是my-network):
    composer network card create -p connection.json -u Admin@org1.example.com -c ~/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem -k ~/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/priv_sk -f admin-org1.card
    
  • 导入卡片到本地钱包:
    composer network card import -f admin-org1.card
    
  • 测试卡片连通性(必须成功才能继续):
    composer network ping -c Admin@org1.example.com
    

5. 在VM2启动REST API服务器

选择VM2上未被占用的端口(比如3002),执行启动命令:

composer-rest-server -c Admin@org1.example.com -p 3002 -n never -w true

参数说明:

  • -c:指定刚才导入的业务网络卡片
  • -p:指定REST服务器端口
  • -n never:禁用自动更新业务网络(避免跨VM冲突)
  • -w true:启用WebSocket支持(可选)

关键注意事项

  • TLS配置:如果你的Fabric网络启用了TLS(默认first-network是启用的),必须确保connection.json中的tlsCACerts路径指向VM2本地的合法证书文件,否则会连接失败。
  • 身份权限:用来启动REST服务器的身份必须被业务网络授权(比如通过composer participant add和composer identity issue命令),否则无法访问业务网络资源。
  • 端口冲突:确保VM2的REST服务器端口未被占用,不要和VM1的3000/3001重复。

内容的提问来源于stack exchange,提问作者rpkharsad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:52:37