Skip to content
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

feat: Multi-Chain Support #413

Open
kyleboe opened this issue Apr 17, 2024 · 4 comments
Open

feat: Multi-Chain Support #413

kyleboe opened this issue Apr 17, 2024 · 4 comments
Assignees
Labels
feat New feature request

Comments

@kyleboe
Copy link

kyleboe commented Apr 17, 2024

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)

  • Section 2.1 Message Data – Updates to the FarcasterNetwork enum to extend to other networks.
  • Section 2.3 User Data - Updates to the UserDataType enum to include network-specific information.
  • Section 2.5 Verifications - Adjusting the VerificationClaim.network struct attribute to include other networks.

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.

@kyleboe kyleboe added the feat New feature request label Apr 17, 2024
@varunsrin
Copy link
Member

i don't understand this proposal at all.

@kyleboe
Copy link
Author

kyleboe commented Apr 17, 2024

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
Copy link
Author

kyleboe commented Apr 17, 2024

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
Copy link
Member

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat New feature request
Projects
None yet
Development

No branches or pull requests

2 participants