Глоссарий / Узлы и ПО
Regtest
Другие названия: Режим регрессионного тестирования.
- Что такое Regtest?
- Regtest представляет собой частную сеть биткоина, которая работает на вашей собственной машине, где блоки добываются по команде, а не в ожидании того, что их создаст кто-то другой.
Здесь ничего никому не передается. Цепочка начинается со своего собственного генезис-блока, сложность майнинга стоит на самом низком значении, которое допускает программное обеспечение, и одна команда может создать сто блоков менее чем за секунду. Именно здесь тестируются кошельки, платежные процессоры и реализации Lightning, прежде чем что-либо из них соприкоснется с деньгами.
Как это работает
Запуск bitcoind с параметром regtest создает цепочку без пиров и без истории.
У этой сети нет DNS-сидов и нет узлов по умолчанию, к которым можно подключиться, поэтому, если не запустить второй экземпляр и не подключить его вручную, вы остаетесь одни в своем блокчейне. Демон слушает пиров на порту 18444 и вызовы RPC на порту 18443, хранит данные в отдельном каталоге regtest и выдает адреса с префиксом bcrt1, так что перепутать их с чем-то ценным невозможно.
Блоки появляются, когда вы их запросите. Команда generatetoaddress майнит на указанный вами адрес, и обычный первый шаг состоит в том, чтобы намайнить 101 блок вместо 1, потому что выход coinbase нельзя потратить, пока сверху не лягут еще 100 блоков. Только когда существует 101-й блок, у вас появляется монета, которую можно потратить, на которой можно строить остальную часть теста.
Еще два параметра намеренно отличаются от mainnet. Regtest начинается с той же субсидии в 50 BTC, но она уменьшается вдвое каждые 150 блоков вместо каждых 210 000, поэтому сеанс, в котором добыты несколько тысяч блоков, сведет вознаграждение к нулю и лишит вас возможности финансировать что-то новое. А поскольку нижний предел сложности настолько низок, реорганизации можно устраивать бесплатно: invalidateblock откатывает цепочку от любого выбранного вами блока, а reconsiderblock возвращает его на место, и это единственный практичный способ увидеть, что реорганизация в шесть блоков делает с балансом кошелька.
Где это встречается
Regtest является сетью, на которой работает собственный набор тестов биткоина.
Функциональные тесты Bitcoin Core поднимают узлы regtest, прогоняют их через сценарии и снова удаляют, так и проверяются изменения в программном обеспечении перед выпуском. Core Lightning и LND делают то же самое для логики каналов, а Polar дает этому процессу графический интерфейс, чтобы можно было создать небольшую сеть Lightning на своем ноутбуке в несколько кликов. BTCPay Server поставляет стек разработки на regtest по той же причине: никто не должен обнаруживать ошибку на странице оплаты с платежом клиента.
Если вы подключаете платежи в биткоине к веб-сайту, первые сто платежей должны пройти здесь. Вы точно управляете временем подтверждений, можете смоделировать зависшую транзакцию или повышение комиссии, не заплатив ни за то, ни за другое, и можете отрепетировать реорганизацию, которая иначе стала бы сюрпризом раз в год.
Как человек, который покупает биткоин или хранит его, вы никогда намеренно не подключитесь к regtest, но знать это название стоит. Адрес, начинающийся с bcrt1, не является адресом биткоина, и любой кошелек, который показывает вам такой адрес, подключен к частной цепочке, которая не существует нигде, кроме машины перед вами.