首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

将设备数据与 IBM Blockchain 中的智能合约相集成(3)

将设备数据与 IBM Blockchain 中的智能合约相集成(3)

区块链 IoT                应用程序的架构图 1 显示了使用 Bluemix Hyperledger 服务的 IoT 应用程序的大体架构。
图 1. 区块链 IoT 应用程序架构
来自设备的数据使用  发送到 Watson IoT                Platform。Watson IoT Platform 中的区块链代理根据一种预定义配置来将数据发送到链代码。根据设备数据在 Bluemix                中执行智能事务。
下一节将介绍各个组件。
解决方案组件Bluemix Blockchain 服务IBM Blockchain 提供私有区块链基础架构来开发受区块链支持的解决方案。 是 Hyperledger Fabric 的一种实现。它提供了:
  • 一个由 4 个对等节点组成的区块链网络
  • 一个证书颁发机构服务器
  • 智能合约代码(使用 Golang 开发的链代码)
  • 全球/账本状态,其中包含智能合约数据的当前值(所有事务的历史记录也包含在区块链中)
图 2 显示了 IBM Blockchain 服务的不同子组件。
图 2. IBM Blockchain 服务的子组件智能合约形成基于区块链的解决方案的核心并封装业务逻辑。对智能合约的每次调用都记录为一次区块链事务。IBM                Blockchain 合同(链代码)是使用 Go 语言开发的,而且需要实现 Contracts API。智能合约需要使用预定义 API 向                Blockchain 服务注册。
Contracts API 需要由智能合约开发人员实现。它有 3                个主要函数:Init()、Invoke() 和 Query()。请参阅 了解此 API 的更多细节。
Blockchain API 是区块链应用程序的客户端 API。Hyperledger Fabric Client                (HFC) SDK 使应用程序开发人员能够构建与区块链网络交互的 Node.js 应用程序。应用程序可使用此 API                安全地注册用户和提交事务。
可以通过多种方法为区块链开发客户端应用程序:
REST API区块链 REST API 使用 http 服务帮助与区块链对等节点交互。下表给出了一组受支持的操作:
方法操作说明GET/chain/blocks/{Block}返回区块链中特定区块的信息。GET/chainchain                            端点返回区块链的当前状态信息。POST/chaincode/chaincode                            端点接收部署、调用和查询目标链代码的请求。GET/network/peers此                            API 返回与目标对等节点的所有现有网络连接的列表。该列表同时包含有效和无效的对等节点。POST/registrar向证书颁发机构注册用户。DELETE/registrar/{enrollmentID}从本地存储中删除任何现有的客户端登录令牌。完成此请求后,目标用户将无法再执行事务。GET/registrar/{enrollmentID}确认指定的用户是否已向证书颁发机构注册。GET/registrar/{enrollmentID}/ecert检索一个已向证书颁发机构注册的用户的登记证书。GET/registrar/{enrollmentID}/tcert检索一个已向证书颁发机构注册的用户的事务证书。GET/transactions/UUID此端点返回与指定                            UUID 匹配的事务。
IBM-Blockchain-js 是一个基于 Bluemix Blockchain 服务提供的 REST API 的                Node.js 包装器库。它在易用的 Node.js API 中提供与 REST API 中的功能类似的功能。
HFC SDKHyperledger Fabric Client (HFC) SDK for Node.js 是一个基于 gRPC 的                API,它提供了一个易用接口,用以开发基于 IBM Blockchain 服务的应用程序。HFC 是为了能在 Node.js JavaScript                中使用而设计的。有关更多细节,请参阅以下资源:
客户端应用程序客户端应用程序负责向项目干系人提供所需的数据,以满足他们的业务需求并提供功能丰富的用户体验。客户端应用程序需要使用为智能合约提供的                Blockchain API 与业务账本进行交互。这些应用程序也可以处理区块链组件生成的事件。
IBM Watson IoT PlatformIBM Watson IoT Platform                从所有注册的设备接收数据,并将该数据处理为与区块链集成所需的格式。这意味着区块链合同开发人员不需要知道数据来源细节,可以将精力集中在开发合同逻辑上。
返回列表