【问题标题】:What is the of use Web3.providers.HttpProvider("")Web3.providers.HttpProvider("") 有什么用
【发布时间】:2018-08-23 18:59:37
【问题描述】:

我想使用 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 来标识它,以便它连接到网络。我错了吗? 例如,上面的代码用于网站的前端,以便连接前端并在以太坊专用网络中部署合约。所以前端代码必须是通用的,这意味着它不应该在其代码中添加特定的以太坊节点地址。那么Web3.providers.HttpProvider('Address')有什么用呢?

【问题讨论】:

    标签: ethereum web3js go-ethereum


    【解决方案1】:

    这与使用私有区块链与公共区块链无关。

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

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

    【讨论】:

    • 是不是我们在建立以太坊私网时给的rpc端口
    【解决方案2】:

    它不链接到私有和公共区块链。在以太坊网络上,所有节点都相互连接。当 a 执行事务时,然后使用 Web3 提供程序通知其他节点有关此智能的信息。

    【讨论】:

      猜你喜欢
      • 2018-08-18
      • 2018-10-09
      • 2022-07-08
      • 2019-07-15
      • 1970-01-01
      • 2019-09-13
      • 2019-01-10
      • 2018-09-04
      • 2020-01-17
      相关资源
      最近更新 更多