Ethereum 以太坊web3-运行web3 httpprovider的多个实例

Ethereum 以太坊web3-运行web3 httpprovider的多个实例,ethereum,Ethereum,我的问题是如何运行httpprovider的两个实例?我尝试了下面的代码,但这不起作用,因为只有第一个httpProvider被实例化 web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:9998"), new Web3.providers.HttpProvider("http://localhost:9999")); 我不知道你为什么想要两个HttpProvider实例。但我认为一个解决方案可能不是实例化两个提供

我的问题是如何运行httpprovider的两个实例?我尝试了下面的代码,但这不起作用,因为只有第一个httpProvider被实例化

web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:9998"), new Web3.providers.HttpProvider("http://localhost:9999"));

我不知道你为什么想要两个HttpProvider实例。但我认为一个解决方案可能不是实例化两个提供者,而是实例化两个web3对象,例如:

let Web3 = require('web3');
let web3 = {};
let web3.a = new Web3(new Web3.providers.HttpProvider("http://localhost:9998");
let web3.b = new Web3(new Web3.providers.HttpProvider("http://localhost:9999");
无论您需要什么,您都可以使用提供商
.a
.b

window.console.log(web3.a.version.node);
window.console.log(web3.b.version.node);
或检查哪一个已连接:

if(web3.a.isConnected()) {
    /* work with node a */
else if(web3.b.isConnected()) {
    /* work with node b */
} else {
    /* remind yourself to start a node */
}

上面的代码未经测试,但您可能会明白。

我不确定您为什么需要两个HttpProvider实例。但我认为一个解决方案可能不是实例化两个提供者,而是实例化两个web3对象,例如:

let Web3 = require('web3');
let web3 = {};
let web3.a = new Web3(new Web3.providers.HttpProvider("http://localhost:9998");
let web3.b = new Web3(new Web3.providers.HttpProvider("http://localhost:9999");
无论您需要什么,您都可以使用提供商
.a
.b

window.console.log(web3.a.version.node);
window.console.log(web3.b.version.node);
或检查哪一个已连接:

if(web3.a.isConnected()) {
    /* work with node a */
else if(web3.b.isConnected()) {
    /* work with node b */
} else {
    /* remind yourself to start a node */
}
上面的代码未经测试,但您可能会明白这一点