Как подключить сервер к 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));

Другие вопросы по тегам