Unbounded bootstrap fee for new storage nodes #1395
Labels
No labels
P0
P1
P2
P3
badger
frostfs-adm
frostfs-cli
frostfs-ir
frostfs-lens
frostfs-node
good first issue
triage
Infrastructure
blocked
bug
config
discussion
documentation
duplicate
enhancement
go
help wanted
internal
invalid
kludge
observability
perfomance
question
refactoring
wontfix
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/frostfs-node#1395
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Expected Behavior
Transaction fees collected from storage node wallet during bootstrap should be similar for all storage nodes, and should not grow based on current balance of storage node wallet.
Current Behavior
It appears that storage node wallet loses 50% (plus some change) of its balance during bootstrap. That does not seem sensible.
Balance of storage node wallet
In examples above ≈0.124 GAS appears to be in the ballpark of normal transaction fee. Where do the other 50% of the balance go?
Possible Solution
No fix can be suggested by reporter. Further solutions shall be up to developers.
Steps to Reproduce (for bugs)
I've prepared a reproducible example based on frostfs-dev-env:
make up/basic
cd extra; make GAS=123
. This will:Example output (truncated):
Context
I've noticed this while watching wallet balance when I was debugging another unrelated issue.
Regression
No
Your Environment
uname -a
):Linux hostname 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux
Related discussion in private chat
We give GAS to the notary service as a deposit https://github.com/nspcc-dev/neo-go/blob/master/docs/notary.md (it boils down to notary service having to be able to use that GAS at some point in future, to pay for the work being done now).
Currently, it is hard-coded to be exactly half of the node balance
// gasDivisor defines what part of GAS balance (1/gasDivisor)
It seems legit, because node doesn't need GAS for other things.
Do you have any reason to change the amout of GAS we deposit?
If so, let's discuss, if not, let's close this issue.
Reply reposted from instant messenger:
A constant target seems OK too.
Currently, we have multiplicative hard-coded bound, depending on th enode balance, this could be configured too.
Something like
or
The example above is too complex, I would like to have 2 parameters at best and make then non-conflicting.
The thing I dont like is that flat values mean absolutely nothing, they depend on what the node does in the network and this may change rapidly between releases.