by Tom (u/plebeius.eth) | 4mo ago
>BTW, is there any way to actually link to a user account on seedit?
Not yet, unfortunately. You'd have to find a CID of a comment published by each user in a subplebbit that's online or still seeded, and use that CID in the profile link.
Plebbit profiles aren't IPNS records currently (like subplebbits are), i.e. they aren't reachable p2p, they are just local JSON files generated and stored only locally. So, the client needs a comment CID published by the user in a subplebbit, because it uses that CID to build the post history recursively, from the feed data it already has from known subplebbits (filtering by comment author), generating this sort of mockup of how the real profile page would look like. For example, the user creation date displayed on Seedit is a very inaccurate approximation—it's just the last timestamp of the oldest comment found recursively by the app.
It's definitely possible to let plebbit nodes run IPNS records for user profiles, other than communities. It's just low priority (discussion: https://t.me/seeditreact/9105), because it will be a lot of work for a lesser UX improvement, given that our clients are reddit and 4chan clones, and the reddit and 4chan UXs are mostly based on pseudonymity. Once implemented, it will be possible for users to reach profiles IPNS records fully p2p, using just their address, just like how communities work now: profiles will be able to have their own fields, like their own bio, avatar, instantly synced post history, karma score, account creation date, subscriptions list, etc.
Of course, to run this profile page IPNS record you'd need to keep your plebbit node online 24/7, which is another reason why this is currently low priority to implement. It will be high priority, IMO, once we'll have a permissioned public RPC implemented in the clients, i.e. a service similar to Infura for blockchains, but for plebbit nodes. It will let all new users run nodes for their profiles and communities automatically, by subscribing to this non-custodial service, which should have a free tier suitable for the vast majority of users, who rarely scale their communities/profiles to thousands of subscribers. Once we will have this RPC service (and btw, anyone can create one, even right now, so I think there will be several competing public RPC services), we will start building plebbit clients for profile-based social UXs, i.e. fully decentralized alternatives to tiktok, twitter, instagram, etc. These social networks get content from profiles, not communities—they are profile-based, so a profile-based plebbit client would require every single user to run a plebbit node for their profile, which means it would require a permissioned and non-custodial public RPC, implemented by default.
2 direct replies
While trying to understand this, I noticed that gateway.plebpubsub.xyz currently doesn't work. It responds with `failed to resolve /ipns/k51qzi5uqu5dhsj11w2r4u1qymyx2obkgmqr6ua0lx22mxyyulqzogg3ocahq5: write /usr/src/plebbit-provider/.ipfs/blocks/.temp/temp-3017901142: no space left on device` on every request.
Okay, that's interesting. I just assumed that it searched the whole browser database for comments of a user in all subs but what it actually does is, when somebody posts they attach the cid of their previous comment. I guess the main issue with that is, as soon as a sub in that chain is offline, the link breaks.
Thinking about that, a user profile might be similar to a community but it's actually a bit different in that only the owner can post to it so there's no need to have captchas but only a private key that can update a IPNS record (from what I understand about IPFS) which every user has in their browser. So that means it should be possible for a user to publish their profile on IPFS (if its possible to do that in the browser, otherwise we would need something like a reverse gateway to publish stuff) and everybody who wants to seed it can (for example a Plebbit node could query and seed it once a user posts in their community), without the user actually having to stay online 24/7 and if nobody seeds it, the user can come back online and republish it since they keep the data in their browser. Maybe we're describing the same thing and it's probably not easy to implement either, just wanted to get this out there.