Skip to content

cam-s-hunt/polytope-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

polytope-docker

Dockerized version of Polytope

Polytope is an experiment in decentralized data services with opportunistic data transfer. Our initial hypothesis is that we can achieve a balance between scale and performance by using the social structure of Secure Scuttlebutt (SSB) to inform the pinning strartegy of IPFS. In other words, every instance of SSB will also run an instance of IPFS, and automatically pin the IPFS data of other SSB members in your friend/follower network (up to the limit set in the friends.dunbar setting stored in the SSB config file as well as the 3-hop limit set in the ?).

We are also experimenting with using Tor hidden services for each SSB and IPFS instance on a given node. We think this might overcome the need to have boot/introduction nodes with public IP addresses, or even preconfigured nodes at all (assuming that a user can obtain an invite code from any Tor-accessible SSB pub). Using Tor to enhance device connectivity comes from the original goal of being able to run a Polytope node on an unrooted Android phone (via Termux).

The major software components to be included in this Docker image are:

  • ssb-server
  • IPFS
  • Tor

We think the following logic components need to be written to start validating the hypothesis

Tor

  • Logic to create a Tor hidden service for ssb-server
  • Logic to create a Tor hidden service for IPFS

SSB

  • Logic to modify the ssb-server configuration to use Tor for all incoming and outgoing connections. This includes ensuring that invite codes generated by the ssb-server include the .onion address of the hidden service that points to ssb-server
  • Logic to actively connect the ssb-server instance to at least one Polytope node accessible over Tor
  • Logic to make a public post with the .onion addresses of the ssb-server and IPFS instances running on the node
  • Logic to "friend" or "follow" at least one of the Polytope nodes connected to in the previous step

IPFS

  • Logic to modify the IPFS configuration to use Tor for all incoming and outgoing connections. This includes ensuring that the IPFS node can be accessed via multiaddr via the .onion address of the hidden service that points to IPFS
  • Logic to modify the IPFS configuration to support gossipsub
  • Logic to modify the IPFS configuration to act as an IPFS proxy
  • Logic to perform regular queries of the node's SSB friend network (out to three hops, by default) to build/update the list of the IPFS multiaddr of SSB friends
  • Logic to perform regular attempts to connect directly (or through an IPFS proxy) to the IPFS instances of the node's SSB friend network
  • Logic to automatically pin new (or previous) IPFS data of SSB friends

Future Directions

About

Dockerized version of Polytope

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published