farcasterxyz / contracts

Implementation of the Farcaster contracts
https://www.farcaster.xyz/
319 stars 102 forks source link

feat: Multi-Chain Support #413

Open kyleboe opened 2 months ago

kyleboe commented 2 months ago

What is the feature you would like to implement? Multi-chain support to allow the Farcaster protocol to operate across different blockchain networks. This feature would enable users to manage their identities and interactions seamlessly on various chains, enhancing the protocol's utility and reach.

Why is this feature important? Adding multi-chain support is crucial for broadening the usability and adoption of the Farcaster protocol. As the blockchain space grows, users are increasingly interacting across multiple networks. Supporting multiple chains will make Farcaster more versatile and appealing to a wider audience, ensuring it remains competitive and relevant in the evolving blockchain ecosystem. This feature should be prioritized to capitalize on the growing cross-chain interaction trend and to fulfill the protocol's vision of a widely accessible decentralized social graph.

Will the protocol spec need to be updated?? Yes (and there are likely things I've missed below)

How should this feature be built? (optional) The implementation could start with the development of a cross-chain identity management system, which would involve creating a universal or adaptable user identity compatible with various blockchains. This system should support the most compatible and accessible networks initially (something like VeChain running a fork of the EVM, with an existing ENS-compatible naming system), with plans to expand to others based on community feedback and usage patterns.

From an Off-Chain perspective, this functionality could be built by abstracting Hub <> Blockchain communication into an adapter layer. This would allow implementing different chain adapters similar to Web2 web framework ORM adapters for things like Postgres vs MySQL vs MongoDB.

varunsrin commented 2 months ago

i don't understand this proposal at all.

kyleboe commented 2 months ago

Maybe I am misunderstanding the implementation architecture (or maybe this is in the incorrect repo).

Basically I think it would be great to allow different blockchains to act as the underlying blockchain instead of just Optimism/Ethereum. In the long term, it would be nice to allow any EVM compatible chain to run the Farcaster contracts. This change would require an additional layer of complexity on the part of Hubs to manage data aggregation from multiple sources (as I mentioned above in the form of adapters).

kyleboe commented 2 months ago

I was thinking about it in a similar way to Mastodon in how it allows for many decentralized servers to supply data to the aggregating server (or Hub in Farcaster's case).

varunsrin commented 2 months ago

ah i see. that would be a massively complex problem, trying to coordinate state across dozens of different decentralized systems.

what would the tangible benefit to users be today?