Skip to content

Feedback on Freechains design #1

@arcalinea

Description

@arcalinea

Thought I'd leave my comments as your first issue!

  • Envisioning everything as a “chain” is nice, it’s like Matrix meets ssb. Was thinking about how a 1 to many social network on Matrix would work, and basically you just reframe the pubsub “rooms” as “topics”, and a user’s feed is a room/topic they control.
  • Content doesn’t appear to be mutable, since posts in a chain are all hash-linked. This is something I think ssb suffers from - people like to have the option to at least delete, if not edit, posts on social media. Maybe you could make single-writer feeds mutable. I once played with a proof-of-concept of this with posts stored by timestamp in a merkle tree.
  • You use a custom hash format? Could be worth using something like multihash which is designed for upgradeability
  • Since you’re using a hash-linked data structure though, why not go ahead and use IPLD? You could also use libp2p to handle p2p networking, and then you would basically be compatible with the IPFS ecosystem - using the IPFS DHT is optional. I’m really surprised there’s not a good p2p social network on IPFS yet, it’s very feasible.
  • How do you map human-readable usernames to cryptographic public keys?
  • Attempts at fully p2p reputation systems are very much needed, but the results of incentive engineering are difficult to predict. From my perspective, this reputation system seems to have two main drawbacks: hard to bootstrap, and anti-viral. It’s hard to imagine it performing well in a sparse network scenario where there are few people around to “like” the posts of newbies, and new users would easily get discouraged and leave if their messages don’t show up for months. Also, losing reputation for giving out likes would lead people to be stingy with their likes, impeding network growth. You could change the reputation system so the post-suppression effects don't kick in until you reach a certain scale (measured in number of posts, activity, or peers), so there isn't unnecessary friction at the beginning. For example, Aether has a whole voting governance system for moderators, but it doesn't kick in until a community is consistently active, and in actuality it hasn't kicked in yet on any communities because the network is still so small. Spam is a real problem at scale, but in the very beginning any activity is good activity.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions