ZYCORD docs
Русский
ZycordДокументацияПубличный testnet

Публичный testnet

Публичный testnet несёт правила консенсуса mainnet под собственным идентификатором цепочки, так что измеряет он поведение mainnet, а не своё собственное. Его монеты ничего не стоят, и так и задумано.

Что это#

zcd genesis --testnet
network        zycord-testnet
chain id       2
params hash    0x0b732489dee8fd2bcb5fa37b513b2ea10edc616bd664ba5b55c69952f63e2c1b
genesis id     0xc1b21b079b3dfe781c40a187326bb8dbbcf0fb97164d6fdf7a7d6a536c74705b
state root     0x6974f84b8088039ab721fd6be6ac72b73845e5dc93f0b5625b4e9c564ccf73e3
genesis time   1789430400
cells written  6
allocations    0

Выполните эту команду, прежде чем доверять этой странице. Сборка, печатающая другой идентификатор генезис-блока, — это сборка на другой цепочке, и она к этой не подключится — рукопожатие откажет ещё до оценки блока. allocations 0 — это утверждение об отсутствии премайна, проверяемое, а не обещанное.

Генезис-блок появился 2026-09-15T00:00:00Z (unix 1789430400). Следить за цепочкой можно на testnet.zycord.com.

Он отличается от mainnet восемью значениями и больше ничем#

name, chain_id, genesis_target, max_target, genesis_time, randomx_key_interval, h1_bond и h1_vm. Последние два — это высоты активации, и здесь они ниже намеренно: testnet доходит до них на первый и третий день, так что машину гоняют неделями раньше, чем mainnet подойдёт к тем же воротам. Всё остальное — undo_depth, target_block_seconds, coinbase_maturity и вся тарифная сетка gas — намеренно взято из mainnet. Особенно сетка gas, потому что именно она делает измеряемое здесь поведение базовой комиссии поведением mainnet, а не этой сети. Testnet со своей тарифной сеткой gas измеряет другую цепочку.

ПараметрПубличный testnetMainnet
namezycord-testnetzycord
chain_id21
genesis_time1789430400 — 2026-09-15T00:00:00Z1790812800 — 2026-10-01T00:00:00Z
randomx_key_interval512 блоков2048 блоков
h1_bond2 880 — примерно 1-й день40 320 — примерно 14-й день
h1_vm8 640 — примерно 3-й день80 640 — примерно 28-й день
target_block_seconds30 — идентично
coinbase_maturity100 — идентично
epoch_length2880 блоков, около суток — идентично
ttl_max240 блоков, около двух часов — идентично
treasury_share_bps300, то есть 3% — идентично
Удалите каталог данных, прежде чем подключаться к сброшенной сети

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

Подключение#

make build-randomx        # the testnet is randomx-v1; see below
                          #   -> bin/zcd-randomx, bin/zycordd-randomx

./bin/zycordd-randomx --testnet --dir ./testnet

make build-randomx, а не make build. В testnet pow_engine — это randomx-v1, та же рабочая функция, что и в mainnet. Бинарник, собранный без этого тега, откажется запускаться против неё, а не откатится к отладочному движку, который принимал бы один проход BLAKE3 как доказательство работы для любого встреченного заголовка.

Бинарники с тегом несут этот тег в своих именах, так что сборка обоих оставляет оба на диске, а имя файла говорит, какой движок внутри. В других местах этих страниц команды записаны как zcd и zycordd для краткости; в этой сети это пара с суффиксом -randomx.

Начальная загрузка#

Бинарник несёт один seed-адрес для этой сети и ничего для любой другой. Вам не нужно искать пира, чтобы начать — команда выше подключается от встроенного seed. Чтобы указать свой вместо него или вдобавок:

zycordd --testnet --dir ./testnet --peers-file peers.txt
zycordd --testnet --dir ./testnet --peers host:9421,host2:9421
zycordd --testnet --dir ./testnet --no-seeds --peers-file peers.txt

Будьте доступны для входящих, если можете#

