как сделать адресные обратные вызовы?

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

Я не уверен, как лучше всего это сделать. Будете ли вы иметь отдельное приложение, которое будет отправлять вызовы API на blockchain.info до тех пор, пока не пройдет новая транзакция? Затем инициировать правильную функцию обратного вызова?

Использование blockchain.info кажется надуманным, поскольку это сторонний сервис. Как бы вы сделали это, отслеживая сеть биткойнов? Похоже, что использование любого биткойн-клиента зависит от некоторых действий командной строки. Будет ли лучшим способом продолжать отправлять действие командной строки до тех пор, пока возвращаемые данные не будут отличаться, а затем инициировать обратный вызов? Есть ли лучший шаблон дизайна, который мне не хватает?

Вы пытаетесь сообщить своему пользователю, когда его деньги поступили в его кошелек? Разве их кошелек не должен сказать им это?
Кошелек может знать, что биткойн был получен, но как кошелек узнает, чтобы отправить электронное письмо / уведомить конкретного пользователя? Нужен обратный звонок по адресу.

Ответы (2)

Если вы полагаетесь на биткойн и API JSON-RPC, вы можете попробовать запустить демон с опцией -walletnotify.

bitcoind -daemon -waletnotify="process-txn.sh %s"

Это вызовет process-txn.shидентификатор транзакции на входе. Затем вы можете запросить у демона детали транзакции.

Разве walletnotify не работает только для зарегистрированных адресов? Как получить все транзакции? Ясно, что узел получает его. Биткойн это позволяет.

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

Посетите https://bitlab.co/wallet , чтобы увидеть демонстрацию этого в действии. Кроме того, исходный код серверной части доступен по адресу https://github.com/bitlabco/bitlab-nodejs .