我想使用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的使用('地址')。 我的猜测:因此,在建立专用网络时,每个节点都应该提供一个不同的rpcport来识别它,因此它连接到网络。我错了吗? 例如,上面的代码用于网站的前端,以便连接前端并在以太坊专用网络中部署合同。因此,前端代码必须是通用的,这意味着它不应该在其代码中添加特定的以太坊节点地址。那么什么是使用Web3.providers.HttpProvider('地址')?
答案 0 :(得分:5)
它与使用私有区块链和公共区块链无关。
您需要为客户提供连接区块链的方法。具体来说,web3js库需要Provider
对象,其中包括连接协议和您要连接的节点的地址/端口。
Web3js支持3 different providers:HttpProvider
,WebsocketProvider
和IpcProvider
。 HTTP和WS都需要节点的地址(IPC使用文件)。如果您在客户端上运行对等节点(即使用Parity或Geth),则地址本身将是localhost。如果您使用的是Infura等集中式提供商,则可以使用https://mainnet.infura.io/API_KEY
。
答案 1 :(得分:0)
它未链接到私有和公共区块链。在以太坊网络上,所有节点都相互连接。当执行事务时,请使用Web3提供程序将此智能通知其他节点。