Измерения производительности
Цифры описывают измеренную реализацию на конкретной машине. Они не являются константами консенсуса, и их нельзя переносить на другой CPU только по числу ядер.
Эталонная система:
CPU Intel Core i7-1365U
Topology 10 cores / 12 threads
ISA AVX2 + VPCLMULQDQ, no AVX-512
OS Linux 6.17 x86-64
Rust 1.96.0
В каждой таблице — 20 измерений после прогрева. p95 рассчитан методом ближайшего ранга (nearest rank).
Путь авторизации кошелька
Тест производительности кошелька включает построение страниц, логическое
хеширование, одну капсулу авторизации, полное кодирование и декодирование
логической транзакции и локальный
приём капсулы. Сетевая задержка и доказательство блока HistoryStep не
включены.
| Случай | Страницы | Общее p50 | Общее p95 | Размер доказательства / транзакции |
|---|---|---|---|---|
| 1 вход | 1 | 228,30 ms | 352,47 ms | 56,49 / 56,81 KiB |
| 100 входов | 13 | 217,32 ms | 255,46 ms | 56,58 / 60,69 KiB |
| 1 020 входов | 128 | 233,06 ms | 285,81 ms | 56,11 / 96,50 KiB |
Случай с 1 020 входами всё равно создаёт одну капсулу авторизации. Больший набор входов увеличивает объём хеширования страниц и сериализованной транзакции, но не число доказательств кошелька.
Воспроизведение измерительного стенда:
NOID_WALLET_BENCH_SAMPLES=20 cargo run --release \
--manifest-path research/two_class/Cargo.toml \
--bin two-class-wallet-bench
Классы HistoryStep
Полная подготовка включает сборку свидетеля и построение доказательства. Отдельно измерено время проверки терминального доказательства полной нодой.
| Класс | Полезные строки | Подготовка p50 / p95 | Проверка p50 / p95 | Терминальное доказательство |
|---|---|---|---|---|
B64, m=23 |
5 705 307 | 11,472 / 14,387 с | 0,666 / 0,720 с | 766 549 Б |
B255, m=24 |
15 368 233 | 24,189 / 29,755 с | 0,770 / 1,012 с | 807 189 Б |
На этой машине B64 прошёл строгую границу подготовки p95 в 15 секунд с запасом 613 мс. B255 не прошёл, поэтому рабочий механизм выбора класса корректно оставил майнер на B64. Проверка обоих классов обычной нодой значительно дешевле, чем строить их доказательства.
В измерении использовались Thin LTO, один модуль генерации кода и
target-cpu=native, чтобы оценить конкретную машину. Официальные бинарные
файлы сохраняют переносимый базовый набор инструкций и выбирают реализации
доказательств и PoW при запуске, поэтому время релизного
пакета также нужно проверить на целевой системе.
Как читать результаты
Таблица кошелька измеряет локальную авторизацию, а не время до подтверждения.
Таблица HistoryStep измеряет подготовку блока, а не ожидаемое время поиска
PoW. Распространение по сети и поиск nonce меняются независимо.
Для майнера измеряется полный путь:
выбор транзакций
+ сборка свидетеля
+ построение HistoryStep
+ поиск nonce
+ отправка и принятие блока
Ускорение одной внутренней фазы не оправдывает включение более крупного класса доказательства, если полная подготовка не укладывается в целевой интервал.
Архивированные отчёты в исходном репозитории сохраняют команды, коммиты,
дайджесты матриц и исходные результаты в research/two_class/results/.