There are various ways to support a blockchain protocol. For example, tech-savvy users sometimes prefer to run nodes. Now, if you are planning to do so, specific hardware and software prerequisites must be in place. In this 4-part series, I will discuss them in detail for running nodes on Oasis. The first part covers hardware and cloud providers.
Hardware Requirements
As outlined in the introduction to Oasis nodes, the protocol consists of several distinct node types.
- Consensus validator or non-validator node
- Sapphire compute or client node
- Emerald compute or client node
- Cipher compute or client node
In this section, I will focus on the minimum and recommended system hardware requirements. Anyone planning to run more than one paratime (Sapphire/Emerald/Cipher) on a single node will need more resources.
If you configure a system with fewer resources than recommended, you run the risk of being under-provisioned. This can cause proposer node timeouts and synchronization delays. If your node exhausts its memory or storage, the node process is forcefully killed, which can result in state corruption. As a result, you risk losing stake and getting barred from participating in committees.
CPUs
Consensus validator or non-validator node
- Minimum: 2.0 GHz x86-64 CPU with AES instruction set support
- Recommended: 2.0 GHz x86-64 CPU with 2 cores/vCPUs with AES instruction set and Advanced Vector Extensions 2 (AVX2) support
Emerald compute node and all client nodes
- Minimum: same as above
- Recommended: 2.0 GHz x86-64 CPU with 4 cores/vCPUs with AES instruction set and AVX2 support
Sapphire/Cipher ParaTime compute node
- Minimum: 2.0 GHz x86-64 CPU with AES instruction set and Intel SGX support
- Recommended: 2.0 GHz x86-64 CPU with 2 cores/vCPUs with AES instruction set, Intel SGX, and AVX2 support
Notes:
- If you are running regular workloads on your node, the minimum resources will suffice. However, if you plan heavier workloads, like a paratime client node behind a public Web3 gateway, you will need more cores/vCPUs.
- The reason you need AES instruction set support is that it is required by Deoxys-II-256-128, a Misuse-Resistant Authenticated Encryption (MRAE) algorithm, for encrypting paratime state.
- The reason you need AVX2 support is to enable faster Ed25519 signature verification. This will speed up node sync.
- You need Intel SGX support only when you are running paratime compute nodes (Sapphire/Cipher). Check out Intel's comprehensive list of processors that support Intel SGX, and match it with Sapphire and Cipher requirements before proceeding.
Memory
Consensus validator or non-validator node
- Minimum: 6 GB of ECC RAM
- Recommended: 8 GB of ECC RAM
Each Emerald/Sapphire/Cipher compute or client node
- Minimum: 12 GB of ECC RAM
- Recommended: 20 GB of ECC RAM
In most scenarios, the nodes, even with less than the minimum amount of memory, will run regular workloads smoothly. To cover the more resource-intensive time points, such as the initial state sync, BadgerDB migration when upgrading a node to a new major version of the Oasis Core, generating storage checkpoints with BadgerDB, and periodic BadgerDB compactions, your nodes will need more memory than usual.
Storage
Consensus validator or non-validator node
- Minimum: 400 GB of SSD or NVMe fast storage
- Recommended: 700 GB of SSD or NVMe fast storage
Emerald compute or client node (in addition to the consensus storage requirements)
- Minimum: 400 GB of SSD or NVMe fast storage
- Recommended: 700 GB of SSD or NVMe fast storage
Sapphire/Cipher compute or client node (in addition to the consensus storage requirements)
- Minimum: 200 GB of SSD or NVMe fast storage
- Recommended: 300 GB of SSD or NVMe fast storage
Notes:
- Both consensus and paratime states are stored in an embedded BadgerDB database. As BadgerDB is designed to run on SSDs, it is highly recommended not to run a node that stores data on HDDs.
- Both consensus and paratime states accumulate over time. The rate of storage growth varies by transaction count on the network and the paratimes. For example, a consensus non-validator node on the mainnet accumulated 280 GB of consensus state in approximately one year since the Cobalt upgrade, and 32 GB of consensus state in approximately one month since the Damask upgrade. Another example would be an Emerald client node on the mainnet, which additionally accumulated 260 GB of paratime state in approximately five months since Emerald's launch, and 25 GB of paratime state in approximately one month since the Damask upgrade.
- Dump and restore upgrades, such as the Damask and Cobalt upgrades, include state wipes that free up node storage. If you need to access historical state, you can run a separate archive node. Also note, the latest is Eden
- It is recommended not to keep a complete state from the genesis onward unless you are running a node to preserve historical state. This will also reduce storage requirements for both consensus and paratime states, as well as improve the overall latency of the storage-related operations. To enable storage reduction, you should check out consensus pruning and paratime pruning.
Network
Consensus validator node and all paratime compute nodes
- Minimum: 200 Mbps internet connection with low latency
- Recommended: 1 Gbps internet connection with low latency
Regular workloads use relatively little traffic. The higher bandwidth is recommended for bursts of transactions, when a node with too little bandwidth can time out.
Cloud Providers
If you plan to run a Sapphire or Cipher compute node, a crucial step is verifying processor compatibility and checking the status of Intel SGX support (refer to Note #4 in the CPUs section).
Limitations
You will come across several bare-metal or dedicated server providers using Intel processors that support SGX. However, you should also be aware of potential limitations.
- BIOS configuration: Some providers restrict users from accessing or modifying BIOS settings, which might be essential to correctly configure Intel SGX.
- Outdated firmware: SGX requires the latest firmware to function correctly. If the system provider is behind on updates, this is a problem.
- Lack of SGX-specific offerings: Some providers do not advertise or specifically offer SGX-enabled servers. Users need to know specifically that their server is SGX-enabled, as this feature is non-negotiable for running some Oasis nodes.
- Limited support: Sometimes even when an SGX-enabled server is available, the provider's support team might lack the expertise to handle SGX-specific issues or configurations.
- Hardware provisioning: Use of keys, such as SGX sealing keys, involves them being bound to hardware to encrypt the data of an instance within an Intel SGX enclave. If the host of the instance is changed, the encrypted data cannot be decrypted.
Known providers
Alibaba Cloud
Product: (ECS) Bare Metal Instances
Documentation: Build an SGX confidential computing environmentAzure
Product: Some Dedicated Host SKUs
Documentation: Solutions on Azure for Intel SGXGcore
Product: Bare Metal
Documentation: Computing with Intel SGXIBM Cloud
Product: Virtual Private Cloud (VPC)
Documentation: Confidential computing with SGX for VPCOVH
Product: Bare Metal servers
Documentation: SGX for Confidential ComputingPhoenixNAP
Product: Bare Metal Cloud
Documentation: What is Intel SGX and What are the Benefits?Vultr
Product: Bare Metal
Documentation: Intel SGX development on Vultr
Note: Provider offerings change, so the list above may not reflect each provider's current SGX support. So, it is recommended to check out the provider's own documentation and confirm Intel SGX availability with them directly.
If any cloud or dedicated server providers that actively support Intel SGX or Intel TDX are not in this list, or if you come across updated information about the providers listed above, you can let the Oasis team know by creating an issue on GitHub with the additional details.
This concludes part 1 of the prerequisites series. In the next part, I will discuss stake requirements and how to install the Oasis node.
- For technical specs, APIs, architecture, and integration guides, the Oasis documentation is your starting point.
- For direct support on specific issues, the Oasis engineering team and other node operators are available in the node-operators channel on the official Discord.
Top comments (0)