使用Solidity开发智能合约之一

开发 后端
Solidity是用于开发以太坊智能合约的最受欢迎的语言之一,因此作为一个想要成为区块链开发人员的我决定开始学习如何使用Solidity开发智能合约。

[[388531]]

本文转载自微信公众号「区块链研究实验室」,作者链三丰。转载本文请联系区块链研究实验室公众号。

Solidity是用于开发以太坊智能合约的最受欢迎的语言之一,因此作为一个想要成为区块链开发人员的我决定开始学习如何使用Solidity开发智能合约。

但是由于找不到我想要的质量的教程(使初学者能够以简洁的方式轻松学习基础知识),所以我决定创建本系列,希望很快将您介绍给Solidity编程。

设置开发环境

我们将使用的IDE是Remix。您需要做的就是点击这个URL。点击进去后,您应该会看到一个类似以下的屏幕:

在左侧,我选择了两个主要组件。第一个图标是文件浏览器,您可以在其中查看所有Solidity文件,第二个图标是插件管理器,从中可以添加新插件。

我们将需要添加两个插件,因此单击插件管理器图标,然后键入“ Solidity编译器”。然后通过单击“激活”将其激活,并执行相同的操作以添加“部署并运行事务”插件。

“Solidity编译器”选项卡将允许您配置编译器参数并编译智能合约,而“部署并运行交易”选项卡将允许您在区块链中部署智能合约并与之交互。图标列表现在应如下所示:

您现在应该做的第一件事是检查“编译器”选项卡中的“自动编译”选项。接下来,我们将配置Remix以使用本地存储中的文件。

您将需要使用以下命令安装remixed:

  1. npm install -g remixd 

安装完成后,您可以创建一个文件夹,您将在其中放置Solidity文件,然后运行以下命令告诉Remix使用文件夹中的文件:

  1. remixd -s <shared folder> — remix-ide https://remix.ethereum.org 

现在转到Remix的主页,单击“连接到本地主机”,然后在弹出窗口中选择“连接”,您应该在“文件资源管理器”选项卡下看到一个名为localhost的区域。如果展开它,您将看到从本地存储共享的文件夹中包含的所有文件:

恭喜你,现在,您拥有了开始编写第一个智能合约的工具!

接着Remix将为您提供在您的浏览器中运行的沙盒区块链,以使用它来部署您的合同并与之交互。只需确保在“部署并运行”选项卡中选择Javascript VM作为环境即可。

撰写"hello world"合同

让我们看看我们的第一个智能合约:

SPDX许可证标识符

如果源代码可用,则可以更好地建立对智能合约的信任。由于提供源代码始终会涉及版权方面的法律问题,因此Solidity编译器鼓励使用机器可读的SPDX许可证标识符。每个源文件都应以说明其许可证的注释开头。TK(https://solidity.readthedocs.io/en/v0.7.3/layout-of-source-files.html)

版本注释

可以为源文件添加版本注释,以拒绝使用将来的编译器版本进行编译,因为这可能会带来不兼容的更改。

  1. TK(https://solidity.readthedocs.io/en/v0.7.3/layout-of-source-files.html) 

具有重大更改的发行版本始终以0.x.0或形式x.0.0。在我们的示例中,可以使用的编译器版本应大于或等于0.7.0且小于0.8.0(使用来添加第二个条件^)。可以为编译器版本指定更复杂的规则。它们遵循npm所使用的相同语法。

前两行应出现在所有智能合约文件中。

为了开始编写智能合约,您需要使用关键字contract 以及合约名称,然后才能将代码放在大括号之间。

接着,让我们创建这个世界问候合同。

在您的共享文件夹中创建一个名为的新文件,HelloWorldContract.sol并复制粘贴先前的代码。如果您选中了自动编译选项,它将自动编译代码。如果没有,请确保检查并编译代码。

现在是时候部署我们的第一个合同并与其进行交互了。

单击“部署并运行事务”选项卡,然后确保在环境中选择了JavaScript VM,并在合同区域中选择了合同名称。完成后,单击“部署”。

现在,您应该在“已部署合同”区域下看到您的合同。

如果展开它,您将看到该helloWorld功能。单击它以发送调用此功能的交易,您将看到hello world打印的字符串。

智能合约的结构

现在让我们看看可以在智能合约中添加哪些内容(下面直接引自https://solidity.readthedocs.io/en/v0.6.7/structure-of-a-contract.html):

  • 状态变量:是其值永久存储在合同存储中的变量。
  • 函数:函数是代码的可执行单元。函数通常在合同内部定义,但也可以在合同外部定义。
  • 功能修饰符:功能修饰符可用于以声明方式修改功能的语义。
  • 事件:事件是与EVM日志记录工具的便捷接口。
  • 结构类型:结构是可以将多个变量组合在一起的自定义类型。
  • 枚举类型:枚举可用于创建具有有限“常量值”集合的自定义类型。

 

责任编辑:武晓燕 来源: 区块链研究实验室
相关推荐

2020-04-29 12:50:29

Solidity智能合约区块链

2023-05-12 09:14:34

2023-02-24 08:00:00

2021-05-06 09:42:24

Truffle部署智能

2022-04-20 10:11:45

PythonBrownie编程语言

2023-10-12 09:05:11

2021-03-25 16:34:10

区块链加密资产技术

2022-11-03 08:35:35

2021-11-02 10:25:19

区块链智能合约

2020-04-22 13:23:46

智能合约区块链比特币

2022-10-17 09:15:37

2022-07-14 09:00:00

区块链数据智能合约

2023-02-27 17:54:55

2020-12-17 08:00:00

区块链数据以太坊

2021-04-23 10:59:07

区块链货币私钥

2021-04-20 12:53:34

Polkadot部署合约

2020-08-16 08:48:26

漏洞CertiK智能合约

2021-10-25 07:57:45

Node ExportLinux 监控

2013-05-20 16:53:55

Android游戏开发长按事件

2018-08-15 08:48:18

点赞
收藏

51CTO技术栈公众号