Zycord не занимается обходом NAT. Узел с --listen на достижимом порту — это место, откуда другие могут начать загрузку, а доля таких узлов — фальсифицируемое условие, на котором держится всё решение отказаться от обхода NAT — она измеряется, а не предполагается.

zycordd --testnet --dir ./testnet \
  --listen 0.0.0.0:9421 --advertise <public-address>:9421

Если пробросить порт не получается, не указывайте --listen и будьте периферией. Это вполне достойный способ участвовать. Проверить, кто вы, можно командой curl -s localhost:9420/network — listening: true при inbound: 0 спустя несколько минут означает, что порт на деле недостижим.

Как получить монеты#

Два пути, и второй — тот, вокруг которого эта сеть и проектировалась.

Кран#

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

Он существует в этой сети и ни в какой другой. Кран — функция обозревателя, выключенная по умолчанию, а её включение требует назвать сеть — имя сверяется с цепочкой, которую этот обозреватель действительно индексирует, причём mainnet отвергается сразу. В mainnet нет ни крана, ни премайна, и это проверка в бинарнике, а не правило, которое кто-то должен помнить.

Для него ничего не выпускается. Кран держит обычный ключ, подписывает обычный перевод через ту же wallet/session, что и командная строка, и выдаёт одну заявку на блок, потому что сертификат несёт прочитанное им состояние, и два сертификата, построенных на одном чтении своей ячейки, столкнулись бы. Его баланс берётся из майнинга, так что пустой кран останется пустым, пока кто-нибудь его не пополнит.

Самостоятельный майнинг#

Путь без очереди и без оператора, с тем же распределением, что и в mainnet:

zcd wallet new --out miner.json
zycordd --testnet --dir ./testnet \
  --mine --payout $(zcd wallet address --key miner.json)

Запускайте хоть до открытия сети — именно так его и предполагается использовать. Узел, чьи часы не дошли до самой ранней метки времени, которую может нести следующий блок, отказывается его строить, сообщает, сколько осталось ждать, и начинает майнить сам, когда придёт время. Ничего не нужно планировать и нечего перезапускать, а пиринг и синхронизация идут всё время ожидания.

Адрес выплат обязан быть постоянным (0x02) — zcd wallet address по умолчанию печатает именно такой, а zycordd отвергает любой другой, а не предупреждает. Почему.

coinbase_maturity равно 100, поэтому примерно первую сотню блоков после вашего первого вознаграждения транзакции доступны только майнерам. Этот разгон взят из mainnet и составляет часть того, что эта сеть репетирует — и именно поэтому кран существует здесь и не может существовать там: кран сокращает разгон тому, кто хочет опробовать кошелёк, в той единственной сети, где сокращение ничего не стоит.

Майнинг выделяет набор данных RandomX — около 2 ГиБ, плюс ~256 МиБ на каждую удерживаемую эпоху ключа. Машина, способная спокойно проверять, не обязательно способна майнить; бюджеты приведены в разделе Майнинг.

Монеты testnet ничего не стоят#

По замыслу и навсегда. Сеть может быть сброшена от генезис-блока, для чего testnet и существует. Любой, кто предлагает купить или продать их, ведёт мошенничество, которому не нужна даже легенда.

Что измеряет эта сеть#

Это не демонстрация. Четыре вещи, ради чисел о которых она существует:

  • Пауза при смене ключа. При 512 блоках повторное задание ключа RandomX случается примерно раз в четыре часа вместо семнадцати в mainnet, так что перестроение набора данных репетируется достаточно часто, чтобы его измерять, а не рассуждать о нём.
  • Поведение базовой комиссии при тарифной сетке gas от mainnet, из-за чего сетка здесь и не правится.
  • Доля узлов, доступных для входящих подключений — первое условие пересмотра решения об отказе от обхода NAT.
  • Ожидание до генезис-блока и то, действительно ли честный ранний запуск превращается в своевременный старт без перезапусков.

Когда что-то выглядит не так#

В разделе Запуск узла описан путь диагностики для узла, который не синхронизируется, и команда починки для каталога данных, против которого он отказывается стартовать. Находки и способы воспроизведения — в трекер задач; проекту нужен отчёт, а не презумпция невиновности.