Content pfp
Content
@
0 reply
0 recast
0 reaction

vrypan |--o--| pfp
vrypan |--o--|
@vrypan.eth
@v, @sanjay how will the mempool be implemented? More specifically, will it be a mempool shared by all hubs (not just "write")? Will I be able to submit my messages to my (read) hub in order to add them to the mempool?
2 replies
0 recast
5 reactions

Sanjay pfp
Sanjay
@sanjay
We’re working on the full technical design right now. But yes, in this model it would be important to have a public mempool. Either via public RPCs or by read hubs publishing to the same shared mempool.
1 reply
0 recast
2 reactions

vrypan |--o--| pfp
vrypan |--o--|
@vrypan.eth
My concern: If we are required to connect to one of 10 or 20 write hubs to submit messages, then it's trivial for a country can block this at the IP level through their ISPs.
1 reply
0 recast
2 reactions

Sanjay pfp
Sanjay
@sanjay
Yeah, good point. Being able to write to the mempool via gossip should avoid that, as you point out.
1 reply
0 recast
2 reactions

vrypan |--o--| pfp
vrypan |--o--|
@vrypan.eth
It seems to me that the additional requirements to convert a read hub to a write hub may not be very high. If this is the case (I'm not sure), would you consider an algorand-style consensus mechanism where every (or at least any interested) hub can also be a writer? Just rumbling, this is a very exciting topic for me to wait for the specs 🤣
1 reply
0 recast
0 reaction

Sanjay pfp
Sanjay
@sanjay
I don't think that would be possible without introducing crytpoeconomic incentives for security. I think we can move to a more open system for hubs eventually, with just staking eth.
1 reply
0 recast
0 reaction

vrypan |--o--| pfp
vrypan |--o--|
@vrypan.eth
Maybe there are other incentives or mechanisms or types of capital (social?). I'm stuck with this idea that somehow, users (or apps) could vote on who will be the next write-node (or who to throw out?) For example, it would be easy to include the node id (or fid) in every message, and say that a block must be produced by a node with this fid, and the resulting block will prove it by including enough "votes". (I can see the problems with this, but it may be a primitive that can be used somehow.) Just throwing half-baked ideas.
1 reply
0 recast
0 reaction

Sanjay pfp
Sanjay
@sanjay
Yes, we could do something like that. But it doesn't have to happen at the block level. It could happen once a month/quarter/year etc. With fids voting (as you imply it has issues, need sybil resistance) for the set of fids running a write hub. Another mechanism we discussed briefly is that we could allow users to pay a small fee and pin which block producer you want to messages to be included in. e.g. if you are worried about collusion among write hub operators and being censored. Ideally we just need one honest hub, but something to think about.
1 reply
0 recast
1 reaction

vrypan |--o--| pfp
vrypan |--o--|
@vrypan.eth
+1 "One honest hub" is not enough. Are you OK, with this honest hub being in France? Am I OK with this honest hub being in the US?
2 replies
0 recast
1 reaction

Sanjay pfp
Sanjay
@sanjay
Yes, practically with most consensus algos you need 2/3rds to be honest. However, because we don't have to worry about double spends or changing history as much, we have more flexibility. There are escape hatches you can build in. One version is you could pay publish your fid merkle root to a public smart contract that all hubs listen to, and then "publish" your entire account state to a read hubs which will get propagated across the network (as long as the messages are valid and compute to the same merkle root). Ultimately, I'm a fan of Varun's "sufficient decentralization". If we can get to ~5-10 geographically distributed hubs run by independent entities, and fids have a say in who those entities are, it's good enough for the medium term. Since Farcaster is fundamentally a social protocol, the ability for social consensus to keep hubs honest should not be underestimated. Especially compared to other chains.
1 reply
0 recast
1 reaction

vrypan |--o--| pfp
vrypan |--o--|
@vrypan.eth
Oh, using the L1! :-) That's smart. Yes, I agree on a realistic approach. I also agree on the social consensus part. But there is an additional difference that complicates things a bit: If I rely on FC to communicate with others, and I get censored, I don't have a way to coordinate a protocol response (to downvote the censor for example). I know, in practice there will be some alternative channel but worth mentioning.
0 reply
0 recast
1 reaction