Как майнер может выбрать, какую транзакцию включить в следующий блок?

Этот вопрос не является дубликатом вопроса Могут ли майнеры выбирать, какие транзакции майнить?

Кажется, все согласны с тем, что майнеры могут выбирать, какие транзакции они добывают. Но я не могу найти способ сделать это! Я создал личную сеть биткойнов (протокол тестовой сети), где я единственный майнер. Я отправляю транзакции на свои несколько (поддельных) узлов и получаю их все в мемпуле.

В демонстрационных целях я хочу, чтобы часть транзакций (с высокой комиссией) была включена в первый блок, а остальные — во второй. Я пытался использовать prioritisetransaction(с моим узлом майнера), чтобы сделать это, но все транзакции пошли в один и тот же блок:

bitcoin-cli PriorityTransaction txId1 5000 200

bitcoin-cli PriorityTransaction txId2 0-200

Я ставлю произвольные значения, цель — майнить Tx1 в первом блоке и Tx2 во втором или даже после. Как я могу создать такое поведение? Мне действительно нужно разместить более 1000 транзакций, чтобы увидеть, как мои транзакции идут в разных блоках?

Буду рад любой помощи, заранее спасибо.

РЕДАКТИРОВАТЬ: я добавляю вопрос к этому сообщению. С другой стороны, чтобы найти способ «выбрать», в какой блок будет включена моя транзакция, я попробовал вызовы «estimatefee/priority». В моей частной сети биткойнов (высота: 14 000 блоков), когда я звоню:

оценка платы за биткойн-cli X

независимо от X (номер блока перед включением), ответ «-1», что означает, что сеть не может оценить то, что я прошу (должна добавляться только к старшим цифрам). Нужно ли мне больше блоков в моем блокчейне? Больше транзакций? Тот же эксперимент в реальной тестовой сети, estimatefeeработает, но очень далек от реальности, и независимо от комиссии, все мои транзакции идут в первый блок.

Я также нашел это обсуждение, но никто не отвечает на настоящий вопрос: bitcoin.stackexchange.com/questions/7311/…
Вы пробовали prioritisetransaction txid2 -1000000 -1000000?
Я пробовал: bitcoin-cli PriorityTransaction txId1 1000000 1000000 bitcoin-cli PriorityTransaction txId2 -1000000 -1000000 безуспешно
функция Assessmentfee в основном возвращает упорядоченную статистику, превышающую не более 100 раз по 25 = 2500 транзакций. Если в вашей цепочке блоков недостаточно транзакций, он не сможет выполнить такой расчет.

Ответы (1)

Мне действительно нужно поместить более 1000 транзакций [в блок], чтобы увидеть, как мои транзакции проходят в разных блоках?

Нет. Вы можете ограничить размер производимых блоков, изменив -blockmaxsizeпараметр. Например, если вы хотите иметь возможность добавить только одну 250-байтовую транзакцию плюс 80-байтовый заголовок и 1-байтовый (в данном случае) счетчик транзакций, вы можете запустить Bitcoin Core следующим образом:

bitcoind -testnet -daemon -blockmaxsize=331

Затем вы можете использовать RPC PrioritiseTransaction, чтобы установить приоритет tx1 над tx2.

Что касается вашего второго вопроса, оценка и оценка приоритета могут не давать полезных результатов в тестовой сети, потому что объем транзакций там невелик, поэтому почти каждая транзакция переходит в следующий блок.

Возможно, вам будет полезнее поэкспериментировать с режимом регрессионного тестирования, который позволит вам создать частную тестовую сеть и полностью контролировать каждый блок (а также мгновенно добывать блоки).