内容简介:要创建一个成功的投票应用,您需要确保投票决不会被更改。区块链的不可篡改性可以提供这样的保证。在本教程中,您将使用 Hyperledger Composer Playground 和一些提供的样本代码创建一个安全公平的投票应用原型,在本地部署该原型并进行实验。Hyperledger Composer Playground 是包含在开源要完成本教程,您只需要拥有浏览器以及一些 JavaScript 相关知识。
要创建一个成功的投票应用,您需要确保投票决不会被更改。区块链的不可篡改性可以提供这样的保证。在本教程中,您将使用 Hyperledger Composer Playground 和一些提供的样本代码创建一个安全公平的投票应用原型,在本地部署该原型并进行实验。
只需单击即可启动功能完善的区块链网络
新的 IBM Blockchain Starter Membership Plan 为您提供了一种经济的方式来启动区块链网络。然后,您可以轻松部署区块链应用,比如这里描述的投票应用。
Hyperledger Composer Playground 是包含在开源 Hyperledger Composer 中的用户界面。此 Playground 是配置、部署和测试业务区块链网络的理想之选。多种高级功能可以帮助您管理区块链网络的安全性,邀请参与者参与到您的网络中,并连接多个网络。
学习目标
- 在区块链网络上为投票应用创建逻辑和权限
- 在本地部署应用
- 测试应用
完成本教程所需时间
- 大约 10 分钟
前提条件
要完成本教程,您只需要拥有浏览器以及一些 JavaScript 相关知识。
1
部署并连接到一个空的业务网络
在此步骤中,您将创建一个业务网卡,它提供连接到区块链网络所需的配置信息。
- 前往 Hyperledger Composer Playground 。
- 单击 Let's Blockchain!
- 单击 Deploy a new business network 。
- 在出现的页面上,向下滚动至步骤 2 并单击 empty-business-network 。
- 单击 Deploy 。
- 单击 Connect now 。
2
填写模型文件
模型文件使用 Hyperledger Composer 建模语言来指定执行事务的 参与者 、在整个网络中移动的 资产 以及 事务 本身。在投票应用的模型文件中,投票者即为参与者,他们投票的政党为资产,而投票行为是事务。
- 单击左侧导航中的 Model File 。
- 将以下样本代码复制并粘贴到 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 创建脚本文件,定义投票应用的实际业务逻辑和功能。对于投票应用,脚本文件定义投票逻辑和规则,例如每个参与者投一票。
- 在左侧导航中,单击 Add a file... 。
- 在 “Add a file” 面板中,选择 Script File 并单击 Add 。
- 将以下代码复制并粘贴到 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); }) }); } }
- 单击 Deploy 。
4
测试原型
现在,您可以创建资产、添加参与者,并执行一些事务来测试原型。
- 单击 Test 选项卡,在左侧导航中选择 Voter ,然后单击 Create New Participant 。
- 在井号后输入 投票者的 ID ,然后输入投票者的 姓名 。按需添加其他 ID 和姓名。单击 Create New 。
- 您会看到类似下图的结果:
- 现在,添加一个或多个资产。在左侧导航中,选择 candidateVote 并单击 Create New Asset 。当出现提示时,添加一个政党名称。按需添加其他政党名称。单击 Create New 。
- 在左侧导航中,选择 ifVoted 并单击 Create New Asset 。当出现提示时,添加步骤 2 中输入的投票者 ID。对您添加的全部投票者重复此步骤。单击 Create New 。
- 您会看到类似下图的结果:
- 单击顶部的 Test 。
现在,我们来投票并测试事务吧!
- 在左下角,单击 Submit Transaction 。
- 输入投票者 ID(第 3 行)和该投票者想要投票的政党(第 2 行)。单击 Submit 。
- 您会看到类似下图的结果:
- 您可以提交任何喜欢的投票,并核实每一个投票者只能进行一次投票。要查看已提交投票的账本,请在左侧导航中单击 All Transactions 。
结束语
恭喜!现在,您已经使用 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 ,它们为解决区块链技术中遇到的复杂问题提供了路线图,并包括架构图、代码存储库和其他阅读材料。
- 访问 区块链开发人员中心 。可以在这里获得开发和部署商业区块链解决方案的免费 工具 和教程,以及代码和社区支持。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
工程问题C++语言求解
Delores M.Etter、Jeanine A.Ingber / 冯力、周凯 / 机械工业出版社 / 2014-8 / 79元
本书介绍了如何利用ANSIC++编程语言以基于对象的编程方式来解决工程问题。书中引用了大量来自于不同工程、科学和计算机科学领域的示例,是一本理论和实践结合紧密的教材。针对C++基本语法的各个部分,由浅入深地进行讲解。每讲解一部分基础知识,同时会结合多个相关实例,实例内容详实,紧贴所讲内容,使读者能够立刻对所学知识进行练习,实战性强。一起来看看 《工程问题C++语言求解》 这本书的介绍吧!