Skip to content

Latest commit

 

History

History
19 lines (18 loc) · 1.52 KB

README.md

File metadata and controls

19 lines (18 loc) · 1.52 KB

votebyblockchain

使用js实现的区块链投票程序

为什么有服务器端文件?
因为整个程序采用webapp,可以运行在手机端,每个手机都开启服务器,作为一个节点并不现实
后端程序只是奖前段程序需要广播至全网的程序进行广播。并没有任何数据存储工作,当然,作为
一个去中心化的应用,这并不符合其思想,但是确实最容易实现的。而且,即使攻破了服务器,迫
迫使服务器发送一条不合法的链条其余节点不会承认,更长的链条也得算力大大大于所有节点以能
够产生一条足够长的链短时间,本程序的工作量证明极其简单,仅仅是四个0开头的哈希值,因为
投票程序挖矿没啥奖励,而且手机应用程序,也不应该去大量消耗电能。作为自己的区块链学习部
分对自己的交代,没有采用以太坊的智能合约,只为了更深入的理解区块链。

有待完善 (已解决)

现在只是挖矿完成后才进行一次全网广播,及时性比较差,而且只能被动接受广播,没有写主动索
取邻居节点链条或者最新最长链条。

各个节点下存储的node数组不一致

目前只是新建node时广播至全网,并没有对照全网node下存储的node,待完善。。

2018/09/19

  1. 修改计算难度,改为计算结果前6个0为正确的proof。
  2. 更新添加js多线程支持,避免在主线程在挖矿是卡死,将挖矿函数放入woker线程中