如何使用以太坊的solidity编程语言开发智能合约

这篇文章主要介绍“如何使用以太坊的solidity编程语言开发智能合约”,在日常操作中,相信很多人在如何使用以太坊的solidity编程语言开发智能合约问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用以太坊的solidity编程语言开发智能合约”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联是一家集网站建设,溆浦企业网站建设,溆浦品牌网站建设,网站定制,溆浦网站建设报价,网络营销,网络优化,溆浦网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

开发语言和开发环境选择

目前智能合约最受欢迎的编程语言为Solidity,但是并不只有Solidity。作为初学者,编写Solidity代码,我们可以使用Remix,它是一个基于浏览器的Soldity IDE,网址为:http://remix.ethereum.org/ 。Remix支持编写、测试和部署智能合约。

如何使用以太坊的solidity编程语言开发智能合约

编写代码

学一门语言的第一个程序毋庸置疑都是HelloWorld,那么我们就来写一个HelloWorld的智能合约吧。合约代码如下。

pragma solidity ^0.4.21;

contract HelloWorld {
    string hello = "Hello World!!!";
    event say(string _value);
    
    function sayHello() public {
        emit say(hello);
    }
    
}

合约代码第一行指定该合约使用的Solidity版本为0.4.21,不支持高于0.4.21版本的Solidity特性。

在Solidity中,contract关键字包含的代码段即表示一个智能合约,它拥有一些成员变量,表示该合约的数据,如我们的HelloWorld中的hello,我们可以修改操作这些成员。同时它拥有一些function,可以被他人调用。

event是Solidity提供的一种事件和订阅机制,智能合约能够发出一些event,合约调用者能够监听这些事件并作出相应的反应。

这个合约没有做很多事情,它只会在有人调用它的sayHello方法时,发出一个say事件。接下来让我们来部署和执行它。

部署和运行合约

首先我们需要编译这段代码,在Remix的右边有一个Compile的tab,点击Start to compile,编译成功,如果失败会有错误提示,改正即可。

如何使用以太坊的solidity编程语言开发智能合约

然后我们需要将其部署到区块链上,切换tab到Run。

Remix支持三种环境运行合约。其中如果为JavaScript VM,则合约会在浏览器JavaScript沙箱区块链中被执行,可以理解为Remix使用了浏览器的JS环境虚拟了一个区块链虚拟机。如果为Injected Provider,则Remix将会链接Matamask或者Mist这些区块链钱包,通过它们来间接部署和调用合约。最后为Web3 Provider,Remix会链接Geth等远程区款连节点,来部署和调用合约。

简单起见,我们将使用JavaScript VM,它将为我们初始化出五个区块链账号,使用默认账号即可。将Environment设置为JavaScript VM。如下图:

如何使用以太坊的solidity编程语言开发智能合约

上图除了Environment和Account依次往下,我们将能够看到Gas Limit,这是执行一个Transaction我们能够接受的最大代价。Value表示下一次调用我们将向合约账户转账多少ether。

接下来的HelloWorld表示我们将创建的合约。点击Create既能够创建这个合约。如下图我们看到HelloWorld合约已被创建。

如何使用以太坊的solidity编程语言开发智能合约

我们可以点击sayHello调用。可以看到已经调用成功,在logs中打印出了我们发出的event。

如何使用以太坊的solidity编程语言开发智能合约

到此,关于“如何使用以太坊的solidity编程语言开发智能合约”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


本文名称:如何使用以太坊的solidity编程语言开发智能合约
转载来源:http://myzitong.com/article/gsoceo.html