Ich bin mir nicht sicher, ob ich vollständig verstehe, wie web3 mit der Ethereum-Blockchain interagiert. Wenn ich Dinge ausprobiere, verwende ich einfach
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
Und damit kann ich lokal auf das Testnetz zugreifen. Wenn ich diesen Code auf einer Website bereitstellen würde, worauf würde ich diese Variable setzen, und wie funktioniert das? Und was ist, wenn dieser Benutzer keinen lokalen Knoten betreibt und über Metamask mit der Blockchain interagiert?
Wenn ich diesen Code auf einer Website bereitstellen würde, worauf würde ich diese Variable setzen, und wie funktioniert das?
Sie können es durch Ihren eigenen funktionierenden Knoten ersetzen oder einen Dienst wie infura.io verwenden , der es Ihnen ermöglicht, „über die lastausgeglichenen Knoten und die intelligente Architektur von Infura auf Ethereum zuzugreifen, genauso wie Sie es über Ihre eigenen Knoten tun würden“.
Und was ist, wenn dieser Benutzer keinen lokalen Knoten betreibt und über Metamask mit der Blockchain interagiert?
Aus MetaMask-FAQ :
In den meisten Szenarien können Sie also einfach diesen Code verwenden:
// 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>"));
}
Benutzer33938
Roman Frolow
Badr Bellaj