基于ubuntu16.04部署IBM开源区块链项目-弹珠资产管理(Marbles)

基于ubuntu16.04部署IBM开源区块链项目-弹珠资产管理(Marbles)

前言

本教程基本上是对Marbles项目的翻译过程. 如果英文比较好的话,建议根据官方操作说明,一步步进行环境部署。当然你也可以参考本教程在自己的主机上部署该项目。

Marbles 介绍 关于 Marbles

这个应用程序的基础网络是 Hyperledger Fabric,后者是一个 Linux Foundation 项目。 您可能想查阅以下操作说明来稍微了解一下 Hyperledger Fabric

本演示旨在帮助开发人员了解链代码的基础知识以及如何使用 Fabric 网络开发应用程序

这是一个非常简单的资产转移演示。多个用户可以创建并相互转移弹珠。

版本

各种版本的 marbles 同时存在。 本版本兼容 Hyperledger Fabric v1.1x。 你可以通过检出别的分支来获取别的版本的 marble,这里演示使用的是ae4e37d分支

应用程序背景

请大家集中注意力,这个应用程序将演示如何利用 Hyperledger Fabric 在许多弹珠所有者之间转移弹珠。 我们将在 Node.js 中使用一些 GoLang 代码完成此任务。 该应用程序的后端将是在我们的区块链网络中运行的 GoLang 代码。 从现在开始,这些 GoLang 代码将称为“链代码”或“cc”。 该链代码本身会创建一颗弹珠,将它存储到链代码状态中。 该链代码本身可以将数据作为字符串存储在键/值对设置中。 因此,我们将字符串化 JSON对象,以便存储更复杂的结构.

弹珠的属性包括:

ID(唯一字符串,将用作键)

颜色(字符串,CSS 颜色名称)

尺寸(int,以毫米为单位)

所有者(字符串)

我们将创建一个用户界面,它可以设置这些值并将它们存储在区块链的账本中。 弹珠实际上是一个键值对。 键为弹珠 ID,值为一个包含(上面列出的)弹珠属性的 JSON 字符串。 与 cc 的交互是通过对网络上的一个对等节点使用 gRPC 协议来完成的。 gRPC 协议的细节由一个名为 Hyperledger Fabric Client SDK 的 SDK 处理。 请查看下图了解拓扑结构细节。

mark

应用程序通信流

1.管理员将在他们的浏览器中与我们的 Node.js 应用程序 Marbles 进行交互

2.此客户端 JS 代码将打开一个与后端 Node.js 应用程序的 Websocket 连接,管理员与该站点交互时,客户端 JS 将消息发送到后端

3.读取或写入账本称为提案,这个提案由 Marbles (通过SDK)构建,然后发送到一个区块链对等节点.

4.该对等节点将与它的 Marbles 链代码容器进行通信. 链代码容器将运行/模拟该交易. 如果没有问题, 它会对该交易进行背书,并将其发回我们的Marbles程序.

5.然后, Marbles (通过SDK)将背书后的提案发送到订购服务.订购方将来自整个网络的许多提案打包到一个区块中. 然后它将新的区块广播到网络中的对等节点

6.最后,对等节点会验证该区块并将它写入到自己的账本中,该交易现在已经生效,所有后续读取都会反映此更改.

Marbles 项目环境配置

这里使用的是本地的 Hyperledger Fabric 网络来部署项目,如果想使用 IBM Cloud IBM Blockchain 服务来部署该项目,请参考前言中给的官方文档.

注意:本教程使用的系统环境是: ubuntu16.04

设置 Chaincode(链码) 开发环境

如果您通过本人的上一篇博客基于ubuntu16.04快速构建Hyperledger Fabric网络已经搭建好了一个 Hyperledger Fabric 网络,那么这里只需要安装 Node.js 的环境并验证环境是否正确即可,如果您没有在本地搭建 Hyperledger Fabric 网络,建议您通过上述博客先在本地构建好网络环境.

验证 Git 环境

一般来说 linux 系统都是自带 Git ,如果系统里没有装,可以使用如下命令来进行安装

$ sudo apt-get install git

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyywjz.html