starting to put some of the puzzle pieces down on the board...
This commit is contained in:
parent
1d4d08ed4f
commit
5784a09339
|
@ -0,0 +1,94 @@
|
|||
### Key problems and existing approaches
|
||||
|
||||
See links in [overview.md](overview.md) for some mighty attempts at comprehensive lists of dweb protocols and projects.
|
||||
|
||||
The purpose of this document is to try to analyze how some of the existing dweb projects attack certain key problems:
|
||||
|
||||
* discovery of users and content
|
||||
* interoperable messaging
|
||||
* message queueing and persistence
|
||||
* reputation
|
||||
* identity and pseudonymity
|
||||
* metadata and ownership
|
||||
* economy of services
|
||||
* scalability
|
||||
* testing and metrics
|
||||
|
||||
Fundamental user stories being addressed here: I want to...send a message to a person I know, and I don't know what system they use for messaging; find a topic or person by keyword search; find reliable and credible information or resources on a topic; know the ownership/conditions around resources I find; have a way to pay for all the services without privacy intrusions; have a fast and stable experience at global scale; and have some way to evaluate all of the above on different systems.
|
||||
|
||||
### Discovery
|
||||
|
||||
* gossip mesh systems
|
||||
|
||||
* indexing and follow-bots
|
||||
|
||||
_how does one discover users and topics within each ecosystem_
|
||||
IRIS - WoT mapping of human readable names to identity attributes - https://github.com/irislib/iris
|
||||
|
||||
### Messaging between systems
|
||||
|
||||
*What does a message from a user to another user look like on the wire?*
|
||||
_(how similar are the schemas? can there be a universal schema with namespacing?)_
|
||||
|
||||
* Matrix - https://matrix.org/docs/spec/
|
||||
(proposal for related events - https://github.com/matrix-org/matrix-doc/blob/matthew/msc1849/proposals/1849-aggregations.md)
|
||||
Matrix messages are sent to rooms, which users are subscribed to. to message a user you first invite them to a room
|
||||
```
|
||||
PUT /_matrix/client/r0/rooms/%21636q39766251%3Aexample.com/send/m.room.message/35 HTTP/1.1
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"msgtype": "m.text",
|
||||
"body": "hello"
|
||||
}
|
||||
```
|
||||
|
||||
* ActivityPub - https://www.w3.org/TR/activitypub/
|
||||
POST to the user's server's outbox endpoint
|
||||
```{"@context": "https://www.w3.org/ns/activitystreams",
|
||||
"type": "Note",
|
||||
"to": ["https://chatty.example/ben/"],
|
||||
"attributedTo": "https://social.example/alyssa/",
|
||||
"content": "Say, did you finish reading that book I lent you?"}
|
||||
```
|
||||
|
||||
### Message queueing and persistence
|
||||
|
||||
* Matrix - peered storage, replicated JSON between nodes
|
||||
|
||||
* GUN - graph db
|
||||
|
||||
* Mastodon - federated servers
|
||||
|
||||
### General decentralized storage
|
||||
|
||||
* IPFS - immutable, content-hash addressed
|
||||
|
||||
* DAT
|
||||
|
||||
* mutable systems using CRDTs
|
||||
|
||||
Example: GUN stores hacker noon annotations on user local storage - https://www.coindesk.com/hacker-noon-is-storing-content-on-a-blockchain-after-ditching-medium
|
||||
|
||||
|
||||
### Reputation/credibility
|
||||
|
||||
* IRIS
|
||||
|
||||
### Identity
|
||||
|
||||
### Metadata and ownership
|
||||
|
||||
* Ceramic
|
||||
|
||||
### Economy of services
|
||||
|
||||
### Scalability
|
||||
|
||||
* AXE (reduce unneeded connections)
|
||||
https://gun.eco/docs/AXE
|
||||
|
||||
### Testing and Metrics
|
||||
|
||||
* PANIC - https://github.com/gundb/panic-server
|
||||
|
Loading…
Reference in New Issue