# 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.

## 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`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mazze.io/architecture/node-types-and-light-protocol.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
