Skip to content

Instantly share code, notes, and snippets.

@lmars
Last active April 18, 2017 09:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lmars/1461c8b51150613a595225753f0ff0d3 to your computer and use it in GitHub Desktop.
Save lmars/1461c8b51150613a595225753f0ff0d3 to your computer and use it in GitHub Desktop.
Swarm Agenda - Tue 18th Apr 2017

Lmars Swarm Agenda - Tue 18th Apr 2017

Development environment

PR: ethereum/go-ethereum#14332

  • Development environment is a Linux bash shell which runs in a Docker container
  • Includes common tools and Go 1.8.1
  • Local directory is mounted in the container at /go/src/github.com/ethereum/go-ethereum so can edit files locally and run make in the container to build binaries into swarm/dev/bin
  • Has scripts for booting multi-node Swarm clusters (includes bootnode + geth)
  • Swarm nodes are just daemon processes in the bash shell with distinct IPs using network namespaces

Manifest discussion

  • Should swarm up file.txt make the resulting file available at bzz:/<hash>, bzz:/<hash>/, bzz:/<hash>/file.txt or all of the above? (see this issue)
  • Should we prevent files (i.e. entries which are not application/bzz-manifest+json) from having a trailing slash (which causes issues when mounting the manifest as a filesystem)? (see this issue)
  • Should we support making files available via HTTP at both path and path/ with some configurable behaviour (redirect or serve content at both paths)? An example where trailing slash is wanted is HTML directory indexes like nginx
  • Should files be available using arbitrary suffix (e.g. bzz:/<hash>/file.txt-somerandomstring)?

Integration testing

  • We need end-to-end tests which use the CLI + multi-node Swarm clusters
  • Example test: start 3 Swarm nodes, run swarm up file.txt, check file can be downloaded from all nodes
  • Also need to cover all CLI / API features (e.g. does swarm up file.txt create bzz:/<hash>/file.txt)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment