如何使用Hyperledger在区块链上创建应用程序

区块链研究实验室 阅读 48 2021-3-3 20:30
分享至
微信扫一扫,打开网页后点击屏幕右上角分享按钮

我们将使用Hyperledger Composer构建数字银行。

在开始之前,您需要确保所使用的机器配备了必需的配置。您可能需要下载某些先决条件并设置基本的开发环境。以下是执行此操作的链接。在开始开发应用程序之前,请执行以下步骤,否则,您肯定会遇到愚蠢的错误。

首先安装Hyperledger Composer,然后安装开发环境。

安装环境时,无需启动Playground。

确保docker正在运行,并且在运行./startFabric.sh时将花费几分钟。所以要耐心点。

现在您的机器已经准备就绪,我们可以开始编码了!

1.概述您的业务网络

业务网络定义(BND)由数据模型,事务逻辑和访问控制规则组成。数据模型和访问控制规则以特定域的语言编码(非常容易掌握)。交易逻辑将使用JavaScript进行编码。

要创建BND,我们需要在磁盘上创建合适的项目结构。我们将使用Yeoman创建一个基本的业务网络。要创建项目结构,请打开您的终端并运行以下命令:

$ yo hyperledger-composer

这将引发一系列问题,如下所示。您将需要使用箭头键浏览答案。

如何使用Hyperledger在区块链上创建应用程序

在您喜欢的文本编辑器中打开该项目。我正在使用Visual Code。文件结构如下所示:

如何使用Hyperledger在区块链上创建应用程序

删除test / logic.js的内容。我们暂时不会使用它。

2.编制我们的业务网络(models / test.cto)

首先,我们将定义models / test.cto。它包含业务网络中所有资产,参与者和交易的类定义。该文件是用Hyperledger Composer建模语言编写的。

namespace test
asset Account identified by accountId 
participant Customer identified by customerId
transaction AccountTransfer {--> Account from--> Account too Double amount}

帐户是一种由accountId唯一标识的资产。每个帐户相链接的客户谁是所有者的帐户。帐户具有余额属性,该属性指示帐户随时拥有多少资金。

客户是一个由customerId唯一标识的参与者。每个客户都有firstName和lastName。

AccountTransfer是可能发生的交易,以从一个帐户多少钱要转账存储。

3.编制业务网络(lib / logic.js)

在此文件中,我们将在JavaScript中添加事务逻辑。

/*** Sample transaction* @param accountTransfer* @transaction*/
function accountTransfer(accountTransfer) 
accountTransfer.from.balance -= accountTransfer.amount;accountTransfer.to.balance += accountTransfer.amount;
return getAssetRegistry('test.Account').then (function (assetRegistry) ).then (function () ).then(function (assetRegistry) );
}

@param accountTransfer是我们放在文件顶部的装饰器,用于将交易与我们的JavaScript函数链接在一起。然后,我们验证资金所在的帐户中是否有足够的资金。否则,将引发错误。然后,我们对帐户余额执行基本的加法和减法。

此时,最重要的步骤是在区块链上进行更新。为此,我们调用资产的getAssetRegistry API,即Account。然后,我们为分配资金的帐户和接收资金的帐户更新检索到的assetRegistry。

4.生成业务网络存档(BNA)

现在已经定义了业务网络,必须将其打包到可部署的业务网络存档(

.bna

)文件中。

4.1 在您的终端中导航到测试银行应用程序。

4.2 运行以下命令:

$ composer archive create -t dir -n .

这将在测试银行文件夹中创建一个.bna文件。

如何使用Hyperledger在区块链上创建应用程序

5.在结构上部署业务网络存档文件

5.1 安装Composer运行时

$ composer runtime install --card PeerAdmin@hlfv1 --businessNetworkName test-bank

如何使用Hyperledger在区块链上创建应用程序

5.2 部署业务网络

$ composer network start --card PeerAdmin@hlfv1 --networkAdmin admin --networkAdminEnrollSecret adminpw --archiveFile test-bank@0.0.1.bna --file networkadmin.card

(确保您位于测试银行文件夹中)。

如何使用Hyperledger在区块链上创建应用程序

5.3 将网络管理员身份导入为可用的商务网卡

$ composer card import --file networkadmin.card

如何使用Hyperledger在区块链上创建应用程序

5.4 要检查业务网络是否已成功部署,请运行以下命令ping网络:

$ composer network ping --card admin@test-bank

如何使用Hyperledger在区块链上创建应用程序

6.公开RESTful API

要从命令行创建RESTful API,请运行以下命令:

$ composer-rest-server

这将引发很多问题。

如何使用Hyperledger在区块链上创建应用程序

现在,将浏览器指向http:// localhost:3000 / explorer。

您将看到区块链API。

如何使用Hyperledger在区块链上创建应用程序

现在让我们添加两个客户。

让我们添加一个名为Niharika Singh的客户:

如何使用Hyperledger在区块链上创建应用程序

我们得到一个200的响应码。

现在,我们将以类似的方式添加名为Tvesha Singh的客户。

要检查是否正确添加了它们,请获取它们。

如何使用Hyperledger在区块链上创建应用程序

您将在响应正文中看到两个客户。

现在,我们添加链接到这两个客户的2个帐户。

如何使用Hyperledger在区块链上创建应用程序

通过这种方式添加账户。现在,获取它们以检查是否正确添加了它们。

如何使用Hyperledger在区块链上创建应用程序

现在让我们将75从Niharika转移到Tvesha。

如何使用Hyperledger在区块链上创建应用程序

让我们通过获取帐户信息来检查余额是否已更新。

如何使用Hyperledger在区块链上创建应用程序

Niharika现在有25,而Tvesha有125。

7.有角前端

要自动创建Angular脚手架,请在test-bank文件夹中运行以下命令:

$ yo

这将问多个问题。

如何使用Hyperledger在区块链上创建应用程序

这将需要几分钟。

导航到银行应用程序。

$ npm start

这将启动Angular服务器。

如何使用Hyperledger在区块链上创建应用程序

Angular文件结构的创建如下:

如何使用Hyperledger在区块链上创建应用程序

将浏览器指向http:// localhost:4200。那就是魔术发生的地方!您会看到以下屏幕:

如何使用Hyperledger在区块链上创建应用程序

现在,转到右上角的“资产”,然后点击“账户”。

如何使用Hyperledger在区块链上创建应用程序

这些是我们创建的确切账户。

因此,现在您可以尝试一下。

您已经准备好前端和后端!

在localhost:3000上发生的所有事务都反映在localhost:4200上,反之亦然。而这一切都在区块链上。

btcfans公众号

微信扫描关注公众号,及时掌握新动向

来源链接
免责声明:
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
上一篇:在Python中使用百分位数生成交易信号 下一篇:如何从0构建区块链(一)

相关资讯