#ethereum #web3
#ethereum #web3
Вопрос:
Я настраиваю легкий узел Ethereum на VPS с помощью Geth, и я запускаю его с помощью:
nohup geth --syncmode "light" --rpc --rpcapi "eth,net,web3" --ws --rpccorsdomain '*' --rpcaddr 0.0.0.0 --rpcport 8080 amp;
Теперь со своего локального ноутбука я хотел бы использовать этот узел для выполнения запросов web3 к блокчейну Etherum. Я использую python, но я попытался сделать то же самое, используя Web3js, и результат тот же:
from web3 import Web3
w3 = Web3(Web3.HTTPProvider('http://MY-VPS-IP:8080'))
print(w3.isConnected())
Что дает мне следующий вывод:
False
Я предполагаю, что это означает, что узел недоступен извне vps, где я его разместил. Как я могу получить к нему доступ извне? Теоретически команда, которую я использовал, должна работать, и я также убедился, что порт 80 открыт. Приветствуются любые советы
Комментарии:
1. Используйте
telnet
command, чтобы проверить, можете ли вы подключить порт со своего локального компьютера.
Ответ №1:
Команда, которую вы пишете, старая и не совсем корректная используйте это:
geth --syncmode "light" --ws --ws.addr "specific IP" --http --http.addr "specific IP"
Комментарии:
1. Обратите внимание, что привязка портов RPC ко всем общедоступным IP-адресам вашего узла Ethereum, что
0.0.0.0
эффективно, является плохой идеей, поскольку ваш узел получит много вредоносного трафика. Это рекомендуется только для людей, которые знают, что они делают. Вместо этого привяжите RPC к определенному IP-адресу, который не подключен к Интернету.2. да, вы правы, это всего лишь пример, я должен отредактировать свой ответ, большое спасибо