区块链投票项目
项目地址
GITHUB
项目说明
区块链投票小项目,主要使用了Nuxt和web3.
项目设计
1. 服务结构
虽然中心化服务器使得合约操作有了中心化风险,但是在当前智能合约性能较弱、功能不完善的时候中心化服务器有利于集中管理、提高服务性能、提供附加服务。
2. 服务器结构设计
除了基本的用户注册、用户账户信息存储、合约基本信息存储、附加服务如请求加入合约,其余操作均由服务器在区块链上进行操作。数据库中只存储基本信息。
3. 用户页面设计
提供合约操作的图形化接口,尽可能使用户直观、方便、快捷地进行合约操作,免去不方便地命令行等直接操作。
4. 数据库设计
数据库只用于存储基本信息,如用户信息、合约信息、请求信息、参与表。其余信息和操作都通过区块链来进行。
使用说明
1. 登录与注册
- 账号密码按要求填写即可,但是注册时会直接用有资产的账户给新建账户转 1ETH,所以需要修改
VoteSystem/server/contractOP/contractOP.js
中showMeTheMoney
函数中的测试账户
。
2. 创建投票项目
- 由于使用 String 或 bytes 太多会导致 gas 不足,所以存储的数据都限定为 bytes32,也就是只能有限个字符。
3. 创建的合约管理
- 点开每一行可以看到所有的提议
4. 首页加入项目
- 所有未申请以及未参与的项目都会显示在主页。
5. 请求参加项目
- 所有请求参加的项目都在
我的请求
项中,可以在请求被批准前取消。
6. 请求管理
- 所有申请参加属于该用户创建的合约的请求都会显示在
管理请求
中。
7. 参与的投票
-
我参与的
显示所有被批准参与的投票。
8. 投票完成
- 点击提议可以给合约投票,投票完成后刷新页面重新获取票数。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。