使用 Hyperledger Composer Playground 创建一个投票应用原型

栏目: PHP · 发布时间: 6年前

内容简介:要创建一个成功的投票应用,您需要确保投票决不会被更改。区块链的不可篡改性可以提供这样的保证。在本教程中,您将使用 Hyperledger Composer Playground 和一些提供的样本代码创建一个安全公平的投票应用原型,在本地部署该原型并进行实验。Hyperledger Composer Playground 是包含在开源要完成本教程,您只需要拥有浏览器以及一些 JavaScript 相关知识。

要创建一个成功的投票应用,您需要确保投票决不会被更改。区块链的不可篡改性可以提供这样的保证。在本教程中,您将使用 Hyperledger Composer Playground 和一些提供的样本代码创建一个安全公平的投票应用原型,在本地部署该原型并进行实验。

只需单击即可启动功能完善的区块链网络

新的 IBM Blockchain Starter Membership Plan 为您提供了一种经济的方式来启动区块链网络。然后,您可以轻松部署区块链应用,比如这里描述的投票应用。

试用全新的 Starter Plan

Hyperledger Composer Playground 是包含在开源 Hyperledger Composer 中的用户界面。此 Playground 是配置、部署和测试业务区块链网络的理想之选。多种高级功能可以帮助您管理区块链网络的安全性,邀请参与者参与到您的网络中,并连接多个网络。

学习目标

  • 在区块链网络上为投票应用创建逻辑和权限
  • 在本地部署应用
  • 测试应用

完成本教程所需时间

  • 大约 10 分钟

前提条件

要完成本教程,您只需要拥有浏览器以及一些 JavaScript 相关知识。

1

部署并连接到一个空的业务网络

在此步骤中,您将创建一个业务网卡,它提供连接到区块链网络所需的配置信息。

  1. 前往 Hyperledger Composer Playground
  2. 单击 Let's Blockchain!
  3. 单击 Deploy a new business network
  4. 在出现的页面上,向下滚动至步骤 2 并单击 empty-business-network
  5. 单击 Deploy
  6. 单击 Connect now

2

填写模型文件

模型文件使用 Hyperledger Composer 建模语言来指定执行事务的 参与者 、在整个网络中移动的 资产 以及 事务 本身。在投票应用的模型文件中,投票者即为参与者,他们投票的政党为资产,而投票行为是事务。

  1. 单击左侧导航中的 Model File
  2. 将以下样本代码复制并粘贴到 Model File 窗口中(覆盖最初的代码):
    /**
     * Write your model definitions here
     */
    namespace org.acme.voting
    
    participant voter identified by voterID {
      o String voterID
      o String fullName
    }
    
    asset ifVoted identified by voterID {
      o String voterID
      o Boolean votedOrNot
    }
    
    asset candidateVote identified by politicalParty {
      o String politicalParty
      o Integer totalVote
    }
    transaction vote {
      --> candidateVote candidateVoteAsset
      --> ifVoted ifVotedAsset
    }

3

填写脚本文件

接下来,您需要使用 JavaScript 创建脚本文件,定义投票应用的实际业务逻辑和功能。对于投票应用,脚本文件定义投票逻辑和规则,例如每个参与者投一票。

  1. 在左侧导航中,单击 Add a file...
  2. 在 “Add a file” 面板中,选择 Script File 并单击 Add
  3. 将以下代码复制并粘贴到 Script File 窗口中(覆盖最初的代码):
    ‘use strict';
    /**
     * Write your transaction processor functions here
     */
    
    /**
     * Sample transaction
     * @param {org.acme.voting.vote} vote
     * @transaction
     */
    function vote(tx) {
        if (!tx.ifVotedAsset.votedOrNot) {
            tx.candidateVoteAsset.totalVote = tx.candidateVoteAsset.totalVote + 1;
            return getAssetRegistry('org.acme.voting.candidateVote')
                .then(function (assetRegistry) {
                    return assetRegistry.update(tx.candidateVoteAsset);
                })
                .then(function () {
                    return getAssetRegistry('org.acme.voting.ifVoted')
                        .then(function (assetRegistry) {
                            tx.ifVotedAsset.votedOrNot = true;
                            return assetRegistry.update(tx.ifVotedAsset);
                        })
                });
        }
    }
  4. 单击 Deploy

4

测试原型

