Provenance and clean roomalpha
What is moxzi derived from — and does any of it touch the IC's restricted source?
Short answer: no code from the Internet Computer node software (dfinity/ic) is copied, ported, paraphrased, linked, or shipped anywhere in moxzi. Parts of that repository are under the Internet Computer Community Source License, whose grants extend only to software running directly on the IC — so an alternate runtime must not derive from them, and this one does not. The full audit, with its four re-runnable checks, ships in every release archive as docs/PROVENANCE.md, alongside the attribution notices in NOTICE; this page is its summary.
What derives from what#
| Component | Derived from | Basis |
|---|---|---|
| The compiler | a deliberate, attributed port of dfinity/motoko's moc (Apache-2.0) — faithful to byte-identical output | Apache-2.0 with attribution |
| The RTS blobs the linker embeds | compiled unchanged from dfinity/motoko's rts/ | Apache-2.0 with attribution |
The runtimes (moxzid, moxzi-web, the native host) | the published interface specification plus black-box measurement of real replica behavior | independent implementation |
| The durability layer | designed here (snapshot + write-ahead log); resembles nothing in dfinity/ic | original |
| Candid / agent libraries | DFINITY's separate Apache-2.0 repos (candid, agent-rs, agent-js) — not dfinity/ic | Apache-2.0 dependencies |
| Execution engine | wasmtime, unmodified | Apache-2.0 w/ LLVM-exception |
| Crypto | RustCrypto (k256, ed25519-dalek) — not DFINITY's crypto libraries | MIT/Apache-2.0 |
No crate from dfinity/ic appears in the dependency tree. PocketIC and drun are used as opaque test oracles — run, observed, compared against — and are never linked into or shipped with anything.
Some things are deliberately absent because their only authoritative expression is restricted code: consensus, certification trees (ic0.data_certificate_present is 0 off-chain, by design), threshold BLS, and the IC's state layout.
What the words mean here#
The documentation borrows the IC ecosystem's vocabulary. Precisely:
- "The replica" always names the Internet Computer's node software — an external system moxzi is compatible with and tested against. moxzid is not a replica and contains no replica code. "The replica would refuse this" is a statement about the IC, made from observation.
- "The management canister" names an interface from the interface specification — the virtual canister
aaaaa-aaand its methods. moxzi's runtimes answer that interface through their own implementation, written from the spec. Saying moxzid "has a management canister" means it implements the interface; the code is ours. - "IC semantics" means behavior matching the published spec and the platform's observed behavior — implemented independently, and held to it by the differential gates on the corpus page.
The standing rules#
- Nobody working on the runtimes reads
dfinity/icsource; behavior questions are settled by the spec or by measurement, and the measurement is documented. - Porting from
dfinity/motoko(Apache-2.0) is allowed and attributed. Porting fromdfinity/icis not — any directory, no exceptions. - Every DFINITY-derived artifact that ships is listed in
NOTICE, which ships too. - IC-ecosystem dependencies come only from the Apache-2.0 repos.
Next#
- Language support status — what the independent implementation is measured against.
- Known differences — where moxzi and the IC deliberately diverge.