'The Dropbox for IPFS' // 'Hide in plain sight'
horcrux is a client which can hopefully resolve some of the drawbacks IPFS has.
- Data on IPFS is permanent! So you better be careful of what you put on there
- Your data is on someone else's computer, how do you secure it?
- IPFS can get slow and if you're uploading a huge file, it might take a while
- A teeny tiny change to a huge file? You'll have to upload the entire file again!
What it does
- horcrux uses
deduplicationto find similar patterns in a file and breaks down the file into those chunks.
- It then encrypts those chunks and pushes them to IPFS
- It keeps track of which encrypted chunk belongs to which file.
- It can then recreate the file based on this info.
How I built it
- Python and Flask. Supporting libs in pyrabin and simplecrypt
Challenges I ran into
- Some problems using pyrabin to find the rabin fingerprint
- Problems with encrypting non-text files
- Problems with serializing text files on IPFS
Accomplishments that I'm proud of
- I got a working prototype up and running in 3-4 days by working only a few hours on the side
- Only chunks with updates will be pushed to IPFS, saving time and bandwidth
- Everything that's pushed is encrypted
What's next for horcrux
I want to hook it up with a front end and host it as a Dropbox alternative!