关于Remix (在线智能合约IDE)
Remix 是一个用于以太坊智能合约的开源开发环境和工具集。主要有以下几个作用:
- 智能合约开发:Remix 使开发者能够用 Solidity 语言编写以太坊智能合约。它提供了一个功能丰富的代码编辑器,支持语法高亮、代码自动完成和其他开发辅助功能。
- 编译和部署:开发者可以在 Remix 中编译智能合约,并直接从界面上部署到以太坊网络,包括主网和各种测试网。
- 调试和测试:Remix 提供了调试工具,帮助开发者测试和排查智能合约中的问题。它允许开发者执行合约调用,检查交易执行的结果,并跟踪函数调用过程。
- 集成开发环境(IDE):Remix 是一个完整的集成开发环境,不仅包括代码编辑和编译功能,还集成了智能合约的部署和交互界面,使得开发者能够在一个统一的界面中完成大部分开发任务。
- 易于访问和使用:Remix 可以通过网页访问,不需要复杂的本地安装和配置,使得智能合约的开发更加容易和快捷。
Remix 是一个非常受欢迎的工具,尤其适合初学者入门以太坊智能合约开发,同时也足够强大,以支持专业开发者的高级需求。
使用
solidity语法练习网站: https://cryptozombies.io/zh/course
Remix地址: https://remix.ethereum.org/
github源码: https://github.com/ethereum/remix-project
文档: https://remix-ide.readthedocs.io/zh-cn/latest/
- 编写智能合约代码:用 Solidity 语言编写智能合约代码。
(此处以Remix IDE自带的Storage.sol智能合约为例,也可以新建自己的自定义xxx.sol)
- 打开 Remix IDE:在浏览器中访问 Remix IDE。
- 创建合约文件:在 Remix 的文件浏览器中创建一个新的 Solidity 文件
(此处以Remix IDE自带的Storage.sol智能合约为例,也可以新建自己的自定义xxx.sol)
- 编译合约:在 Remix 的编译选项卡中,选择合适的编译器版本,然后点击“编译”按钮来编译这个智能合约。
- 连接到以太坊网络:在 Remix 的“部署”选项卡中,连接到一个以太坊网络。
可以选择连接到公共测试网络(如 Ropsten 或 Rinkeby; 以太坊基金会将弃用Ropsten、Rinkeby和Kiln等测试网,以便将精力长期集中在维护Goerli和Sepolia测试网上),或者连接到本地开发网络(如 Ganache)。
关于这些环境更详细的说明: https://remix-ide.readthedocs.io/en/latest/run.html#environment
<font size=1>
Remix VM (Merge) : Connects to a sandbox blockchain in the browser. The Remix VM (previously called JavaScript VM) is its own “blockchain” and on each reload the old chain will be cleared and a new blockchain will be started. The old one will not be saved. Merge refers to the fork of Ethereum when the Merge occurred. This fork is also known as the Paris fork.
Remix VM (London) : Same as above except this chain is using the London fork of Ethereum.
Remix VM (Berlin) : Same as above except this chain is using the Berlin fork of Ethereum.
Remix VM - Mainnet fork : This will fork the Ethereum mainnet and will load it into the Remix VM. It is useful for developing contracts that need to access deployed mainnet contracts. (See below for more info about Forking)
Remix VM - Goerli fork : Same as above except this forks the Goerli testnet. (See below for more info about Forking)
Remix VM - Sepolia fork : Same as above except this forks the Sepolia testnet. (See below for more info about Forking)
Remix VM - Custom fork : Forks a chain, at block number, and in an EVM version of your choice. (See below for more info about Forking)
Injected Provider - provider name: Connects Remix to an injected web3 provider. The most common injected provider is Metamask.
Custom - External HTTP Provider: Remix will connect to a remote node. You will need to provide the URL to the selected provider: geth, parity or any Ethereum client. This was previously called Web3 Provider. (See below for more info about External HTTP Provider)
Dev - Hardhat Provider: Connects Remix to a local Hardhat test chain.
Dev - Ganache Provider: Connects Remix to a local Truffle Ganache test chain.
Dev - Foundry Provider: Connects Remix to a local Foundry Anvil test chain.
L2 - Optimism Provider: Connects Remix to an Injected Provider (usually Metamask) with the settings for the mainnet of Optimism.
L2 - Arbitrum One Provider: Connects Remix to an Injected Provider (usually Metamask) with the settings for the Arbitrum One network.
WalletConnect: Connects Remix to a wallet on a mobile device.
上面的内容描述了Remix VM(虚拟机)和其他连接选项的功能。以下是各个选项的解释:
- Remix VM(Merge):在浏览器中连接到一个沙盒区块链。Remix VM是自己的"区块链",每次重新加载时,旧的区块链将被清除,并启动一个新的区块链。旧的区块链不会被保存。Merge指的是以太坊分叉时发生的合并。这个分叉也被称为Paris分叉。
- Remix VM(London):与上述相同,只是此链使用以太坊的London分叉。
- Remix VM(Berlin):与上述相同,只是此链使用以太坊的Berlin分叉。
- Remix VM - Mainnet fork:将以太坊主网分叉,并加载到Remix VM中。这对于开发需要访问已部署在主网上的合约非常有用。
- Remix VM - Goerli fork:与上述相同,只是这个选项分叉了Goerli测试网络。
- Remix VM - Sepolia fork:与上述相同,只是这个选项分叉了Sepolia测试网络。
- Remix VM - Custom fork:在您选择的块号和EVM版本上分叉一个链。这个选项允许您自定义分叉的参数。
- Injected Provider - provider name:将Remix连接到一个注入的web3提供者,最常见的注入提供者是Metamask。
- Custom - External HTTP Provider:Remix将连接到一个远程节点。您需要提供所选提供者的URL,如geth、parity或任何以太坊客户端。
- Dev - Hardhat Provider:将Remix连接到本地的Hardhat测试链。
- Dev - Ganache Provider:将Remix连接到本地的Truffle Ganache测试链。
- Dev - Foundry Provider:将Remix连接到本地的Foundry Anvil测试链。
- L2 - Optimism Provider:将Remix连接到注入的提供者(通常是Metamask),使用Optimism主网的设置。
- L2 - Arbitrum One Provider:将Remix连接到注入的提供者(通常是Metamask),使用Arbitrum One网络的设置。
- WalletConnect:将Remix连接到移动设备上的钱包。
Goerli 和 Sepolia 两个测试网的区别:
Goerli 和 Sepolia 都是以太坊的测试网络,它们允许开发者在非主网环境中测试智能合约和应用。尽管它们的目的相同,但存在一些区别:
网络稳定性和社区支持:
- Goerli 是最受欢迎的以太坊测试网络之一,拥有较大的社区和广泛的支持。它是一个基于权益证明(PoS)的多客户端测试网,意味着它可以模拟主网的环境,特别是在以太坊完全转向权益证明共识机制后。
- Sepolia 是一个较新的测试网络,主要由以太坊开发者和维护者支持。它也是一个权益证明(PoS)测试网,但社区和使用者相对较少。
共识机制:
- 两者都是作为权益证明(PoS)测试网存在的。这意味着它们与以太坊主网共享相同的共识机制,提供了一个更接近主网行为的环境。
使用目的:
- Goerli 通常用于更广泛的测试目的,包括智能合约开发、去中心化应用(dApp)测试以及各种网络升级和实验。
- Sepolia 被视为一个更专注于以太坊核心开发者的测试网络,用于测试以太坊协议的升级和变更。
获取测试币的方式:
- 在 Goerli 网络中,开发者可以通过各种在线水龙头获得测试以太币。
- Sepolia 网络也有水龙头系统,但可能不如 Goerli 网络那样广为人知或易于访问。
总的来说,Goerli 和 Sepolia 都是重要的测试环境,它们为以太坊开发者提供了宝贵的资源。选择哪一个主要取决于特定的测试需求和对网络稳定性、社区支持的偏好。
</font>
但在此处,选择任何一个VM即可,都在虚拟机里进行
- 部署合约:在“部署”选项卡中,选择要部署的合约(
SimpleStorage
),填写任何必要的构造函数参数(如果有的话),然后点击“部署”按钮。如果连接的是测试网络或主网络, 则可能需要使用以太坊钱包(如 MetaMask)来批准交易。如果是在VM中运行,就不需要
- 交互和测试:一旦合约部署成功,可以在 Remix 的“部署”选项卡中找到该合约,并与合约进行交互(可以调用其中的方法)。
另外如果部署出错,可以使用debug功能,追溯调试查看 错误原因.
如果要部署到测试网络,可参考
web3教程:以太坊智能合约 - Remix工具介绍和部署合约
也可以通过在vscode中安装remix插件,在本地开发/调试
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。