basically what ipfs does when you add some data to the node is this:
- it breaks files into chunks of a certain size
- the chunks are hashed
- each file is then represented as a list of links to chunk hashes
- it then hashes that link list, this is the hash of that file
- directories are then also lists of links to file hashes, but the links are named this time
- then it hashes *that* link list, which is the hash of the directory