> For the complete documentation index, see [llms.txt](https://docs.mazze.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mazze.io/architecture/node-types-and-light-protocol.md).

# Node types and light protocol

Mazze supports multiple node types that trade storage for sync cost.

## Node types

* `Archive` - keeps full historical state and receipts.
* `Full` - keeps recent state and snapshots, prunes older history.
* `Light` - relies on witnesses/blame verification and remote state proofs.

The node type is encoded on the wire and affects sync preferences.

## Light protocol

The light protocol provides:

* Block/receipt proofs and witnesses for light clients.
* Peer type validation to avoid incompatible requests.

Light nodes are more conservative about which peers they accept and what data they trust, using the `blame` field and witness checks.

## Shielded data

Light nodes receive a block's shielded section with its transactions (`BlockTxsWithHash`) and check it against the full transactions root. They do not serve the `shielded_*` RPC.

## Key source files

* `crates/mazzecore/core/src/node_type.rs`
* `crates/mazzecore/core/src/light_protocol/handler/mod.rs`
* `crates/mazzecore/core/src/light_protocol/provider.rs`
* `crates/mazzecore/core/src/consensus/consensus_inner/blame_verifier.rs`
