æternity Documentation Hub
AeternityGitHub
  • æternity Hub
  • Developer Documentation
  • Welcome to æternity documentation
  • Getting Started
    • What is æternity?
    • How to Use Aeternity
  • æternity core concepts
    • Introduction
    • æternity Protocol
      • æternity Coin
      • Fast Æternity Transaction Engine (FATE VM)
      • æternity Nodes
        • Node architecture
        • Node types
        • Node Roles
      • Transactions
        • Types of transactions
        • Transaction Lifecycle
        • Transaction Fees
        • Meta-transactions and Generalized Accounts
        • State Channel Transactions
      • Networks
      • Consensus Mechanisms
        • Next Generation Nakamoto Consensus (Bitcoin-NG)
        • Cuckoo Cycle Proof of Work
        • Hyperchains and Delegated Proof of Stake
        • Governance and Weighted Coin Voting
      • State Channels
      • Oracles
      • Aeternity Naming System (AENS)
    • Hyperchains
      • Hyperchains Whitepaper
    • Aeternity Governance
    • Aeternity Foundation
  • aeternity user tools and services
    • Introduction
    • Run an æternity node
    • Hyperchains web app
    • Hyperchains Bridge app
    • Mine aeternity coin
    • Superhero DEX
    • Superhero Wallet
    • ærc Bridge
    • Make an NFT
    • aepps: decentralized applications on æternity
    • æScan: æternity blockchain explorer
  • æternity Developer tools
    • Quick Start Guide
      • Development Environment Setup
      • Essential Tools Overview
      • Æternity Stack
      • First Steps in Development
    • Protocol
      • Core Protocol Components
        • æternity Consensus Protocol
        • Generalized Accounts
        • Smart Contracts
          • FATE VM
          • Smart contract languages
            • æternity Sophia Language
              • In-Depth Overview
              • Sophia Compiler
              • Sophia Visual Studio
              • Sophia http
              • æREPL
            • Solidity
          • Contract Transactions
        • State Channels
        • Oracles
      • Network Layer
        • Nodes
          • Node Documentation
          • Node API Reference
        • Sync
        • Gossip
        • Stratum
      • Utility Features
        • æternity Naming System (AENS)
        • Seralization Formats
    • æternity Sophia Language
      • In-Depth Overview
      • Sophia Compiler
      • Sophia Visual Studio
      • Sophia http
      • æREPL
    • Development Infrastructure
      • CLIs
      • SDKs and APIs
        • Javascript/Typescript SDK
        • Java SDK
        • Outdated SDKs
        • APIs
          • Node API reference
      • Middleware
      • Testing and Deployment
        • æproject
        • Testnet
          • Localnet
          • Faucet
        • Testnets and Faucet
    • Token Standards
      • æternity token standards
        • AEXs: Aeternity Expansions
        • AEX-1
        • AEX-9
        • AEX-141
    • Aepps: Building apps on Aeternity
      • Boiler Plates
        • Angular Boiler Plate
        • React JS BoilerPlate
        • Vue BoilerPlate
      • Æpp architecture
      • Implementation Guidelines
      • Reference æpps
        • Case Studies
        • Code Examples
        • Aeternity Graffiti
    • Data and analytics
      • æScan
    • ÆRC Bridge
  • Hyperchains
    • Hyperchains Development Guide
    • Hyperchains Bridge
Powered by GitBook
On this page
  • Why are Nodes Important?
  • Technical Architecture
  • Advanced Topics
  • Exploring Node Architecture Further

Was this helpful?

Export as PDF
  1. æternity core concepts
  2. æternity Protocol

æternity Nodes

PreviousFast Æternity Transaction Engine (FATE VM)NextNode architecture

Last updated 2 days ago

Was this helpful?

æternity nodes are the backbone of the æternity blockchain network. They work together to maintain the network's integrity, process transactions, and ensure the blockchain operates smoothly and securely. Think of nodes as the individual computers that collectively make up the æternity network - each playing a crucial role in keeping the blockchain running.

Why are Nodes Important?

The importance of nodes stems from their fundamental role in maintaining the decentralized nature of the æternity blockchain. Through distributed consensus, nodes work collectively to process and validate every transaction that occurs on the network. They store and distribute blockchain data across the network, enabling robust peer-to-peer communication. Additionally, nodes support the execution of smart contracts and facilitate mining operations, making them essential to every aspect of the blockchain's functionality.

Technical Architecture

Built with Erlang

æternity nodes are implemented in , a programming language specifically designed for building robust, concurrent, and distributed systems. This choice provides excellent handling of concurrent operations and built-in distribution capabilities. The language's focus on high reliability and fault tolerance, combined with efficient process management, makes it ideal for blockchain node implementation.

Core Components

Network Layer

The network layer forms the communication backbone of æternity nodes. It manages peer-to-peer communication and handles node discovery and connection establishment. Through this layer, nodes synchronize blockchain data and propagate transactions and blocks across the network, ensuring all participants maintain a consistent view of the blockchain state.

Consensus Engine

The consensus engine implements the Bitcoin-NG consensus protocol, managing both key-block and micro-block creation. This component handles chain selection during forks and validates blockchain state transitions, ensuring all nodes agree on the current state of the network.

Virtual Machine (FATE)

The FATE virtual machine executes smart contracts within the node environment. It manages contract state and handles gas calculations while ensuring deterministic execution across all nodes. This component is crucial for maintaining consistent smart contract behavior throughout the network.

State Management

State management is responsible for maintaining the blockchain's current state. This includes tracking account balances, managing smart contract states, and handling name resolution through the ÆNS system. The state management system ensures all nodes maintain identical copies of the current blockchain state.

Advanced Topics

Node Communication

Nodes communicate using a sophisticated peer-to-peer protocol that automatically discovers other nodes and exchanges blockchain data efficiently. The protocol maintains network topology and handles network partitions gracefully, ensuring reliable communication even under adverse conditions.

State Channels

State channels are a key scaling solution supported by æternity nodes. They enable off-chain transaction processing, significantly improving transaction speed and reducing blockchain load. State channels also enhance privacy by keeping transaction details off the main chain until settlement.

Oracle Integration

Nodes play a crucial role in oracle functionality, facilitating access to external data sources. They process oracle queries and validate responses, maintaining oracle state information that can be used by smart contracts and other blockchain applications.

Exploring Node Architecture Further

Understanding æternity nodes is crucial for anyone looking to participate in the network or build on the platform. The following sections provide detailed information about specific aspects of node implementation and operation:

  • Node Architecture - Technical implementation details and internal node components

  • Node Types - Different kinds of nodes and their specific requirements

  • Node Roles in the Network - How nodes contribute to network functionality and consensus

Each section explores these crucial aspects of æternity nodes in detail, providing the knowledge needed to understand, operate, and develop with æternity nodes effectively.

If you want information on how to start running an æternity node, please go to the or section.

user tools
developer tools
Erlang
Cover

Nodes Developer Documentation

Cover

Nodes API documentation

Cover

Node Swagger API Documentation