FMBINv2 Status
Status: implemented
Summary#
FMBINv2 adds internal checkpoint payload verification to GLYPH FM artifacts.
Before FMBINv2:
- FM artifact had magic/version marker
- checkpoint payload corruption could pass header checks
After FMBINv2:
- FM artifact uses magic
FMBINv2\0 - checkpoint payload byte size is stored
- checkpoint payload FNV-1a 64-bit checksum is stored
- FM readers verify payload size and checksum before query
Updated components#
src/build_fm.cppsrc/query_fm_v1.cppsrc/query_fm_server_v1.cppsrc/query_fm_batch_v1.cpp
Manual corruption test#
Procedure:
cp examples/mini/out/fm.bin /tmp/fm_corrupt.bin
printf '\xFF' | dd of=/tmp/fm_corrupt.bin bs=1 seek=4096 count=1 conv=notrunc
./build/query_fm_v1 /tmp/fm_corrupt.bin examples/mini/out/bwt.bin 6572726f72
Expected result:
ERROR: fm checkpoint checksum mismatch
Observed result:
ERROR: fm checkpoint checksum mismatch
Meaning#
FMBINv2 converts FM checkpoint corruption from silent risk into fail-fast artifact rejection.
This strengthens Tier 3 strict verification prerequisites.