我不确定我完全理解web3是如何与ethereum区块链交互的。当测试结果时,我只需使用
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));这让我可以在本地访问测试网络。如果我要在网站上部署这段代码,我将把这个变量设置为什么,以及它是如何工作的?如果用户没有运行本地节点并通过Metamask与区块链进行交互,该怎么办?
发布于 2018-03-05 18:08:07
如果我要在网站上部署这段代码,我将把这个变量设置为什么,以及它是如何工作的?
您可以用自己的工作节点替换它,也可以使用像infura.io这样的服务,它允许您“通过因弗拉负载平衡节点和智能架构访问Ethereum,就像您通过自己的节点那样”。
如果用户没有运行本地节点并通过Metamask与区块链进行交互,该怎么办?
因此,在大多数情况下,您只需使用以下代码:
// Checking if Web3 has been injected by the browser (Mist/MetaMask)
if (typeof web3 !== 'undefined') {
// Use Mist/MetaMask's provider
web3js = new Web3(web3.currentProvider);
} else {
web3js = new Web3(new Web3.providers.HttpProvider("https://mainnet.infura.io/<API_TOKEN>"));
}https://ethereum.stackexchange.com/questions/41783
复制相似问题