Gossipsub, what dat?

This is a topic for discussion of gossipsub and this OP includes related resources which anyone can edit (ie a Wiki).

gossipsub is a feature of Safe Network provided by libp2p.

In short, it is a way to share data using a pubsub (publish / subscribe) protocol, so think of a chat application, social media, blog with RSS. All those are at their core pubsub applications, and gossipsub is a way to implement pubsub on a peer-to-peer network based on the gossip protocol which makes it fast, reliable and efficient at scale.

Here are some useful resources starting with those from the libp2p project. Feel free to add others you believe will assist understanding and discussion.

libp2p Resources

Additional Resources

Please add non libp2p links here:

  • Scalable PubSub with GossipSub - Dimitris Vyzovitis (London Hack Week 2018) 12m video explaining gossipsub, efficient scaling, animations at 8m YouTube

gossipsub ↔ ActivityPub

Encouraging proposal on p2p-ActivityPub:

FEP-ae97: Client-side activity signing

Existing Fediverse servers manage signing keys on behalf of their users. This proposal describes a new kind of ActivityPub client that lets users sign activities with their own keys, and a server that can distribute client-signed activities to other servers.

Ref: fep/fep-ae97.md at main - fep - Codeberg.org

14 Likes

It would be useful to collect a list of FOSS apps being built on libp2p gossipsub, such as a chat or forum (@seneca?) because they would I expect be easy to port to Safe Network and any other network based on libp2p.

If you find any please add them at the bottom of the OP and report them in a reply.

ActivityPub which is used to federate many different applications together, creating a single open web across application types may well be implemented on top of gossipsub one day.

That would be amazing, connecting federated replacements for microblogs like Mastodon (Twitter), Kbin/Lemmy (Reddit), PeerTube (YouTube) and many others, not just to reach other but to gateway nodes in Safe Network.

10 Likes

Encouraging proposal on p2p-ActivityPub:

FEP-ae97: Client-side activity signing

Existing Fediverse servers manage signing keys on behalf of their users. This proposal describes a new kind of ActivityPub client that lets users sign activities with their own keys, and a server that can distribute client-signed activities to other servers.

Ref: fep/fep-ae97.md at main - fep - Codeberg.org

2 Likes

I think this is a massive thing that is currently ignored. But to have many ideas on a common infrastructure is way more powerful than folk realise.

An example is us, the number of time I have pushed gossip on top of kad is mental and folk don’t get it, but the ramifications are really huge.

The key is to make libp2p a protocol we can ll use and stop re-inventing wheels, SAFE would have been launched in 2015 if this existed. It allows focus on the core protocol and less on the connectivity parts. But a single network where you can say, where’s’s SAFE, where’s’s mastedon etc. is incredibly powerful. Then track back to libp2p and make it as simple as possible. It’s a very powerful protocol

10 Likes

But seems GossipSub is a big scalability problem, when we have to turn it off for clients.

It worries me, because it seems “clients as nodes”, or “nodes from home” may turn out impossible.

2 Likes

There’s no reason to think that because as part of a test experiment this was turned off.

1 Like

The reason for me is the success of this experiment :slight_smile:

2 Likes

I wonder if tiered nodes with higher specs for gossip sub could be necessary so that home and mobile nodes could remain light? Curious to know more.

2 Likes

That would be bad, but I think we don´t know if that is the case. It can be some bug in implementation, or we haven’t yet found right settings. Let’s wait for more info from devs.

3 Likes