Unicorn Ultra
  • Welcome to unicorn ultra — let’s build the future
  • Getting Started
    • Introduction
    • Environment Setup
    • Create an Account
    • Transfer U2U
    • Query Ledger Data
  • Tutorials
    • Smart Contracts
      • Deploy Your First Smart Contract
      • Deploy a Contract Using the Hedera Token Service
      • Send and Receive HBAR Using Solidity Smart Contracts
      • Create an HBAR Faucet App Using React and MetaMask
      • Deploy By Leveraging Ethereum Developer Tools On Hedera
      • Deploy a Smart Contract Using Hardhat
      • Deploy a Subgraph Using The Graph and JSON-RPC
      • How to Set Up Foundry to Test Smart Contracts on Hedera
      • Deploy Smart Contracts on Hedera Using Truffle
    • Consensus
      • Submit Your First Message
      • Submit Message to Private Topic
      • Query Messages with Mirror Node
    • Tokens
      • Create and Transfer Your First NFT
      • Create and Transfer Your First Fungible Token
      • Create and Transfer an NFT using a Solidity Contract
      • Structure Your Token Metadata Using JSON Schema V2
    • More Tutorials
      • How to Auto-Create Hedera Accounts with HBAR and Token Transfers
      • How to Configure a Mirror Node and Query Data
      • How to Generate a Random Number on Hedera
      • Get Started with the Hedera Consensus Service Fabric Plugin
        • Virtual Environment Setup
      • Schedule Your First Transaction
      • How to Connect to Hedera Networks Over RPC
        • Configuring Hashio RPC endpoints
        • Configuring Arkhia RPC endpoints
        • Configuring Hedera JSON-RPC Relay endpoints
    • Demo Applications
    • Starter Projects
  • Networks
    • Mainnet
      • Mainnet Accounts
      • Mainnet Consensus Nodes
        • Node Requirements
          • Reference Configuration
          • FAQ
      • Fees
        • Transaction Records
    • Testnets
      • Testnet Accounts
      • Testnet Consensus Nodes
    • Network Explorers and Tools
    • Release Notes
      • Hedera Services
      • Hedera Mirror Node
  • Core Concepts
    • Accounts
      • Account Creation
      • Auto Account Creation
      • Account Properties
    • Keys and Signatures
    • Scheduled Transaction
    • Smart Contracts
      • Hyperledger Besu EVM
      • Gas and Fees
      • Solidity Variables and Opcodes
      • Supported ERC Token Standards
      • Hedera Services Integration with Smart Contracts
      • JSON-RPC Relay
      • Hethers
      • Smart Contract Security
    • Staking
      • Staking Program
      • Stake HBAR
    • Hashgraph Consensus Algorithm
      • Gossip About Gossip
      • Virtual Voting
    • Transactions and Queries
    • State and History
    • Mirror Nodes
      • Hedera Mirror Node
      • One Click Mirror Node Deployment
      • Run Your Own Mirror Node
        • Run Your Own Mirror Node with Google Cloud Storage (GCS)
        • Run Your Mirror Node with Amazon Web Services S3 (AWS)
      • Hedera ETL
  • SDKs & APIs
    • SDKs
      • Build Your Hedera Client
      • Set Up Your Local Network
      • Network Address Book
      • Keys
        • Generate a new key pair
        • Import an existing key
        • Create a key list
        • Create a threshold key
        • Generate a mnemonic phrase
        • Recover keys from a mnemonic phrase
      • HBAR
      • Specialized Types
      • Pseudorandom Number Generator
      • Transactions
        • Transaction ID
        • Modify transaction fields
        • Create an unsigned transaction
        • Manually sign a transaction
        • Submit a transaction
        • Sign a multisignature transaction
        • Get a transaction receipt
        • Get a transaction record
      • Schedule Transaction
        • Schedule ID
        • Create a scheduled transaction
        • Sign a scheduled transaction
        • Delete a scheduled transaction
        • Get schedule info
        • Network Response Messages
        • Schedule FAQ
      • Queries
      • General Network Response Messages
      • Accounts and HBAR
        • Create an account
        • Update an account
        • Transfer cryptocurrency
        • Approve an allowance
        • Delete an allowance
        • Delete an account
        • Get account balance
        • Get account info
        • Network Response Messages
      • Consensus Service
        • Create a topic
        • Update a topic
        • Submit a message
        • Delete a topic
        • Get topic messages
        • Get topic info
        • Network Response
      • Token Service
        • Token ID
        • NFT ID
        • Token types
        • Create a token
        • Custom token fees
        • Update a token
        • Update token custom fees
        • Transfer tokens
        • Delete a token
        • Mint a token
        • Burn a token
        • Freeze an account
        • Unfreeze an account
        • Enable KYC account flag
        • Disable KYC account flag
        • Associate tokens to an account
        • Dissociate tokens from an account
        • Pause a token
        • Unpause a token
        • Wipe a token
        • Atomic swaps
        • Get account token balance
        • Get token info
        • Get NFT info
        • Network Response Messages
      • File Service
        • Create a file
        • Append to a file
        • Update a file
        • Delete a file
        • Get file contents
        • Get file info
        • Network Response Messages
      • Smart Contract Service
        • Delegate Contract ID
        • Create a smart contract
        • Update a smart contract
        • Delete a smart contract
        • Call a smart contract function
        • Ethereum transaction
        • Get a smart contract function
        • Get smart contract bytecode
        • Get smart contract info
        • Hedera Service Solidity Libraries
        • Network Response Messages
      • Signature Provider
        • Provider
        • Signer
        • Wallet
        • Local Provider
    • REST API
    • Hedera Consensus Service gRPC API
    • Hedera APIs
      • Basic Types
        • AccountAmount
        • AccountID
        • ContractID
        • CryptoAllowance
        • CurrentAndNextFeeSchedule
        • FeeComponents
        • FeeData
        • FeeSchedule
        • FileID
        • Fraction
        • HederaFunctionality
        • Key
        • KeyList
        • NftAllowance
        • NftTransfer
        • NodeAddress
        • NodeAddressBook
        • RealmID
        • ScheduleID
        • SemanticVersion
        • ServicesConfigurationList
        • ServiceEndpoint
        • Setting
        • ShardID
        • Signature
        • SignatureList
        • SignatureMap
        • SignaturePair
        • SubType
        • TransferList
        • TransactionID
        • ThresholdKey
        • ThresholdSignature
        • TokenAllowance
        • TokenBalance
        • TokenBalances
        • TokenFreezeStatus
        • TokenPauseStatus
        • TokenID
        • TokenKycStatus
        • TokenRelationship
        • TokenTransferList
        • TokenType
        • TokenSupplyType
        • TopicID
        • TransactionFeeSchedule
      • Cryptocurrency Accounts
        • CryptoService
        • CryptApproveAllowance
        • CryptoDeleteAllowance
        • CryptoCreate
        • CryptoTransfer
        • CryptoUpdate
        • CryptoDelete
        • CryptoGetAccountBalance
        • CryptoGetAccountRecords
        • CryptoGetInfo
        • CryptoGetStakers
      • Consensus Service
        • Consensus Service
        • ConsensusCreateTopic
        • ConsensusUpdateTopic
        • ConsensusSubmitMessage
        • ConsensusDeleteTopic
        • ConsensusTopicInfo
        • ConsensusGetTopicInfo
      • Schedule Service
        • ScheduleService
        • SchedulableTransactionBody
        • ScheduleCreate
        • ScheduleDelete
        • ScheduleSign
        • ScheduleGetInfo
      • Token Service
        • TokenService
        • CustomFees
          • AssessedCustomFee
          • CustomFee
          • FractionalFee
          • FixedFee
          • RoyaltyFee
        • TokenCreate
        • TokenUpdate
        • TokenFeeScheduleUpdate
        • TokenDelete
        • TokenMint
        • TokenBurn
        • TokenFreezeAccount
        • TokenUnfreezeAccount
        • TokenGrantKyc
        • TokenRevokeKyc
        • TokenAssociate
        • TokenDissociate
        • TokenWipeAccount
        • TokenPause
        • TokenUnpause
        • TokenGetInfo
        • TokenGetNftInfo
        • TokenGetNftInfos
        • TokenGetAccountNftInfo
      • File Service
        • FileService
        • FileCreate
        • FileAppend
        • FileUpdate
        • FileDelete
        • FileGetContents
        • FileGetInfo
      • Smart Contracts
        • SmartContractService
        • ContractCall
        • ContractCallLocal
        • ContractCreate
        • ContractUpdate
        • ContractDelete
        • ContractGetByteCode
        • ContractGetInfo
        • ContractGetRecords
      • Miscellaneous
        • Duration
        • ExchangeRate
        • Freeze
        • FreezeType
        • GetByKey
        • GetBySolidityID
        • NetworkGetVersionInfo
        • NetworkService
        • Query
        • QueryHeader
        • Response
        • ResponseCode
        • ResponseHeader
        • SystemDelete
        • SystemUndelete
        • TimeStamp
        • Transaction
        • TransactionBody
        • TransactionContents
        • TransactionGetFastRecord
        • TransactionGetReceipt
        • TransactionGetRecord
        • TransactionReceipt
        • TransactionRecord
        • TransactionResponse
        • UncheckedSubmit
    • Deprecated
      • SDKs (V1)
        • Build your Hedera client
        • Set-up Your Local Network
        • Network address book
        • Keys
          • Generate a new key pair
          • Import an existing key
          • Create a key list
          • Create a threshold key
          • Generate a mnemonic phrase
          • Recover keys from a mnemonic phrase
        • Hbars
        • Specialized Types
        • Pseudorandom Number Generator
        • Transactions
          • Transaction ID
          • Modify transaction fields
          • Create an unsigned transaction
          • Manually sign a transaction
          • Submit a transaction
          • Sign a multisignature transaction
          • Get a transaction receipt
          • Get a transaction record
        • Scheduled Transaction
          • Schedule ID
          • Create a scheduled transaction
          • Sign a scheduled transaction
          • Delete a scheduled transaction
          • Get schedule info
          • Network Response Messages
          • Schedule FAQ
        • Queries
        • General Network Response Messages
        • Accounts and hbar
          • Create an account
          • Update an Account
          • Transfer cryptocurrency
          • Approve an allowance
          • Delete an allowance
          • Delete an account
          • Get account balance
          • Get account info
          • Network Response Messages
        • Consensus Service
          • Create a topic
          • Update a topic
          • Submit a message
          • Delete a topic
          • Get topic messages
          • Get topic info
        • Token Service
          • Token ID
          • NFT ID
          • Token types
          • Create a token
          • Custom token fees
          • Update a token
          • Update token custom fees
          • Transfer tokens
          • Delete a token
          • Mint a token
          • Burn a token
          • Freeze an account
          • Unfreeze an account
          • Enable KYC account flag
          • Disable KYC account flag
          • Associate tokens to an account
          • Dissociate tokens from an account
          • Pause a token
          • Unpause a token
          • Wipe a token
          • Atomic swaps
          • Get account token balance
          • Get token info
          • Get NFT info
          • Network Response Messages
        • File Service
          • Create a file
          • Append to a file
          • Update a file
          • Delete a file
          • Get file contents
          • Get file info
          • Network Response Messages
  • Support & Community
    • Glossary
    • Discord
    • GitHub
    • Stack Overflow
    • Hedera Blog
    • Bug Bounty
    • Hedera Help
    • Meetups
    • Contributing Guide
    • Brand Guidelines
    • Status Page
