Hardware Requirements
OXN's confidentiality depends on Intel SGX. Nodes that execute contracts (including RPC nodes serving eth_call) must have SGX-capable hardware. This page lists the minimum, the recommended, and the prerequisites for making SGX work.
Minimum specs
For a testnet RPC node handling modest traffic:
| Resource | Minimum |
|---|---|
| CPU | 4 cores, SGX + FLC support |
| RAM | 16 GB |
| Disk | 100 GB SSD (NVMe recommended) |
| Network | 100 Mbps symmetric, low latency to peers |
The disk should be SSD — spinning disks cannot keep up with the state trie's random-access pattern.
Recommended specs
For production use:
| Resource | Recommended |
|---|---|
| CPU | 8 cores or more, SGX + FLC support |
| RAM | 32 GB |
| Disk | 500 GB NVMe SSD, room to grow |
| Network | 1 Gbps symmetric |
SGX-capable CPUs
The runtime requires:
- Intel SGX with FLC (Flexible Launch Control). Most Intel server CPUs from Xeon Scalable 2nd Gen (Cascade Lake) onward include SGX + FLC.
- DCAP (Data Center Attestation Primitives) support for remote attestation.
Consumer CPUs often have SGX but not FLC, or have older SGX modes. Server CPUs are the safe choice.
Confirmed compatible families (representative examples, not exhaustive):
- Intel Xeon Scalable 3rd Gen (Ice Lake) — full SGX + DCAP support.
- Intel Xeon Scalable 4th Gen (Sapphire Rapids) — full SGX + DCAP support.
- Intel Xeon E3-1200v6 — earlier SGX generation, may need extra driver work.
Not compatible:
- AMD processors (SGX is Intel-only).
- ARM processors (though ARM TrustZone exists, OXN targets Intel SGX specifically).
BIOS settings
For SGX to work:
- SGX — must be
Enabledin BIOS. - SGX Memory Reservation — set to a reasonable value (128 MB minimum for testnet).
- UEFI Secure Boot — enable if your kernel supports signed modules; otherwise disable and use unsigned drivers.
Kernel and driver requirements
- Linux kernel 5.15 or newer (Ubuntu 22.04 LTS ships with this).
- In-kernel SGX driver: kernels 5.11+ include the SGX driver in-tree; no external module is needed.
- DCAP libraries:
libsgx-dcap-quote-verify,libsgx-dcap-quote-verify-dev, and related packages from Intel.
Installation (Ubuntu 22.04):
# Add Intel SGX repo
echo "deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu jammy main" \
| sudo tee /etc/apt/sources.list.d/intel-sgx.list
wget -O - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key \
| sudo apt-key add -
sudo apt-get update
# Install DCAP packages
sudo apt-get install -y \
libsgx-dcap-quote-verify \
libsgx-dcap-quote-verify-dev \
libsgx-quote-ex \
libsgx-urts \
sgx-aesm-service
Verifying SGX before proceeding
Before installing the OXN node, verify SGX is working:
# Check kernel driver
ls -la /dev/sgx_enclave /dev/sgx_provision
# Should show two device nodes. If missing, check BIOS and kernel.
If those device nodes are present, you're likely good to go. For deeper verification, run Intel's test-app-sgx tool.
Cloud providers
Most public clouds offer SGX-enabled instances:
- Azure: DC-series VMs (DCsv2, DCsv3, DCsv3 with GPU).
- AWS: SGX-enabled EC2 instances (limited availability).
- Alibaba Cloud: SGX-enabled instances.
Bare metal or dedicated hosts are also viable — often preferred for production where you want direct hardware control.
Storage growth
Testnet chain state is small today but grows. Plan:
- Initial state: currently a few GB.
- Growth rate: roughly linear with block production and dApp activity.
- Archive vs pruned: an archive node retains all historical state (fastest historical queries, largest disk); a pruned node keeps only recent state (smaller disk, historical queries fail beyond retention window).
Start with archive mode for flexibility. Switch to pruned mode later if disk becomes constrained.
Next steps
- Running a Read-Only RPC Node — the actual setup
- Node Operators Overview