Edit headers

This commit is contained in:
Jay Graber 2020-07-01 15:13:53 -07:00
parent 5027bd8645
commit 7664fb8318
12 changed files with 48 additions and 48 deletions

View File

@ -6,7 +6,7 @@ Aether is a Reddit-like p2p social network - a public discussion forum designed
Identities in Aether are based on keypairs, like in ssb. As with ssb, the human-readable usernames are not unique, although users can choose a custom nickname. Multi-device usage is currently possible, but difficult (requires manually porting a user config file). There is a strategy for multiple device logins under development that would allow users to store and sync encrypted keys from a remote backend.
### Networking/Message passing
### Network
Aether is a flood network where every node stores everything. All nodes download content as well as provide it to other nodes. Communities with objectionable content can optionally be blocked by the user, so that content is not stored on their machine.
@ -16,13 +16,13 @@ Syncing nodes request caches of data from others. Every node stores pre-packaged
New posts have a 0 to 10 minute delay, as it takes time to traverse the p2p network.
### Data Storage/Message Persistence
### Data
Aether's data structure is a DAG (directed acyclic graph). It allows insertion and updates of content. Deletion of content is achieved by inserting a blanck update. The backend keeps a local SQLite database up-to-date with the state of the network. The frontend compiles and presents the graph data.
Posts are ephemeral. After a certain period of inactivity on a post (the default is 6 months from the last reference), it automatically gets deleted by nodes on the network. If a post continues to referenced, it stays up, so actively discussed topics do not disappear.
### Moderation/Reputation
### Moderation & Reputation
Each sub-community has its own moderators, which communities elect or impeach themselves. Like sub-reddits, communities largely govern themselves. Mods (moderators) can approve or delete posts.
@ -38,13 +38,13 @@ Whitelists and blacklists are used to moderate the collection of communities. Wh
Aether combats spam by requiring users to complete a small "proof-of-work", a brief hashing function, before they post. This rate-limits the amount of posts that a user can send out to the network, making it more expensive to flood it with spam.
### Social/Discovery
### Social & Discovery
Users can search communities, content, and people. The user interface has tabs to discover newest content and popular content.
There is no follow functionality for other users at present.
### Privacy/Access Control
### Privacy & Access Control
All posts are public.

View File

