Secure Scuttlebutt#
Feeds & Metafeeds#
Peers maintain a list of feeds they subscribe to
When peers connect, they ask for updates to subscribed feeds
Metafeeds can provide metadata about other feeds, and can form a tree structure with other Metafeeds as subfeeds.
Bencoded rather than JSON.
flowchart LR
subgraph Main [Main Feed]
mf["`Main Feed Posts
*metafeed/announce*
message`"]
end
subgraph Meta [Meta feed]
direction TB
mf1["`Metafeed posts
*metafeed/add/existing
message`"]
mf2["`Metafeed posts
*metafeed/add/existing
message`"]
mf3["`Metafeed posts
*metafeed/add/derived
message`"]
mf4["`Metafeed posts
*metafeed/add/existing
message`"]
mf1 --> mf2
mf2 --> mf3
mf3 --> mf4
end
subgraph SubfeedA [Subfeed A]
direction LR
sfa1["`Application specific
message in subfeed`"]
sfa2["`Application specific
message in subfeed`"]
sfa1 --> sfa2
end
subgraph SubfeedB [Subfeed B]
direction LR
sfb1["`Application specific
message in subfeed`"]
sfb2["`Application specific
message in subfeed`"]
sfb1 --> sfb2
end
subgraph SubfeedC [Subfeed C]
direction LR
sfc1["`Application specific
message in subfeed`"]
sfc2["`Application specific
message in subfeed`"]
sfc1 --> sfc2
end
subgraph SubfeedD [Subfeed D]
direction LR
sfd1["`Application specific
message in subfeed`"]
sfd2["`Application specific
message in subfeed`"]
sfd1 --> sfd2
end
Main --> Meta
Meta --> SubfeedA
Meta --> SubfeedB
Meta --> SubfeedC
Meta --> SubfeedD
Uses for metafeeds
Storing multiple network identities with a special feed off the user’s root metafeed. (contents of metafeed entries can be encrypted)
Allow for multiple devices to use the same identity - https://github.com/ssbc/fusion-identity-spec
Device A
invite
s Device B to identityDevice B
consent
sDevice A
entrust
s phone with private keyDevice B posts a
proof-of-key
messageIf device B lost,
tombstone
the fusion identity message