(四)基于区块链的投票系统的设计与实现

基于区块链的投票系统的代码及前端页面实现

本次报告将介绍基于区块链的投票系统的实现过程,本系统的实现过程为:首先在总体设计及详细设计的基础上编写智能合约,在本地搭建的以太坊私有链节点上部署我们的智能合约,并设计与投票系统交互的前端界面,通过以太坊提供的通过以太坊提供 Web3.js 库的 JavaScript API 接口调用部署在区块链上智能合约的相应方法,实现整个投票系统的流程。

1、系统运行流程及需求分析

1.1 系统运行流程

 

 

1.2 需求分析

我们设计的投票系统主要分为两部分:投票发起者界面和投票者界面,分别在各自的节点上运行,实现不同的功能和操作。

(1) 投票发起者界面:投票发起者初始化整个投票过程。包括以下功能:部署投票项目智能合约、认证投票者、设置合格注册码、发起投票问题、设置注册环节和投票环节的起止时间、查看投票结果等。

(2) 投票者界面:选民登录注册成为合格投票者进行投票。包括以下功能:登录注册、参与投票、提交选票、查看投票结果等。

 

 

2、智能合约的开发与实现

2.1 智能合约的开发

开发语言:solidity

编辑器:Atom

在线编译器:Remix

交易桥梁:Metamask

2.2 智能合约的实现

(1)合约概述


合约名


合约内容


Voting.sol


投票智能合约,实现投票者注册,投票,提交选票,自我计票等方法。

(2)Voting.sol合约实现的方法介绍:


方法及参数


功能


VaildID()


判断投票者是否注册


projectSetup(string memory title, string memory select1, string memory select2, string memory select3)


初始化投票项目


registerIdSetup(bytes32 register1)


设置注册码


voteForCandidate(bytes32 candidate)


投票给某个候选者


TimeSetSetup(string memory register_start_time,string memory register_end_time, string memory vote_start_time, string memory vote_end_time)


设置注册时间、投票时间


voteForCandidate(bytes32 candidate)


投票给候选者


totalVotesFor(bytes32 candidate)


获取候选者的所有选票


someoneRegister(bytes32 registerId)


投票者注册


VaildID()


判断投票者是否注册


isVoted()


判断投票者是否投过票

3、实验结果与分析

3.1 管理员的工作流程

3.1.1 登录(要求同时登录metamask,不然会弹出账号错误并重新返回登录页)

3.1.2 系统项目初始化

3.1.3 设置被授权的注册码(这里要修改为服务器生成公私钥,将公钥发给用户,用户使用公钥加密注册码发送给服务器,下面展示的加密也需要修改)

3.1.4 设置各阶段的工作时间

3.1.5 结果展示

投票未截止时查看投票结果:

投票时间截止后查看投票结果:

Metamask交易记录:

3.2 投票者的工作流程

3.2.1 登录

3.2.2 注册

未注册会先弹出注册框:

注册:

注册成功:

3.2.3 投票

3.2.4 查看结果

投票成功:

结果:

Metamask的交易记录:

4、小结

本次报告首先简要概括了一下投票系统的运行流程与需求分析,然后介绍了智能合约的开发工具与我们的投票系统所涉及的合约方法;最后展示了投票系统的操作流程。系统中存在的主要问题就是合约信息更新较慢,导致需要等待一点时间,前端的页面信息才会正常展示,下一步我打算着重解决这些系统出现的问题,并把前端的界面整体修改一下,使其更加美观。

原文地址:https://www.cnblogs.com/honghongzeng/p/12552084.html

时间: 2024-11-10 03:48:25

(四)基于区块链的投票系统的设计与实现的相关文章

(五)基于区块链的投票系统的设计与实现

1.需求分析 1.1 用户群体分析 需要进行投票表决的学校小团体.商业董事会群体.政府人员等. 1.2 系统用途概述 本系统是一个基于区块链技术的线上投票系统.针对目前线上投票系统中出现的恶意刷票.数据安全.隐私泄露等问题,本系统结合区块链技术的去中心化.数据不可篡改.可匿名性等特点,可以保证投票系统的投票数据公正.公开.可验证.不可篡改,提高投票系统的可信任性.用户可以通过本系统进行投票项目的创建.规定投票时间.注册投票等操作,系统同时提供投票数据可追溯可验证的功能,旨在给用户构建一个更加高效

(三)基于区块链的投票系统的设计与实现

1.本地环境的搭建(Windows 10) 1.1 安装nodejs,npm,git,web3,solc (1)nodejs:官网下载最新版本https://nodejs.org/en/download/current/ node.js后续还需安装python2.7与visual studio的c++开发工具包(建议手动). (2)npm:在Windows下安装nodejs会自带npm (3)git:官网下载即可https://git-scm.com/downloads (4)web3:命令行n

