在AWS Linux实例安装Hyperledger Composer的问题及跨实例连接咨询
我来帮你拆解这两个问题,都是可以解决的:
问题1:非Ubuntu的AWS Linux系统安装Composer工具的解决方案
完全可以在非Ubuntu的AWS Linux系统(比如Amazon Linux 2)上安装Composer工具,核心是绕开root权限限制,用用户级的Node环境来安装。具体步骤如下:
- 创建并切换到非root用户(如果还没有的话):
先以root身份创建用户:useradd -m your-user && passwd your-user,然后给sudo权限:usermod -aG wheel your-user,切换到该用户:su - your-user - 用nvm管理Node.js(无需root权限):
nvm会把Node和相关包安装在你的用户目录下,完美避开系统权限问题。运行安装命令:
安装完成后,重启终端或者执行curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashsource ~/.bashrc让nvm生效。 - 安装兼容的Node.js版本:
Composer对Node版本有要求(比如Fabric 1.4对应Node 14.x),执行:nvm install 14 nvm use 14 nvm alias default 14 # 设置默认版本,避免每次切换 - 安装composer-cli:
现在用npm全局安装就不会有权限错误了:npm install -g composer-cli@0.20.5 # 版本要和你的Fabric版本对应
这样操作完全符合文档"勿以root身份安装"的要求,同时解决了权限问题。
问题2:从Ubuntu实例连接远程Fabric实例并使用composer-cli交互
这个方案完全可行,本质是把Ubuntu实例作为客户端,远程连接到AWS Linux上的Fabric节点。操作步骤如下:
- 确保网络连通性:
两个EC2实例要在同一个VPC下,或者AWS Linux实例的安全组允许Ubuntu实例的IP访问以下端口:- SSH端口22(用来复制配置文件)
- Fabric核心端口:7050(peer gRPC)、7051(peer TLS gRPC)、7053(orderer gRPC)等(根据你的Fabric部署调整)
- 复制Fabric配置文件到Ubuntu实例:
用scp把AWS Linux上的Fabric连接配置、证书文件复制到Ubuntu:
替换命令中的密钥路径、用户名、实例IP和文件路径。scp -i your-aws-key.pem ec2-user@aws-linux-ip:/path/to/fabric-connection-files/* ubuntu@ubuntu-ip:/home/ubuntu/fabric-config/ - 在Ubuntu实例上安装composer-cli:
同样用nvm安装Node和composer-cli,步骤和问题1一致。 - 配置远程连接:
打开复制到Ubuntu的connection.json文件,把其中的peer、orderer地址修改为AWS Linux实例的私有IP(或弹性IP),确保端口和远程Fabric节点的配置一致。 - 测试连接:
运行composer命令测试是否能和远程Fabric交互:
如果能成功列出网络信息,说明连接配置正确。composer network list -c admin@your-fabric-network
额外注意事项
- 证书文件权限:复制到Ubuntu的证书文件(*.pem)要设置正确权限:
chmod 600 /home/ubuntu/fabric-config/*.pem - 版本匹配:composer-cli的版本必须和AWS Linux上的Fabric版本严格对应,否则会出现兼容性错误
内容的提问来源于stack exchange,提问作者ulu
相关产品推荐
相关产品推荐

