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 runmake
in the container to build binaries intoswarm/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
- Should
swarm up file.txt
make the resulting file available atbzz:/<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
andpath/
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
)?
- 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
createbzz:/<hash>/file.txt
)