共计 719 个字符,预计需要花费 2 分钟才能阅读完成。
区块链投票项目
项目地址
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. 投票完成
点击提议可以给合约投票,投票完成后刷新页面重新获取票数。
测试
测试视频
使用 ganache-cli 作为测试用区块链