'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 deduplication to 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!

Built With

Share this project: