Skip to content

pyFileFixity v1.4

Compare
Choose a tag to compare
@lrq3000 lrq3000 released this 24 Apr 17:31
· 442 commits to master since this release

This release fixes the issues of pyFileFixity v1.3. This release is stable.

IMPORTANT: Note that this release is incompatible with previously generated ecc files. You should regenerate all your ecc files with this new version!

Huge update, with lots of new features. First, there is a huge speedup improvement, about 100x (expect an encoding rate of more than 1MB/s), which is really really good and makes the usage of header_ecc.py and structural_adaptive_ecc.py possible in concrete, real world scenarios.

Another important improvement is in the resilience rate calculation: the old one was off, it protected the files more that you specified. This is fixed, so that you will know exactly how much your files are protected.

Another huge improvement is the reliability of the correction using ecc files: now even if the hash is corrupted, the blocks can still be checked by the ecc directly to see if the correction was successful.

Also, intra-ecc was added so that filepath are now protected by ecc too! This means that generated ecc files do not have a critical spot anymore, they should work flawlessly even if tampered (up to the resilience rate that you have set). However, adding intra-ecc broke compatibility with previous releases, so that you cannot decode old ecc files generated with previous versions of pyFileFixity. You should regenerate all your ecc files with this new release.

A last improvement is with rfigc.py, which now has a --filescraping_recovery option to use a database file to recover the filenames and directory tree structures of files that you data scraped on your disks following a data disaster (for example using Photorec).

The project is stable now. The main thing I still would like to improve on is a bit more speed in the RS library (I would like to reach over 10MB/s). If you can help with the Cython or Boost Python implementation, send me a pull request please! There are other features waiting to be implemented, but they aren't necessary for now (such as updating an ecc file, meanwhile you can just regenerate one).