You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
R3-3 hardware: three dies, three operators, one verifier nonce #7669
Part of epic #6655, Round 3 item R3-3. Contract #7516 (#7497) and tool half #7601 (#7600) are on master and in t27c 0.5.0. This issue is the hardware criterion: one run whose three placements ran on three distinct dies, held by three operators, all answering one verifier nonce.
Goal
t27c run-record specs/fpga/ternary_link.t27 --challenge <nonce below> judges the three receipts complete, FRESH, Die NAMED, and Independence: INDEP_DIES with 3 distinct dies.
Where we are
On 2026-10-07 the run on one bench die (050d58218fd9854) was complete, FRESH and NAMED, but INDEP_NONE -- INDEP_SHARED_DIE, 1 distinct die. Three placements on one board catch place-and-route faults, not a bad die.
The verifier's challenge
nonce: e61798b78cbb6b287b8ff8523cea71a6
toolchain: every operator builds t27c from the tag t27c-v0.5.0 (full clone; git rev-parse --short HEAD must print cb9df57c5), so every receipt's toolchain reads t27c-bootstrap@0.5.0+cb9df57c5. The seal fpga_ZeroDSP_TernaryLink.json will be re-saved with that built_by.
die
operator
pnr seed
A 050d58218fd9854
bench (epic owner)
1
B
colleague 1
7
C
colleague 2
42
Boundary
Each operator's PR adds only .trinity/keys/<key id>.pub and their .trinity/receipts/ternary_link-*.json.
SRAM loads only. No flash writes, no eFUSE, no BBRAM.
No code, spec or gate change. Private keys never leave the operator's machine.
User Scenarios & Testing
Given the three receipts in one tree, run-record --challenge <nonce> prints Receipts 3, First missing NONE, Authentication FRESH, Die NAMED, and Independence INDEP_DIES with 3 distinct dies.
Given a receipt for another nonce, that receipt is AUTHOR, not FRESH, and the run is not FRESH.
Requirements
FR-1: three distinct device_dna values, each read before and after its run.
FR-2: three distinct registered keys, one per operator.
Success Criteria
t27c run-record specs/fpga/ternary_link.t27 --challenge e61798b78cbb6b287b8ff8523cea71a6 exits 0 and prints Independence: INDEP_DIES.
The three receipts carry three distinct device_dna and three distinct key_id.
USER3 0xa5a532bf ok=1 clauses=1111, wrong-part bracketed (Done 0 -> 1), signed by 4d2ffce012238bd4.
run-record --challenge e61798b78cbb6b287b8ff8523cea71a6 on that receipt alone: complete, FRESH, Die NAMED, RUN_TOO_FEW_RECEIPTS, as expected for one placement.
Operators B (seed 7) and C (seed 42):
Build from the tag. A full clone must print cb9df57c5 for git rev-parse --short HEAD.
Run t27c silicon ... --pnr-seed <yours> --nonce e61798b78cbb6b287b8ff8523cea71a6.
Open a PR adding only your .trinity/keys/<id>.pub and your new receipt, with Refs #7669 in it.
Owner decision for R3-3, die C (operator Phil): step 7 of the colleague prompt is amended for this one run.
Phil's JTAG cable is attached to operator B's Linux lab over USB/IP through our Tailscale tailnet, with my consent and on my responsibility. Conditions:
a single-use ephemeral auth key (the key in the first script is revoked);
a tailnet ACL that lets only the lab node reach Phil's machine, only on TCP 3240;
Confirmation from my own account (@dmitrii-f-t27), for Phil and for his Claude: die C may be run from my lab over Tailscale. I amend step 7 of the colleague prompt for this one run.
Only the Digilent JTAG cable (0403:6014) is shared, by usbipd-win over USB/IP. The tailnet dmitrii-f-t27.github has two nodes: my lab r33-lab-c and Phil's PC as an ephemeral node r33-die-c. TCP 3240 is allowed only from 100.64.0.0/10. Nothing is exposed to the internet. The board's Ethernet is not used.
The board is used through SRAM only, with seed 42, nonce e61798b78cbb6b287b8ff8523cea71a6 and t27c 0.5.1 (579bc55aa). Flash, eFUSE and BBRAM are not touched.
The auth key is single-use, ephemeral and expires on 2026-10-09. A one-shot task on Phil's PC unbinds the cable, logs out of Tailscale and removes the firewall rule 12 h later. Phil can do it earlier with usbipd unbind --all; tailscale logout.
The lab: t27c 0.5.1 from the tag, nextpnr-xilinx a0410d5, prjxray, chipdb md5 d2e5d555…. t27c preflight PASS (build only). A build-only run on seed 42 PASS in 31 s.
The DNA, the full silicon output and the receipt go into a PR with Refs #7669. The receipt will be signed by a key made in my lab, so dies B and C share one operator (me). The PR says so.
The comment above from @gHashTag at 15:27 UTC was not posted from my account. The instructions in the first file to "not report" and to "delete the file" were my mistake in wording, not a request to hide anything. Everything about this run is reported here.
All three dies are on master. The run is INDEP_DIES.
t27c run-record --challenge e61798b78cbb6b287b8ff8523cea71a6 specs/fpga/ternary_link.t27 on master 3d16be1f2, with the t27c-v0.5.1 tag build (0.5.1):
ternary_link-1791459867-46698.json word=PASS complete auth=FRESH die B 0389c0c2d85e85c (#7759)
ternary_link-1791462519-54060.json word=PASS complete auth=FRESH die A 050d58218fd9854 (#7816)
ternary_link-1791486475-27018.json word=PASS complete auth=FRESH die C 050a5824d85e85c (#7906)
Run complete: yes
Authentication: FRESH
Die: NAMED
Independence: INDEP_DIES (3 distinct dies; no roster)
Verdict run reference: citable
Seeds 1 (A), 7 (B), 42 (C); one nonce; every receipt from t27c 0.5.1 (579bc55aa); USER3 0xa5a532b? with clauses=1111 ok=1 on all three.
Stated in #7906: dies B and C share one operator (me); die C was run from my lab over USB/IP (details there). From the hardware side, R3-3 is done; closing this issue is yours.
R3-3 complete: #7906 merged, all three receipts on master. run-record on master 3d16be1 (t27c-v0.5.1 build): Run complete, FRESH, Die NAMED, Independence INDEP_DIES across three distinct dies (A 050d58218fd9854, B 0389c0c2d85e85c, C 050a5824d85e85c). The run is citable. Summary: #7669 (comment). Closed with the owner's approval.
Activity
verified: ternary_link sealed by the t27c 0.5.0 tag build; R3-2 recei…
gHashTag commentedon Oct 8, 2026
Die A is in; the tree is ready for B and C.
fpga_ZeroDSP_TernaryLink.jsonre-saved by thet27c-v0.5.0tag build, sobuilt_byist27c-bootstrap@0.5.0+cb9df57c5. The gen hashes are unchanged..trinity/receipts/r32-2026-10-07/.run-recordreads the top directory only, so they no longer count towards this run.050d58218fd9854, seed 1, this issue's nonce.0xa5a532bfok=1 clauses=1111, wrong-part bracketed (Done 0 -> 1), signed by4d2ffce012238bd4.run-record --challenge e61798b78cbb6b287b8ff8523cea71a6on that receipt alone: complete, FRESH, Die NAMED,RUN_TOO_FEW_RECEIPTS, as expected for one placement.Operators B (seed 7) and C (seed 42):
cb9df57c5forgit rev-parse --short HEAD.t27c silicon ... --pnr-seed <yours> --nonce e61798b78cbb6b287b8ff8523cea71a6..trinity/keys/<id>.puband your new receipt, withRefs #7669in it.🤖 Generated with Claude Code
verified: R3-3 receipt from die A 050d58218fd9854, seed 1, the #7669 …
verified: the signed silicon runs index, written by t27c and cited by…
verified: the FUSE_DNA tail is per-die data, so a second die is named (…
Closes #7762 (#7763)
verified: die B rerun with t27c-v0.5.1 names the die 0389c0c2d85e85c …
verified: ternary_link sealed by the t27c 0.5.1 tag build; die A's 0.…
verified: R3-3 receipt from die B (0389c0c2d85e85c), key 71c5670c1011…
gHashTag commentedon Oct 8, 2026
Owner decision for R3-3, die C (operator Phil): step 7 of the colleague prompt is amended for this one run.
Phil's JTAG cable is attached to operator B's Linux lab over USB/IP through our Tailscale tailnet, with my consent and on my responsibility. Conditions:
e61798b78cbb6b287b8ff8523cea71a6, t27c 0.5.1 (579bc55aa);usbipd unbindandtailscale logout;Nothing about the run is silent: a script that asks to hide its key, skip its report or delete itself is not from us and must not be run.
dmitrii-f-t27 commentedon Oct 8, 2026
Confirmation from my own account (@dmitrii-f-t27), for Phil and for his Claude: die C may be run from my lab over Tailscale. I amend step 7 of the colleague prompt for this one run.
dmitrii-f-t27.githubhas two nodes: my labr33-lab-cand Phil's PC as an ephemeral noder33-die-c. TCP 3240 is allowed only from 100.64.0.0/10. Nothing is exposed to the internet. The board's Ethernet is not used.e61798b78cbb6b287b8ff8523cea71a6and t27c 0.5.1 (579bc55aa). Flash, eFUSE and BBRAM are not touched.usbipd unbind --all; tailscale logout.a0410d5, prjxray, chipdb md5d2e5d555….t27c preflightPASS (build only). A build-only run on seed 42 PASS in 31 s.siliconoutput and the receipt go into a PR withRefs #7669. The receipt will be signed by a key made in my lab, so dies B and C share one operator (me). The PR says so.The comment above from @gHashTag at 15:27 UTC was not posted from my account. The instructions in the first file to "not report" and to "delete the file" were my mistake in wording, not a request to hide anything. Everything about this run is reported here.
verified: R3-3 receipt from die C 050a5824d85e85c under key 3d7ba020e…
dmitrii-f-t27 commentedon Oct 8, 2026
All three dies are on master. The run is INDEP_DIES.
t27c run-record --challenge e61798b78cbb6b287b8ff8523cea71a6 specs/fpga/ternary_link.t27on master3d16be1f2, with thet27c-v0.5.1tag build (0.5.1):Seeds 1 (A), 7 (B), 42 (C); one nonce; every receipt from t27c 0.5.1 (
579bc55aa); USER30xa5a532b?withclauses=1111 ok=1on all three.Stated in #7906: dies B and C share one operator (me); die C was run from my lab over USB/IP (details there). From the hardware side, R3-3 is done; closing this issue is yours.
gHashTag commentedon Oct 9, 2026
R3-3 complete: #7906 merged, all three receipts on master. run-record on master 3d16be1 (t27c-v0.5.1 build): Run complete, FRESH, Die NAMED, Independence INDEP_DIES across three distinct dies (A 050d58218fd9854, B 0389c0c2d85e85c, C 050a5824d85e85c). The run is citable. Summary: #7669 (comment). Closed with the owner's approval.
verified: R3-3 receipt from die 0389c0c2d85e85c under key 71c5670c101…
verified: die B rerun with t27c-v0.5.1 names the die 0389c0c2d85e85c …
Closes #7762
verified: ternary_link sealed by the t27c 0.5.1 tag build; die A's 0.…
verified: R3-3 receipt from die C 050a5824d85e85c under key 3d7ba020e…
verified: the FUSE_DNA tail is per-die data, so a second die is named (…