Skip to main content

Infrastructure Requirements

This document specifies the node infrastructure that a Network Access Provider (NAP) must deploy to participate in the ISBE Main Network. Two configurations are defined: Ideal and Minimum. Both are valid production configurations; the choice depends on the NAP's commercial tier, operational requirements, and available hardware.


1. Architecture principles

  • All nodes run as pods on k3s (Kubernetes) on a single physical server per network.
  • Each pod runs a Hyperledger Besu process. Roles are assigned per pod via Besu configuration flags.
  • The ISBE client stack (node-manager, middleware, proxy) runs as additional pods on the same server and must be used unmodified.
  • The Filtering Proxy embedded in isbe-client proxy enforces GDPR logical deletion on all data entering the chain. It must not be bypassed.
  • Port 30303 TCP/UDP must be publicly reachable from the internet on the validator and boot node only.

2. Configuration comparison

IdealMinimum
Pods4 (validator · bootnode · execution · archive)2 (validator+bootnode · execution)
ValidatorDedicated podCombined pod
Boot nodeDedicated podCombined pod
ExecutionDedicated podDedicated pod
ArchiveDedicated podNot included
RAM32 GB24 GB
CPU4–6 cores4 cores
Disk750 Gi NVMe320 Gi NVMe
Network1 Gbps1 Gbps
Full chain historyYes — archive nodeNo
Operational resilienceFull isolation per roleValidator and boot share process
Recommended forProfessional / Enterprise tiersAnchor / Standard tiers, initial deployment

3. Ideal Configuration

4 dedicated pods — validator · bootnode · execution · archive.

Each node role runs in its own dedicated Besu pod, providing full operational isolation. The archive node stores the complete chain history, enabling full traceability and regulatory audit capability. Recommended for Professional and Enterprise tier NAPs.

3.1 Node composition and memory

Pod / NodeRAMDiskObligation / Notes
Validator4 Gi80 GiMandatory — participates in QBFT consensus
Boot node4 Gi80 GiMandatory — P2P peer discovery, port 30303 external
Execution4 Gi80 GiMandatory — RPC and API endpoint for clients
Archive8 Gi200 GiRecommended — full chain history
OS + k3s~6 Gi100 Gi
ISBE client stack~1.3 Ginode-manager · middleware · proxy
Total RAM~27 Gi → provision 32 GB

3.2 Server summary

ResourceSpecification
RAM — total32 GB
CPU4–6 cores
Disk — nodes80 Gi × 3 nodes + 200 Gi archive = 440 Gi
Disk — OS + other100 Gi
Disk — total provisioned750 Gi NVMe
Network1 Gbps — port 30303 TCP/UDP publicly reachable on validator and boot node
Besu imagehyperledger/besu:26.1.0

4. Minimum Configuration

2 pods — validator+bootnode (combined) · execution.

The validator and boot node roles are combined into a single Besu pod. This reduces the server footprint while maintaining full participation in QBFT consensus and P2P discovery. No archive node is included. Suitable for Anchor and Standard tier NAPs and for initial production deployments.

Combined pod — validator + bootnode

The combined pod runs a single Besu process with both VALIDATOR and BOOTNODE roles active via configuration flags. Port 30303 TCP/UDP must be externally reachable on this pod. The 6 Gi RAM allocation accounts for the combined state of both roles.

4.1 Node composition and memory

Pod / NodeRAMDiskObligation / Notes
Validator + Boot node (combined)6 Gi80 GiMandatory — QBFT consensus + P2P discovery, port 30303 external
Execution4 Gi80 GiMandatory — RPC and API endpoint for clients
OS + k3s~6 Gi100 Gi
ISBE client stack~1.3 Ginode-manager · middleware · proxy
Total RAM~17 Gi → provision 24 GB

4.2 Server summary

ResourceSpecification
RAM — total24 GB
CPU4 cores
Disk — nodes80 Gi × 2 nodes = 160 Gi
Disk — OS + other100 Gi
Disk — total provisioned320 Gi NVMe
Network1 Gbps — port 30303 TCP/UDP publicly reachable on validator and boot node
Besu imagehyperledger/besu:26.1.0

5. Platform Services

ISBE client stack — identical across both configurations.

The following three components are provided by ISBE and run as additional pods on the same server. They must be deployed unmodified. Their resource profile is identical in both the Ideal and Minimum configurations.

ComponentRAM limitRAM (observed)CPU (observed)Externally accessible
node-manager256 Mi72 Mi4mNo
isbe-client middleware512 Mi61 Mi8mYes
isbe-client proxy512 Mi5 Mi1mYes

The isbe-client proxy implements the Filtering Proxy, which prevents personal data from being available on-chain (GDPR compliance by design). Any bypass or unauthorised modification constitutes a breach of the NAP service terms.


6. Network Requirements

Port matrix — Ideal configuration.

Ports marked External must be publicly reachable from the internet. Ports marked Internal are cluster-scoped only. The Minimum configuration omits the archive node row (port 8546).

ComponentPortProtocolExposurePurpose
Validator · Boot node30303TCPExternalP2P peering
Validator · Boot node30303UDPExternalP2P discovery
All Besu nodes8545HTTPInternalJSON-RPC
Archive node8546WSInternalWebSocket RPC
All Besu nodes9545HTTPInternalPrometheus metrics
node-manager8000HTTPInternalREST API
node-manager9100HTTPInternalMetrics endpoint
isbe-client middleware8000HTTPExternalClient API
isbe-client proxy8545HTTPExternalRPC proxy (Filtering Proxy)
Critical connectivity requirement

Port 30303 TCP+UDP must be publicly reachable from the internet on the validator node and the boot node (or on the combined validator+bootnode pod in the Minimum configuration). This is required for cross-cluster P2P peering. Execution and archive nodes do not require external exposure on this port.


7. Software Stack

Required versions — both configurations.

ComponentSpecification
Hyperledger Besuhyperledger/besu:26.1.0 — do not upgrade without ISBE validation
Orchestrationk3s (lightweight Kubernetes) — managed by the ISBE client deployment package
ISBE clientProvided by ISBE. Includes node-manager, isbe-client middleware, and isbe-client proxy. Must be used unmodified.
Operating systemLinux — NAP's choice; must be compatible with k3s and the Besu image above. A modern, actively supported distribution is recommended (Ubuntu 22.04+ LTS, Debian 12+, Rocky/AlmaLinux 9+).

8. Information required before deployment

The NAP must define, before starting the deployment:

  • Node/server name: <Node_name>
  • Public IP: <NODE_IP> (the one to be exposed on port 30303)
  • Data-path location for each pod
  • Technical owner of the deployment
  • Target ISBE environment: dev / pre / pro

This information is later used in the k3s deployment configuration and in the permissioning request process.


9. Best practices before deployment

  • Use a server dedicated exclusively to the node infrastructure (do not mix with other workloads).
  • Configure periodic backups of each pod's data volumes.
  • Disable password-based SSH access; use public keys only.
  • Keep k3s, the Besu images, and the ISBE client stack updated according to the versions validated by ISBE.
  • Avoid slow disk mounts for the data-path (never NFS): use local NVMe.

10. Summary

CategoryIdealMinimum
Pods42
RAM32 GB24 GB
CPU4–6 cores4 cores
Disk750 Gi NVMe320 Gi NVMe
Network30303/tcp+udp open to the Internet (validator/boot)30303/tcp+udp open to the Internet (combined pod)
SoftwareBesu 26.1.0 on k3s + ISBE client stack unmodifiedBesu 26.1.0 on k3s + ISBE client stack unmodified