什么是Solidity语言呢?在前面的文章中我们反复提到过ETH,ETH做Blockchain2.0的典型代表,Solidity在ETH中是撰写智能合约Zui受欢迎的语言,因此今天我们就和大家介绍一下这个作为智能合约开发中Zui主流的语言。
Solidity是运行于Ethereum虚拟机(EVM)上的一种智能合约语言。它的语法与Javascript相似,是一种面向对象的语言。但其作为一种真正意义于网络上运行中的去中心合约,它又有着各种各样的特别之处,以下我们列举了其中的一部分,以便大家能够更直观地去理解Solidity语言的特点。
1.Solidity语言中,ETH的底层构造是基于帐户而非UTXO的,所以它有一个特殊的Address的类型,用于用户、合约以及合约代码的定位(而合约其本身也是一个帐户)。
2.Solidity语言具备着语言内嵌框架支持支付的特点,它提供了一系列诸如payable的关键字,可以在语言的层面上直接进行支付,在运用上快捷简便。
3.存储。Solidity语言的存储使用的是网络上现有的Blockchain,数据的每一个阶段、状态都可以得到的存储,所以需要明确变量使用内存还是Blockchain。
4.关于Solidity的运行环境,其运行环境是建立在去中心化的网络上的,强调的是合约或函数执行的调用的方式。因为原来一个简单的函数调用变为了一个网络中节点的代码执行,有着分布式的特点。
5.Zui后,Solidity语言有着一个十分特殊的异常处理机制。在过程中一旦出现任何异常,所有的执行都将会被强制回撤,这一机制有效避免了中间状态突然出现数据不一致的情况,从而保证合约执行的原子性。
Hello World作为在《The C ProgrammeLanguage》中使用的第一个演示程序,在编程的世界里听起来也许非常高端,但实际上想要上手玩转其实非常地简单:
pragma solidity ^0.4.0;
contract HelloWorld{
uint balance;
function update(uint amount) returns (address, uint){
balance += amount;
return (msg.sender, balance);
}
}