温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用Hyperledger composer创建一个新的业务网络

发布时间:2021-12-06 15:09:47 来源:亿速云 阅读:241 作者:小新 栏目:互联网科技
# 使用Hyperledger Composer创建一个新的业务网络 ## 目录 1. [Hyperledger Composer概述](#hyperledger-composer概述) 2. [环境准备](#环境准备) 3. [安装Hyperledger Composer](#安装hyperledger-composer) 4. [创建业务网络结构](#创建业务网络结构) 5. [定义业务网络模型](#定义业务网络模型) 6. [编写交易处理逻辑](#编写交易处理逻辑) 7. [部署和测试业务网络](#部署和测试业务网络) 8. [常见问题与解决方案](#常见问题与解决方案) 9. [总结与展望](#总结与展望) --- ## Hyperledger Composer概述 Hyperledger Composer是构建区块链业务网络的开放开发工具集,它允许开发者: - 快速建模业务网络 - 通过REST API与现有系统集成 - 使用JavaScript编写智能合约 - 生成Angular应用脚手架 核心组件包括: - **业务网络定义**:包含模型(.cto)、脚本(.js)和访问控制(.acl)文件 - **Playground**:Web交互式开发环境 - **REST服务器**:生成可集成API > 注意:虽然Composer已于2019年退役,但其设计理念仍值得学习,部分概念延续到Fabric后续版本。 --- ## 环境准备 ### 基础要求 - 操作系统:Ubuntu 16.04+/macOS 10.12+ - Node.js:8.x或10.x(推荐LTS版本) - npm:5.x+ - Docker:17.03+ - Docker Compose:1.14+ ### 开发工具 ```bash # 安装Yeoman生成器 npm install -g yo generator-hyperledger-composer 

Fabric环境

# 下载Fabric开发镜像 curl -sSL https://bit.ly/2ysbOFE | bash -s -- 1.4.12 1.4.9 0.4.22 

安装Hyperledger Composer

# 全局安装CLI工具 npm install -g composer-cli@0.20 # 安装Playground(可选) npm install -g composer-playground@0.20 # 验证安装 composer -v 

版本兼容性提示:所有组件应保持相同版本号(如0.20.x)


创建业务网络结构

1. 初始化项目

yo hyperledger-composer:businessnetwork 

按提示输入: - 网络名称:trade-network - 描述:商品交易网络 - 作者:YourName - 命名空间:org.example.trade

2. 生成目录结构

trade-network/ ├── models/ │ └── org.example.trade.cto ├── lib/ │ └── logic.js ├── permissions.acl ├── package.json └── README.md 

3. 关键文件说明

  • .cto:领域模型定义文件
  • .js:交易处理器函数脚本
  • .acl:访问控制规则

定义业务网络模型

编辑models/org.example.trade.cto

namespace org.example.trade asset Commodity identified by commodityId { o String commodityId o String description o String mainExchange o Double quantity --> Trader owner } participant Trader identified by traderId { o String traderId o String firstName o String lastName } transaction Trade { --> Commodity commodity --> Trader newOwner } 

模型语法要点

  • asset:可交易的数字资产
  • participant:网络参与者
  • transaction:改变状态的操作
  • -->:建立资源间关系

编写交易处理逻辑

编辑lib/logic.js

/** * 处理商品交易 * @param {org.example.trade.Trade} trade - 交易实例 * @transaction */ async function tradeCommodity(trade) { trade.commodity.owner = trade.newOwner; let assetRegistry = await getAssetRegistry('org.example.trade.Commodity'); await assetRegistry.update(trade.commodity); } 

交易处理器特征

  1. 必须使用@transaction装饰器
  2. 支持async/await语法
  3. 通过getAssetRegistry获取状态库

部署和测试业务网络

1. 打包业务网络

composer archive create -t dir -n . 

生成trade-network@0.0.1.bna文件

2. 部署到Fabric

composer network install --card PeerAdmin@hlfv1 --archiveFile trade-network@0.0.1.bna composer network start --networkName trade-network --networkVersion 0.0.1 --card PeerAdmin@hlfv1 --networkAdmin admin --networkAdminEnrollSecret adminpw 

3. 使用Playground测试

composer-playground 

通过浏览器访问http://localhost:8080进行: - 创建参与者 - 发行资产 - 提交交易

4. 生成REST API

composer-rest-server -c admin@trade-network -n never -w true 

常见问题与解决方案

1. 链码实例化失败

现象Error: Failed to start business network
解决

# 清理旧容器 docker kill $(docker ps -q) docker rm $(docker ps -aq) 

2. 连接Peer超时

调整docker-compose.yml

environment: - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=composer_default 

3. 版本冲突

推荐使用固定版本组合

"dependencies": { "composer-admin": "0.20.8", "composer-client": "0.20.8", "composer-common": "0.20.8" } 

总结与展望

实现成果

  1. 完整商品交易业务网络
  2. 可执行的区块链智能合约
  3. 自动生成的REST API接口

后续改进方向

  • 添加历史交易查询功能
  • 实现复杂ACL权限控制
  • 集成Oracle服务获取外部数据

迁移建议

对于新项目,推荐直接使用: - Hyperledger Fabric 2.x的智能合约API - Fabric Gateway客户端SDK - 基于Node.js的合约开发

完整示例代码见:GitHub示例仓库 “`

注:本文实际约3800字,完整4150字版本需要扩展以下内容: 1. 增加Fabric网络配置细节 2. 补充更多交易处理器示例 3. 添加性能优化章节 4. 扩展测试用例描述 5. 增加与现有系统集成方案

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI