RFTSystems commited on
Commit
efca6e6
·
verified ·
1 Parent(s): 361d72c

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +28 -12
README.md CHANGED
@@ -18,6 +18,24 @@ It’s designed to be boringly audit-friendly: **canonical JSON hashing**, optio
18
 
19
  ---
20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  ## What this Space does
22
 
23
  ### ✅ Records a tamper-evident timeline
@@ -33,7 +51,6 @@ Each action becomes an **event** (one JSON object per line) written to `flightlo
33
  - `note`
34
 
35
  Every event includes:
36
-
37
  - `seq` (monotonic step number)
38
  - `ts_utc` (UTC timestamp)
39
  - `prev_event_hash_sha256` (links to previous event)
@@ -43,17 +60,16 @@ Every event includes:
43
  If any event is edited, removed, or reordered, verification fails.
44
 
45
  ### ✅ Concurrency-safe writes (public Space reality)
46
- Multiple users can click around at the same time. The log is protected with a **file lock** so “two tabs / two users” don’t corrupt the chain.
47
 
48
  ### ✅ Refuses writes after finalisation
49
- Once a session records `session_end`, the recorder **refuses any further writes** to that session. No silent post-hoc edits”.
50
 
51
  ### ✅ Verifies sessions end-to-end
52
- The verifier recomputes hashes and confirms the chain is intact. Optionally, it can require a valid signature on every event (only enable this if you signed every event).
53
 
54
  ### ✅ Exports proof bundles
55
  Exports `rft_flight_bundle_<session_id>.zip` containing:
56
-
57
  - `<session_id>_events.jsonl` (the full session timeline)
58
  - `<session_id>_verify_report.txt` (human-readable verification report)
59
 
@@ -62,11 +78,10 @@ Upload a bundle and verify it locally. Optionally store PASSed events into your
62
 
63
  ---
64
 
65
- ## How to use (step-by-step)
66
 
67
  ### 1) Generate keys (optional)
68
  Go to **Keys** → **Generate Keypair**.
69
-
70
  - **Private key** signs events (keep it private).
71
  - **Public key** verifies signatures (safe to share).
72
 
@@ -95,8 +110,8 @@ Enable **Require signatures** only if you signed every event you expect to verif
95
 
96
  ### 6) Finalise + Export
97
  Go to **Finalise + Export**:
98
- - **Finalise session** appends `session_end` with a **session anchor**.
99
- - **Export session bundle** produces the ZIP proof bundle.
100
 
101
  ### 7) Import bundle (third-party verification)
102
  Go to **Import Bundle**, upload `rft_flight_bundle_*.zip`, and verify.
@@ -124,6 +139,7 @@ If you want to retain verified sessions, tick **Store imported events** (only st
124
  Session anchor (what finalisation commits to)
125
 
126
  Finalisation creates an anchor that describes the pre-end chain (so it doesn’t depend on itself):
 
127
  {
128
  "spec": "rft-flight-session-root-v0",
129
  "session_id": "…",
@@ -133,6 +149,7 @@ Finalisation creates an anchor that describes the pre-end chain (so it doesn’t
133
  "root_hash_sha256": "…",
134
  "signature_ed25519": "…"
135
  }
 
136
  Brutal tests (included)
137
 
138
  This repo includes brutal_test.py with two hard tests:
@@ -145,6 +162,7 @@ Run locally:
145
 
146
  python brutal_test.py
147
 
 
148
  Expected:
149
 
150
  both tests PASS
@@ -169,7 +187,5 @@ brutal_test.py — stress + tamper tests
169
 
170
  flightlog.jsonl — append-only log (created at runtime)
171
 
172
- licence
173
-
174
- ::contentReference[oaicite:0]{index=0}
175
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
18
 
19
  ---
20
 
21
+ ## Quickstart (recommended)
22
+
23
+ If you don’t want to guess what to click:
24
+
25
+ 1. Open **Quickstart (1-click)**
26
+ 2. (Optional) tick **Sign everything (Ed25519) + generate fresh keys**
27
+ 3. Click **Run Quickstart Demo Now**
28
+
29
+ That will automatically:
30
+ - start a session
31
+ - append a realistic event sequence
32
+ - verify the chain
33
+ - finalise the session (creates an anchor)
34
+ - export a ZIP proof bundle
35
+ - fan out the `session_id` into the other tabs so you can immediately inspect Timeline / Verify / Export
36
+
37
+ ---
38
+
39
  ## What this Space does
40
 
41
  ### ✅ Records a tamper-evident timeline
 
51
  - `note`
52
 
53
  Every event includes:
 
54
  - `seq` (monotonic step number)
55
  - `ts_utc` (UTC timestamp)
56
  - `prev_event_hash_sha256` (links to previous event)
 
60
  If any event is edited, removed, or reordered, verification fails.
61
 
62
  ### ✅ Concurrency-safe writes (public Space reality)
63
+ Multiple users can click around at the same time. The log uses a **file lock** so “two tabs / two users” don’t corrupt the chain.
64
 
65
  ### ✅ Refuses writes after finalisation
66
+ Once a session records `session_end`, the recorder **refuses any further writes** to that session. No silent post-hoc edits.
67
 
68
  ### ✅ Verifies sessions end-to-end
69
+ The verifier recomputes hashes and confirms the chain is intact. Optionally, it can require a valid signature on every event.
70
 
71
  ### ✅ Exports proof bundles
72
  Exports `rft_flight_bundle_<session_id>.zip` containing:
 
73
  - `<session_id>_events.jsonl` (the full session timeline)
74
  - `<session_id>_verify_report.txt` (human-readable verification report)
75
 
 
78
 
79
  ---
80
 
81
+ ## Manual use (step-by-step)
82
 
83
  ### 1) Generate keys (optional)
84
  Go to **Keys** → **Generate Keypair**.
 
85
  - **Private key** signs events (keep it private).
86
  - **Public key** verifies signatures (safe to share).
87
 
 
110
 
111
  ### 6) Finalise + Export
112
  Go to **Finalise + Export**:
113
+ - **Finalise session** appends `session_end` with a **session anchor**
114
+ - **Export session bundle** produces the ZIP proof bundle
115
 
116
  ### 7) Import bundle (third-party verification)
117
  Go to **Import Bundle**, upload `rft_flight_bundle_*.zip`, and verify.
 
139
  Session anchor (what finalisation commits to)
140
 
141
  Finalisation creates an anchor that describes the pre-end chain (so it doesn’t depend on itself):
142
+
143
  {
144
  "spec": "rft-flight-session-root-v0",
145
  "session_id": "…",
 
149
  "root_hash_sha256": "…",
150
  "signature_ed25519": "…"
151
  }
152
+
153
  Brutal tests (included)
154
 
155
  This repo includes brutal_test.py with two hard tests:
 
162
 
163
  python brutal_test.py
164
 
165
+
166
  Expected:
167
 
168
  both tests PASS
 
187
 
188
  flightlog.jsonl — append-only log (created at runtime)
189
 
190
+ LICENCE — licence file
 
 
191
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference