LithosDocs
ProtocolPayoutsTokenStatsDocs
Start mining
Documentation home
Protocol
  • Lithos Protocol
  • LFSM
    • Rollups
    • NISPs
    • Emissions
    • Mining on Lithos
    • Candidate building
    • Ergo Voting
  • LithosDex
    • Trading with orders
    • Providing liquidity
Run Lithos
  • Startup guide
    • Setting up an Ergo testnet node
  • Configuration
    • Node connection and security
    • Stratum and difficulty
    • Block packages
    • Batching and orders
    • Collateral and emission
    • Wallet and consolidation
    • Statistics and web panels
    • Synchronization and storage
    • Tasks and dispatchers
    • Failure modes
    • Reporting issues
Client API
  • Overview
    • getLithos client information
    • getList UTXO ids for blocks
    • getUTXO ids by block height
    • getBlock info by UTXO id
    • postBlock info for multiple UTXO ids
    • getGet a block's miner set
    • getList all pool blocks
    • getGet Lithos payouts
    • getStatistics overview
    • getMining and payment totals
    • getMining statistics by hour or day
    • getEstimate Lithos hashrate
    • getNetwork difficulty by epoch
    • getThis client's own hashrate
    • getThis client's hashrate over time
    • getThis client's payouts and claims
    • getCollateral inventory
    • getLocal mining activity
    • getCollateral market snapshot
    • getList queue boxes
    • getList the active set
    • getPermit price history
    • getYour locked block rewards
    • postClaim unlocked block rewards
    • postQuote joining the queue
    • postJoin the collateral queue
    • getLithosDex pool state
    • getLithosDex fee vault state
    • getList your outstanding orders
    • postQuote a swap order
    • postPlace a swap order
    • postQuote a deposit order
    • postPlace a deposit order
    • postQuote a redeem order
    • postPlace a redeem order
    • postCancel an order
    • postQuote a swap
    • postQuote a swap by desired output
    • postExecute a swap
    • postQuote a liquidity deposit
    • postDeposit liquidity
    • postQuote a liquidity redemption
    • postRedeem liquidity
    • getList liquidity provisions
    • postClaim settled fees for a provision
    • postQuote a provision resize
    • postResize a provision
    • postCheck a pending fee flush
    • postFlush pending fees to the vault
    • getPool-wide fee history
    • getPool price history
    • getRecent pool activity
    • getFee history for one provision
    • getWallet balances and lending status
    • getGet Stratum information
    • getGet candidate settings
    • getGet difficulty commitment
    • postCommit a difficulty
    • getGet best NISP at height
Lithos

A decentralized mining pool protocol on Ergo. Miners build their own blocks; contracts pay them for proven work.

Live on Ergo mainnet
Protocol
  • How Lithos works
  • Mining on Lithos
  • NISPs
  • Emissions
  • LFSM contracts
Run Lithos
  • Startup guide
  • Configuration
  • LithosDex
  • Client API
  • Failure modes
Network
  • Live stats
  • Public stats API
  • Ergo Platform↗
  • SOAT Miner↗
Community
  • Telegram↗
  • X / Twitter↗
  • GitHub↗
Lithos
© 2026 Lithos Protocol. Open source under the MIT licence.λίθος — stone
Docs/Run Lithos/Configuration

Statistics and web panels

What feeds the Mining, Collateral and LithosDex web panels, and how much history the client keeps for them.

Advanced5 min readAssumes you know your client reads everything from your Ergo node, and what a node read costs. Start with Node connection and security if not.

The stats block controls the statistics behind the client's web panels: your stratum's hashrate and shares, your Lithos blocks and payments, the collateral market, and the LithosDex graphs. This page covers what each part collects, how often it reads your node, and how much history it keeps on disk.

Statistics never affect mining. The collector runs on its own threads and nothing on the mining path waits for it. Turning any of it off blanks the matching panels and changes nothing else.

Turning statistics on and off#

The following switches decide what is collected:

SettingDefaultRangeWhat it does
stats.enabledtruetrue or falseCollect statistics at all. Off, every panel reports disabled
stats.mining.enabledtruetrue or falseCollect Lithos block, payment, difficulty and collateral history for the Mining and Collateral panels
stats.dex.enabledtruetrue or falseCollect LithosDex pool history for the LithosDex graphs
stats.storage.enabledtruetrue or falseKeep history on disk across restarts. Off, history lives in memory and starts over at every restart