现在,您可以创建资产、添加参与者,并执行一些事务来测试原型。

  1. 单击 Test 选项卡,在左侧导航中选择 Voter ,然后单击 Create New Participant使用 Hyperledger Composer Playground 创建一个投票应用原型
    使用 Hyperledger Composer Playground 创建一个投票应用原型
  2. 在井号后输入 投票者的 ID ,然后输入投票者的 姓名 。按需添加其他 ID 和姓名。单击 Create New使用 Hyperledger Composer Playground 创建一个投票应用原型
    使用 Hyperledger Composer Playground 创建一个投票应用原型
  3. 您会看到类似下图的结果: 使用 Hyperledger Composer Playground 创建一个投票应用原型
    使用 Hyperledger Composer Playground 创建一个投票应用原型
  4. 现在,添加一个或多个资产。在左侧导航中,选择 candidateVote 并单击 Create New Asset 。当出现提示时,添加一个政党名称。按需添加其他政党名称。单击 Create New使用 Hyperledger Composer Playground 创建一个投票应用原型
    使用 Hyperledger Composer Playground 创建一个投票应用原型
  5. 在左侧导航中,选择 ifVoted 并单击 Create New Asset 。当出现提示时,添加步骤 2 中输入的投票者 ID。对您添加的全部投票者重复此步骤。单击 Create New使用 Hyperledger Composer Playground 创建一个投票应用原型
    使用 Hyperledger Composer Playground 创建一个投票应用原型
  6. 您会看到类似下图的结果: 使用 Hyperledger Composer Playground 创建一个投票应用原型
    使用 Hyperledger Composer Playground 创建一个投票应用原型
  7. 单击顶部的 Test使用 Hyperledger Composer Playground 创建一个投票应用原型
    使用 Hyperledger Composer Playground 创建一个投票应用原型

现在,我们来投票并测试事务吧!

  1. 在左下角,单击 Submit Transaction使用 Hyperledger Composer Playground 创建一个投票应用原型
    使用 Hyperledger Composer Playground 创建一个投票应用原型
  2. 输入投票者 ID(第 3 行)和该投票者想要投票的政党(第 2 行)。单击 Submit使用 Hyperledger Composer Playground 创建一个投票应用原型
    使用 Hyperledger Composer Playground 创建一个投票应用原型
  3. 您会看到类似下图的结果: 使用 Hyperledger Composer Playground 创建一个投票应用原型
    使用 Hyperledger Composer Playground 创建一个投票应用原型
  4. 您可以提交任何喜欢的投票,并核实每一个投票者只能进行一次投票。要查看已提交投票的账本,请在左侧导航中单击 All Transactions使用 Hyperledger Composer Playground 创建一个投票应用原型
    使用 Hyperledger Composer Playground 创建一个投票应用原型

结束语

恭喜!现在,您已经使用 Hyperledger Composer 为投票应用快速构建了一个原型。您现在可以通过导出业务网络存档 (.bna) 文件,导出用于在 IBM Blockchain Platform Starter Plan 上部署的原型。然后,您可以根据自己的需要和兴趣对其进行个性化定制。

后续行动

  • 了解有关 Hyperledger Composer 和 Hyperledger Fabric 的更多信息。 
  • 阅读 Steve Perry 撰写的 Hyperledger Composer 基础 这一系列热门文章,了解如何使用 Hyperledger Composer 从头开始创建业务网络。 
  • 试用全新的 IBM Blockchain Starter Membership Plan 。它为您开始使用区块链网络提供了一条经济实惠的途径,您可在此轻松部署和测试样本区块链应用。您还可以部署自己按本文所述使用 Hyperledger Composer Playground 创建的业务网络模型,通过 Starter Plan 运行这些模型。 
  • 查阅众多 Code Pattern ,它们为解决区块链技术中遇到的复杂问题提供了路线图,并包括架构图、代码存储库和其他阅读材料。 
  • 访问 区块链开发人员中心 。可以在这里获得开发和部署商业区块链解决方案的免费 工具 和教程,以及代码和社区支持。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

HTML & XHTML

HTML & XHTML

Chuck Musciano、Bill Kennedy / O'Reilly Media / 2006-10-27 / GBP 39.99

"...lucid, in-depth descriptions of the behavior of every HTML tag on every major browser and platform, plus enough dry humor to make the book a pleasure to read." --Edward Mendelson, PC Magazine "Whe......一起来看看 《HTML & XHTML》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试