Я хочу отслеживать учетные записи на предмет входящих транзакций (RPC/IPC API) и вызывать функцию всякий раз, когда какая-либо из нескольких отслеживаемых учетных записей получает эфир, который «подтвержден», например, «достаточно много блоков назад, чтобы шансы на двойную трату ничтожны».
Есть эталонная реализация этого?
Я просматриваю фильтры, и слова «ожидающие» и «последние» продолжают появляться. Что они имеют в виду?
Последний означает последний блок, который уже находится в вашей собственной цепочке. Все транзакции, содержащиеся внутри, можно считать успешно выполненными. С точки зрения безопасности, конечно, могут быть реорганизации, но в основном это исполняемые транзакции.
С другой стороны, ожидается набор транзакций, которые могут быть выполнены сетью (о которых знает ваш собственный узел), но еще не были выполнены. Ожидание полезно для отображения реактивных пользовательских интерфейсов, когда пользовательский интерфейс может немедленно показать, что что-то входящее, хотя нет никаких гарантий, когда эти транзакции (если вообще когда-либо) будут успешно выполнены.
Идеи по «эталонной реализации» см. в статье: Как DApp может обнаружить форк или реорганизацию цепочки с помощью web3.js или дополнительных библиотек?
Вы, вероятно, также хотите знать: какое количество подтверждений считается безопасным в Ethereum?
Ответ @Péter великолепен, и единственное, что нужно добавить, это web3.eth.defaultBlock
определение:
«последний», последний блок (текущий заголовок блокчейна)
«ожидание», текущий добытый блок (включая ожидающие транзакции)
pending
равно latest
плюс ожидающие транзакции (те, которые не были добыты в блок).
спрафф
Ник Джонсон
Питер Силаджи
Питер Силаджи
спрафф
$reorg < k*$amount*2^confirmations
я предполагаю? Если да, то есть ли у нас приблизительная оценка коэффициента?