follow - Decentralized content publication and subscription.
Project status -
- OSX (unknown)
- generate identity (public - private key pair)
- contact the dht bootstrap node or known peers and ask for the closest identities to your pub key in the dht
- store list of N closest(bitwise) peers and their identities (ip address, latest magnet link and a signature of the magnet link)
- generate a new identity file, which is just a JSON file containing your various sub identities. I.e. pgp key, bitcoin addr, youtube channel, etc... and array of published content objects I.e. magnet link, display_name, timestamp, etc....
- generate a magnet link for the most current identity file.
- generate a signature for the identity file magnet.
- push latest identity magnet, ip address and signature to neighbor peers.
- peers verify signature against your pubkey, and push this "value" to your key id signature is valid, otherwise ignore.
- for every new piece of content you create(video, text, whatever file type) add to json file. repeat step 4..8
- if profile/identity file gets too big(lets say after each 100 publications), clear publication list and append prior magnet link(containing full list) to the "publications_archives" list. This will be used for publication pagination.
- IPNS / dht.GET(identity) -> ipfs/magnet link -> profile.json = list of ipfs/magnet link(s) to users publications -> download content -> enjoy content.
example identity file
- nodejs (v10 or above)
npm install npm start # compiles angular assets and start electron or npm run electron
- Follow publishers
- Add arbitrary info into profile
- Add "suggested" identities to ones own profile
- Repost someone else's publication
- properly render images
- properly render videos
- properly render text documents
- properly render html
- search / filtering
Contributors / credits
- The ipfs team
- Feross (Webtorrent)
- Ironman (conceptual)
follow is released under the terms of the GNU General Public License v2 only.