Your stratum#

These settings cover what your own mining software reports to the stratum server:

SettingDefaultRangeWhat it does
stats.refreshIntervalMs1000100 to 60000 msHow often the stratum's hashrate and share counts are published
stats.staleAfterMs15000More than refreshIntervalMs, at most 3600000 msHow old a published reading may be before the panel marks it stale

These readings come from the stratum itself, so they cost no node reads.

Mining and collateral history#

The Mining and Collateral panels read your Lithos blocks, payments and difficulty epochs from the chain. The client walks the chain a few blocks at a time and keeps what it found:

SettingDefaultRangeWhat it does
stats.mining.historyDays301 to 36500 daysHow far back the first walk reaches, and how long history is kept after it
stats.mining.pruning.enabledtruetrue or falseRemove history older than historyDays
stats.mining.refreshIntervalMs100001000 to 3600000 msGap between refreshes
stats.mining.staleAfterMs120000More than refreshIntervalMs, at most 86400000 msHow old the history may be before the panel marks it stale
stats.mining.blocksPerRefresh201 to 100Blocks one refresh reads
stats.mining.readTimeoutMs3000100 to 30000 msDeadline on one node read
stats.mining.readBudgetMs200001000 to 120000 msDeadline on one whole refresh

Totals on the Mining panel cover retained history only. A payment older than historyDays is pruned and no longer counted. Raise historyDays before the first start if you want a longer record, because the first walk only reaches that far back.

On a fresh start the client walks historyDays of chain at blocksPerRefresh blocks per refresh, so the panels fill in over the first minutes rather than at once.

LithosDex history#

The LithosDex graphs read the pool's past boxes from your node's index:

SettingDefaultRangeWhat it does
stats.dex.refreshIntervalMs300001000 to 3600000 msDelay after one refresh finishes before the next starts
stats.dex.staleAfterMs120000More than refreshIntervalMs, at most 86400000 msHow old the graphs may be before the panel marks them stale
stats.dex.readTimeoutMs3000100 to 30000 msDeadline on one node read
stats.dex.refreshBudgetMs20000100 to 120000 msDeadline on one whole refresh
stats.dex.historyPages101 to 50Pages of 200 pool boxes read per refresh, newest first
stats.dex.timestampLookups1280 to 250Block headers read per refresh to put times on the pool's history

The graphs reach back at most 30 days, plus the window before that for comparison. historyPages caps how many pool boxes a refresh reads to get there, so a very busy pool can show a shorter span. Only one of these reads runs at a time, which is why the interval is measured from the end of a refresh rather than its start.

Storing history on disk#

History is kept in a LevelDB store under your client folder:

SettingDefaultRangeWhat it does
stats.storage.backendleveldbA backend the client can resolveWhich key-value store to use
stats.storage.path.lithos/statsA non-empty pathWhere that store lives
stats.storage.flushIntervalMs50001000 to 3600000 msHow often LithosDex observations are written
stats.storage.sampleIntervalMinutes51 to 1440 minutesOne stored LithosDex observation per interval. Readings between them are merged
stats.storage.pruning.enabledtruetrue or falseRemove stored LithosDex observations older than retentionDays
stats.storage.pruning.retentionDays301 to 36500 daysHow long stored LithosDex observations are kept
stats.storage.pruning.intervalMs600001000 to 3600000 msGap between pruning passes
stats.storage.pruning.batchSize2561 to 1440Observations removed per pruning pass

Mining history is stored under the same path, in its own database, and pruned by stats.mining.historyDays. Deleting .lithos/stats while the client is stopped is safe: the client rebuilds the history from the chain on its next start.

Note
A client upgrade can start the mining history over

The mining history database is versioned. When an upgrade changes its layout, the client leaves the old database untouched and rebuilds a new one from the chain, which takes the first walk described above.

Next steps#

  • Tasks and dispatchers: the four threads statistics run on.
  • Synchronization and storage: the other store under .lithos.
Edit this page on GitHubsynced from e0ca86a
← PreviousWallet and consolidationNext →Synchronization and storage
On this page
  • Turning statistics on and off
  • Your stratum
  • Mining and collateral history
  • LithosDex history
  • Storing history on disk
  • Next steps