共计 920 个字符,预计需要花费 3 分钟才能阅读完成。
区块链技术是一种去中心化的数据库技术,能够保障数据安全和透明度。投票系统是一个非常适合利用区块链技术的畛域,因为其安全性和可靠性对于选民和政府机构来说至关重要。
以太坊是一种区块链的实现, 在以太坊网络中,泛滥的节点彼此连贯,形成了以太坊网络:
以太坊节点软件提供两个外围性能:数据存储、合约代码执行。
在每个以太坊全节点中,都保留有残缺的区块链数据。以太坊不仅将交易数据保留在链上,编译后 的合约代码同样也保留在链上。
以太坊全节点中,同时还提供了一个虚拟机来执行合约代码。
以太坊中每笔交易都存储在区块链上。当你部署合约时,一次部署就是一笔交易。当你为候选者投票时,一次投票 又是另一笔交易。所有的这些交易都是公开的,每个人都能够看到并进行验证。这个数据永远也无奈篡改。
为了确保网络中的所有节点都有着同一份数据拷贝,并且没有向数据库中写入任何有效数据,以太坊 目前应用工作量证实(POW:Proof Of Work)算法来保障网络安全,即通过矿工挖矿(Mining)来达成共识(Consensus)—— 将数据同步到所有节点。
~/repo/tkapp$ truffle compile
Compiling Migrations.sol…
Compiling Voting.sol…
Writing artifacts to ./build/contracts
~/repo/tkapp$ truffle migrate
Running migration: 1_initial_migration.js
Deploying Migrations…Migrations: 0x3cee101c94f8a06d549334372181bc5a7b3a8bee
Saving successful migration to network…
Saving artifacts…
Running migration: 2_deploy_contracts.js
Deploying Voting…Voting: 0xd24a32f0ee12f5e9d233a2ebab5a53d4d4986203
Saving successful migration to network…
Saving artifacts…