Измерение производительности
Показатели производительности относятся к конкретной версии кода, профилю доказательства, аутентифицированному пакету матриц, профилю сборки и машине. Это не консенсусная константа, и её нельзя вывести только из числа ядер.
Измерения ниже выполнены на версии 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 в измерение не входят.
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
Для изолированного штатного теста требуется завершённый и аутентифицированный пакет матриц. Запускайте классы по отдельности, чтобы вывод однозначно указывал классы родителя и потомка.
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.
Полное производство блока
Изолированное измерение доказательства не равно полной задержке майнинга. При выборе вместимости нужно измерять:
выбор намерений
+ сборка трассы текущего блока
+ воспроизведение и связывание родительского terminal
+ доказательство HistoryStep
+ поиск nonce
+ отправка и принятие блока
Поиск nonce и распространение по сети изменяются независимо от построения доказательства. Полные сравнения следует выполнять на конечной машине по всему пути производства.
Автоматическое разрешение B255 использует первую завершённую подготовку B25
и четырёхкратный прогноз её времени, как описано в
архитектуре майнинга. Официальные исполняемые файлы сохраняют переносимую базовую реализацию и при запуске выбирают
pclmul, avx2+vpclmul, avx512bw+vpclmul или neon+pmull.