Skip to content

Instantly share code, notes, and snippets.

@nagydani
Last active January 29, 2021 02:23
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nagydani/a4c76cca642381f2825f3ae129e30b78 to your computer and use it in GitHub Desktop.
Save nagydani/a4c76cca642381f2825f3ae129e30b78 to your computer and use it in GitHub Desktop.
Swarm MVP

MVP: Single-Node Swarm

Executive Summary

A means for Đapp projects to host their Swarm-based Đapp with a traditional web-hosting service. The Đapp uses Swarm's APIs to access its static assets and data, including modifications. Essentially, it is a single-node Swarm that provides the guarantees (with the obvious exception of censorship resistance) that the distributed Swarm network will provide, once fully operational. Using this product, Đapp developers can focus on developing their application with the confidence that it will become censorship resistant (i.e. "unstoppable"), once the Swarm network will support the features that it uses. The migration to decentralized Swarm will require an upgrade of the node's software and some changes in the configuration but no changes to the application itself.

Requirement List

  • A functional Swarm node that does not make and does not accept Kademlia connection requests
  • A HTTPS interface (gateway) with an easily configurable domain name (e.g. mydomain.com) and IP address.
  • Redirecting of requests from https://mydomain.com/bzz:/xxx/yyy to https://xxx.mydomain.com/yyy which, in turn, results in serving the object at path yyy from the manifest with the swarm hash (or ENS domain) xxx.
  • A per-user limit for data written into Swarm. Can be zero, in which case user authentication is not needed.
  • Some user management with non-free registration for accounts that can write data into Swarm. Ideally, the UX should be similar (or even identical) to how users pay for Swarm.
  • Traditional DoS protection (automatic blacklisting of clients with unreasonable request patterns)
  • Monitoring and analytics for the node's operator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment