Как я могу подключиться к Эфириуму, используя только веб-браузер, для мониторинга контракта

AFAICT требует, чтобы узел, такой как geth, подключался к эфириуму, чтобы получить или изменить состояние контракта.

Мне нужно только получить состояние, а не изменить состояние, но я хочу сделать это только из веб-браузера. Я не хочу устанавливать узел Эфириума на каждое устройство, которое хочет просматривать состояние. Я также хочу просматривать и представлять состояние определенным образом, поэтому я не хочу использовать один из веб-сайтов для просмотра блокчейна (они в любом случае не рекомендуют приложениям использовать их веб-сайты).

Предоставляют ли библиотеки ethereumjs такую ​​возможность? Если нет, есть ли планы по созданию этой возможности?

Ответы (1)

Вам нужно, чтобы узел работал где-то, если вы хотите отслеживать контракт. Однако нет необходимости, чтобы этот узел работал на каждом устройстве, которое его просматривает: вы можете запустить его на своем собственном сервере или заплатить кому-то за предоставление этого как услуги. (Или, если вам повезет, может быть, вы найдете кого-то, кто делает это бесплатно — я никого не знаю, YMMV...)

Если вы запускаете узел на сервере, вы можете передать информацию клиентам, которые хотят видеть, что происходит с вашим контрактом, двумя способами:

  1. Настройте свой узел Ethereum для прослушивания запросов с любого адреса в Интернете, а не только для локального хоста. Это просто параметр конфигурации — обычно люди используют localhost из соображений безопасности, но на него нет технических ограничений. (Вы, вероятно, не хотите хранить деньги на узле, который вы настроили для этого...) Затем подключите устройства к RPC-интерфейсу вашего узла, используя адрес сервера, а не localhost.
  2. Оставьте свой узел Ethereum на локальном хосте и создайте отдельный процесс веб-сервера, который прослушивает ваш узел Ethereum на локальном хосте, прослушивает устройства пользователей в общедоступном Интернете и передает информацию, которую он получает от Ethereum, на устройства пользователей. Я сделал это до того, как использовал express.js для запуска процесса веб-сервера и socket.io для отправки обновлений клиентам в режиме реального времени.
таким образом, кодовая база ethereumjs, которая предназначена для разделения сетевого протокола p2p и других компонентов (согласно их странице github), не сможет просто получить базовую информацию о блоке в браузере через этот протокол? Я знаком с nodejs, но не знаком с ограничениями браузера.
Infrua предоставляет работающий удаленный узел, если вы не хотите (или не можете) запускать свой собственный.