Networking¶
Kakitu uses two distinct sub-networks: the live network for real-time block and vote propagation, and the bootstrap network for bulk ledger synchronization.
Live Network¶
The live network is the primary communication channel for:
- Broadcasting new blocks to the network
- Propagating representative votes
- Exchanging keepalive messages with peers
Transport¶
TCP on port 7075 (main network).
| Network | Live Port |
|---|---|
| Main | 7075 |
| Test | 17075 |
| Beta | 54000 |
Message Types¶
| Message | Purpose |
|---|---|
keepalive |
Peer discovery and connectivity check |
publish |
Broadcast a new block |
confirm_req |
Request confirmation votes for a block |
confirm_ack |
Send a vote for a block |
bulk_pull |
Request multiple blocks (bootstrap) |
telemetry_req / telemetry_ack |
Node health metrics exchange |
Block Propagation¶
- Account creates a signed block with valid PoW
- Block is submitted to any node via the
processRPC - Node validates the block (signature, PoW, chain linkage)
- Valid block is broadcast to connected peers via
publishmessages - Peers rebroadcast to their peers (gossip protocol)
- Representatives vote via
confirm_ackmessages
Bootstrap Network¶
The bootstrap network is used by new or recovering nodes to download the full ledger history. It is optimized for bulk data transfer rather than real-time propagation.
Transport¶
TCP on the same port as the live network. Bootstrap and live traffic are differentiated by message type.
Bootstrapping Process¶
- New node connects to preconfigured seed peers (
peering.kakitu.org) - Requests the genesis block hash to identify the network
- Downloads account frontiers (the latest block hash for each account)
- Pulls missing blocks for accounts whose local state is behind
- Verifies each block's signature and PoW
- Once within 1% of network block count, node is considered synced
Bootstrap Modes¶
| Mode | Description |
|---|---|
| Legacy bootstrap | Pull frontiers for all accounts, then fill in missing blocks |
| Lazy bootstrap | Request missing blocks by hash as needed |
| Wallet bootstrap | Prioritize blocks for accounts in the local wallet |
Peer Discovery¶
Preconfigured Peers¶
The node ships with a list of well-known peers in config-node.toml:
Keepalive Messages¶
Nodes exchange keepalive messages with known peers. Each keepalive includes a list of other known peers, allowing organic peer discovery across the network.
UPnP¶
By default, the node attempts to use UPnP to open port 7075 on your router. This can be disabled:
Network Identity¶
The Kakitu network is identified by the genesis block hash — the hash of the very first block. Nodes that do not share the same genesis block hash are on different networks and will not communicate.
This means running --network=test and --network=live nodes are completely isolated, even if they run on the same machine.
Bandwidth¶
Node bandwidth usage depends on:
- Number of connected peers
- Network transaction volume
- Whether the node is a Principal Representative (PR votes are rebroadcast)
Approximate bandwidth for a PR node on a busy network: 50–200 Mbps.
Limit bandwidth in config-node.toml:
[node]
bandwidth_limit = 10485760 # 10 MB/s
bandwidth_limit_burst_ratio = 3.0
bootstrap_bandwidth_limit = 5242880 # 5 MB/s
Telemetry¶
Nodes exchange telemetry metrics with peers. Retrieve your peers' telemetry:
This returns block counts, uptime, version, and bandwidth data for all connected peers, which helps you assess network health and your sync status.