FIP-14: Residual Storage #139
Replies: 5 comments 9 replies
-
Implementation farcasterxyz/hub-monorepo#1626 |
Beta Was this translation helpful? Give feedback.
-
Suggestion: Residual storage should be read-only. I.e. messages by FIDs that are in residual storage mode are rejected. If not, I may think I can still post reactions and not realize that I only have 25 reactions. |
Beta Was this translation helpful? Give feedback.
-
What is the expected response when calling |
Beta Was this translation helpful? Give feedback.
-
@sanjayprabhu and I were discussing limits, and it might be desirable to have a high follow limit, so you preserve your social graph. it's probably the hardest thing to recreate if you accidentally let your storage lapse, and while we have plenty of storage space on the hubs we should try to preserve as much of this as possible. |
Beta Was this translation helpful? Give feedback.
-
this would be a dope way to have a "free" trial for users to signup with, that expires in maybe 30 days. Would make onboarding to farcaster much easier/cheaper, making it more approachable for developers to build into their apps. I'm personally looking to build an embedded wallet + farcaster account creation flow in my site, but sponsoring $3 at the start with no user history is pretty costly/prohibitive. |
Beta Was this translation helpful? Give feedback.
-
Title: Residual Storage
Type: Implementation FIP
Authors: @deodad, @horsefacts, @sanjayprabhu, @varunsrin, @vrypan
Abstract
Hubs will preserve some messages when an account's storage expires for a better user experience.
Problem
Hubs revoke all messages when an account's storage expires and passes the 30-day grace period. Anyone viewed the account's profile or any recent threads it participated in will see missing data. If the account holder decides to renew the account, they'll also have to restore their profile (UserData) and follow (Links) messages from a backup or enter this in again.
Our storage design aggressively pruned messages because we weren't sure the Hub's storage model would scale. But now that we have several months of data, we can change the pruning logic for a better user experience.
Specification
A Farcaster account which has no storage is allowed the following limits:
If all these messages are fully used, they will consume ~ 100 kb of storage. But based on today's usage patterns, we expect them to be closer to ~ 60kb on average.
These limits will likely be changed and/or reduced as hub storage requirements increase with more users joining the network.
Hub API Changes
For a user with expired storage,
GetCurrentStorageLimitsByFid
must return:Rationale
Will this cause hubs to run out of storage?
Residual storage increases the amount of data stored on hubs. In the short term (next year), we have reasonable confidence that this won't impose a significant burden on hub runners. In the long run, we expect we will have to revisit and update these limits.
Why is the limit for links so much higher?
An account renewing storage will find its feed empty if it has no links, and will have to do a lot of manual work to restore its social graph and get a useful feed. Casts and reactions, on the other hand, matter much less to the usability of the application. Keeping around a small number ensures recent conversations in other peoples feeds are preserved, but beyond that are much less important to the user experience.
Release
2024.02.21
release.Appendix A: Message Distribution on Hubs
The distribution of messages in each significant CRDT as of Jan 18th, 2024 are:
The distribution of message counts in each significant CRDT set as of Jan 18th, 2024 are:
Beta Was this translation helpful? Give feedback.
All reactions