P2P Distribution of software

Note: This is just a proposal/idea, the final implementation might differ significantly

We are considering implementing a P2P-enabled way of distributing Linux Portable Apps and Superdeb installers. We are considering leveraging the power of Bittorrent, but are open to using other technologies

Features

  • Security – Security is crucial, all software must must be cryptographically signed and the signature MUST be checked before installing/running the software
  • Simplicity – Users would get the software and updates the same way as always, they don’t need to learn the details of how everything works (but they can, if they want to)
  • De-centralized – Ideally, the distribution network should be resilient against temporary problems on the central server
  • Only recent software – Old software would not be seeded, instead being replaced by newer software or just removed
  • Only software actually used – Users would only share software they actually use/download, not software they don’t use / don’t care about

Advantages

  • Lower distribution costs – Everything we distribute is free / zero-cost, so we don’t yet generate any revenue. P2P would allow us to serve thousand of users without massive costs.
  • Faster updates/distribution – Updates would be distributed faster via P2P than from a single server.
  • Reliability – Our main distribution server goes temporarily offline for whatever reason? Users would still be able to download apps and updates (“App Store” with P2P capabilities?)

Challenges

  • Bandwidth caps: Many users have bandwidth caps, we have to make sure we do this right and not waste their bandwidth:
    • Allow the P2P system to be completely disabled
    • Allow users to set total bandwidth limit

Comments

If you have any ideas, suggestions or criticism, feel free to send us a message.