System Constants

Difficulty, timing, size limits, lease economics, performance certificates — and which of them are network parameters rather than binary constants.


Most values below are compiled into the xe binary. The lease timing block is not: it is set in the ledger genesis of each network and published by every node under GET /node → lease_timing, so the live network can differ from the defaults, and does.

Proof of Work

  • DefaultDifficulty (blocks): 0xfffff80000000000
  • DefaultPoWDifficulty (chat envelopes): 0xffffc00000000000
  • TestDifficulty: 0x0000000000000002

Both live difficulties are advertised in GET /node (pow_difficulty, chat_pow_difficulty).

Timing

ConstantValue
Block timestamp tolerance±1 hour
Vote window±5 minutes
Re-vote backoff15 seconds
Chat envelope freshness±5 minutes
Chat read challenge TTL120 seconds
Attestation rate limit15 seconds per lease per client
Quorum fallback10 seconds
Lock stability window3 seconds
Stale conflict sweep15 seconds
Periodic sync10 seconds
Sync rate limit5 seconds/peer
Statechain sync rate limit30 seconds/peer
Bootstrap re-dial watchdog30 seconds (10 s dial timeout)
Ambient discovery round60 seconds (5 min backoff, target 24 peers)
Directory TTL30 minutes (xe directory register --watch refreshes every 20)
Wallet unlock30 minutes, hard

Lease Timing (network parameter)

ParameterBinary defaulttestnet-0005 genesis
min_duration_secs605
settle_grace_ns1 h120 s
force_settle_gap_ns25 min300 s
escrow_expiry_ns365 d1 h
archive_gap_ns1 h10 min
max_attestation_skew_ns10 min60 s

Read them live: curl -s https://ldn.core.test.network/node | jq .lease_timing.

Size Limits

LimitValue
Conflict hashes10 max
Pending votes/conflict10 max
Attestations/block20 max
Memo64 bytes UTF-8
POST body1 MiB
Gossip message256 KB
Sync request1 MiB
Sync response10 MiB
Sync blocks/session10,000
Sync page64 default, 256 max
Frontiers/request10,000
State key128 bytes
State value64 KB
State block256 KB
Message request/response64 KB
Netcheck handshake1 KB, ≤ 8 advertised features
List paginationlimit default 100, max 1,000

Lease Economics

ParameterValue
Min durationmin_duration_secs (network parameter, 5 s on testnet-0005)
Max duration31,536,000 s (365 days), cumulative across renewals
Max per lease4,096 vCPUs, 67,108,864 MB memory, 1,048,576 GB disk
Billing granularity1 minute (duration rounded up to whole minutes)
vCPU rate20,000 µXUSD/hour
Memory rate10,000 µXUSD/GB/hour
Disk rate1,000 µXUSD/GB/hour
Provider stakenone (LeaseStakeDivisor = 0)
XE emissionceil(cost × R_capped / 1000) µXE per segment (min 1, R locked at accept / each renewal)
R fallback2000 (2.000×) when no epoch is published

Performance Certificates

ParameterValue
WorkloadVersion4
PoWPuzzles1,024 chained puzzles
PoWDifficultyBits19
MemoryTableSize8,388,608 entries (256 MB)
MemoryReads10,000,000
CertificateValidity7 days
PriceMultiplierMilli500 – 10,000, default 1,000

Consensus & Network

ParameterValue
Quorum threshold67% of delegated XE weight
Fallback finalizationstrict majority (>50%) of lowest-hash final votes after 10 s
Connection manager low100
Connection manager high400
Connection grace1 minute
Max inbound connections per IP8 (--max-conns-per-ip)
Max inbound connections256 (--max-inbound-conns)
Netcheck mismatch ban10 minutes (network id), 1 hour (protocol version)
API rate limit (reads, GET)200 req/s, burst 1,000
API rate limit (writes, POST)10 req/s, burst 50
API rate limit (probes, /health /ready)20 req/s, burst 100
Rate limiter idle TTL5 minutes (max 100,000 tracked IPs)
Default API port8080 (bind 127.0.0.1)
Default UI port8000 (bind 127.0.0.1)
Default metrics/ops port9095 (bind 127.0.0.1; /metrics, /health, /ready)
Default libp2p port9000
Readiness defaults≥ 1 peer, sync within 180 s, finality stall ≤ 90 s