Powered by GitBook
On this page
  • Minimum Node Requirements
  • Node Operating System:
  • Node Software:
  • System User Accounts:
  • Proxy
  • Network Connectivity
  • Hosting
  • Software & Installation
  • Network Topology /(Typical Corporate Datacenter Configuration/)
  • Deployment Steps
  1. Networks
  2. Mainnet
  3. Mainnet Consensus Nodes

Node Requirements

The Hedera Mainnet is currently comprised of permissioned consensus nodes operated by the Hedera Governing Council

PreviousMainnet Consensus NodesNextReference Configuration

Last updated 1 year ago

The following is provided to help members deploy their permissioned mainnet consensus node. Please note, this information is not intended to apply to Hedera's transition to a permissionless network.

Minimum Node Requirements

Currently, the Hedera Mainnet will perform at a rate determined by the lowest-performing node. To ensure a common level of performance minimum hardware, connectivity, and hosting requirements have been defined for the initial permissioned, Governing Council nodes.

To ensure accurate conformity with the minimum requirements, please provide node hardware, connectivity, and hosting details to Hedera prior to purchase (devops@hedera.com).

Chassis (hardware nodes only)

  • Dual Power - 1600W minimum, 2000W recommended

All nodes

Network Connectivity: Single 1-Gigabit / 10-Gigabit Ethernet (physical connectivity subject to network infrastructure)

