Simple source code escrow utility. Generate a fingerprint for a file and store the result under a key using a Waves Data Transaction.
This tool has been tested with python 2.7. To run the script you will need to install the dependencies and clone the repository:
pip install pywaves
git clone https://github.com/compalmanel/WavesEscrow
cd WavesEscrow
After this copy the configuration sample and update the configuration with your own Waves address and seed:
cp .config.json.sample .config.json
vi .config.json
You're ready to rock!
The tool uses a CLI with builtin help, invoking it will yield the main commands:
$ ./escrow.py
usage: escrow.py [-h] {dump,store,compare} ...
Generate a fingerprint for a file and store the result under a key on the
Waves blockchain.
positional arguments:
{dump,store,compare}
dump Fingerprint a file and dump the results in JSON format
store Store file fingerprint in the blockchain under a key
compare Compare a file with a fingerprint stored in the
blockchain
optional arguments:
-h, --help show this help message and exit
It's possible to fingerprint a file, then dump the information in JSON format:
$ ./escrow.py dump --help
usage: escrow.py dump [-h] archive
positional arguments:
archive The file to fingerprint
optional arguments:
-h, --help show this help message and exit
Fingerprint a file and store the fingerprint under a key in the Waves blockchain, using a Waves Data Transaction:
$ ./escrow.py store --help
usage: escrow.py store [-h] archive key
positional arguments:
archive The file to fingerprint
key The key for the resulting fingerprint
optional arguments:
-h, --help show this help message and exit
Retrieve the information stored under a key in the Waves blockchain, using a Waves Data Transaction:
$ ./escrow.py retrieve --help
usage: escrow.py retrieve [-h] key
positional arguments:
key The key to retrieve
optional arguments:
-h, --help show this help message and exit
Compare a file with the fingerprint stored in Waves the blockchain:
$ ./escrow.py compare --help
usage: escrow.py compare [-h] archive key
positional arguments:
archive The file to compare
key The key to compare to
optional arguments:
-h, --help show this help message and exit
This software is provided "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the authors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.