【以太坊智能合约编程】 【solidity傻瓜代码3】 简单的代码 pragma solidity >=0.4.22 <0.6.0; contract Counter { uint counter; function count() public { counter = counter + 1; } } 代码的解读 第一句:pragma,contract,unit,function等等解释见前文。 第二句:contract Counter。定义计数器合约。 counter(计数器)。 函数的解释 合约就是由函数和数据构成。 函数就是各种功能的实现。 这里就是实现一个计数器的功能。 counter = counter + 1; 这就是自己不断的给自己加一的计数器。比如跳绳,比如读秒,比如数钱等等。 function count() public { 注意:count和counter是两个东西。 count()是函数的名字。 counter是一个uint的数据。 所以再说一遍:合约就是由函数和数据构成。 Solidity 是一门编译型语言,代码被编译为以太坊虚拟机字节码之后,再部署到以太坊网络。用人话来说就是。至今为止,我们学的Solidity代码都是人类的语言(很像英语),计算机根本无法识别。所以需要下面的工具编译(compile)。(就是把sol代码翻译成电脑可以执行的语言) Remix IDE https://remix.ethereum.org/ Remix 就是用来开发、编译、部署智能合约的IDE(集成开发环境)(简单说就是写代码的地方),它还是一个基于浏览器的Web IDE 。 创建文件 创建文件会自动加一个.sol sol表示这是solidity文件 代码拷贝到右边。如下图所示。 编译文件 合约的部署 注意:合约的部署(Deploy)是要消耗以太坊的。 所以应该在测试网上来玩。不要在正式的以太坊部署(Deploy)这样的示范合约(没有任何用) 几个名词解释 运行环境:EVM 以太坊虚拟机上运行的是合约的字节码形式,需要我们在部署之前先对合约进行编译,可以选择Remix 或solc编译器。 合约的部署Deploy 在以太坊上开发应用时,常常要使用到以太坊客户端(钱包)。 以太坊客户端(钱包) 以太坊客户端,其实我们可以把它理解为一个开发者工具,它提供账户管理、挖矿、转账、智能合约的部署和执行等等功能。 Geth是典型的开发以太坊时使用的客户端,基于Go语言开发。 Geth提供了一个交互式命令控制台,通过命令控制台中包含了以太坊的各种功能(API)。 以太坊中有两类账户 外部账户 智能合约的部署是指把合约字节码发布到区块链上,并使用一个特定的地址来标示这个合约,这个地址称为合约账户。(由实际矿工出块之后,才真正部署成功)。 运行 合约部署之后,当需要调用这个智能合约的方法时只需要向这个合约账户发送消息(交易)即可,通过消息触发后智能合约的代码就会在EVM中执行了。 Gas汽油 占用区块链的资源(不管是简单的转账交易,还是合约的部署和执行)需要付出相应的gas费用 Gas费用就是愿意为这次交易愿意付出的费用:Gas价格(用以太币计价) * Gas数量。 Gas数量:任何特定的合约所需的运行合约的Gas数量是固定的,由合约的复杂度决定。 Gas将按照特定规则被逐渐消耗,无论执行到什么位置,一旦Gas被耗尽,将会触发异常。当前调用帧所做的所有状态修改都将被回滚, 如果执行结束还有Gas剩余,这些Gas将被返还给发送账户。 还有一个好处就是如果没有这个gas费用的限制,就会有人写出无法停止(如:死循环)的合约来阻塞网络。 总结一下 我们现在来总结一下, 1:以太坊是平台,它让我们方便的使用区块链技术开发去中心化的应用, 2:在这个应用中,使用Solidity来编写和区块链交互的智能合约, 3:合约编写好后之后,我们需要用以太坊客户端用一个有eth余额的账户去部署及运行合约。 —- 编译者/作者:邹刚 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
【以太坊智能合约编程】之【solidity傻瓜代码3】----简单的计数器和Remix IDE简介
2021-05-30 邹刚 来源:区块链网络
LOADING...
相关阅读:
- 可持续加密货币交易:采用加密货币资产将如何改变金融服务行业2021-05-30
- ETH / USD面临37156附近的技术阻力:何凯诗的技术分析2021年5月29日ETH2021-05-30
- DFINITY 创始人:DFINITY 将开始与以太坊网络集成2021-05-30
- 官方消息XPDE于5月30日21:00正式上线MDEX2021-05-30
- XPDE于5月30日21:00正式上线HECO2021-05-30