solidity 以太坊智能合约语言(一)

关于以太坊以及智能合约的一些基本概念,LZ在这里不做介绍。此系列blog的主要目的是智能合约编写语言solidity的学习。

1、Solidity语言

Solidity是一种接近JavaScript语法的程序语言,也是这一种面向对象的语言,作为一种真正运行在网络上的去中心合约语言,有一些特点:

  • 以太坊底层是基于帐户,而非UTXO的,所以有一个特殊的Address的类型。用于定位用户,定位合约,定位合约的代码(合约本身也是一个帐户)。
  • 由于语言内嵌框架是支持支付的,所以提供了一些关键字,如payable,可以在语言层面直接支持支付。
  • 数据的每一个状态都可以永久存储,所以需要确定变量使用内存,还是链。
  • 运行环境是在去中心化的网络上,会比较强调合约或函数执行的调用的方式。
  • 异常机制非常独特,一旦出现异常,所有的执行都将会被回撤,主要是为了保证合约执行的原子性,以避免中间状态出现的数据不一致。

2、智能合约的简单示例

pragma solidity ^0.4.18;

contract SimpleStorage {
    uint storedData;

    function set(uint x) public {
        storedData = x;
    }

    function get() public view returns (uint) {
        return storedData;
    }
}

 编译浏览器Remix

对于初学者,作者强烈建议直接使用在线的编译浏览器Remix,地址https://ethereum.github.io/browser-solidity/#

3、智能合约的语法糖

   推荐直接观看Solidity的官方原著文档:https://solidity.readthedocs.io/en/develop/solidity-by-example.html

   如果觉得原著看起来比较困难,那就接着读LZ的文章吧。当然,也欢迎各位一起完善blog,造福更多人。

你可能感兴趣的:(区块链——智能合约)