(一)基于区块链的投票系统的设计与实现之环境的搭建

由于博主的毕设做的是区块链的方向,因此想写博客记录这个过程. 博主是在本地搭建的开发环境,操作系统为window10,使用以太坊开发平台,truffle框架,Solidity开发语言,Atom编辑器. 如果你还不知道区块链的一些基础知识,推荐看完这个公开课: https://www.bilibili.com/video/av37065233 (1)安装Atom 官网:https://atom.io/ 点击进入官网,选择对应的版本下载安装即可. (2)安装Git, NodeJS, Truffle,

基于区块链的支付系统开发,区块链支付方案

基于区块链的支付系统开发,区块链支付方案区块链支付系统开发,区块链支付平台让用户轻松注册:每个人都知道,开一个新的账户或者买一张新的信.用.卡就意味着你需要花费大量的文书工作来完成冗长乏味的过程.而如果你使用数字资产区块链支付平台,你几乎肯定会立即这样做.此外,它就像应下载用程序到您手机一样简单. 区块链技术的去中心化特征正在"抢目前电商平台第三方支付平台的饭碗",以区块链为基础的新型互联网金融体系,买方和卖方可以直接交易,交易基于密码学原理而不基于信任,使得任何达成一致的双方,能够直

区块链产品溯源系统到数字资产交易系统开发技术

如何用区块链实现商品打假? 电影<我不是药神>最近比较火.片中除了动容的情节故事外,还有一些细节也给我们留下了深刻的印象,比如假院士卖假药的桥段. 为什么目前假货如此泛滥? 源中瑞jojo开发产品溯源带来了新的思路 具体来说,区块链技术开发电↑.可以从以下三个方面赋能零售商品的防伪溯源,并克服传统方式无法解决的痛点. 第一,基于不可篡改的商品信息,解决信任问题. 第二,全程实时溯源各种商品信息. 第三,有效遏制造假行为. 除了上述三点,区块链与零售业的结合,还可以显著提高效率.降低成本.具体而

基于区块链资产交易系统

基于区块链资产交易系统 今天先到这儿,希望对您 区块链,  技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管理,团队建设 有参考作用 , 您可能感兴趣的文章: 领导人怎样带领好团队构建创业公司突击小团队国际化环境下系统架构演化微服务架构设计视频直播平台的系统架构演化微服务与Docker介绍Docker与CI持续集成/CD互联网电商购物车架构演变案例互联网业务场景下消息队列架构互联网高效研发团队管理演进之一消息系统架构设计演进互联网电商搜索架构演化之一企业信息化与软件工程

基于区块链的播客,2019风口!

虽然youtube和soundcloud这样的平台已经成为独立音乐人的强有力的工具,这些平台同时也打开了内容管理方面的潘多拉魔盒.音频流媒体产业每年都在增长,在2018年底付费流媒体用户已经达到2.55亿人,该年度音乐流媒体销售产生的收入也接近了89亿美元.但问题在于:这些销售都是由大牌企业例如Spotify或者Apple Music主宰的,对于独立音乐人而言,要争取平台流媒体销售中的收入分成,其话语权并不够强大. 1.救星来了:区块链 区块链会出现在任何需要去中心化的解决方案中,对于音乐流媒体

区块链虚拟收藏品+手机挖矿:构建去中心化的区块链会员积分系统

距离以太坊的"CryptoKitties"上线已过去了半年的时间.在这半年中各种各样的区块链宠物养成游戏层出不穷,同时人们也对区块链有了深刻的认识.从区块链宠物养成游戏中衍生而来的则是各类区块链虚拟收藏品游戏,除了那些加密宠物,还有不同展现形式的加密资产.很多服务商陆续推出了各种以"加密资产游戏+手机挖矿+积分变现"模式的全新去中心化商业应用,我们称之为"区块链会员积分系统".这类应用将区块链技术的核心理念应用到积分变现中,为企业又开辟了一种新的

区块链搬砖系统Arbitao数字货币套利软件app开发×××

数字货币套利软件开发找[孙女士 微/电 ①⑧⑥①⑤⑥①④零⑥②]区块链搬砖系统Arbitao数字货币套利软件app开发×××?专业开发数字货币搬砖套利系统,提供一站式开发定制服务,致力于为客户搭建高品质系统,欢迎电询了解, ----------特别提示:专业开发公司,非平台运营方,玩家勿扰!!!----------如今区块链技术大力发展,各种数字货币和交易所也相继涌现,这就意味着有很多套利机会.面对广阔的市场,搭建一套功能强大.安全可靠的数字货币搬砖系统很有必要.那么如何搭建类似系统呢?区块链搬