-
Notifications
You must be signed in to change notification settings - Fork 212
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
refactor: CNS-1008 - Optimizer Refactor Part 1: provider optimizer refactor #1784
base: main
Are you sure you want to change the base?
Conversation
…e() + minor test fix
Test Results1 043 tests 1 037 ✅ 11m 17s ⏱️ For more details on these failures and errors, see this check. Results for commit 62048d5. ♻️ This comment has been updated with latest results. |
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.
this code is a piece of art, taking something so complex and making it so clear
// | ||
// Important: when using this function from the node's code, do not configure the block error probability | ||
// (in default mode, it's unused) | ||
func (qos *QualityOfServiceReport) ComputeQoSExcellence(opts ...Option) (sdk.Dec, error) { |
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.
need to merge latest reputation here
utils.LogAttr("provider", providerAddress), | ||
utils.LogAttr("requested_block", requestedBlock), | ||
) | ||
return NewSelectionTier(), Exploration{}, nil |
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.
this will error out on earliest requests etc, let's treat them as latest in that case
AvailabilityScore: providerData.Availability.Num / providerData.Availability.Denom, | ||
LatencyScore: latencyScoreCurrent, | ||
GenericScore: providerScore, | ||
SyncScore: qos.Sync.MustFloat64(), |
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.
if case this panics the entire service will go down due to some error, this is very strict
in general we hardly panic and FATAL on code that isnt performed on startup
the correct approach is to do a severe error, and return default values that allow you to move on
syncScore = sdk.OneDec() | ||
if sync == 0 { | ||
// if our sync score is uninitialized due to lack of providers | ||
sync = 1 |
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.
in general this is penalising perfect providers but 1 is a very low number so i am okay with this, can add a comment explaining that this is 1ms delay
Description
Closes: #XXXX
I refactored the provider optimizer and fixed various bugs it had. I did the refactor in files with "_refator" suffix to be able to test the new optimizer while not hurting the current one
Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...
!
in the type prefix if API or client breaking changemain
branchReviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...