Получайте уведомление JavaScript, когда транзакция Биткойн поступает на определенный адрес

Я хотел бы реализовать очень простую функцию мониторинга адресов на сайте, над которым я работаю. Я хотел бы просто иметь возможность сказать «Прослушайте этот адрес в тестовой сети, чтобы получить деньги», и обновлять HTML на странице, когда поступает BTC. Я понимаю, что Blockchain.info предоставляет веб-сокет именно для этого, но не предоставляет его для использования в testnet3.

Я уверен, что упускаю из виду что-то очевидное. Любая помощь приветствуется.

Добавлена ​​информация о SoChain — возможно, вы захотите ее проверить.

Ответы (1)

Обычно вы делаете это в сервисе кошелька, которым пользуетесь. Они обеспечивают обратные вызовы уведомлений между серверами, когда адрес получает транзакции. Затем вы анализируете эту транзакцию и позволяете своему серверу уведомлять клиентов JavaScript.

РЕДАКТИРОВАТЬ : SoChain предлагает без аутентификации, WebSockets, API для мониторинга биткойн-адресов в режиме реального времени. Вы можете использовать это напрямую на клиентском JavaScript:

https://chain.so/api#realtime-баланс-обновления

Я не знаю, существуют ли какие-либо чистые API-интерфейсы JavaScript на стороне клиента с функцией уведомлений - вам всегда нужно настраивать веб-перехватчики на какой-либо сервер или напрямую подключаться к биткойну.

Также есть вопрос уровня подтверждения — когда вы считаете транзакцию полученной, сколько подтверждений вы требуете для нее. Обычно вы получаете несколько уведомлений на каждое новое подтверждение.

Я сделал это в своем проекте с открытым исходным кодом Liberty Music Store , используя blockchain.info.

Для вдохновения посмотрите соответствующий код веб-перехватчика blockchain.info, который затем перенаправляет эту информацию в JavaScript через шаблон слушателя Redis pub-sub (хотя в этом случае он использует длинный опрос HTTP вместо WebSockets для совместимости с Android 2.3):

https://github.com/miohtama/LibertyMusicStore/blob/master/tatianastore/blockchain.py#L110

https://github.com/miohtama/LibertyMusicStore/blob/master/tatianastore/static/main.js#L102

https://github.com/miohtama/LibertyMusicStore/blob/master/tatianastore/signals.py#L28

https://github.com/miohtama/LibertyMusicStore/blob/master/tatianastore/storefront.py#L253