Thesettlementlayerforthemachineeconomy.

Network

One binary, four node roles

LayerX node roles and operators

`layerxd` runs as sequencer, replica or guarantor, or follows an existing deployment as a relay and archive node.

You pick the role in one eight-line configuration file and validate it with --check-config before any listener starts. Every role writes the same append-only log with CRC32C checksums, so a node interrupted mid-write recovers by scanning its log tail and truncating the incomplete part. Run a relay and archive node and you pin the network id, genesis digest and sequencer key yourself, so the node refuses material that does not match.

What it does

layerxd is a single daemon whose configuration file selects one of three roles: sequencer, replica or guarantor. A fourth mode, --relay-archive, replaces the process with an installed Python runtime that follows an existing deployment of the LayerX domain, retains its complete canonical byte history, serves public reads and forwards users' original signed activities. Seven further command-line tools cover node control, receipt and replay verification, genesis, guarantor operation, sequencer handover, the module registry and the archive codec. Every role writes the same append-only log, so a node interrupted mid-write recovers by scanning its log tail and truncating the incomplete part.

Key capabilities

  • One configuration file selects the role; --check-config validates it without starting a listener.
  • Append-only log with CRC32C body checksums, nine record kinds and offset-chained records.
  • Crash recovery scans the log tail, truncates incomplete trailing writes and resumes.
  • Relay/archive operators serve full history and forward activities without ordering or executing them.
  • Independently pinned trust anchors let an archive node refuse a wrong network, genesis or sequencer.
  • Twenty named fault-injection points exercise durability boundaries across log, index and checkpoint writes.

Who it's for

Operators running a LayerX sequencer, replica, guarantor or public relay/archive node.

Why it matters

One binary and one small configuration file cover every node role, so an operator learns a single deployment shape instead of four. A relay/archive operator can publish history and accept submissions without being trusted by its users, because every byte it serves was verified against pins the operator obtained out of band.

Differentiators

The relay/archive role treats every synchronisation server as untrusted. The operator supplies the network id, the SHA-256 of the signed genesis manifest, the sequencer identifier and its Ed25519 public key, and optionally the first and last authorised batch; the node then refuses material that differs in network, genesis digest, sequencer identity, signature, batch number, predecessor, committed section root or canonical byte encoding. An upstream's GET /v1/sync/network document is discovery metadata, not a trust anchor, and the installer accepts no bearer token, API key or TLS private key. The role does not order activities, execute state transitions, hold a sequencer key or join a consensus or finality quorum; guarantors carry the bonded attestations and their threshold.

Outcomes

  • Learn one deployment shape instead of four separate node binaries.
  • Recover from an interrupted write by truncating the incomplete log tail.
  • Serve public history from pins you obtained out of band.

Technical notes

  • The configuration is exactly eight lines in fixed order, each under 128 bytes; an extra line is a trailing-bytes error, network_id must be non-zero, and serial_execution=true forbids non-zero worker counts.
  • Each worker pool caps at 16 threads, the admission queue holds 4096 activities, a batch carries at most 64, and the local socket path is limited to 108 bytes.
  • Recovery returns LXP_ERR_LOG_CORRUPT (-900) for a broken offset chain or sequence gap, LXP_ERR_LOG_TRUNCATED (-901) for an incomplete tail and LXP_ERR_IO (-904) for I/O failure.
  • Sequencer log paths, checkpoint directory, genesis manifest, socket permissions and keys come from LAYERX_NODE_* environment variables rather than the configuration file. Both --replica and --authority-replica require role=replica.
  • Relay/archive ships as operator documentation plus platform/relay_archive, not as a hosted service. The release is a nine-file flat bundle whose manifest.sha256 digest must arrive through an independent channel, and layerxd --relay-archive runs python3 on /opt/layerx/relay_archive/runtime.py unless LAYERX_RELAY_ARCHIVE_RUNTIME points elsewhere. Its POST /rpc serves nine methods and is not the hosted gateway's contract.
  • The tools have rough edges: layerxd takes exactly one flag and one path and offers no --help or --version, layerx-guarantor is configured only through LAYERX_GUARANTOR_* and LAYERX_NODE_* variables and shells out to Python, and layerx-genesis builds under the target name layerx-genesis-build.
role=sequencer
network_id=402
start_sequence=0
verify_workers=4
network_workers=2
projection_workers=2
checkpoint_workers=1
serial_execution=false

More in Network

Build on Paxeer.

Give your agent a wallet, set its policy, and settle your first call on LayerX.