Как подключить сервер к Binance Smart Chain с помощью библиотеки Web3?
Я пытаюсь подключить свое небольшое серверное веб-приложение в ExpressJS к блокчейну BSC, но безуспешно.
Насколько я понимаю, библиотека Web3 предоставляет все необходимое под капотом, и я могу подключиться, позвонив
new Web3(new Web3.providers.HttpProvider(urlToRpcNode))
Следуя этому, я добавляю в свою функцию, которая служит инициатором объекта Web3, следующее:
return new Web3(new Web3.providers.HttpProvider(https://bsc-dataseed1.binance.org));
Согласно BscScan, данный аргумент является URL-адресом узла RPC для BSC https://bscscan.com/apis#rpc .
К сожалению, ожидание этого вызова просто застревает навсегда и ничего не возвращает.
Что я делаю неправильно? Любая помощь приветствуется.
Редактировать:
Я нашел еще одну ссылку на Binance Docs, где описывается конкретный процесс подключения к BSC. Вот как они это делают:
const web3 = new Web3('https://bsc-dataseed1.binance.org:443');
https://docs.binance.org/smart-chain/developer/create-wallet.html#connect-to-bsc-network
К сожалению, это дает мне тот же результат.
2 ответа
Вышеупомянутая часть web3 работает нормально. Пожалуйста, попробуйте следующие строки,
var Web3 = require('web3');
const web3_bsc = new Web3('https://bsc-dataseed1.binance.org:443');
Затем с помощью
web3_bsc
, получить доступ к функциям в вашем контракте или выполнить любые функции, которые поддерживает web3 .
Несколько месяцев спустя я вспомнил, что спрашивал об этом. В итоге я использовал внешнего поставщика узлов RPC (например, QuickNode, Ankr, Infura).
У меня нет под рукой моего точного кода, но я знаю, что шаги были следующими:
- Откройте учетную запись на платформе, предлагающей услуги RPC.
- Например. Infura, Ankr, QuickNode (это те, что я нашел)
- Эти сервисы позволят вам создать свой собственный узел для определенного блокчейна (я видел Eth, Bsc, Polygon, AvalancheC и многие другие).
- После того, как вы создадите свой собственный узел, который, конечно, является платной услугой, вы получите HTTP-ссылку для своего узла, которая выглядит примерно так:
https://mynode2241235.ankr.com/
, давайте называть это с этого момента. - Вернувшись на свой сервер, я взял обычный
Web3
фрагмент кода подключения и просто изменил его, поместив этоLINK
какHttpProvider
, так что-то вроде этого:
const instance = new Web3(new Web3.providers.HttpProvider(LINK));