24-core or better CPU hyperthreaded (48 threads) - Intel Xeon Silver class or higher / AMD EPYC 74xx class or higher Virtual hosts must have 48vCPU (single threaded)

256 GB PC4-21300 2666MHz DDR4 ECC Registered DIMM

2 x 240GB SSD with RAID 1 for OS Storage

5TB SSD NVMe usable storage

  • Single Drive recommended

  • Endurance / Mixed Use (Not Read Intensive)

Storage performance specifications (within 10% of performance parameters below)

  • Sequential read: 6200 MB/s

  • Random read: 1.08M IOPS

  • Sequential write: 3000 MB/s

  • Random write: 170K IOPS

Considerations for future expansion (hardware-based deployments):

  • 1x Nvidia Tesla V100 PCIe 16GB/32GB GPU

Node Operating System:

  • Linux

    • Kernel minimum version 3.10+

    • Actively Support Long-Term-Support Release

      • Ubuntu LTS 18.04+

      • RHEL 7/8

Node Software:

  • Docker Engine (docker-ce version 20.10.6)

    • Deployed with root privileges

    • Privileged container support enabled (optional)

      • If privileged container support is disabled then host machine must run the Havege Daemon

  • Docker Compose (docker-compose version 1.29.2)

  • IPTables Support (linux-kernel version 3.10+)

  • Havege Daemon (haveged version 1.9.14)

    • If privileged container support is enabled then this requirement is optional

  • HashDeep Utilities (hashdeep version 4.4)

    • Required for update integrity validation

  • Bindplane Collector (bindplane-collector version 4+)

    • Required for node software log monitoring

  • JQ CLI (jq version 1.5+)

    • Required dependency for the Node Management Tools

  • GNU CoreUtils (coreutils version 8.00+)

    • Required dependency for the Node Management Tools

  • cURL CLI (curl version 7.58.0+)

    • Required dependency for the Node Management Tools

  • InCron Daemon (incron version 0.5.12+)

    • Required dependency for the Node Management Tools

    • Required for automated network upgrade

  • Rsync CLI (rsync version 3.0.0+)

    • Required dependency for the Node Management Tools

    • Required for automated network upgrade

  • Node Management Tools (node-mgmt-tools version 0.1.0+)

    • Updates deployed via the node upgrade process

    • Must be installed at the following path: /opt/hgcapp/node-mgmt-tools

      • The path must be writable and executable by the hgcadmin user account

