7

跟我学习 Solidity - 入门

 3 years ago
source link: https://learnblockchain.cn/article/1755
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

跟我学习 Solidity 第一篇

开始在以太坊上编写智能合约

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

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

设置开发环境

我们将使用的IDE是 Remix ,在浏览器输入 Remix URL 。完成后,你应该会看到一个类似以下的界面:

EBFZFbB.png!mobile

在左侧,我选择了两个主要组件。第一个图标是文件浏览器,在这里可以查看你所有的Solidity文件,第二个图标是插件管理器,从中可以添加新插件。我们将需要添加两个插件,因此请单击插件管理器图标,然后输入“ Solidity compiler(编译器)”。然后通过单击“Activate”将其激活,并执行相同的操作以添加“Deploy and run transactions(部署并运行交易)”插件。

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

f22qiuN.png!mobile

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

使用以下命令安装remixd:

npm install -g remixd

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

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

fMfiMjm.png!mobile

现在转到Remix的主页,单击“Connect to localhost(连接到本地主机)”,然后在弹出窗口中选择“(connet)连接”。

iI3Abmi.png!mobile

然后在“File explorer(文件资源管理器)”选项卡下看到一个名为localhost的区域。展开它,你将看到从本地存储共享的文件夹中包含的所有文件:

B7ZVva.png!mobile

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

等等...我们不应该安装一些东西与以太坊区块链进行交互吗?

现在还不急。我们选择轻松开始。 Remix将为你提供在浏览器中运行的虚拟区块链环境,先使用它来部署合约并与之交互。只需确保在“Deploy and run(部署并运行)”选项卡中选择Javascript VM作为环境即可。

编写合约

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

Q3uEv2I.png!mobile

SPDX 版权许可证标识符

如果开放源代码,则可以更好地建立对智能合约的信任。由于提供源代码总是会涉及版权方面的法律问题,因此Solidity编译器鼓励使用机器可读的 SPDX版权许可证标识符 。每个源文件都应以在开头以注释说明其以什么方式许可。 参考Solidity 源文件结构

版本语法

源文件可以(并且应该)添加版本注释,以拒绝使用将来可能引入不兼容更改的编译器进行编译。 参考Solidity 源文件结构

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

前两行应出现在所有智能合约文件中。 为了开始编写智能合约,你需要使用关键字 contract 及合约名称,然后才能将代码放在大括号之间。

好,让我们创建这个Helloworld合约。

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

现在是时候部署我们的第一个合约并与它进行交互了。 单击“Deploy and run transactions(部署并运行交易)”选项卡,然后确保在环境中选择了JavaScript VM,并在合约区域中选择了合约名称。完成后,单击“Deploy(部署)”。

IbIBR3n.png!mobile

现在,你应该在“Deployed Contracts(已部署合约)”区域下看到你的合约。 展开它,你将看到 helloWorld 函数。单击它以发送调用此函数的交易,你将看到打印出 hello world 字符串。

RbUzAz2.png!mobile

智能合约的结构

现在,让我们看一下你可以在智能合约中添加的内容,在下面直接引自文档:https://learnblockchain.cn/docs/solidity/structure-of-a-contract.html:

  1. 状态变量:是其值永久存储在合约存储中的变量。
  2. 函数:函数是代码的可执行单元。函数通常在合约内部定义,但也可以在合约外部定义。
  3. 函数修改器(Modifiers ,有些翻译为修饰符):函数修改器可用于以声明方式修改函数的语义。
  4. 事件:事件是与EVM日志记录工具的便捷接口。
  5. 结构体类型:结构体是可定义多个变量的自定义类型。
  6. 枚举类型:枚举可用于创建具有有限“常量值”集合的自定义类型。

稍后我们将更详细地介绍这些组件。

概述就是这样。下篇再见!

本翻译由 Cell Network 赞助支持。

开始在以太坊上编写智能合约

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

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

设置开发环境

我们将使用的IDE是 Remix ,在浏览器输入 Remix URL 。完成后,你应该会看到一个类似以下的界面:

EBFZFbB.png!mobile

在左侧,我选择了两个主要组件。第一个图标是文件浏览器,在这里可以查看你所有的Solidity文件,第二个图标是插件管理器,从中可以添加新插件。我们将需要添加两个插件,因此请单击插件管理器图标,然后输入“ Solidity compiler(编译器)”。然后通过单击“Activate”将其激活,并执行相同的操作以添加“Deploy and run transactions(部署并运行交易)”插件。

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

f22qiuN.png!mobile

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

使用以下命令安装remixd:

npm install -g remixd

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

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

fMfiMjm.png!mobile

现在转到Remix的主页,单击“Connect to localhost(连接到本地主机)”,然后在弹出窗口中选择“(connet)连接”。

iI3Abmi.png!mobile

然后在“File explorer(文件资源管理器)”选项卡下看到一个名为localhost的区域。展开它,你将看到从本地存储共享的文件夹中包含的所有文件:

B7ZVva.png!mobile

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

等等...我们不应该安装一些东西与以太坊区块链进行交互吗?

现在还不急。我们选择轻松开始。 Remix将为你提供在浏览器中运行的虚拟区块链环境,先使用它来部署合约并与之交互。只需确保在“Deploy and run(部署并运行)”选项卡中选择Javascript VM作为环境即可。

编写合约

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

Q3uEv2I.png!mobile

SPDX 版权许可证标识符

如果开放源代码,则可以更好地建立对智能合约的信任。由于提供源代码总是会涉及版权方面的法律问题,因此Solidity编译器鼓励使用机器可读的 SPDX版权许可证标识符 。每个源文件都应以在开头以注释说明其以什么方式许可。 参考Solidity 源文件结构

版本语法

源文件可以(并且应该)添加版本注释,以拒绝使用将来可能引入不兼容更改的编译器进行编译。 参考Solidity 源文件结构

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

前两行应出现在所有智能合约文件中。 为了开始编写智能合约,你需要使用关键字 contract 及合约名称,然后才能将代码放在大括号之间。

好,让我们创建这个Helloworld合约。

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

现在是时候部署我们的第一个合约并与它进行交互了。 单击“Deploy and run transactions(部署并运行交易)”选项卡,然后确保在环境中选择了JavaScript VM,并在合约区域中选择了合约名称。完成后,单击“Deploy(部署)”。

IbIBR3n.png!mobile

现在,你应该在“Deployed Contracts(已部署合约)”区域下看到你的合约。 展开它,你将看到 helloWorld 函数。单击它以发送调用此函数的交易,你将看到打印出 hello world 字符串。

RbUzAz2.png!mobile

智能合约的结构

现在,让我们看一下你可以在智能合约中添加的内容,在下面直接引自文档: https://learnblockchain.cn/docs/solidity/structure-of-a-contract.html

  1. 状态变量:是其值永久存储在合约存储中的变量。
  2. 函数:函数是代码的可执行单元。函数通常在合约内部定义,但也可以在合约外部定义。
  3. 函数修改器(Modifiers ,有些翻译为修饰符):函数修改器可用于以声明方式修改函数的语义。
  4. 事件:事件是与EVM日志记录工具的便捷接口。
  5. 结构体类型:结构体是可定义多个变量的自定义类型。
  6. 枚举类型:枚举可用于创建具有有限“常量值”集合的自定义类型。

稍后我们将更详细地介绍这些组件。

概述就是这样。下篇再见!

本翻译由 Cell Network 赞助支持。

本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

  • 发表于 7分钟前
  • 阅读 ( 6 )
  • 学分 ( 0 )
  • 分类:Solidity

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK