-
Notifications
You must be signed in to change notification settings - Fork 413
feat: storage deposit #4281
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
Open
piux2
wants to merge
4
commits into
gnolang:master
Choose a base branch
from
piux2:feat_storage_deposit_interrealm
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
feat: storage deposit #4281
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
🛠 PR Checks SummaryAll Automated Checks passed. ✅ Manual Checks (for Reviewers):
Read More🤖 This bot helps streamline PR reviews by verifying automated checks and providing guidance for contributors and reviewers. ✅ Automated Checks (for Contributors):🟢 Maintainers must be able to edit this pull request (more info) ☑️ Contributor Actions:
☑️ Reviewer Actions:
📚 Resources:Debug
|
Codecov ReportAttention: Patch coverage is 📢 Thoughts on this report? Let us know! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
📦 ⛰️ gno.land
Issues or PRs gno.land package related
📦 🤖 gnovm
Issues or PRs gnovm related
🧾 package/realm
Tag used for new Realms or Packages.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Solution for : #3418
Pre interrealm Meta4 PR #4035
BREAKING CHANGES
New Message Flag
AddPkg Additional Logic
send
flag to send tokens to the realm.deposit
flag to specify how much GNOT to include for storage fees.-deposit
flag was used in place of-send
within AddPkg.Purpose
Paying for Storage
Whenever data is stored in a realm (e.g., via
SetObject
), an amount of GNOT is locked as a “storage deposit.”Reclaiming Storage & Deposit
When stored data is removed, the corresponding deposit is released back to the user.
Encouraging Efficient Storage
Users must pay to keep data on-chain, incentivizing them to store only what is necessary.
High-Level Design
The system imposes a GNOT deposit for stored data. Each realm tracks its total number of bytes in use and the total tokens locked for that storage. After each message is processed, the net change in storage usage is calculated, and the appropriate amount of GNOT is locked or unlocked. By default, deposit tracking is aggregated per realm rather than per user. Any user refunds or reward mechanisms for freeing storage are determined by the realm.
Usage Tracking
Realm-Level Tracking
Global VM Parameters
current storagePriceDefault = "100ugnot" // Cost per byte (1 GNOT per 10KB), totaling 1B GNOT for 10TB
Message-Level Fields
MsgCall
/MsgRun
/AddPkg
): The user can specify how many GNOT to deposit for potential storage usage.Deposit & Retrieval Flow
Make a
MsgCall
/MsgRun
/AddPkg
CallDuring Execution
Anyone Can Free Storage
Tools
gnokey query vm/qstorage -data <realm_path>
: Shows a realm’s locked tokens and current storage usage.Storage:
directive can be added to file tests to display storage usage across realms.Future Improvements