Skip to content

Lithos Testnet 5.1.0

Latest

Choose a tag to compare

@K-Singh K-Singh released this 01 Sep 00:13

Testnet 5.1.0 release for Lithos

This update focuses on synchronization and persistence. Synchronization now uses a single block feed and state manager that work together to synchronize and manage rollups and dictionaries. Snapshots are stored in ./lithos/sync and allow your client to automatically catch up the height of the blockchain. Re-orgs and orphaned blocks are now handled properly, and singular errors in particular rollups or dictionaries are separated to prevent interference on other unrelated tasks.

To run the application, unzip the file and then run the script in the /bin directory.

./lithos-client

This will automatically read from lithos.conf in your /bin folder.

To run with a custom configuration file add the argument -Dconfig.file=

./lithos-client "-Dconfig.file=path/to/custom/config/file.conf"

To build from source run:

sbt dist

This will create a new zip file in the /target/universal directory


Release Notes:

Synchronization:

  • Changed Lithos sync model. Lithos now uses: a single canonical block producer, a single state manager, and whole-block transform application.
  • Lithos now takes periodic snapshots of the current blockchain state, so that catching up is easier and modifying startHeight is no longer necessary.
  • Re-orgs and orphans are now handled properly by re-syncing rollups
  • Miner Dictionary now bootstraps via its transaction chain, which reduces the number of necessary calls from 400000 to 16 (in testnet)
  • MempoolView now deals only with rollup chains
  • Authenticated dictionaries are no longer held in memory unless needed.
  • Transforms are held in a journal and replayed to materialize dictionary states
  • Mempool dictionary states are similarly projected and materialized from transaction chains
  • Operations requiring all miner keys now walk tree nodes rather than holding redundant and sizeable collections in metadata
  • Long-running memory usage has been significantly reduced
  • Metadata and dictionary states are now represented separately
  • Rollups or dictionaries which produce errors are now sectioned off and dealt with, without hurting other rollups or synchronization information

API:

  • Modified info API to reflect new synchronization changes
  • Changed /blocks/:utxoId/miners to be authenticated
  • Payments API now uses indexed node, rather than storing payments on the client

Web UI:

  • Updated API webdocs

Configuration and Startup

  • Added new sync config
  • You can now add ports to the end or nodeURL if you need to use a custom API port