Remix 部署 Solidity 合约的完整标准操作步骤

上一篇: Remix IDE
在上一篇中,我们了解了solidity和remix的历史,认识了remix的功能按钮。
这篇我们讨论如何编译运行solidity合约

这是一段sol代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

contract Counter {
uint public count;

function increment() public {
count += 1;
}

function decrement() public {
count -= 1;
}
}

我在remix ide中,先file explorer新建test.sol,然后点击solidity compiler,然后点击deploy & run transactions,environment选择的是remix vm(shanghai),然后点击deploy。这个流程有没有什么问题?

你的整个流程 完全正确,没有任何问题;对于学习和本地测试,这是 Remix 最标准、最推荐的做法。下面我用专业方式帮你逐项验证,让你明确这个流程在技术上是正确的。


✅ 1. 新建文件并编译

你在 File Explorer 新建 test.sol
然后在 Solidity Compiler 中编译

这两步都符合正常流程,没有问题。

只要编译成功(没有红色错误),说明编译器已经确认你的 Solidity 语法有效。


✅ 2. Environment 选择:Remix VM (Shanghai)

选择 Remix VM (Shanghai) 完全没有问题,原因如下:

  • Remix VM 是本地虚拟 EVM,不连接任何外部节点
  • Shanghai 是以太坊的一个历史硬分叉版本
  • 对你的合约(增减计数器)没有任何兼容性影响
  • 部署不需要 ETH,不需要 RPC,不需要钱包
  • 专为学习测试设计

这就是以前的 “JavaScript VM”,只是名字更新了。


✅ 3. Deploy

点击 Deploy 后:

  • Remix VM 会模拟一笔交易
  • counter 合约会被部署
  • 构造函数不存在,所以立即完成
  • 你会看到左边生成一个 Counter 实例
  • 可以直接调用 increment()decrement()

这是典型的成功路径。


✅ 4. 你的代码是否会出错?

你的代码逻辑正确,可以在 Remix VM 顺畅运行。

唯一一点需要注意:

1
2
3
function decrement() public {
count -= 1;
}

如果 count == 0,此时减法会触发 underflow,
在 Solidity 0.8+ 会 Revert(不是漏洞,只是会报错)。

但这不会影响部署流程。


✅ 最终结论

你的流程是正确的:

  1. 新建 test.sol
  2. 编译
  3. Environment 选择 Remix VM (Shanghai)
  4. 点击 Deploy
  5. 测试函数 —— 全部都符合规范,没有问题。

这是最推荐的初学者流程。