Size: a a a

Blockchain Developers

2017 November 07

КБ

Константин Брызгалин in Blockchain Developers
у bitcoind есть возможность запросить баланс воллета с указанием минимального количества подтверждений. если мне не изменяет память что-то типа bitcoin-cli getbalance 5 – это вот как раз тот баланс который уже никуда не убежит
источник

КБ

Константин Брызгалин in Blockchain Developers
если делается система которая должна работать непосредственно с блокчейнов и отслеживать состояния транзакций, то gettransaction возвращает height – это количество подтверждений конкретной транзакции
источник

КБ

Константин Брызгалин in Blockchain Developers
когда отправляется транзакция, bitcoin-cli выдаёт её идентификатор. опрашивая bitcoind с определённым интервалом, можно отслеживать её состояние, попадение в блоки и количество подтверждений без особых проблем
источник

КБ

Константин Брызгалин in Blockchain Developers
если разрабатываешь софт и надо следить за транзакциями, не имеющими отношения к воллету, bitcoind должен работать с -txindex=1, по умолчанию он отслеживает только транзакции имеющие отношение в воллету, а но все остальные будет только RPCError
источник

KG

Kool Guy in Blockchain Developers
А кто нибудь может сказать, почему в Web3 нету апи по получении всех транзакций по адресу? Это архитектурная проблема, или разработчики просто поленились добавить такой апи?
источник

KG

Kool Guy in Blockchain Developers
То есть даже по своему адресу
источник

KG

Kool Guy in Blockchain Developers
Приходится весь блокчейн индексировать
источник

AB

Alexey Bakulin in Blockchain Developers
ох, надо идти читать про кишки блокчейна биткоина
источник

КБ

Константин Брызгалин in Blockchain Developers
Kool Guy
А кто нибудь может сказать, почему в Web3 нету апи по получении всех транзакций по адресу? Это архитектурная проблема, или разработчики просто поленились добавить такой апи?
наверное не хотели заморачиваться. потенциально это может быть большой список – значит надо реализовывать пагинацию иначе нода может упасть просто пытаясь собрать датасет в памяти. считать отправленные транзакции она умеет – eth_getTransactionCount. кроме того самих транзакций в базе может не быть, быстрая синхронизация не собирает полной копии блокчейна на машине, скачивается последний снэпшот и дальше синхронизация идёт от него. исторические записи, по крайней мере parity, по умолчанию не выкачивает. кроме того старые записи он автоматически удаляет из базы…
источник

KG

Kool Guy in Blockchain Developers
Константин Брызгалин
наверное не хотели заморачиваться. потенциально это может быть большой список – значит надо реализовывать пагинацию иначе нода может упасть просто пытаясь собрать датасет в памяти. считать отправленные транзакции она умеет – eth_getTransactionCount. кроме того самих транзакций в базе может не быть, быстрая синхронизация не собирает полной копии блокчейна на машине, скачивается последний снэпшот и дальше синхронизация идёт от него. исторические записи, по крайней мере parity, по умолчанию не выкачивает. кроме того старые записи он автоматически удаляет из базы…
Есть какие-нибудь выходы кроме индексирования или запроса через внешний апи?
Цель получить входящие и исходящие транзакции по собственному же адресу
источник

KG

Kool Guy in Blockchain Developers
Парити насколько знаю втупую использует etherscan
источник

КБ

Константин Брызгалин in Blockchain Developers
наверное нет. только если хранить свою историю с момента создания аккаунта и куда-то её сохранять, тогда её не надо будет ниоткуда вытаскивать…
источник

KG

Kool Guy in Blockchain Developers
Константин Брызгалин
наверное нет. только если хранить свою историю с момента создания аккаунта и куда-то её сохранять, тогда её не надо будет ниоткуда вытаскивать…
Понятно, спасибо
источник

КБ

Константин Брызгалин in Blockchain Developers
у меня парити работает демоном на линуксе, он вроде никуда не лазит, когда ему rpc запросы шлёшь… если пытаешься выбрать что-то из блока за пределами снэпшота, жалуется что запущен без --prune=archive
источник

КБ

Константин Брызгалин in Blockchain Developers
раз уж сегодня день вопросов, я тоже спрошу – что за история с gas limit и gas used? наугад беру транзакцию из тестнета и вижу что gas used (берётся из transaction receipt) меньше чем gas limit (задан в самой транзакции). то есть это значит что майнер не стал брать весь предложенный по транзакции газ? или он потратил одно количество но забрал себе всё предложенное как бонус? у меня задача показать реальное количество эфира, которое отправитель заплатил за транзакцию и мне неизвестно как считать его – как gasUsed*gasPrice или как gasLimit*gasPrice?
пример транзакции:
https://kovan.etherscan.io/tx/0x477d2834791c0ac7742cd6d0e480e094d4e2abfeda108f92ddf75f5320aa139b
источник

КБ

Константин Брызгалин in Blockchain Developers
на стековерфлоу предлагается считать что если gasUsed !== gasLimit то это значит что транзакция зафейлилась, потому что на уровне evm исключения работают просто увеличивая gasUsed за пределы лимита. но очевидно это не совсем так, gasUsed может быть и меньше чем gasLimit тоже, причём для вполне обычной, валидной транзакции
источник

КБ

Константин Брызгалин in Blockchain Developers
может как-то сказывается что kovan testnet работает на proof-of-authority?
источник

AB

Alexey Bakulin in Blockchain Developers
это вроде и есть вознаграждение за вычисление. gasUsed считается из стоимости операций контракта. разница между gasLimit и реально потраченым gasUsed уходит исполнителю контракта как награда. как я понял.
источник

КБ

Константин Брызгалин in Blockchain Developers
а оплата за gasUsed ему разве не уходит
источник

AB

Alexey Bakulin in Blockchain Developers
подсмотрел вот тут https://youtu.be/Sxp5HBWWUuk?t=5584 на примере публичного сервиса
источник