如何用Alchemy和Ganache Fork主链(eth/bsc)

为什么要fork主链?

简单说就是为了降低开发成本,用链上的数据和本地的账户,做一些开发测试等一系列操作。

准备工作

申请主网的api:去alchemy或者infura注册一个账户,申请主网的api,这里用alchemy举例:

post image
post image

Ganache客户端:https://trufflesuite.com/ganache/,下载完直接安装

Ganache CLI(命令行):https://github.com/trufflesuite/ganache-cli-archive

用npm install -g ganache-cli 或 yarn global add ganache-cli 安装都可以

配置

Ganache客户端 和 命令行方式选一种就可以

Ganache客户端方式:

post image
post image
post image
post image

命令行方式:

ganache-cli --fork https://eth-mainnet.g.alchemy.com/v2/{你的key}@{区块高度}

如果找不到ganache-cli命令,在安装cli的时候,能看到安装路径,可以cd到目录,运行ganache-cli
也可以将ganache-cli的bin目录添加到系统PATH中,如
vim ~/.bash_profile  

添加,在安装ganache-cli时可以看到
export PATH=$PATH:/{你的ganache目录}/bin

保存退出,使文件生效
source ~/.bash_profile
post image

测试

const Web3 = require('web3')
const rpcURL = 'http://127.0.0.1:8545' //Ganache本地配置的地址
const web3 = new Web3(rpcURL)
const address = '0x6e9B9Ecc9f3B331F2E79629e87a6f1Ba7Fe8DEA0' //钱包地址
web3.eth.getBalance(address, (err, wei) => { 
    balance = web3.utils.fromWei(wei, 'ether') 
    console.log(balance)
})

欢迎关注Twitter:https://twitter.com/ishawzuo