Solidity 开发环境搭建
本章介绍如何搭建 Solidity 开发环境。
我们推荐使用在线集成开发环境 Remix,来学习 Solidity 语言。
本教程的所有例子,都将使用 Remix 进行编写、编译和部署运行。
Remix的地址是 https://remix.ethereum.org/,我们可以直接打开使用。
当然,我们也可以使用下面的一些方法,来搭建 Solidity 开发环境。
1. 安装本地编译器
1) 安装 nodejs / npm
node官方网站下载 node,推荐 LTS 版本,按提示完成安装,npm 会同时装上。
安装步骤可以参照 Node.js 安装配置。
验证 Node 版本,例如:
> node -v v10.16.3 > npm -v 6.11.3
2) 安装 Solidity 编译器 solc
一旦安装了 Node.js 包管理器,就可以按照下面的步骤安装 Solidity 编译器:
$ npm install -g solc
上面的命令将会安装 solcjs 程序,并且能够在整个系统中都可用。
验证 solc 安装是否正确:
$ solcjs --version
如果一切顺利,这将打印如下内容
0.5.11+commit.c082d0b4.Emscripten.clang
现在,可以使用solcjs了,它比标准的 solidity 编译器少很多特性,但对于学习来说足够了。
2. 使用 solc-js
全局安装 solc-js 工具后,即可在命令行中直接使用此工具,可以通过 solcjs --help 来查看此工具支持的参数说明。
solcjs --help Usage: C:\Program Files\nodejs\node_global\node_modules\@alipay\solc\solcjs [options] [input_file...] Options: --version Show version number [boolean] --optimize Enable bytecode optimizer. [boolean] --bin Binary of the contracts in hex. [boolean] --abi ABI of the contracts. [boolean] --standard-json Turn on Standard JSON Input / Output mode. [boolean] --output-dir, -o Output directory for the contracts. [string] --help Show help [boolean]
我们创建名为 hello.sol 的 Solidity 合约示例:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Hello { string name; constructor() { name = 'Hello world!'; } function hello() view public returns (string memory) { return name; } }
运行以下命令行,编译 hello.sol 合约并得到编译字节码结果:
solcjs --bin hello.sol
如果编译通过,此目录会得到包含字节码的结果文件 hello_sol_Hello.bin,如果编译失败则提示错误信息。
运行以下命令行,编译 hello.sol 合约并得得到合约接口说明(ABI):
solcjs --abi hello.sol
如果编译通过,此目录会得到包含合约接口说明(ABI)的结果文件 hello_sol_Hello.abi。
3. Remix IDE的安装
3.1 源码安装:
git clone https://github.com/ethereum/remix-ide.git cd remix-ide npm install npm run build && npm run serve
3.2 docker 安装:
docker pull remixproject/remix-ide:latest docker run -p 8080:8080 remixproject/remix-ide:latest
然后通过浏览器访问 127.0.0.1:8080 即可使用 remix。
4. Remix IDE 在线版
我们也可以直接使用在线版本:
或者
5. Remix 访问本地文件
首先安装 remixd:
npm install -g @remix-project/remixd
运行 remixd:
remixd -s /localdir --remix-ide url
其中 localdir 就是本地存放 solidity 文件的目录,--remix-ide 的参数是访问 IDE 的 url。
如果使用了本地安装的 remix IDE,那么参数 url 就是 http://localhost:8080。
如果使用了在线 remix IDE,比如 https://remix.ethereum.org,那么参数 url 就是 https://remix.ethereum.org:8080。
最后,激活 IDE 中的 remixd 插件,在 remix 的 workspaces 中选择 localhost 就可以了。
如果所示,激活 remixd 插件:
如果所示,选择 localhost,连接本地工作目录:
下一章:Solidity 基础语法
Solidity 语法:一个 Solidity 源文件可以包含任意数量的合约 contract 定义、import 指令和 pragma 指令。让我们从一个简单的 Solidity 源程序开始。下面是一个 Solidity 源文件的例子:p ...