Network Analysis

Istora Mandiri
Research TODO

TODO

This article is a placeholder and is subject to change as research continues.

Abstract

ECIP-1120's block elasticity feature affects network propagation dynamics. Larger blocks take longer to propagate, potentially increasing uncle rates and affecting network stability. This research analyzes ETC's network topology, measures propagation characteristics, and establishes safe operating bounds for the elasticity multiplier. Results inform both the Elasticity Multiplier Selection and Client Benchmarking research.

Research Objectives

  1. What is the current ETC network topology (node count, geographic distribution, connectivity)?
  2. How does block propagation time correlate with block size?
  3. What is the current uncle rate, and how would it change at higher gas limits?
  4. What are the bandwidth constraints for typical ETC node operators?
  5. What maximum block size maintains acceptable network stability?

Background

Network Propagation Fundamentals

When a miner produces a block:

  1. Block is announced to connected peers
  2. Peers request and receive full block data
  3. Peers validate and announce to their peers
  4. Propagation continues until all nodes have the block

Larger blocks = more data = longer propagation time.

Uncle Rate Impact

If a new block is found before the previous block fully propagates:

  • Some miners may build on the old block
  • This creates "uncle" blocks (valid but not in main chain)
  • Uncle rate reflects network health and propagation efficiency

Current ETC uncle rate: ~3-5% (varies with network conditions)

ETC Network Context

Unlike Ethereum (post-merge), ETC remains a decentralized proof-of-work network:

  • Nodes operated by individuals, pools, exchanges, infrastructure providers
  • Geographic distribution across multiple continents
  • Varying hardware and bandwidth capabilities
  • No centralized infrastructure requirements

Methodology

Approach

  1. Network Topology Mapping: Discover and categorize active ETC nodes
  2. Propagation Measurement: Instrument test nodes to measure block arrival times
  3. Historical Analysis: Correlate past uncle rates with block characteristics
  4. Simulation: Model propagation under increased block sizes

Data Collection Methods

Method Purpose Duration
Node crawling Discover active nodes, map connections 2 weeks
Instrumented nodes Measure propagation latency 4 weeks
Archive analysis Historical uncle rate data Full history
Synthetic testing Controlled propagation experiments 2 weeks

Metrics Collected

  • Node count and geographic distribution
  • Peer connection topology
  • Block announcement latency (time to first see block header)
  • Block download latency (time to receive full block)
  • Validation latency (time to verify and accept block)
  • Uncle rate correlation with block gas used

Research Plan

Phase 1: Network Discovery

  • Deploy node crawling infrastructure
  • Enumerate active ETC mainnet nodes
  • Classify nodes by client type (Core-Geth, Besu, other)
  • Map geographic distribution (by IP geolocation)
  • Document peer connection patterns

Phase 2: Topology Analysis

  • Build network topology graph
  • Calculate average path length between nodes
  • Identify well-connected hubs and edge nodes
  • Compare to Ethereum (historical) and other PoW networks
  • Identify potential bottlenecks

Phase 3: Propagation Measurement

  • Deploy instrumented nodes in diverse locations (NA, EU, Asia)
  • Measure block propagation latency for 4+ weeks
  • Record block size, gas used, propagation time for each block
  • Calculate propagation time distributions (p50, p90, p95, p99)
  • Identify correlation between block size and propagation time

Phase 4: Historical Uncle Analysis

  • Extract all uncle blocks from ETC history
  • Calculate uncle rate over time (daily, weekly, monthly)
  • Correlate uncle rate with network conditions
  • Correlate uncle rate with block gas used
  • Build predictive model: uncle_rate = f(block_size)

Phase 5: Simulation & Projection

  • Build network propagation simulator
  • Calibrate simulator against measured data
  • Simulate propagation at 2x, 4x, 8x, 16x, 32x gas limits
  • Project uncle rate at each gas limit
  • Identify maximum safe block size

Phase 6: Recommendations

  • Synthesize findings into network capacity bounds
  • Document bandwidth requirements for node operators
  • Identify geographic regions at risk of higher uncle rates
  • Prepare network constraints for Elasticity Multiplier Selection

Expected Outcomes

  1. Network Topology Report: Complete map of ETC network structure
  2. Propagation Model: Empirical relationship between block size and propagation time
  3. Uncle Rate Projections: Expected uncle rates at various gas limits
  4. Capacity Assessment: Maximum safe block size given network constraints
  5. Node Operator Guidelines: Bandwidth recommendations for participation

Success Criteria

  • Network crawl discovers > 90% of active nodes
  • Propagation measurements cover 4+ weeks of mainnet data
  • Uncle rate model explains > 70% of historical variance
  • Simulations validated against observed propagation times
  • Recommendations keep uncle rate increase < 1% at chosen elasticity

Dependencies

Current Status

Status: TODO

Progress Log

  • 2025-11-28: Initial research plan drafted
  • Pending: Begin Phase 1 network discovery

Appendix: Technical Details

Node Crawling Methodology

interface NodeDiscovery {
  // Discovery methods
  bootnodes: string[];        // Start from known bootnodes
  peerExchange: boolean;      // Request peer lists from connected nodes
  dnsDiscovery: boolean;      // Use DNS-based node discovery

  // Collected data
  nodes: {
    enode: string;            // Node identifier
    ip: string;               // IP address
    port: number;             // TCP/UDP port
    clientVersion: string;    // Client name and version
    capabilities: string[];   // Supported protocols
    firstSeen: Date;
    lastSeen: Date;
    geoLocation: {
      country: string;
      region: string;
      coordinates: [number, number];
    };
  }[];
}

Propagation Measurement Protocol

interface PropagationMeasurement {
  blockHash: string;
  blockNumber: number;
  blockGasUsed: bigint;
  blockSize: number;          // Bytes

  timestamps: {
    minerTimestamp: number;   // Block header timestamp
    firstAnnouncement: number; // When we first heard about block
    fullBlockReceived: number; // When we received full block
    validated: number;         // When we accepted block
  };

  sourceNode: string;         // Node we received from
  measurementNode: string;    // Our instrumented node
}

Uncle Rate Calculation

function calculateUncleRate(
  blocks: Block[],
  windowSize: number
): number {
  const windowBlocks = blocks.slice(-windowSize);
  const totalUncles = windowBlocks.reduce(
    (sum, block) => sum + block.uncles.length,
    0
  );
  return totalUncles / windowSize;
}

References