@ -14,25 +14,25 @@ Diaspora uses the Webfinger protocol to discover users from other pods. User inf
It is not possible to move a user account to another pod once created.
### Networking/Message passing
### Network
Messages sent between servers are serialized to XML, then signed using the Salmon Magic Signature protocol.
### Data Storage/Message Persistence
### Data
User data in Diaspora is tied to their pod server. A user can export all of their data at any time, to reduce the risk of their pod going down.
### Moderation/Reputation
### Moderation & Reputation
Like Mastodon, moderation is done at the server level. When ISIS joined the Diaspora network in 2014 after they were censored by Twitter, all the larger pods moved to block their server.
In this [Github issue about admin reports](https://github.com/diaspora/diaspora/issues/7316), it is possible to see how communities struggle when tools for moderation are not built into federated networks from the start. This user requested a way to forward spam reports to the source pod, as that was the only way to remove content from the entire network. Without this feature, pod administrators resorted to manually searching for and contacting other administrators.
### Social/Discovery
### Social &Discovery
Like Twitter, Diaspora includes hashtags and mentions.
### Privacy and Access Control
### Privacy & Access Control
Profiles in Diaspora can be public or private.

View File

@ -20,17 +20,17 @@ Account credentials are managed by the users instance, so if users forget the
For user verification, there is no central authority to check identity documents, but link-based verification can help cross-reference links associated with a user. For example, a user can link to their Mastodon profile from their personal homepage, and receive a verification checkmark to confirm that they are the owner. In addition, an identity proof framework was added in 2019, which currently only supports Keybase. It allows users to [link their Keybase cryptographic identity](https://github.com/keybase/keybase-issues/issues/2948) to their Mastodon account.
### Networking/Message passing
### Network
Mastodon uses [Webfinger](https://docs.joinmastodon.org/spec/webfinger/) to translate user mentions to actor profile URIs. Webfinger specifies the path at which to find a user's profile information provided by the server.
ActivityPub federation defines a common set of APIs and formats for passing messages between servers. ActivityPub messages consist of the message itself, and a wrapper that communicates what's happening with the message, defining the "activity". The activities Mastodon implements are documented [here](https://docs.joinmastodon.org/spec/activitypub/).
### Data Storage/Message Persistence
### Data
Mastodon is a Ruby on Rails application that uses PostgreSQL and Redis for data storage.
### Moderation/Reputation
### Moderation & Reputation
Moderation takes place at the server level in Mastodon. Each instance sets its own moderation policies, either through the unilateral decisions of an admin, or through collective discussion and agreement. Admins can ban entire instances, cutting off their visibility. If an instance gets banned by many others, its users can still talk with each other, but they will be isolated from the rest of the Fediverse.
@ -38,7 +38,7 @@ Users can also report posts to moderators, submitting it for a moderation decisi
Some documented [challenges with moderation in Mastodon](https://nolanlawson.com/2018/08/31/mastodon-and-the-challenges-of-abuse-in-a-federated-system/amp/) from 2018. One recommended solution is to provide open APIs for third-party tools to help with moderation, which was [added in 2019](https://github.com/tootsuite/mastodon/pull/9387).
### Social/Discovery
### Social & Discovery
There is [no unified global search in Mastodon](https://github.com/tootsuite/mastodon/issues/9529), as each server monitors a different set of messages. Searching for the same keyword on different instances yields different results. The federated timeline shows public posts that the user's server knows about. Essentially, users have access to posts of people followed by people on their instance.
@ -48,7 +48,7 @@ A [2019 analysis](https://emilianodc.com/PAPERS/mastodonIMC19.pdf) of the Mastod
Mastodon's interface has a "Profile Directory" tab, where users can browse recently active profiles or new arrivals from both their own instance or the fediverse to discover who to follow. Users can select featured hashtags to be displayed on their public profile so people can browse their posts by hashtag.
### Privacy and Access Control
### Privacy & Access Control
Posts can be public, unlisted, private, or direct. Public posts are shown on local, federated, and hashtag timelines. Unlisted posts are not, but can be accessed through the link. Private posts are only visible to followers. Direct posts can only be seen by the people mentioned in them. Users can also hide their network, so the lists of followers and people they're following are not visible. Servers only receive posts that are public or addressed to a person on that server.

View File

@ -1,6 +1,6 @@
### Identity
### Networking
### Network
### Data

View File

@ -10,15 +10,15 @@ Users create an account on a server (an “instance”), but can communicate wit
Account credentials are managed by the users instance, so if users forget their password, they can ask for a password reset.
### Data Storage/Message Persistance
### Data
As a federated system, ActivityPub is not opinionated about how messages are persisted as long as each server follows the protocol requirements. Each server is expected to maintain an inbox and outbox for each of its users.
### Moderation/Reputation
### Moderation & Reputation
Each instance sets its own moderation policies, either through the unilateral decisions of an admin, or through some sort of collective vote. Admins can ban entire instances, cutting off their visibility. If an instance gets banned by many others, its users can still talk with each other, but they will be isolated from the rest of the Fediverse. This happened to Gab.com, which set up an instance.
### Social/Discovery
### Social & Discovery
Messages are addressed to a user at a specific server, and normal DNS and ip address routing are used to find the server addressed.
@ -32,13 +32,13 @@ Not clear if there is a global search capability.
Currently the primary user experience is in a twitter-like UI (Mas.to or Pleroma)
### Privacy and Access Control
### Privacy & Access Control
### Monetization
Federated social networks require both hosting and development costs to maintain. Each instance is funded by its own administrator and community. Mastodons development is funded through a Patreon run by the main developer. It currently brings in about 70k a year, which supports him working on it full time, and covers hosting costs and a moderation team for the mastodon.social instance.
### Interop with other systems
### Interoperability
The spec mentions delivery to third-party apps but unsure how/how much this happens in the wild.

View File

@ -14,7 +14,7 @@ Gun's [User System](https://gun.eco/docs/Auth) creates a username and password.
GUN's SEA (Security, Encryption, Authorization) module provides the capability to directly create a [public/private keypair](https://gun.eco/docs/SEA) for a user, without a username and account.
### Network structure
### Network
GUN uses a gossip protocol along with a topic-based PubSub protocol to sync data between peers. GUN peers fall back to the [gossip-based protocol](https://gun.eco/docs/DAM) when the more optimized PubSub [routing](https://gun.eco/docs/Routing) protocol fails. Messages can be routed across different transport layers (websockets, WebRTC, multicast UDP etc).
@ -22,7 +22,7 @@ Peers subscribe to graphs relevant to their application's logic, although the gl
Planned future network upgrades include the addition of a DHT. A [tokenized incentivized mesh proposal](https://web.stanford.edu/~nadal/A-Decentralized-Data-Synchronization-Protocol.pdf) is also on the roadmap.
### Data Storage
### Data
Peers subscribe to the data they need and the network retrieves it from any peer (including browsers, where GUN stores data in localStorage). Running always-online peers, a "superpeer", is recommended for most applications to ensure availability of data when most browser-based peers may be offline. A superpeer is an IP addressable machine running node.js that persists data to disk. [RAD](https://gun.eco/docs/RAD), GUN's storage adaptor, saves data to disk.
@ -30,7 +30,7 @@ GUN uses a CRDT (Conflict-free Replicated Data Type) to merge data. Conflicts ar
GUN focuses on mutability by not using an append-only log, which implements updates, insertions, and deletion as a layer on top. [Deletion](https://stackoverflow.com/questions/37758618/how-to-delete-data-in-gun-db) in GUN works by overwriting bytes with `null`, or by de-referencing portions of a graph. A content-addressed graph space is used to implement immutable, append-only data.
### Privacy and Access Control
### Privacy & Access Control
Access control is built into the [User system](https://gun.eco/docs/Auth) and can be combined with [SEA](https://gun.eco/docs/SEA), GUN's encryption utilities, for more advanced use cases.

View File

@ -10,7 +10,7 @@ IPFS nodes have a peer ID, the [hash of their public/private keypair](https://do
IPFS can serve as a content addressed storage system for decentralized identity solutions (such as [Microsoft's ION](https://techcommunity.microsoft.com/t5/identity-standards-blog/ion-booting-up-the-network/ba-p/1441552)). [IPID](https://github.com/jonnycrunch/ipid) is an implementation of the DID (decentralized identifiers) specification over IPFS, using [IPNS](https://docs.ipfs.io/concepts/ipns/).
### Network Architecture & Connectivity
### Network
IPFS is a distributed protocol. Every node gets to participate in the network in any configuration, enabling different kinds of network topologies to emerge. Nodes can connect to each other independently of the client (browser, mobile, desktop, command line).
@ -20,7 +20,7 @@ All nodes in the IPFS network use [libp2p](https://libp2p.io/), the modular netw
[Gateways](https://docs.ipfs.io/concepts/ipfs-gateway/) allow IPFS to be accessed over HTTP, which makes content stored in IPFS accessible through a standard browser.
### Data Layer
### Data
IPFS is commonly known as a distributed file system, but the data layer is closer to a graph database with elements of linked data. IPFS uses [IPLD](https://ipld.io/) for representing any piece of data available in the network. The IPLD data model treats all hash-linked data structures as subsets of a unified information space. Higher level abstractions can be built on top of it, like the OrbitDB database, or Textile threads.

View File

@ -2,11 +2,19 @@
Matrix is a protocol for replicating a signed history of JSON objects in realtime across a set of nodes with (optional) end-to-end encryption.
### Data Storage/Message Persistance
### Identity
Matrix messages are stored in per-conversation Merkle DAG data structures, and conversations are replicated across all participating servers. Matrix is architecturally most similar to Git.
Matrix has a more flexible identity solution than many decentralized protocols - users have a Matrix user ID, but can also use 3rd party IDs.
### Network Structure
A matrix user ID includes the username along with the user's homeserver. For example:
`@bob:matrix.org`
As for 3rd party IDs, a Matrix account can link to IDs such as email addresses, social accounts, and phone numbers. A globally federated cluster of trusted identity servers verify and replicate the mappings, although this is considered a stopgap solution until a fully decentralized identity solution is adopted.
User IDs used in conversations will soon be decoupled from permanent IDs, allowing one to decorrelate users from their messages.
### Network
Matrix has a federated and a p2p version.
@ -22,19 +30,11 @@ Matrix has released a p2p version that runs client-side. P2p Matrix avoids the p
https://matrix.org/blog/2020/06/02/introducing-p-2-p-matrix
### Identity
### Data
Matrix has a more flexible identity solution than many decentralized protocols - users have a Matrix user ID, but can also use 3rd party IDs.
Matrix messages are stored in per-conversation Merkle DAG data structures, and conversations are replicated across all participating servers. Matrix is architecturally most similar to Git.
A matrix user ID includes the username along with the user's homeserver. For example:
`@bob:matrix.org`
As for 3rd party IDs, a Matrix account can link to IDs such as email addresses, social accounts, and phone numbers. A globally federated cluster of trusted identity servers verify and replicate the mappings, although this is considered a stopgap solution until a fully decentralized identity solution is adopted.
User IDs used in conversations will soon be decoupled from permanent IDs, allowing one to decorrelate users from their messages.
### Moderation/Reputation
### Moderation & Reputation
The Matrix team has been working intensively on tools for moderation, detailed [here](https://matrix.org/docs/guides/moderation/).
@ -42,14 +42,14 @@ Most moderation takes place at the room level. Rooms have moderators who can rem
Users in a room have 'power levels', a number between 0 and 100 that indicates how much power the user has in the room. A higher level has more permissions. Moderators have ability to change power level permissions. Users can report abusive content to the server admin, which has the ability to remove it. Users can also block other users to prevent them from contacting them.
### Social/Discovery
### Social & Discovery
All conversations on Matrix take place through rooms, which people either join (if public), peek into (if viewable), or are invited to.
Features supporting more advanced social functionality are being developed, such as this proposal for tracking events related to existing events:
[Proposal for Aggregation via Relations](https://github.com/matrix-org/matrix-doc/blob/matthew/msc1849/proposals/1849-aggregations.md)
### Privacy and Access Control
### Privacy & Access Control
Matrix homeservers have access to metadata about conversations, because the homeservers of all users in a given conversation have to store that conversation's metadata. P2p Matrix mitigates this privacy issue.
@ -58,11 +58,11 @@ Matrix recently introduced end-to-end encryption by default for private messages
[olm e2e encryption](https://matrix.org/blog/2016/11/21/matrixs-olm-end-to-end-encryption-security-assessment-released-and-implemented-cross-platform-on-riot-at-last)
[encryption for private messages](https://matrix.org/blog/2020/05/06/cross-signing-and-end-to-end-encryption-by-default-is-here)
### Monetization and Governance
### Monetization & Governance
Matrix is governed by [The Matrix.org Foundation CIC](https://matrix.org/foundation) (a UK non-profit foundation), with the largest contributor being [New Vector](https://vector.im), a startup formed by the original Matrix dev team, which raised $8.5M series A in October 2019. Income primarily comes from contracts with governments and large clients.
### Interop with other systems
### Interoperability
Matrix can be bridged with IRC, Slack, Discord, Telegram and others.

View File

@ -18,7 +18,7 @@ Username and password authentication mechanisms are an active area of research.
There is some discussion of [using DIDs in addition to WebIDs](https://github.com/solid/identity-panel/issues/1).
### Networking
### Network
Solid allows inboxes for any resources, such as actors or articles. An example of an inbox for [annotations related to a particular article](https://linkedresearch.org/annotation/csarven.ca/%23i/87bc9a28-9f94-4b1b-a4b9-503899795f6e).

View File

@ -13,7 +13,7 @@ Users can pick a human-readable nickname that is associated with their key, but
Ssb does not currently support multi-device login, because keys are stored on devices.
### Networking
### Network
Nodes request all messages in the feed that are newer than the latest message they know about. The networking component of SSB maintains a table of known peers which it cycles through asking for updates for all followed feeds. Messages are passed through the ssb network via a gossip protocol. Messages may be passed through third parties, which improves availability.

View File

@ -1,6 +1,6 @@
### Identity
### Networking
### Network
### Data

View File

@ -16,7 +16,7 @@ alice@example.com
Users can choose a [global, memorable nickname,](https://xmpp.org/extensions/xep-0172.html) but these are not globally unique.
### Networking/Message passing
### Network
XMPP is implemented in a distributed client-server architecture.