10 Multi-Paxos 与复制状态机:验证记录 日期2026-09-19;Go1.27.0 darwin/arm64。范围仅本篇正文/素材、multipaxos10目录及research/10-multipaxos.md。 未提交、推送、部署或全站构建;父代理负责集成。 正文流程:blog-editor入口;临时稿/tmp/multipaxos10-draft.md;父独立全文审阅通过。 最终anti-ai-tone tech:0错误0提醒;其后anti-persona-fabrication词项0命中,并人工检查十类症状/三红线;随后落盘source。150行,约3800汉字。09 post_link目标、同名素材目录、系列封面已核存在。 父独立primary核验:PMMC2015 R1–R5/perform、A2、pmax与归纳;PMS§3;MadeLive§5.2;1704.00082v4§6.2归因均与正文一致。 运行目录:examples/distributed-systems 最终代码 GOCACHE=/private/tmp/ds-go-cache go run -race ./multipaxos10 exit0;本记录末尾保存全部实际输出。准备阶段标签已修复为A/B/C,不再重复A前缀。 此前同逻辑代码GOCACHE=/private/tmp/ds-go-cache go vet ./multipaxos10 exit0;只有日志标签修改,没有协议/执行代码变更。 父代理独立普通go run及vet exit0,输出/private/tmp/ds10-parent-run.txt(其时标签尚未修改);不得当成父执行了最终代码。 普通go run -help曾exit0,显示all/normal/mutations用法。 保留的环境失败:较早被主动中断的一次运行会话无法找回结果,未算成功。普通go run -scenario unknown和位置参数出现signal:killed;一次go build -race到/private/tmp/ds10-child-check exit0,但随后unknown/位置参数/help运行均exit137,无程序输出。最终标签修改后的普通normal运行也曾signal:killed。 这些失败不能冒认为程序预期exit2;原因未定位,不继续循环排障。源码检查显示未知scenario及位置参数调用os.Exit(2),但当前没有相应动态退出码证据。 后续一次最终race重新运行成功,见以下完整日志,覆盖正常与所有变异。 验收含义:正常轨迹同一日志重放后x=50、游标5、去重缓存及执行次数相同;a#2首次结果5,重试不修改状态。四变异检测到同槽历史chosen冲突、到达顺序x=5、无去重x=53、未复制输入导致1050/2050/3050。变异DETECTED后exit0是成功捕获反例,不是变异协议安全。 历史票证按distinct acceptor计数;重复票/回复不会形成多数,旧轮scout与错槽commander回复被排除;不足quorum不会learned。 边界:五槽单进程内存调度,无真实消息队列/网络/磁盘/重传/选举计时器/重配置/快照/持久化;不是通用协议实现或无界模型检查。没有日志读实现。旧主读只断言两副本状态2和50,写完成后才读取的实时关系由正文场景指定。未验证实际客户端历史、外部业务副作用或无界活性;最低Go1.23未运行。 全站npm run build与渲染链接由父代理最终验收。 最终main.go SHA256: 2246047f2ff57b70f9d7c3705a698d8c8380e2a78ba1860364fcde4ae59a73a1 实际输出: p1 A requested=1 adopted=1 accepted=[] p1 B requested=1 adopted=1 accepted=[] p1 C requested=1 adopted=1 accepted=[] p2 A b=1 slot=1 command=a#1:set(2) acceptorBallot=1 accepted=true votes=1 p2 B b=1 slot=1 command=a#1:set(2) acceptorBallot=1 accepted=true votes=2 p2 B b=1 slot=3 command=a#2:add(3) acceptorBallot=1 accepted=true votes=1 p2 B b=1 slot=3 command=a#2:add(3) acceptorBallot=1 accepted=true votes=1 p2 B b=1 slot=4 command=b#1:mul(10) acceptorBallot=1 accepted=true votes=1 p2 C b=1 slot=4 command=b#1:mul(10) acceptorBallot=1 accepted=true votes=2 p1 B requested=2 adopted=2 accepted=[{1 1 a#1:set(2)} {1 3 a#2:add(3)} {1 4 b#1:mul(10)}] p1 C requested=2 adopted=2 accepted=[{1 4 b#1:mul(10)}] p2 B b=2 slot=1 command=a#1:set(2) acceptorBallot=2 accepted=true votes=1 p2 C b=2 slot=1 command=a#1:set(2) acceptorBallot=2 accepted=true votes=2 p2 B b=2 slot=2 command=#0:noop(0) acceptorBallot=2 accepted=true votes=1 p2 C b=2 slot=2 command=#0:noop(0) acceptorBallot=2 accepted=true votes=2 p2 B b=2 slot=3 command=a#2:add(3) acceptorBallot=2 accepted=true votes=1 p2 C b=2 slot=3 command=a#2:add(3) acceptorBallot=2 accepted=true votes=2 p2 B b=2 slot=4 command=b#1:mul(10) acceptorBallot=2 accepted=true votes=1 p2 C b=2 slot=4 command=b#1:mul(10) acceptorBallot=2 accepted=true votes=2 p2 A b=1 slot=3 command=a#2:add(3) acceptorBallot=1 accepted=true votes=2 p2 B b=1 slot=3 command=a#2:add(3) acceptorBallot=2 accepted=false votes=2 learn slot=4 applied=0 x=0 learn slot=1 applied=1 x=2 learn slot=3 applied=1 x=2 learn slot=2 applied=4 x=50 learn slot=2 applied=0 x=0 learn slot=4 applied=0 x=0 learn slot=1 applied=2 x=2 learn slot=3 applied=4 x=50 learn slot=3 applied=0 x=0 learn slot=2 applied=0 x=0 learn slot=1 applied=3 x=5 learn slot=4 applied=4 x=50 p2 B b=2 slot=5 command=a#2:add(3) acceptorBallot=2 accepted=true votes=1 p2 C b=2 slot=5 command=a#2:add(3) acceptorBallot=2 accepted=true votes=2 learn slot=5 applied=5 x=50 learn slot=5 applied=5 x=50 learn slot=5 applied=5 x=50 learn slot=1 applied=1 x=2 learn slot=2 applied=2 x=2 learn slot=3 applied=3 x=5 learn slot=4 applied=4 x=50 learn slot=5 applied=5 x=50 learn slot=1 applied=1 x=2 PASS normal: five slots replay identically; x=50; retry a#2 cached=5; stale local read=2 p1 A requested=1 adopted=1 accepted=[] p1 B requested=1 adopted=1 accepted=[] p1 C requested=1 adopted=1 accepted=[] p2 A b=1 slot=1 command=a#1:set(2) acceptorBallot=1 accepted=true votes=1 p2 B b=1 slot=1 command=a#1:set(2) acceptorBallot=1 accepted=true votes=2 p2 B b=1 slot=3 command=a#2:add(3) acceptorBallot=1 accepted=true votes=1 p2 B b=1 slot=3 command=a#2:add(3) acceptorBallot=1 accepted=true votes=1 p2 B b=1 slot=4 command=b#1:mul(10) acceptorBallot=1 accepted=true votes=1 p2 C b=1 slot=4 command=b#1:mul(10) acceptorBallot=1 accepted=true votes=2 p1 B requested=2 adopted=2 accepted=[{1 1 a#1:set(2)} {1 3 a#2:add(3)} {1 4 b#1:mul(10)}] p1 C requested=2 adopted=2 accepted=[{1 4 b#1:mul(10)}] p2 B b=2 slot=1 command=a#1:set(2) acceptorBallot=2 accepted=true votes=1 p2 C b=2 slot=1 command=a#1:set(2) acceptorBallot=2 accepted=true votes=2 p2 B b=2 slot=2 command=#0:noop(0) acceptorBallot=2 accepted=true votes=1 p2 C b=2 slot=2 command=#0:noop(0) acceptorBallot=2 accepted=true votes=2 p2 B b=2 slot=3 command=#0:noop(0) acceptorBallot=2 accepted=true votes=1 p2 C b=2 slot=3 command=#0:noop(0) acceptorBallot=2 accepted=true votes=2 p2 B b=2 slot=4 command=b#1:mul(10) acceptorBallot=2 accepted=true votes=1 p2 C b=2 slot=4 command=b#1:mul(10) acceptorBallot=2 accepted=true votes=2 p2 A b=1 slot=3 command=a#2:add(3) acceptorBallot=1 accepted=true votes=2 p2 B b=1 slot=3 command=a#2:add(3) acceptorBallot=2 accepted=false votes=2 DETECTED recovery: slot3 chosen noop at ballot2 AND add3 at ballot1 DETECTED arrival-order: prefix hole and x=5 instead of50 learn slot=1 applied=1 x=2 learn slot=2 applied=2 x=2 learn slot=3 applied=3 x=5 learn slot=4 applied=4 x=50 learn slot=5 applied=5 x=53 DETECTED retry: x=53 and a#2 execution count=2 learn slot=1 applied=1 x=2 learn slot=2 applied=2 x=2 learn slot=3 applied=3 x=105 learn slot=4 applied=4 x=1050 learn slot=5 applied=5 x=1050 learn slot=1 applied=1 x=2 learn slot=2 applied=2 x=2 learn slot=3 applied=3 x=205 learn slot=4 applied=4 x=2050 learn slot=5 applied=5 x=2050 learn slot=1 applied=1 x=2 learn slot=2 applied=2 x=2 learn slot=3 applied=3 x=305 learn slot=4 applied=4 x=3050 learn slot=5 applied=5 x=3050 DETECTED nondeterminism: same log, unreplicated local inputs, states=[1050 2050 3050] 三图补充:已读blog-illustrator,配置mermaid enable=true,已有文章使用同种fenced代码块。增加3张Mermaid(替换原ASCII时间线),临时稿依次tone 0错0提醒、persona词项0与人工检查后落盘。仅源语法/模型数值静态核对,浏览器渲染由父集成验收。父本轮最终代码race exit0,日志/private/tmp/ds10-parent-final-race.txt;此确认由父提供。本轮未改代码、未build/commit/push。