Conversation
The directory half of the Anyone transport: authority certificates, the microdescriptor consensus, quorum verification against the certs held, path selection under the bandwidth weights and the network rule, and the ntor handshake and cell layer the link will carry. The consensus is hashed inside the capsule. The kernel's crypto_hash refuses anything over a megabyte and a microdescriptor consensus signs about 1.7 MB, so every consensus fetched failed its digest with errno 22 and was discarded as unverifiable over a transport that was working. The capsule is built but not spawned: nonos-capsule-net-anon is declared and left out of every feature bundle, because the link stage does not complete yet and a transport that cannot finish a connection should not be started.
Every module under a #[path] is the file the capsule compiles, not a copy. Values come from the network's reference implementation and from the cipher and hash standards. The live consensus test reads a document from a path in the environment and passes quietly when there is none: committed vectors pin field offsets and malformed shapes, but only a real document answers whether the parsers survive five thousand relays written by five thousand operators.
4105288 to
8e8ecdb
Compare
|
Reviewed at Verdict: Close in favour of #589. The work is not abandoned — it is already carried forward, and I checked that rather than assuming it from the titles. This branch's code is in #589, including the kernel wiringBoth PRs add
I also checked the eight files that exist here and not on #589, because "superseded" and "silently dropped" look identical from a file count:
Circuit construction and HTTP body handling both survive, split into smaller files. So closing this loses nothing. The one thing worth carrying across
and it fails on #589 ten days later with the byte-identical error. So this branch is where that gap starts, and it has been inherited rather than noticed. The cause is not in either diff. An exception rather than generating the vector in the build, since a checked-in CERTS cell is evidence of what a real one looked like — not an input the code under test should re-derive. Worth running The rest of the red is stale, not informative
That is the practical argument for closing rather than rebasing: a 347-commit rebase of a draft whose content already exists on a branch that is 90 behind and otherwise green is work with no product. Verified correct
What to doClose this and let #589 carry it, or — if there is something in the eight restructured files that #589's reorganisation lost and I have not spotted — say which, because the blob comparison says the rest is already there. |
|
Superseded. This work is integrated into the 0.9.2 release and ships in the current tree. Closing as part of the 0.9.2 consolidation. |
The directory half of the Anyone transport. Authority certificates, the microdescriptor consensus, quorum verification against the certs held, path selection under the bandwidth weights and the network rule, and the ntor handshake and cell layer the link will carry.
The consensus is hashed inside the capsule. The kernel's
crypto_hashrefuses anything over a megabyte and a microdescriptor consensus signs about 1.7 MB, so every consensus this client fetched failed its digest with errno 22 and was thrown away as unverifiable, over a transport that was working underneath it.The capsule is built but not spawned.
nonos-capsule-net-anonis declared and deliberately left out of all five feature bundles. The link stage does not complete yet, and a transport that cannot finish a connection should not be started at boot. Turning it on is one line, later.Draft, because it does not compile against main yet. It needs two things that are in flight:
nonos_tls::stream::connect_unauthenticatedandnonos_tls::alert_namenonos_aes, which the relay keystream usesThe two proof crates depend on neither and should run:
anon_ntor_proofspulls the capsule's own source in by#[path]rather than copying it, and takes its expected values from the network's reference implementation and from the cipher and hash standards. The live consensus test reads a document from a path in the environment and passes quietly when there is none, because committed vectors pin field offsets and malformed shapes but only a real document answers whether the parsers survive five thousand relays written by five thousand operators.I have marked it draft rather than leaving it unpushed: 14,000 lines living on one disk was the larger risk.