Почему getblocktemplate использует приоритет для выбора транзакции?

Я не знаю, как getblocktemplateименно это работает, но, кажется, он включает транзакции на основе приоритета .

Выбор транзакций на основе приоритета — не самый прибыльный метод построения блока (в отличие от комиссии/байта), поэтому getblocktemplateего будут использовать только майнеры, которые не поняли, как создавать свои собственные блоки?

Зачем кому-то использовать getblocktemplateиначе?

Ответы (1)

Getblocktemplate строит блок на основе параметров конфигурации. В последних версиях по умолчанию в качестве критерия для всего блока используется плата за байт.

История

В версиях Биткойн до 0.6 выбор на основе приоритета использовался для всего блока. Это было средством поощрения роста молодой биткойн-экономики. Однако у него также была минимальная комиссия за транзакцию, которая увеличивалась по мере того, как пространство в блоках приближалось к лимиту.

В версии 0.7 была введена -blockprioritysizeнастройка, разделяющая блоки на приоритетную и платную зоны. Область приоритета предназначалась для поддержки небольшого количества транзакций с низкой комиссией для продолжения и по умолчанию была ограничена 27 КБ (50 КБ, начиная с версии 0.9 ). Зона комиссий отсортирована по плате за байт и максимизирует общую комиссию для майнеров.

Последние версии

В Bitcoin Core 0.12 значение по умолчанию для размера приоритета было уменьшено до 0. Он также представил более эффективный алгоритм выбора транзакций, который работает неоптимально для области приоритета.

В предстоящем выпуске Bitcoin Core 0.13 алгоритм выбора алгоритма будет снова улучшен и будет использовать логику «ребенок платит за родителя» (CPFP). Эта логика использует сборы от неподтвержденных транзакций потомков, чтобы определить, следует ли включать родителей. Он увеличивает общую комиссию, которую можно взимать по сравнению с предыдущим алгоритмом, и позволяет кошелькам увеличивать комиссию за транзакцию, тратя свои выходы сдачи с более высокой комиссией.

Спасибо, Питер. Пока у меня есть вы, возвращает ли getblocktemplate список транзакций в каком-либо конкретном порядке?
Да, в том порядке, в котором они были выбраны для включения. Это означает, что наивысший приоритет/fee_per_byte находится первым.