internetarchive / dweb-transports

GNU Affero General Public License v3.0
25 stars 16 forks source link

Status of projects integrating with dweb-transports. #10

Open mitra42 opened 5 years ago

mitra42 commented 5 years ago

The following systems are integrated currently, updates are welcome.

mitra42 commented 5 years ago

IPFS (from Protocol Labs) - integrates fully with the chunk write and read API's.

Lists and Key-Values are not implemented on IPFS, but are available over YJS which uses IPFS as its transport.

Problems: to be elaborated on, but are mostly due to:

Important Notes: Due to the combination of the lack of error returns and data loss, dweb.archive.org uses chunks, rather than streams for icons and prioritises WebTorrent over IPFS streams when both are available.

Due to the WSS and DHT single points of failure, we aren't currently considering IPFS for any anti-censorship applications.

mitra42 commented 5 years ago

WEBTORRENT from Feross - integrates for streaming and chunking reads

Webtorrent is integrated for streaming files. We haven't yet implemented any writing mechanism. It does a nice fallback to HTTP if the file isnt available in WebTorrent. The majority of the Archive's files are available via Torrent and magnet links are included by default in metadata requested via the dweb.me gateway.

Issues: There is a single point of failure issue in that clients use a small number of known trackers, and can't use the BitTorrent DHT (due I believe to limitations in webRtc).

WebTorrent is our prefered

mitra42 commented 5 years ago

GUN - to be written

mitra42 commented 5 years ago

YJS - works, but not actively supported - implements KeyValue and Lists - details to be written

mitra42 commented 5 years ago

HTTP

An HTTP version of all the APIs (chunk, list, keyvalue) has been integrated and is used as a backup and fallback.

Limitations:

rodneywitcher commented 5 years ago

Wolk is working on an integration -- implementing chunk reads and writes as well as key-value solution