Close

Video update

A project log for Home Cloud

A Raspberry Pi based distributed file and service platform.

dannyDanny 08/20/2014 at 19:360 Comments

http://youtu.be/vuQaBV8f7vg

So whilst I was completing the entry requirement for the competition (a sub 2 minute video) saying that I was basically building a user controlled voluntary CDN. I though tI should do a video update, basically because it seemed easier than typing out the update.

Though now that I see how terribly bad the google translate is I've decided to link the video and explain what's going on also.

In the left side of the video is a Raspberry pi model B, this has a USB cable attached whilst goes off to a small board that I've had made that converts USB to SATA, basically so that cheap hard drives can be attached giving mass storage. (schematics to be released)

That server is acting as the master or gateway server, it attaches to a switch that has some layer 3 functionalities, with ports split into VLANs this then has a laptop sat on top running some virtual routing and virtual firewall software, and some DNS services for the nodes to find each other.

Essentially there is a mini "internet" where each pi sits behind a firewall/router as if it was in a home environment. and there is a network in the middle that connects the two environments to each other. and provides name resolution services to both environments.

The second Pi establishes a connection as a guest server, either for a first time, or rejoining the network after being off for some time, the first thing it does is performs some handshaking with the existing gateway server (where gateway server just means a publicly accessible node, - usually with a DNS registered name so anyone can easily remember it)

When connected the pi essentially questions the server "what files do you have" and the server responds.

The hand shaking part and authentication by password (in plain text) is essentially complete, and I've started working on listing out and sending directories.
additionally I've started working on a hashing algorithm, the reason for this is that even a directory listing of a large file repository can be big,
whilst hashing is a CPU intensive task (and arguably not particularly suited to the low power pi) it will mean that a directory listing can be sent in a few hundred bytes to compare against a listing already received,
Files can first be sent as checksums, to see if these exist, and then if they do not the file can then be sent, rather than sending a whole file with no reason, or relying in file names for identity.

Discussions