Я не уверен, что полностью понимаю, как web3 взаимодействует с блокчейном ethereum. При тестировании вещей я просто использую
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
И это позволяет мне получить доступ к тестовой сети локально. Если бы мне нужно было развернуть этот код на веб-сайте, какое значение я бы установил для этой переменной и как это работает? А что, если этот пользователь не запускает локальную ноду и взаимодействует с блокчейном через Metamask?
Если бы мне нужно было развернуть этот код на веб-сайте, какое значение я бы установил для этой переменной и как это работает?
Вы можете заменить его своим собственным рабочим узлом или использовать какой-либо сервис, такой как infura.io , который позволяет вам «получать доступ к Ethereum через узлы с балансировкой нагрузки Infura и интеллектуальную архитектуру так же, как через ваши собственные узлы».
А что, если этот пользователь не запускает локальную ноду и взаимодействует с блокчейном через Metamask?
Из часто задаваемых вопросов по 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>"));
}
пользователь33938
Роман Фролов
Бадр Беллай