System User Accounts:

  • Node Software Account (mandatory)

    • User Specification

      • Name: hedera

      • Unix UID: 2000

      • Group Membership

        • Primary: hedera

        • Secondary: admin or wheel (depending on Linux distribution)

      • Permissions:

        • Read, Write, and Execute Access to the entire /opt/hgcapp folder tree

    • Group Specification

      • Name: hedera

      • Unix GID: 2000

Note: Reference Configurations available in Appendices B, C, D

Proxy

Access to the node via public APIs must be mediated by an in-line proxy. Below are the specifications for establishing this proxy.

  • 2-CPU

  • 2GB RAM

  • 100GB storage

  • 200Mb/S internet network connectivity with public static IP address

  • Docker 18 or higher (Hedera to provide Docker image with HAProxy)

Network Connectivity

Node Connectivity

  • 1Gbps internet connectivity – sustained (not burstable)

    • Unmetered preferred

    • Deployed with firewalled access to other mainnet consensus nodes

  • Node deployed in dedicated (isolated) DMZ network

    • Static IP (FQDN is not supported)

    • TCP Port 50111 open to 0.0.0.0/0

    • TCP Port 50211 open to 0.0.0.0/0

    • TCP Port 50212 open to 0.0.0.0/0

    • TCP Port 80 open egress to 0.0.0.0/0 (for OS package repository connectivity)

    • TCP Port 443 open egress to 0.0.0.0/0 (for OS package repository connectivity)

    • UDP Port 123 open ingress and egress to 0.0.0.0/0 (for NTP pool synchronization of system time)

