Skip to content

R3-3 hardware: three dies, three operators, one verifier nonce #7669

Closed

Description

@gHashTag

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.

Activity

  1. gHashTag commented on Oct 8, 2026

    @gHashTag
    OwnerAuthor

    Die A is in; the tree is ready for B and C.

    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.

    🤖 Generated with Claude Code

  2. gHashTag commented on Oct 8, 2026

    @gHashTag
    OwnerAuthor

    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;
    • SRAM only, seed 42, nonce e61798b78cbb6b287b8ff8523cea71a6, t27c 0.5.1 (579bc55aa);
    • after the run: usbipd unbind and tailscale logout;
    • the full output is reported in this issue.

    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.

  3. dmitrii-f-t27 commented on Oct 8, 2026

    @dmitrii-f-t27
    Contributor

    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.

  4. dmitrii-f-t27 commented on Oct 8, 2026

    @dmitrii-f-t27
    Contributor

    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.

  5. gHashTag commented on Oct 9, 2026

    @gHashTag
    OwnerAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions