使用Solidity开发智能合约之一

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

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的盐田网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

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

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

设置开发环境

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

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

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

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

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

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

 
 
 
 
  1. npm install -g remixd 

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

 
 
 
 
  1. remixd -s  — 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日志记录工具的便捷接口。
  • 结构类型:结构是可以将多个变量组合在一起的自定义类型。
  • 枚举类型:枚举可用于创建具有有限“常量值”集合的自定义类型。

文章名称:使用Solidity开发智能合约之一
分享地址:http://www.gawzjz.com/qtweb2/news24/27674.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联