Skip to main content

Full Node Configurations

Monad supports several ways for full nodes to receive block proposals via the RaptorCast protocol.

1. As dedicated full node

Dedicated full nodes are whitelisted by validators in their [fullnode.identities] section. These nodes receive forwarded chunks directly from their upstream validators via primary RaptorCast.

Key characteristics:

  • Receive chunks forwarded from upstream validators via primary RaptorCast
  • Can run with RaptorCast mode = "None" without participating in secondary RaptorCast
  • Depends only on upstream validator availability
  • Utilizes a lot of bandwidth from the upstream validator, who must forward all received chunks to each downstream dedicated full node
  • Provide the highest reliability level

2. Via secondary RaptorCast

Nodes conduct secondary RaptorCast, which follows the same mechanism as primary RaptorCast, except with one particular validator serving as originator for every block, and full nodes serving as the other participants.

Each secondary RaptorCast group is rooted in a single validator.

There are two ways that full nodes may participate in secondary RaptorCast: as a prioritized full node or as a public full node.

2a. Prioritized full node

A prioritized full node is whitelisted by a validator in its [fullnode_raptorcast.full_nodes_prioritized.identities] section. This means that the node will receive guaranteed inclusion in the secondary RaptorCast group rooted in that validator.

Key characteristics:

  • Receive chunks via secondary RaptorCast
  • Must run with RaptorCast mode = "Client" to participate in secondary RaptorCast
  • Depends on upstream validator availability and group functionality
  • Provides moderate reliability level

2b. Public full node

A public full node is not explicitly whitelisted by any validator. This node competes for available space in secondary RaptorCast groups from validators.

Key characteristics:

  • Receive chunks via secondary RaptorCast (if part of a secondary RaptorCast group)
  • Must run with RaptorCast mode = "Client" to participate in secondary RaptorCast
  • Depends on validator availability, group functionality, and slot availability
  • Provide the lowest reliability level

Configuration comparison

Node TypeWhitelistedRaptorCast ModeData SourceReliabilityDependencies
DedicatedYes"None"
("Client" optional)
Primary RaptorCastHighValidator only
PrioritizedYes"Client"Secondary RaptorCastModerateValidator +
RaptorCast group
PublicNo"Client"Secondary RaptorCastLowValidator +
RaptorCast Group +
Slot availability

Secondary RaptorCast group formation

The secondary RaptorCast system operates through a group invitation process:

  • Group Invites: When a validator runs with mode = "Publisher", it sends group invites to full nodes in its routing table based on the configured limits
  • Accept/Reject: Full nodes can accept or reject invites based on their current group participation and configuration
  • Group Confirmation: Validators collect responses and create groups that last for a defined period
  • Prioritized Selection: Validators always send invites to nodes listed in full_nodes_prioritized during each group formation

RaptorCast configurations for validators

None

  • Disables secondary RaptorCast participation
  • Reduces bandwidth usage as node doesn't rebroadcast chunks

Client

  • Enables secondary RaptorCast participation
  • Increases bandwidth usage due to chunk rebroadcasting
  • Required for Prioritized and Public full nodes
RaptorCast

For more technical details about the RaptorCast, see the RaptorCast documentation.