Я создаю веб-приложение, которое должно обновлять информацию об учетной записи и отправлять сообщение, когда адрес учетной записи получает депозит и/или подтверждает снятие средств.
Я не уверен, как лучше всего это сделать. Будете ли вы иметь отдельное приложение, которое будет отправлять вызовы API на blockchain.info до тех пор, пока не пройдет новая транзакция? Затем инициировать правильную функцию обратного вызова?
Использование blockchain.info кажется надуманным, поскольку это сторонний сервис. Как бы вы сделали это, отслеживая сеть биткойнов? Похоже, что использование любого биткойн-клиента зависит от некоторых действий командной строки. Будет ли лучшим способом продолжать отправлять действие командной строки до тех пор, пока возвращаемые данные не будут отличаться, а затем инициировать обратный вызов? Есть ли лучший шаблон дизайна, который мне не хватает?
Если вы полагаетесь на биткойн и API JSON-RPC, вы можете попробовать запустить демон с опцией -walletnotify.
bitcoind -daemon -waletnotify="process-txn.sh %s"
Это вызовет process-txn.sh
идентификатор транзакции на входе. Затем вы можете запросить у демона детали транзакции.
Я создал сервис с открытым исходным кодом, который делает именно это. Каждый раз, когда генерируется новый адрес, он связывается с учетной записью в базе данных. Биткойн-клиент запускается с помощью необязательной команды -walletnotify для уведомления базы данных о новой транзакции. Когда база данных получает новую транзакцию, учетная запись, связанная с этим адресом, может быть уведомлена.
Посетите https://bitlab.co/wallet , чтобы увидеть демонстрацию этого в действии. Кроме того, исходный код серверной части доступен по адресу https://github.com/bitlabco/bitlab-nodejs .
Иззи
Джон