Author

Topic: Как отслеживать новые монеты на конкретн&#108 (Read 1202 times)

legendary
Activity: 1120
Merit: 1069
Очень странно почему разработчики не сделали, ведь всего одна команда облегчит организацию приёма платежей в разы.
потому что тратиться эти монеты все равно не подконтрольно! Но самое главное, для подавляющего большинства задач конечному разработчику нужен не итоговый баланс на адресе а его изменения и коллбак на эти события. Т.е. нужно знать когда на конкретный адрес (или список! это часто важно) с определенного момента времени! появились одна или несколько транзакций на пополнение на такую-то сумму... на эти вопросы идеально отвечает анализ блоков blockchain командами, что я вам показал!

Из-за того, что при трате монет (исходящие транзакции) пока (в офицальном bitcoin и я не понимаю почему) нет никакого контроля над используемыми монетами, пользоваться понятием счет пользователя = сумма монет на его адресе - ошибочно! Обслуживать внутренние счета клиентов приходится самому.
NNZ
member
Activity: 63
Merit: 10
API блокчейна не подходит?
blockchain.info/ru/q/addressbalance/[адрес]
Подходит с натяжкой конечно, но не даёт возможности подключать другую криптовалюту.

Странно что нет поддержки команды на подобие getbalance, что-то вроде getbalance adress
Очень странно почему разработчики не сделали, ведь всего одна команда облегчит организацию приёма платежей в разы.
legendary
Activity: 1120
Merit: 1069
API блокчейна не подходит?
blockchain.info/ru/q/addressbalance/[адрес]


бывают случаи, когда сторонний сервис - лишнее понижение надежности, как еще одна точка отказа, так и с позиции доверия.
Xtc
legendary
Activity: 1973
Merit: 1028
;u
API блокчейна не подходит?
blockchain.info/ru/q/addressbalance/[адрес]

legendary
Activity: 1120
Merit: 1069
Я так понял есть два способа ?
1) Описанный вами
2) Написанием своего парсера БД
3) взять готовый, например abe (не интересовался, есть ли еще, но наверняка есть)

p.s. описанный мною метод не такой уж и сложный, там все ответы красивым форматированным json выдаются, все интуитивно понятно и просто.
NNZ
member
Activity: 63
Merit: 10
Я так понял есть два способа ?
1) Описанный вами
2) Написанием своего парсера БД
legendary
Activity: 1120
Merit: 1069
Выглядит конечно как костыль, но видимо разработчикам видней.
опа.. неее! это информация ПО ЛЮБЫМ адресам, даже вне кошелька! В подавляющем большинстве случаев надежнее на веб-сервере разместить пустой кошелек с bitcoind для таких запросов, а реальный доступ к монетам на сверхзащищенном секретном...
NNZ
member
Activity: 63
Merit: 10
Выглядит конечно как костыль, но видимо разработчикам видней.
legendary
Activity: 1120
Merit: 1069
Готовые (тяжелые) проекты - https://en.bitcoin.it/wiki/Abe (аналог blockexplorer.com или blockchain.info) дадут вообще полную информацию по блокчейну и любому адресу в виде удобной реляционной базы.
Можно самостоятельно сканировать блокчейн (для >0.8 версии нужно индекс включить), каждый блок (ключ -blocknotify позволяет указать свое приложение, которое будет запускаться на каждое появление блока) анализируем:
Code:
getblock 
получаем в т.ч. txid  - хеши транзакций, для каждой выполняем
Code:
getrawtransaction  1
получаем подробно транзакцию, в ней будет видно и адреса, и объемы, и источники монет (ссылки на транзакции, из них можно выцепить при необходимости исходные адреса)
...
если нужно анализировать неподтвержденные транзакции, то список их txid получается так
Code:
getrawmempool


Изначально предполагалось, что если нужно контролировать прием монет на адреса, то каждый адрес нужно помещать в свой аккаунт, тогда у кошелька есть способы узнать доступный баланс на аккаунте... но из-за того, что тратятся монеты с аккаунтов не подконтрольно, этот метод слишком неудобен для использования.
NNZ
member
Activity: 63
Merit: 10
Решил подключить оплату в биткоинах на сайте.
Поднял клиент, организовал привязку адресов к клиентам сайта login=bitcoin_adress
Но не могу понять, какой командой к bitcoind проверять текущий баланс на конкретном адресе, есть комманды которые показывает баланс без учёта отправленных.

Схема приёма у меня такая:
1) Клиент переводит на свой личный вечный биткоин адрес любую сумму
2) Сервер после 6 подтверждений выдаёт клиенту покупку
3) Сервер переводит с адреса клиента биткоины на адрес магазина.

Проблема в том, что сервер не знает сколько биктоинов на конкретном адресе, так как нет команды для btcoind на подобие getblanace bitcoinadress которая бы возвращала текущий баланс конкретного адреса

Если кто сталкивался подскажите как организовать проверку баланса?
Jump to: