При создании инструмента/визуализации, отображающей скорость транзакции в соответствии с ее позицией в заданном блоке, я наткнулся на шаблон в некоторых блоках.
Я ожидаю, что типичный блок начнется с транзакций с самым высоким соотношением платы за байт (feerate), а затем продолжится транзакциями, в которых комиссия будет медленно уменьшаться. Часто есть некоторые транзакции CPFP, где за более низкой комиссией следует более высокая комиссия.
Однако я вижу, что в некоторых блоках (от разных майнеров) смешаны 9 транзакций sat/B с 5 транзакциями sat/B между ними. В более поздней позиции в блоке снова 5 транзакций sat/B. Это происходит с несколькими блоками и разными майнерами. Я предполагаю, что это происходит от getblocktemplate или чего-то подобного.
Я разветвил версию своего инструмента, выделив 5 транзакций sat/B синим цветом (можно найти здесь , не стесняйтесь исследовать). Поскольку это все еще находится в активной разработке, я добавлю скриншоты некоторых блоков на случай, если ссылки перестанут работать. Я намеренно выбрал набор блоков, из которых, думаю, понятно, что я имею в виду.
Образцы блоков:
Блок № 517361 , добытый ViaBTC (?)
Блок № 517363 , добытый BTC.TOP (?)
Блок № 517357 , добытый BTC.com (?)
а вот и от Slush тоже.
Вопросы:
1) Это известное поведение алгоритма, создающего шаблоны блоков?
2) Какая мотивация стоит за этой функцией. Это ошибка?
3) Существуют ли широко используемые getblocktemplate
альтернативы?
1) Это известное поведение алгоритма, создающего шаблоны блоков?
Да. Это поведение присутствует в Bitcoin Core.
Bitcoin Core объединяет транзакции в «пакеты» из одной или нескольких транзакций. Каждый пакет состоит из неподтвержденной транзакции и ее дочерних элементов (если они есть), чтобы покрыть случай Child-Pays-For-Parent. Ставка комиссии за транзакцию рассчитывается для всего пакета (общая сумма комиссий, уплачиваемых транзакциями в пакете, делится на размер пакета).
Когда выбираются транзакции, на самом деле выбираются пакеты. Поскольку пакеты размещаются внутри блока в порядке комиссионных сборов за пакеты, вы иногда будете получать несколько транзакций с низкой комиссией, за которыми следует транзакция с действительно высокой комиссией, потому что все они были частью одной и той же транзакции, а транзакция с высокой комиссией была ребенок, который заплатил за своих родителей.
Это называется «упорядочивание ставок сборов по предкам».
2) Какая мотивация стоит за этой функцией. Это ошибка?
Это не фича и не баг, это просто особенность работы выбора транзакций.
Смотрите также: https://bitcointalk.org/index.php?topic=2058831.0
0xb10c
Эндрю Чоу
0xb10c
Эндрю Чоу