Этот вопрос не является дубликатом вопроса Могут ли майнеры выбирать, какие транзакции майнить?
Кажется, все согласны с тем, что майнеры могут выбирать, какие транзакции они добывают. Но я не могу найти способ сделать это! Я создал личную сеть биткойнов (протокол тестовой сети), где я единственный майнер. Я отправляю транзакции на свои несколько (поддельных) узлов и получаю их все в мемпуле.
В демонстрационных целях я хочу, чтобы часть транзакций (с высокой комиссией) была включена в первый блок, а остальные — во второй. Я пытался использовать 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
работает, но очень далек от реальности, и независимо от комиссии, все мои транзакции идут в первый блок.
Мне действительно нужно поместить более 1000 транзакций [в блок], чтобы увидеть, как мои транзакции проходят в разных блоках?
Нет. Вы можете ограничить размер производимых блоков, изменив -blockmaxsize
параметр. Например, если вы хотите иметь возможность добавить только одну 250-байтовую транзакцию плюс 80-байтовый заголовок и 1-байтовый (в данном случае) счетчик транзакций, вы можете запустить Bitcoin Core следующим образом:
bitcoind -testnet -daemon -blockmaxsize=331
Затем вы можете использовать RPC PrioritiseTransaction, чтобы установить приоритет tx1 над tx2.
Что касается вашего второго вопроса, оценка и оценка приоритета могут не давать полезных результатов в тестовой сети, потому что объем транзакций там невелик, поэтому почти каждая транзакция переходит в следующий блок.
Возможно, вам будет полезнее поэкспериментировать с режимом регрессионного тестирования, который позволит вам создать частную тестовую сеть и полностью контролировать каждый блок (а также мгновенно добывать блоки).
Хьюго Борн
Ник Оделл
prioritisetransaction txid2 -1000000 -1000000
?Хьюго Борн
КлементВальтер