建议和反馈

请填写你的反馈内容

以太坊智能合约-开发环境

2020-12-03 ·5052次阅读 ·读完需要8分钟


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

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

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

    设置开发环境

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

    Remix 界面

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

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

    List of icons

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

    使用以下命令安装 remixd:

    npm install -g remixd

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

    remixd -s  — remix-ide https://remix.ethereum.org

    Remix 加载文件

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

    image-20201119115303427

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

    Shared files from local storage

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

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

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

    编写合约

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

    Hello world contract

    SPDX 版权许可证标识符

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

    版本语法

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

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

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

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

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

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

    Deploying contract

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

    hello world string

    智能合约的结构

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

    1. 状态变量:是其值永久存储在合约存储中的变量。

    2. 函数:函数是代码的可执行单元。函数通常在合约内部定义,但也可以在合约外部定义。

    3. 函数修改器(Modifiers ,有些翻译为修饰符):函数修改器可用于以声明方式修改函数的语义。

    4. 事件:事件是与 EVM 日志记录工具的便捷接口。

    5. 结构体类型:结构体是可定义多个变量的自定义类型。

    6. 枚举类型:枚举可用于创建具有有限“常量值”集合的自定义类型。

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

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


    声明:作为区块链技术信息平台,本站所提供的资讯信息不代表任何投资暗示,本站所发布文章仅代表个人观点,与链客社区官方立场无关。
    评论(0)问答(0)
    请先登录或注册

    请先登陆或注册

    相关推荐

    Vitalik推特AMA实验:个人遗憾、行业思考与未来展望

    今日,以太坊特别Vitalik在推特表示进行了一次实验,其关注的268个推动用户可以回复推文并推理,他将回复与健康行业相关或相关的问题。目前,Vitalik已经回复了特第三个问题,涉及到个人缺陷、行业......
    Aier · 2021-09-03
    948阅读 · 0赞赏 · 0问答

    V神:治理不止于代币投票

    在过去的一年里,区块链领域显现出一个重要趋势:人们从关注去中心化金融 (DeFi) 过渡到同时思考去中心化治理 (DeGov)。2020 年 DeFi 的发展方向十分宽泛,被称为 DeFi ......
    · 2021-08-25
    921阅读 · 0赞赏 · 0问答

    烤仔说 | 出发!烤仔的造梦工厂Ⅱ(内含 VoxEdit 教程)

    上期给大家简单的介绍了经典沙盒游戏《THE SANDBOX》,今天咱们继续来说说,讲点干货!毕竟授人以鱼不如授人以渔嘛~THE SANDBOX 中的游戏场景是什么样子?如何在 THE SANDBOX ......
    烤仔 · 2021-08-24
    719阅读 · 0赞赏 · 0问答

    什么是以太坊ERC20和ERC721

    什么是以太坊ERC20和ERC721首先,ERC是什么?ERC是由Etherum开发人员为益泰坊社区编写的。为了创建一个以太坊平台的标准,开发人员应当提交了一个以太坊改进方案(EIP,Ethereum......
    云之梦 · 2021-08-18
    1147阅读 · 0赞赏 · 0问答

    Vitalik Buterin:去中心化治理很具备必要性,但目前代币投票存在诸多风险

    过去一年,区块链领域的一个重要趋势是,从关注去中心化的金融(DeFi)过渡到同时思考去中心化的治理(DeGov)。虽然2020年经常被广泛地、有理由地誉为DeFi年,但在此后的一年里,构成这一趋势的D......
    花落 · 2021-08-18
    1140阅读 · 0赞赏 · 0问答

    挖以太坊如何选择靠谱点的矿机

    相信对于广大矿工们来说都知道以太坊挖矿除了选择靠谱的平台之外,就是需要更专业的以太坊矿机了,矿机的好坏直接决定矿工能否更好的挖到以太坊。当然也有不少矿工们利用自身的经验和技术优势,会选择自己组装配置矿......
    V18058235092 · 2021-08-12
    1457阅读 · 0赞赏 · 0问答

    分析师

    3579.0

    LK币

    12

    粉丝

    57

    笔记

    感谢"分析师"

    这篇精彩的笔记,目前已经帮助

    • 0
    • 5
    • 0
    • 5
    • 2
    喜欢0
    链客社群 加入

    微博进入

    商务合作>

    广告投放>

    公司名称:北京链客行科技有限公司

    联系方式:010-67707199

    ICP备案号:京ICP备18032136号

    Copyright:链客区块链技术问答社区 版权所有

    感谢您的提问,问题被社区永久收入以便新人查看。一定要记得采纳最佳答案哦!加油!

    感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励

    您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!

    您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!