美文网首页
区块链 智能合约 投票应用

区块链 智能合约 投票应用

作者: 酷酷de熊 | 来源:发表于2018-04-02 10:36 被阅读0次

智能合约实现了一个自动化且透明的投票应用。

投票发起人可以发起投票,将投票权赋予投票人;投票人可以自己投票,或将自己的票委托给其他投票人;任何人都可以公开查询投票的结果。

1. 智能合约代码

智能合约结构体

创建投票

赋予投票权

委托投票权

进行投票

查询获胜方案

结构体类型Solidity中的合约(contract)类似面向对象编程语言中的类。

区块链 智能合约 投票应用

address类型

区块链 智能合约 投票应用

状态变量

合约中的状态变量会长期保存在区块链中。通过调用合约中的函数,这些状态变量可以被读取和改写。

本例中声明了3个状态变量:chairperson、voters、proposals:

·address public chairperson:投票发起人,类型为address;

·mapping(address=>Voter)public voters:所有投票人,类型为address到Voter的映射;

·Proposal[]public proposals:所有提案,类型为动态大小的Proposal数组。

3个状态变量都使用了public关键字,使得变量可以被外部访问(即通过消息调用)。

事实上,编译器会自动为public的变量创建同名的getter函数,供外部直接读取。

状态变量还可设置为internal或private。internal的状态变量只能被该合约和继承该合约的子合约访问,private的状态变量只能被该合约访问。状态变量默认为internal。

区块链 智能合约 投票应用

将上述关键状态信息设置为public能够增加投票的公平性和透明性。

相关文章

  • 智能合约的局限

    区块链的应用离不开智能合约,换句话说,智能合约就是区块链实现各种应用的基础。智能合约是否强大,也就决定了应用是否强...

  • 区块链 智能合约 投票应用

    智能合约实现了一个自动化且透明的投票应用。 投票发起人可以发起投票,将投票权赋予投票人;投票人可以自己投票,或将自...

  • OpenLaw介绍

    在智能合约的区块链时代,Code is Law。区块链应用的公平性、透明性通过智能合约代码实现,一旦通过智能合约去...

  • 区块链2.0时代--以太坊

    区块链2.0: 以太坊 区块链2.0是以“以太坊”为根本的区块链,也称为智能合约开发和应用的时代。 智能合约是以太...

  • 笔记整理:区块链在传统领域的运用

    区块链在传统领域的应用,主要包括智能合约、众筹、公证这三个领域。 1、智能合约领域,以太坊被认为是区块链智能合约开...

  • Fabric链码开发

    智能合约 随着区块链技术的应用和发展,区块链几大关键技术正在经历快速演进,如共识算法、智能合约、跨链事务、隐私保护...

  • 4.4 Hyperledger Fabric - 应用程序开发

    应用程序开发 - 智能合约处理 区块链网络的核心是智能合约。在 PaperNet 中,商业票据智能合约中的代码定义...

  • 区块链3.0--智能合约

    区块链3.0 智能合约 区块链3.0 也被称为智能化应用。主要应用在社会治理领域。包括了身份认证、公证、仲裁、审计...

  • 区块链第3个应用,区块链存储到底好在哪?

    比特币是区块链第1个应用,智能合约是区块链第2个应用,有人把token说成是区块链第2.5个应用,那么区块链的第3...

  • 精读好书 | 智能合约系列4:智能合约应用案例

    - 01 - 智能合约应用案例 基于区块链的智能合约应用范围很广,应用案例数不胜数,以下仅仅列出一些典型应 用。 ...

网友评论

      本文标题:区块链 智能合约 投票应用

      本文链接:https://www.haomeiwen.com/subject/ytuthftx.html