我想使用web3js与智能合约进行交互。每个示例都将从以下内容开始

var Web3 = require('web3');
var web3 = new Web3('http://localhost:8545');
// or
var web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));

我不了解Web3.providers.HttpProvider('Address')的用法。
我的猜测:因此,在建立专用网络时,每个节点都应提供一个不同的rpcport来标识它,并使其连接到网络。我错了吗?
例如,上面的代码在网站的前端中用于连接前端并在以太坊专用网络中部署契约(Contract),因此前端代码必须是通用的,这意味着它不应在其代码中添加特定的以太坊节点地址。 Web3.providers.HttpProvider('Address')的用途是什么?

最佳答案

它与使用私有(private)区块链还是公共(public)区块链无关。

您需要为您的客户提供一种连接到区块链的方法。具体来说,web3js库需要Provider对象,该对象包括连接协议(protocol)和要连接的节点的地址/端口。

Web3js支持3 different providers:HttpProviderWebsocketProviderIpcProvider。 HTTP和WS都需要节点的地址(IPC使用文件)。如果您正在客户端上运行对等节点(即使用Parity或Geth),则地址本身将是localhost。如果您使用的是Infura这样的集中式提供程序,则可以使用https://mainnet.infura.io/API_KEY

关于ethereum - Web3.providers.HttpProvider的用法是什么(""),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49291445/

10-11 18:34