Demos Network Specifications
  • Introduction
    • What is Demos Network
    • Demos Network Architecture
  • FAQ
  • Cookbook
    • Project setup
      • Run the project (MacOS)
      • Run the project (Windows)
        • WSL 2 Setup on Windows (10 and 11 only)
        • Issue Troubleshooting
      • Run the project (Ubuntu)
  • SDK
    • Getting Started
    • WebSDK
      • Authentication
        • FIDO2 Passkeys
          • Under the Hood: FIDO2 Passkeys
      • NodeCalls
      • Transactions
        • Creating a transaction
        • Signing a transaction
        • Broadcasting a transaction
      • L2PS SDK
        • The l2ps module
        • Interacting with the L2PS
        • L2PS Messaging System
      • Instant Messaging
        • What is the Instant Messaging Protocol?
        • Architecture Overview
        • Encryption
        • Quickstart
        • Message Types
        • API Reference
        • FAQ
    • Cross Chain
      • General layout of the XM SDKs
      • EVM
      • BTC
      • Solana
      • MultiversX (EGLD)
      • NEAR
      • IBC
      • TON
      • XRPL
      • The XMScript
      • Identities
    • Demoswork
    • Cookbook
      • Demoswork
        • Creating work steps
        • Conditional Operation
        • Base Operation
        • Signing and broadcasting
      • Transactions
        • Crosschain Transaction
        • Native Transactions
      • SWAP
        • Crosschain SWAP
    • Web2
      • Quick Start
      • DAHR API Reference
        • Types
      • Making Requests
      • Identities
        • Twitter
        • GitHub
    • API Reference
    • Bridges
      • Rubic Bridge Test
    • Post Quantum Cryptography
  • Backend
    • Internal Mechanisms
      • Network Time Synchronization
      • Cross Context Identities
    • Global Change Registry
      • GCR Structure
      • How is GCR Synced?
    • Consensus Mechanism
      • Unparalleled Scalability
      • Decentralization in PoR-BFT
      • Enhanced Security
      • Comparative Advantage
      • Addressing Potential Criticisms
      • Conclusion
    • Communications Stack
    • L2PS (Subnet) Framework
      • How are L2PS transactions handled?
    • Miscellaneous
      • Browsing the Postgres DB via psql
    • Bridges
      • Rubic Bridge
    • Developers Testbed
      • Setting up the environment
      • Setting up the repository
      • Installing dependencies
      • Node Configuration
      • Running the node
  • Frontend
    • Demos Providers Discovery Mechanism
Powered by GitBook
On this page
  • NTP Server Configuration
  • Time Calibration:
  • Network Timestamp Retrieval
  • Time Delta Calculation
  • NTP Time Fetching
  • Example
  • Summary
  1. Backend
  2. Internal Mechanisms

Network Time Synchronization

This page explains how the Demos network leverages NTP efficiently to sync the timestamp across the network.

As Demos network is strongly based on correct communication between nodes, the protocol's way to synchronize timestamps and to have a reliable network timestamp is crucial. The calibrateTime.ts library provides essential functionality for time synchronization and correction in the Demos network. Here's an overview of its key components and functions:

NTP Server Configuration

The library defines a primary NTP (Network Time Protocol) server and a list of fallback servers to ensure reliable time synchronization.

Time Calibration:

The main function getTimestampCorrection() calculates the time difference between the local system and the NTP server, storing this correction in shared state.

Network Timestamp Retrieval

The getNetworkTimestamp() function provides a corrected network timestamp by applying the stored correction to the current local time.

Time Delta Calculation

The getMeasuredTimeDelta() function performs the actual time synchronization by:

  • Fetching the NTP time

  • Calculating the round-trip time

  • Adjusting for network latency

  • Computing the difference between the adjusted NTP time and local time

NTP Time Fetching

The library includes functions to fetch time from the primary NTP server (getNtpTime()) and fallback servers (getFallbackNtpTime()) if the primary server fails.

Example

Summary

This library ensures that all nodes in the Demos network can maintain synchronized time, which is critical for proper communication and consensus mechanisms. By using NTP servers and accounting for network latency, it provides a robust solution for time synchronization across the distributed network.

PreviousInternal MechanismsNextCross Context Identities

Last updated 8 months ago