一起学智能合约之一智能合约的编程语言和开发环境

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fpcc/article/details/82914800

 

一、编程语言

智能合约的编写语言有好几种:

Solidity:有点类似Javascript风格, 文件的后缀名是.sol.。

Serpent:与Python风格类似的Serpent, 文件的后缀名是.se。

LLL:类似Lisp,估计好多人都没听说过这个语言。

以胶Serpent火过一段时间,不过现在智能合约的主流编程语言是Solidity,维护也很及时,比较比较健壮稳定。

举一个小例子:

pragma solidity ^0.4.8;

contract Welcome

{

扫描二维码关注公众号,回复: 3667883 查看本文章

    function PrintWelcome() constant returns (string)

    {

        return "Welcome";

    }

 

}

非常简单,返回一个固定的字符串。

二、编译

编译使用solc,这个在以太坊github上有源码供分析。不过它是用c++写的,并且涉及到了编译链接的很多知识,如果想啃,还需要学习参考一下这两方面的资料。

三、开发环境

智能合约的开发环境,也有不少,包括各种测试环境和编译工具,简单介绍一下,(略过安装,大家可去网上查找相关安装资料,都比较简单)。

  1. 普通环境

testrpc:非常方便容易的创建测试网络的方法. Testrpc可以配置好一些帐户让你不必如私链等还得转来转去,它更适合测试,但是有些东西可能真正部署到链上会有一些问题,所以还是要引起注意。

Truffles:非常流行的开发框架,能够在本地编译、部署智能合约,最初用过一段时间,现在在偶尔也用。

  1. 集成环境

集成环境也经过了几个变化。现在在流行的是基于web的Remix,原来还有一个mix,不过因为编写这个工具的大神从以太坊离开了。所以还是搞Remix吧。

 

三、部署和调用

部署可以通过Remix来完成,也可以用命令通过Web3j来实现,假如你有一个合约,把它拷贝到Remix上,编译。就会得到一个部署的命令。类似于:

 

var welcomeContract =

web3.eth.contract([{"constant":true,……"type":"function"}]);

var welcome = welcomeContract.new(

   {

     from: web3.eth.accounts[0],

     data: '0x608060……',

     gas: '4700000'

   }, function (e, contract){

    console.log(e, contract);

 …….

    }

 })

然后把它拷贝到到geth的控制台上,执行就可以了,如果正在挖矿的私链,可以很快得到结果:

Contract mined!

address: 0x096aa2dd30751f49b62f5372150984cf1cfd3124

transactionHash: 0x17c8d760a243ee8dcf2bc9f258e3290f69c4e61ad49d2eadff0eebe525a05cb5

这样就可以使用了。使用方法:

在geth的控制台上输入:

welcomeContract. PrintWelcome ()

这时在控制台上就会显示:”Welcome”。

 

最后,不管是编程语言还是编译器亦或是编程环境,都在不断的变化,所以需要及时跟进。那么,现在就可以顺利的学习Solidity语言并用其开发智能合约了。

如果对c++和区块链感兴趣,欢迎关注:

猜你喜欢

转载自blog.csdn.net/fpcc/article/details/82914800