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

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

内容简介:要创建一个成功的投票应用,您需要确保投票决不会被更改。区块链的不可篡改性可以提供这样的保证。在本教程中,您将使用 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 ,它们为解决区块链技术中遇到的复杂问题提供了路线图,并包括架构图、代码存储库和其他阅读材料。 
  • 访问 区块链开发人员中心 。可以在这里获得开发和部署商业区块链解决方案的免费 工具 和教程,以及代码和社区支持。

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

查看所有标签

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

机器学习基础教程

机器学习基础教程

(英)Simon Rogers,、Mark Girolami / 郭茂祖、王春宇 刘扬 刘晓燕、刘扬、刘晓燕 / 机械工业出版社 / 2014-1 / 45.00

本书是一本机器学习入门教程,包含了数学和统计学的核心技术,用于帮助理解一些常用的机器学习算法。书中展示的算法涵盖了机器学习的各个重要领域:分类、聚类和投影。本书对一小部分算法进行了详细描述和推导,而不是简单地将大量算法罗列出来。 本书通过大量的MATLAB/Octave脚本将算法和概念由抽象的等式转化为解决实际问题的工具,利用它们读者可以重新绘制书中的插图,并研究如何改变模型说明和参数取值。......一起来看看 《机器学习基础教程》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

html转js在线工具
html转js在线工具

html转js在线工具