-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve Initialization of OnchainFeeMonitor with Conservative Synthetic History #210
Improve Initialization of OnchainFeeMonitor with Conservative Synthetic History #210
Conversation
IMHO we should remote the all code because it is not safe anymore do something like this with the current fee env |
@vincenzopalazzo do you mean "remove the old code"? |
Here is some data from one of my testnet nodes which ends roughly 12 hours after starting w/ fresh history:
Here is data for a second testnet node with similar fresh start and time-frame:
They both recognize a coherent low-fee env around the same time, looks pretty good to me. |
9615654
to
7da2f08
Compare
I've modified this PR to use a "hybrid" approach with a little synthetic data. It's ready for review |
7da2f08
to
c991a5b
Compare
I pushed an additional commit which logs the h2l, mid, l2h and last_feerate in addition to the decision:
|
…ic History Previously, CLBOSS initialized the OnchainFeeMonitor with 2 weeks of synthetic data collected at an arbitrary time on an unknown system. This historical data often failed to accurately determine low/high fee conditions until 2 weeks had passed. This update changes the initialization to use a smaller amount of deliberately conservative history. This approach discourages CLBOSS from prematurely declaring a low-fee environment, while still allowing it to recognize low fees after a few days. The new size is designed to have 50% influence on the lower 20th percentile after 24 hours (24 * 6 * 20% * 0.5 = 14.4). This influence decreases over time: to 25% after two days, 10% after five days, and continues to decay until it has no effect after two weeks. It's important to note that CLBOSS will still function in high fee environments to manage initial liquidity, so this change does not impact its ability to operate effectively.
f7114d1
to
1bb6156
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, ACK 1bb6156
CLBOSS preloads the fee history with 2 weeks of some particular history. This is almost incorrect for whatever current feerate environment exists.
By altering the
get_feerate_at_percentile
routine to use the percentile values of whatever data exists (doesn't presume a full history table w/ 2016 values) we can skip preloading any sample data and instead use current data.This means that CLBOSS will learn about the current fee rate environment gradually; it's early impressions will be based on a small amount of data. However, I don't see how basing the history on arbitrary past data is better, it will make good decisions sooner w/ all real data ...