Lithos Testnet 5.4.0
LithosDex Orders & Batching Expansion
Added new simple contracts for LithosDex orders, along with batcher support for LithosDex. The LithosDex API and webpanel now support the new swap, deposit, and redeem orders, mirroring ErgoDex ones where applicable. Deposit orders also have slippage-like protection from sandwich attacks. For batching and candidates, we have generalized and added new functionality which effects all batchers. Ancestor transactions are now retained properly and sent during candidate building. Candidate sources now respond with their best work before they timeout. Broadcasting is fixed for mempool orders, both in LithosDex and ErgoDex. Finally, we've added more configuration options across the board, especially focused on preventing mempool spam attacks from hurting batching uptime in both the mempool and during candidate building.
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:
LithosDex
- Added new LithosDex order contracts, mirroring ErgoDex v1 contracts where applicable
- For deposit orders, we have added slippage-esque protection from sandwich attacks which can effect the amount of liquidity you earn during a deposit (this protection does not exist for ErgoDex deposits)
Batching
- Re-worked and generalized batching to be module level actors, which can run independently of mining
- Added new LithosDexBatcher for handling LithosDex orders
- Added retained ancestor map for mempool transactions which disappear during candidate requests
- Opened valid ancestor types to include transactions spending mining reward boxes and certain LithosDex transaction chains.
- Modified general batching algo to fail safe and continue on bad orders
- Fixed broadcasts not reading from the mempool for open orders
- Added new bounds for mempool reads to prevent spam
- Added bounded list to remember bad orders and prevent them from slowing down batching rates
Webpanel
- Added order creation to LithosDex page, with option for direct execution instead
- Changed recent swaps table to show all order types
- Added personal order list to the bottom of the swap and deposit pages.
- Added miner and executor fee settings
API
- Added new API for LithosDex order creation, along with changing the recent swaps call to now show orders.
Mining
- Added safe candidate source handling which returns the best attempt block package before the timeout.
- Added fix for rare desyncs caused by reading a candidate after a block submission, but before the node's indexer caught up to the newly applied block. Such desyncs will now retry rather than immediately falling back to solo mining.
Configuration
- Added large amount of new options for batching, including mempool bounds, ancestor inclusion, and mempool broadcast behavior.
- Added new configurable timeouts for consolidation