The published line delivered the anchor (source and patch 0003) but had lost the chain configuration: no genesis, no run recipe. The unpublished local line had genesis.json, RUN-A-NODE.md and the measured claims, but predated the anchor. This commit carries the package files onto the anchor line: - genesis.json restored, byte for byte as the running nodes hold it - RUN-A-NODE.md restored; the basefee-floor patch returns as 0004; the anchor section states plainly that a build without patch 0003 has not been shown to import headers past block 13,014,000, and that an import proof for a patches-only build is the next thing this repository owes its reader - bootnodes are deliberately NOT published: today's entry points are consensus or origin hosts, and this project does not print its machines' addresses; a dedicated bootnode host is the planned replacement, an enode is available by mail until then
85 lines
6.1 KiB
Markdown
85 lines
6.1 KiB
Markdown
# Licensing
|
|
|
|
Default for this repository: **Apache License 2.0**, `Copyright 2026 AERE Network`. See `LICENSE`
|
|
and `NOTICE`.
|
|
|
|
This repository is the one Aere Network repository that is not MIT, and the reason is not style.
|
|
It contains code derived from Hyperledger Besu, and Besu is Apache-2.0. A permissive licence on
|
|
top of Apache-2.0 material is not a free choice: Apache-2.0 section 4 sets conditions on anyone who
|
|
redistributes, and those conditions are what this page records.
|
|
|
|
Where a file has its own `SPDX-License-Identifier`, **that header governs.** Every source file in
|
|
this repository carries one, and every one of them says `Apache-2.0`.
|
|
|
|
## Who wrote what, as measured
|
|
|
|
Read from the copyright line of every file under `precompiles/`.
|
|
|
|
| File | Copyright header | Origin |
|
|
| --- | --- | --- |
|
|
| `precompiles/Address.java` | `Copyright contributors to Hyperledger Besu.` | upstream, **modified by Aere Network** |
|
|
| `precompiles/MainnetPrecompiledContracts.java` | `Copyright contributors to Hyperledger Besu.` | upstream, **modified by Aere Network** |
|
|
| `precompiles/AereFalconSupport.java` | `Copyright contributors to the AERE Network.` | new, Aere Network |
|
|
| `precompiles/Falcon512PrecompiledContract.java` | `Copyright contributors to the AERE Network.` | new, Aere Network |
|
|
| `precompiles/Falcon1024PrecompiledContract.java` | `Copyright contributors to the AERE Network.` | new, Aere Network |
|
|
| `precompiles/MLDSA44PrecompiledContract.java` | `Copyright contributors to the AERE Network.` | new, Aere Network |
|
|
| `precompiles/SLHDSA128sPrecompiledContract.java` | `Copyright contributors to the AERE Network.` | new, Aere Network |
|
|
| `precompiles/SHAKE256PrecompiledContract.java` | `Copyright contributors to the AERE Network.` | new, Aere Network |
|
|
| `precompiles/MLKEM768PrecompiledContract.java` | `Copyright contributors to the AERE Network.` | new, Aere Network |
|
|
| `precompiles/HashToPointPrecompiledContract.java` | `Copyright contributors to the AERE Network.` | new, Aere Network |
|
|
|
|
Two upstream files, eight new ones. The diffs under `patches/` apply against upstream Besu commit
|
|
`d2032017bb3b8cb215a97303980a1e4a643f7180` and touch exactly those same two upstream files.
|
|
|
|
The eight new files are Aere Network's copyright and are still Apache-2.0 rather than MIT. They are
|
|
written to compile inside a Besu tree and they live in Besu's own package namespace,
|
|
`org.hyperledger.besu.evm.precompile` and `org.hyperledger.besu.datatypes`. Licensing them to match
|
|
the tree they are built for is what makes them usable where they are meant to be used.
|
|
|
|
## How this repository meets Apache-2.0 section 4
|
|
|
|
| Condition | Where it is met |
|
|
| --- | --- |
|
|
| **4(a)** give recipients a copy of the License | `LICENSE`, the full Apache-2.0 text |
|
|
| **4(b)** modified files carry prominent notices stating you changed them | a `Modifications Copyright 2026 Aere Network` block at the top of `precompiles/Address.java` and `precompiles/MainnetPrecompiledContracts.java`, naming what was changed and against which upstream commit. The same block is inside the diff bodies under `patches/`, so a tree with the patches applied carries it too. The two files are also named in `NOTICE` and in the patch commit messages |
|
|
| **4(c)** retain all copyright, patent, trademark and attribution notices from the source | `Address.java` and `MainnetPrecompiledContracts.java` keep their upstream `Copyright contributors to Hyperledger Besu.` headers unchanged |
|
|
| **4(d)** carry a readable copy of the upstream `NOTICE` attributions | `NOTICE`, which reproduces Besu's `NOTICE` in full, including the Tuweni and Apache Software Foundation attributions it in turn carries |
|
|
|
|
### Where the 4(b) notice lives, and a wrong turn we took first
|
|
|
|
The notice is a `Modifications Copyright` comment block at the top of each of the two modified files,
|
|
placed below the upstream copyright header and above the `package` declaration. The upstream header
|
|
itself is untouched, because 4(c) requires that; 4(b) is satisfied by the separate block underneath.
|
|
This is the shape OpenSearch uses on the Elasticsearch files it inherited, and it is the shape a
|
|
reader looking at a single copied file will actually see.
|
|
|
|
An earlier version of this page argued that the notice had to live in the patch commit message
|
|
instead, because putting it in the file would break the claim that `precompiles/` is byte-identical
|
|
to what the patches install. That argument was wrong, and it was wrong in an avoidable way: it
|
|
treated the patch as fixed. Put the notice **inside the diff body** and both properties hold at once.
|
|
The patch installs a file that already carries the notice, and `precompiles/` still matches it byte
|
|
for byte. There was never a trade to make.
|
|
|
|
The patch commit messages still describe the change, which is useful under `git am`, but nothing now
|
|
depends on the reader using `git am` rather than `git apply`.
|
|
|
|
## What is measured here
|
|
|
|
The byte-identity claim used to be recorded on this page as NOT MEASURED. It has now been measured,
|
|
on 2026-08-02, and the result is in `README.md` under "The patch": the base was confirmed against the
|
|
`index` pre-image hashes in patch `0001`, both patches applied at exit 0, all ten files that the
|
|
patches create or modify were compared against `precompiles/`, and the comparison found one real
|
|
mismatch. `Address.java` and `MainnetPrecompiledContracts.java` after **both** patches are not what
|
|
this repository ships; this repository ships them at the `0001` state, because `0x0ae6` and `0x0ae7`
|
|
are testnet-only. That is deliberate, and `README.md` now says so instead of claiming otherwise.
|
|
|
|
Still **NOT MEASURED**: whether the sources in `precompiles/` are the sources that built the binary
|
|
currently running on the validators. Nothing on this page or in `README.md` asserts a hash for that.
|
|
|
|
## Aere Network's other repositories
|
|
|
|
The rest of Aere Network's public code is MIT. This repository is Apache-2.0 because of what is in
|
|
it, not because of a different policy. If you are copying an Aere Network component and want to know
|
|
which licence applies, read the `LICENSE` file of the repository you are copying from, and the
|
|
`SPDX-License-Identifier` header of the file you are copying, which wins over both.
|