Deliver the anchor as a patch as well as files
This repository argues, in its own README, that a patch against a named upstream commit is the honest way to publish a contribution to a million-line project: the diff is the contribution, the reader fetches the rest from upstream, and a patch fails loudly when upstream moves while a whole file overwrites in silence. The anchor was published as whole files only, which contradicted that argument. It is now both: patches/0003 to apply, anchor/ to read. Verified on a pristine d2032017 checkout rather than assumed: - git apply --check and git apply both returned 0 - the resulting tree is byte-identical to anchor/: 75 files compared, 0 differences - :consensus:common:test and :consensus:qbft:test returned 605 tests, 0 failures, the same count class by class as the same tree built from the files The README also said "no build file changes are required" in a place that now reads as if it covered all three patches. It covered the first two. Patch 0003 changes one build file by one line, and that line is named.
This commit is contained in:
parent
56a02656aa
commit
50290b47c8
12
README.md
12
README.md
@ -78,10 +78,18 @@ Both patches target upstream commit `d2032017bb3b8cb215a97303980a1e4a643f7180`,
|
||||
|---|---|---|
|
||||
| `patches/0001-aere-pqc-precompiles-mainnet.patch` | `0x0AE1` to `0x0AE5`, the five live on mainnet | pristine upstream `d2032017` |
|
||||
| `patches/0002-aere-pqc-precompiles-testnet.patch` | `0x0AE6` and `0x0AE7`, testnet only | the tree after 0001 |
|
||||
| `patches/0003-aere-pq-anchor.patch` | the post-quantum certificate anchor for QBFT | pristine upstream `d2032017` |
|
||||
|
||||
Between them they touch eight files: two upstream files modified (`Address.java` for the address
|
||||
Patch 0003 is a different kind of thing from the first two and is described in `anchor/README.md`.
|
||||
It changes twenty upstream files and adds fifty-five, and it changes one build file by one line.
|
||||
Verified 2026-08-11 on a pristine `d2032017` checkout: `git apply --check` and `git apply` both
|
||||
returned 0, the resulting files are byte-identical to the sources in `anchor/`, and
|
||||
`:consensus:common:test` plus `:consensus:qbft:test` returned 605 tests with 0 failures, the same
|
||||
count class by class as the same tree without it.
|
||||
|
||||
Patches 0001 and 0002 between them touch eight files: two upstream files modified (`Address.java` for the address
|
||||
constants, `MainnetPrecompiledContracts.java` for the registry wiring) and six new precompile
|
||||
classes plus one shared Falcon helper. **No build file changes are required.** Bouncy Castle
|
||||
classes plus one shared Falcon helper. **Those two require no build file changes.** Bouncy Castle
|
||||
`bcprov-jdk18on` 1.83 is already on the `evm` module's compile classpath as an `api` dependency of
|
||||
`crypto:algorithms`, and `jakarta.validation-api` is a global subproject dependency.
|
||||
|
||||
|
||||
@ -67,6 +67,12 @@ now pinned: change one byte of it and the digest no longer matches, and the head
|
||||
- tests — including the negative controls. A test that cannot fail is not a test, and several of
|
||||
these exist specifically to prove the guards can fail.
|
||||
|
||||
The same code is also delivered as `../patches/0003-aere-pq-anchor.patch`, generated against
|
||||
that commit. Applying the patch produces files byte-identical to the ones in this directory, which
|
||||
was checked rather than assumed: 75 files compared, 0 differences. Use the patch to build; read the
|
||||
files here to review. Whole files are convenient to read and dangerous to apply, and `BASE.txt`
|
||||
explains why.
|
||||
|
||||
`BASE.txt` names the upstream commit. Applying these files to any other tree overwrites whatever
|
||||
upstream added since, silently. That is stated there in more detail because it is a real hazard.
|
||||
|
||||
|
||||
25204
patches/0003-aere-pq-anchor.patch
Normal file
25204
patches/0003-aere-pq-anchor.patch
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user