Справочникdocs/reference/performance.md

Измерение производительности

Показатели производительности относятся к конкретной версии кода, профилю доказательства, аутентифицированному пакету матриц, профилю сборки и машине. Это не консенсусная константа, и её нельзя вывести только из числа ядер.

Измерения ниже выполнены на версии Parano1d 39626b22d53cf2f2c480a7e28446c197dca68043 со штатным профилем C1 и аутентифицированным пакетом матриц B25/B255. В таблицу включены только изолированные измерения штатного пути.

Машина Класс Построение HistoryStep Статистика Распакованный terminal
Недорогой ноутбук с AVX2, 12 потоков B25 10,734 с p50 по 3 измерениям 971 732 байта
Недорогой ноутбук с AVX2, 12 потоков B255 34,938 с 1 изолированное измерение 1 081 108 байт
ПК с AVX-512, 24 потока B25 6,905 с p50 по 3 измерениям 971 732 байта
ПК с AVX-512, 24 потока B255 21,053 с p50 по 3 измерениям 1 081 108 байт

Размеры terminal в таблице относятся к полным путям аутентификации. Кодирование общих путей уменьшает объём хранения и передачи; точный размер зависит от открытий. Измерения не включают накладные расходы кодирования общих путей.

Поиск PoW nonce не входит в таблицу. ASERT целится в полный интервал между принятыми блоками, а не выделяет отдельные 20 секунд на поиск nonce. Подготовка доказательства, поиск nonce и распространение по сети входят в один наблюдаемый межблочный интервал, по темпу которого ASERT регулирует целевое значение nonce.

Авторизация в кошельке

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

sh
NOID_WALLET_BENCH_SAMPLES=20 cargo run --release --locked \
  --manifest-path research/two_class/Cargo.toml \
  --bin two-class-wallet-bench

Штатный кошелёк C1 использует 65 запросов Fiat–Shamir. Один PagedSpend содержит одну капсулу авторизации независимо от того, занимает ли он одну или все 128 страниц. Канонический верхний предел сериализованной авторизации равен 92 696 байтам.

HistoryStep

Для изолированного штатного теста требуется завершённый и аутентифицированный пакет матриц. Запускайте классы по отдельности, чтобы вывод однозначно указывал классы родителя и потомка.

sh
NOID_PACK_ROOT=../parano1d-artifacts/history-step-pack-v1
source "$NOID_PACK_ROOT/pins.env"
export NOID_HISTORY_STEP_PACK_DIR="$NOID_PACK_ROOT"

NOID_HISTORY_STEP_BENCH_FILTER=B25 \
NOID_HISTORY_STEP_BENCH_SAMPLES=20 \
cargo bench --locked -p bench_prover --bench history_step_proof

NOID_HISTORY_STEP_BENCH_FILTER=B255 \
NOID_HISTORY_STEP_BENCH_SAMPLES=20 \
cargo bench --locked -p bench_prover --bench history_step_proof

cargo bench использует оптимизированный профиль bench. Построение транзакций, доказательство кошелька, построение шаблона блока и аутентификация матриц выполняются до измеряемого участка. history_step_ms включает декодирование родительского terminal, ограниченную подготовку входов и авторизаций, рекурсивную сборку, фиксацию nonce, построение доказательства и кодирование terminal. verify_ms включает ограниченное декодирование формата на проводе и полную проверку terminal.

Полное производство блока

Изолированное измерение доказательства не равно полной задержке майнинга. При выборе вместимости нужно измерять:

text
выбор намерений
  + сборка трассы текущего блока
  + воспроизведение и связывание родительского terminal
  + доказательство HistoryStep
  + поиск nonce
  + отправка и принятие блока

Поиск nonce и распространение по сети изменяются независимо от построения доказательства. Полные сравнения следует выполнять на конечной машине по всему пути производства. Автоматическое разрешение B255 использует первую завершённую подготовку B25 и четырёхкратный прогноз её времени, как описано в архитектуре майнинга. Официальные исполняемые файлы сохраняют переносимую базовую реализацию и при запуске выбирают pclmul, avx2+vpclmul, avx512bw+vpclmul или neon+pmull.

Техническая документация ParanO(1)dПоведение консенсуса определяется исходным кодом.