Server and client for a Dropbox-like data block storage and retrieval service run from the command line. Began life as an assignment for my Networked Systems class.
gRPC is the backbone for the communication protocol, including upload and download of files. Server and client are implemented in Java.
How to work with gRPC. Two-phase commit.
Storage is currently not persistent - it is all stored in-memory, and thus data will be lost if server shuts down. Change this.
$ mvn protobuf:compile protobuf:compile-custom
$ mvn package
$ target/surfstore/bin/runBlockServer $ target/surfstore/bin/runMetadataStore
$ target/surfstore/bin/runClient