Ethers.js

如何使用 ethers.js 通過代理連接乙太坊節點?

  • September 16, 2022

我正在嘗試連接我組織之外的乙太坊節點。這就是為什麼我需要使用代理來連接外部 URL。

我正在尋找一種在設置提供程序時配置代理的方法ethers.js

假設我的乙太坊節點是:https://ropsten.infura.io/v3/xxxxxx 並且代理是myproxy-network.com:80.

我已經使用和 HttpProvider 進行了此操作,它可以工作但由於業務需要web3.js而不得不移動。ethers.jsweb3.js 範例如下所示 -

const tunnel = require('tunnel')
const Web3 = require('web3')

const options = {
   keepAlive: true,
   timeout: 20000,
   agent: {
       https: tunnel.httpsOverHttp({
           proxy: {
               host: 'myproxy-network.com',
               port: 80
           }
       })
   }
}
const web3 = new Web3(new Web3.providers.HttpProvider('https://ropsten.infura.io/v3/xxxxxx', options))

需要幫助來做類似的事情ethers.js

答案會讓你失望。因為仍然沒有通過 ether.js 添加自定義 http 代理的方法或選項。

有一個 PR,開發人員說他可能會在 ethersV5 中添加它,但肯定會在 ether.js 版本 6 中添加。

我猜你必須等到 v6 發布才能使用這個功能。目前版本是 5.6。

PR:添加對自定義 http.agent 的支持。

引用自:https://ethereum.stackexchange.com/questions/135726