区块链 | ETH投票项目

区块链投票项目


项目地址

GITHUB


项目说明

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


项目设计

1. 服务结构

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

PIC1

2. 服务器结构设计

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

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做为测试用区块链
相关文章
相关标签/搜索