简介:上一章中咱们聊到了智能合约的应用场景,在了解区块链技术目前的发展状况、智能合约的概念以及其应用场景以后,咱们将在后续的文章中共同窗习智能合约的编成语言。今天,咱们就来简单地谈一谈用于编写智能合约的语言——Solidity语言。编程
那么,什么是Solidity语言呢?在前面的文章中咱们反复提到过以太坊,以太坊作区块链2.0的典型表明,Solidity在以太坊中是撰写智能合约最受欢迎的语言,所以今天咱们就和你们介绍一下这个做为智能合约开发中最主流的语言。浏览器
Solidity是运行于Ethereum虚拟机(EVM)上的一种智能合约高级语言。它的语法与Javascript类似,是一种面向对象的语言。但其做为一种真正意义于网络上运行中的去中心合约,它又有着各类各样的特别之处,如下咱们列举了其中的一部分,以便你们可以更直观地去理解Solidity语言的特色。bash
1.Solidity语言中,以太坊的底层构造是基于账户而非UTXO的,因此它有一个特殊的Address的类型,用于用户、合约以及合约代码的定位(而合约其自己也是一个账户)。网络
2.Solidity语言具有着语言内嵌框架支持支付的特色,它提供了一系列诸如payable的关键字,能够在语言的层面上直接进行支付,在运用上快捷简便。框架
3.存储。Solidity语言的存储使用的是网络上现有的区块链,数据的每个阶段、状态均可以获得永久的存储,因此须要明确变量使用内存仍是区块链。编辑器
4.关于Solidity的运行环境,其运行环境是创建在去中心化的网络上的,强调的是合约或函数执行的调用的方式。由于原来一个简单的函数调用变为了一个网络中节点的代码执行,有着分布式的特色。分布式
5.最后,Solidity语言有着一个十分特殊的异常处理机制。在过程当中一旦出现任何异常,全部的执行都将会被强制回撤,这一机制有效避免了中间状态忽然出现数据不一致的状况,从而保证合约执行的原子性。函数
Hello World做为在《The C Programme Language》中使用的第一个演示程序,在编程的世界里听起来也许很是高端,但实际上想要上手玩转其实很是地简单:工具
pragma solidity ^0.4.0;
contract HelloWorld{
uint balance;
function update(uint amount) returns (address, uint){
balance += amount;
return (msg.sender, balance);
}
}
复制代码
如上所示,经过读取参数输入的新值,并将其累加至合约的变量中,返回发送人的地址,和最终的累计值。post
最后,在这里给你们介绍一款浏览器编译器——Remix。
浏览器编译器Remix可谓称得上是Solidity语言的开发神器,是一个无需安装便可使用的在线编译器。只需打开其网址,便可在线使用并看到具体效果。打开后,以下图所示:
除了Remix,今天咱们还将介绍一款国内的编译器:JIDE。
JIDE是JUICE开放服务平台提供用来编写智能合约及DApp的免费开发工具,JIDE集成了JUICE底层测试链、编辑器和Solidity运行时环境,用户无需搭建任何环境就能够快速地编写、编译、部署、运行智能合约。
与Remix相同,JIDE也是一个无需安装便可使用的在线编译器。只需打开其网址,便可在线使用并看到具体效果。http://open.juzix.net
JIDE提供了完整了中文开发文档,对于初学者来说,这是很是方便的。