Proxy Connectivity

  • Static IP address (FQDN not supported)

  • 200Mb/s internet connectivity

  • TCP Port 80 open egress to 0.0.0.0/0 (for OS package repository connectivity)

  • TCP Port 443 open egress to 0.0.0.0/0 (for OS package repository connectivity)

  • TCP Port 50211 open to 0.0.0.0/0

  • TCP Port 50212 open to 0.0.0.0/0

Interface Bonding (optional)

  • If using interface bonding, note that mutual TLS is in use, and Layer 3 Policy Based Routing (PBR) with dual-pathways is not supported. Only Layer 2 interface bonding using mode 1 (autonomous ports using active-backup) or mode 4 (LACP 802.3ad active/active) is supported.

Hosting

  • Industry-standard hosting requirements for security and availability

    • Tier 1 Data Center Hosting facility

    • SSAE 16 /18, SOC 2 Type 2 compliant

  • Hedera will seek to avoid duplicating hosting providers across Council members

Software & Installation

  • Any 64-bit Long Term Support (LTS) Linux distribution

    • Ubuntu

    • Red Hat Enterprise

    • Debian

    • BSD not supported

    • CentOS deprecated for 2022

Network Topology /(Typical Corporate Datacenter Configuration/)

Deployment Steps

The following steps outline the process for Council Members to add their consensus node to the mainnet.

  1. Initial contact with Council Member and node hosting entity

    1. Identify key individuals and project managers

    2. Establish regular deployment team meeting cadence

  2. Conveyance of technical requirements and discussion of deployment options

  3. Node platform acquisition

    1. Hardware or virtual instance

    2. Network connectivity

    3. Hosting facility

  4. Configuration of the operating system on platform

    1. Provisioning of accounts as specified

    2. Provisioning of network access (firewall rules/access control lists)

  5. Conveyance of credentials to Hedera

    1. Includes any special instructions for permissioned access such as VPNs

    2. Discussion of support and escalation paths between organizations

  6. Hedera undertakes configuration review

    1. Platform

    2. Connectivity

  7. Deployment of Hedera consensus node software and required supporting libraries

  8. Add connection configuration for a Hedera performance testnet

    1. Hedera executes functional, stability and performance tests for all network services

  9. Review of test results and determination of preparedness for mainnet connectivity

    1. Review key management documentation related to Council Member's accounts including: fee account, proxy staking account, et al.

    2. Update private keys using provided tools

  10. Schedule mainnet connection

  11. Mainnet live

Chassis should be

Hedera Governing Council
Nvidia Tesla V100 PCIe certified