- 发布文章
Remix IDE快速入门教程
- 作者
- 作者
- Jack Chen @懒人码农
前言
Remix Solidity IDE是一款基于浏览器的IDE,它用于开发智能合约,也是以太坊官方推荐的一款开发以太坊智能合约的IDE(集成开发环境),适合新手。由于是基于浏览器的IDE,有一个很大的好处就是不用本地安装任何程序,打开即用。
Remix官方网址(中文版):https://remix.ethereum.org/#lang=zh
如何使用Remix编写、编译、测试和部署一个智能合约?
通过学习Dapp开发快速入门教程,我们知道了Dapp的系统架构,Dapp和传统APP的差别,就在于它能够与区块链进行交互,具有去中心化的特性。Dapp与区块链的交互,是通过部署爱区块链上的智能合约来完成的。智能合约是部署在区块链上的一段二进制代码,体积一般很小,超过一两千行代码,就算很复杂的项目了。有很多非常有名的智能合约,也就几百行代码。但就是这么少的代码,却是Dapp的核心所在。可能赚取了你想象不到的财富,这与传统APP的商业模式是截然不同的。
智能合约可以部署和运行在区块链里每一个节点上,我们拿以太坊这个区块链网络为例,以太坊网络的每一个节点称作以太坊虚拟机,英文缩写为EVM。EVM就可以部署和执行我们编写的这些智能合约。当然,我们是不会直接编写二进制代码的。因为一般人是无法看懂和理解这些二进制代码,除了能够运行它的EVM。
我们通常使用更容易让人理解的Solidity语言,来编写智能合约。Solidity语言非常简单,它借鉴了一些高级编程语言的概念和特性,比如C++、Python和JS语言的概念和特性。又结合了区块链的业务特点,比如源代码如下:
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18
contract Demo {
function helloWeb3() public pure returns(string memory) {
return "Hello Web3";
}
}
这就是一个最简单的Solidity编写的智能合约。当一个外部程序调用这个智能合约的函数helloWeb3的时候,它就会输出一个字符串“Hello Web3”。那么,我们用Solidity语言编写的智能合约,怎么才能让它运行在以太坊区块链上呢?
我们前面讲过,以太坊虚拟机EVM只能运行二进制编码的智能合约。所以,我们用Solidity语言编写的这些智能合约,就需要一个工具。把它翻译为EVM能够运行的二进制代码,这个翻译的过程叫做编译。
Remix工具
现在我们要讲的Remix这个软件工具,就是用来编写和编译Solidity智能合约,并且还能把它部署到以太坊上,进行测试和运行。当然,能够编译Solidity语言的工具有很多。比如Solcjs、Truffle、Hardhat等等。但是Remix具有很大的优点,它简单、直观,而且还可以在线使用,不需要在电脑上安装。所以,Remix非常适合于初级开发者学习使用。高级开发者也经常用它来做一些验证、实验工作等。对于专业的链端开发人员来说,一般会使用Truffle、Hardhat等框架。它们本身就内置了编译和部署工具,所以就不需要Remix了。
我们的教程就采用了Remix编译和部署智能合约,以便带您更快地入门Dapp开发。
Remix可以在线使用,也可以安装到本地。我还是建议你,使用在线Remix就可以了,随用随取。Remix在线开发环境的官网地址:https://remix.ethereum.org/。
打开Remix这个过程会慢一点,因为它要加载的东西很多,需要耐心等待。我们看到它的主界面,共分四大区域。分别是工具栏、文件管理区、代码编辑器、控制台
。
工具栏
第一个大的区域工具栏,主要用于快速切换管理区。常用的就是三个按钮,文件管理器、编译器和部署运行,我依次为你讲解。
文件管理器
文件管理器主要用于管理项目目录和源码文件,我们在这里可以创建、删除Solidity源码文件等操作。
我们的合约文件通常存放在contracts目录中,打开contracts目录,点击新建文件,输入文件名称test,Solidity源码文件的后缀,通常就是**.sol**,这样我们就建好了文件。然后,我们就可以愉快的编写Solidity智能合约了。编写完成后,按下ctrl+s
快捷键保存文件。我们还可以给文件改名,如果这个文件没用了,也可以删除文件。这就是文件管理器的基本操作,你还可以自己研究,挖掘更细的功能。
编译器
前面我们讲过Solidity语言编写的智能合约,需要编译为二进制代码,这样以太坊虚拟机EVM才能执行。编译器就是把Solidity编写的智能合约,编译成二进制代码。这里的COMPILER可以选择编译器的版本,需要与源码中指定的版本一致或者兼容。比如,我们现在代码中使用的是“0.8.18”
版本,那么编译器也要选择不低于“0.8.18”版本。我们Solidity例子都使用了“0.8.18”版本,保持默认情况就可以了,一般不用选择。
点击Compile编译按钮,就开始执行编译。如果没有错误的话,工具栏的图标会带有绿色勾号。如果代码中有错误的话,那么编辑区会给出相应的错误显示。这时候我们还要强行编译的话,那么工具栏图标会出现带有红色的错误“个数”。左下角区域,还会给出详细的错误描述。
编译没有错误的话,你的Solidity源代码就已经编译为二进制代码了。编译的结果实际上有两个部分,一部分叫ABI,就是应用接口。另一个部分叫Bytecode,也就是二进制代码。关于ABI如何使用,后面用到的时候再讲,暂时不用关心,这就是整个的编译过程。
部署运行
Solidity编写的智能合约在编译成功后,就可以部署到区块链上,并能够运行和使用它。Remix自带了一个模拟的以太坊网络,并给分配了10个账号,每个账号有100个ETH。默认情况下,Remix使用了这个模拟的以太坊网络。我们也可以修改它的默认配置,将智能合约部署到Ganache测试网或者主网。初级开发者使用默认网络就可以了,无需做更多的配置工作。
环境这里就是配置,是部署在模拟环境、Ganache还是主网等等。我们目前使用默认配置就行,也就是Remix自带的环境。部署者账号里面给分配了10个账号,每个有100个以太币,你可以随便选择使用。Gas费,部署合约是要花钱的。当然模拟环境中无所谓,使用默认值即可。这是部署的时候存入合约的金额,某些合约可能一开始就需要放点以太币。选择合约,一个文件中可以有多个合约,你可以选择部署哪一个,DEMO一般都是一个,不用选。以上配置好后,我们就可以点击部署Deploy按钮,部署成功后,在下方就会出现一个部署合约的地址。
我们编写的合约中有一个对外的函数叫helleWeb3,现在我们就能够看到,已经部署的合约中。有一个可以提供给外部使用的函数helleWeb3,我们点击一下,它果然输出了Hello Web3,测试一切正常。
小伙伴们可以多多练习使用Remix,挖掘一些没有讲到的更有意思的功能。如果有什么问题,可以加我微信lazycode520
拉你进开发群一起学习交流讨论,里面的很多同行和大佬们都可以给予帮助。这里推荐Solidity基础教程,你也可以去学习,配合Remix的使用。你只要从头开始学习,直到学完条件语句和循环语句,就能编写一些简单的智能合约了,剩下的内容可以边用边学。