1

区块链投票项目


项目地址

GITHUB

项目说明

区块链投票小项目,主要使用了Nuxt和web3.


项目设计

1. 服务结构

虽然中心化服务器使得合约操作有了中心化风险,但是在当前智能合约性能较弱、功能不完善的时候中心化服务器有利于集中管理、提高服务性能、提供附加服务。

PIC1

2. 服务器结构设计

除了基本的用户注册、用户账户信息存储、合约基本信息存储、附加服务如请求加入合约,其余操作均由服务器在区块链上进行操作。数据库中只存储基本信息。

PIC2

3. 用户页面设计

提供合约操作的图形化接口,尽可能使用户直观、方便、快捷地进行合约操作,免去不方便地命令行等直接操作。

PIC3

4. 数据库设计

数据库只用于存储基本信息,如用户信息、合约信息、请求信息、参与表。其余信息和操作都通过区块链来进行。

PIC4


使用说明

1. 登录与注册

PIC5

  • 账号密码按要求填写即可,但是注册时会直接用有资产的账户给新建账户转 1ETH,所以需要修改VoteSystem/server/contractOP/contractOP.jsshowMeTheMoney函数中的测试账户
2. 创建投票项目

PIC6

  • 由于使用 String 或 bytes 太多会导致 gas 不足,所以存储的数据都限定为 bytes32,也就是只能有限个字符。
3. 创建的合约管理

PIC7

  • 点开每一行可以看到所有的提议
4. 首页加入项目

PIC8

  • 所有未申请以及未参与的项目都会显示在主页。
5. 请求参加项目

图片描述

  • 所有请求参加的项目都在我的请求项中,可以在请求被批准前取消。
6. 请求管理

PIC10

  • 所有申请参加属于该用户创建的合约的请求都会显示在管理请求中。
7. 参与的投票

PIC11

  • 我参与的显示所有被批准参与的投票。
8. 投票完成

PIC12

  • 点击提议可以给合约投票,投票完成后刷新页面重新获取票数。

测试

测试视频

使用ganache-cli作为测试用区块链

刘一
36 声望10 粉丝