Helper to certify database entries, using hashchains qnd blockchains
Project description
Hashchain
Introduction
hashchain
is a Python package developed to join the ease of use of Python with the security of blockchain to certify that your important records haven't been tampered with.
The core module creates a hash chain, attesting that no record can be tempered with, once saved. The blockchain module save a proof of your hashchain permanentely in the most secured way. Then, it's impossible to alter the haschain without causing a discrepancy with the blockchain.
No need for third party certification anymore. No more single point of failure nor certification costs.
Disclaimer
The package is still 'work in progress' Do not use it before the official beta release. All the features are still subject to changes without any advertisement and can broke previously running scripts
Installation
This python package is available on PyPi package manager. I recommend installing it in a virtual environment.
- Open a terminal and run the following command :
pip install hashchain
- Import the package in you script with
import hashchain
This package is tested against Python 3.5.7 and 3.7.1 versions
How to start using haschain?
The documentation lives on ReadTheDocs
Contribute
I would be happy to hear from you if you have any comments, suggestions or requests to share with me.
Changelog
0.8.0
Changes:
- Updated the hash algorythm to Keccak (sha3_256). /!\ This break previous versions.
- Added Python 3.5 and 3.6 compatibility
0.7.0
Changes:
- Removed every json conversion from the
records
module. /!\ This break previous versions. The hash calculation was impacted by this change.
0.6.2
Fixes:
- Updated the Ethereum contract to comply with MythX security standards
0.6.0
Features:
- Add
wait
argument toethereum.EthConnector().record()
to wait until the transaction receipt is received. This avoid sending many transactions with the same nonce, while running this function in a loop.
0.5.0
Features:
- Updated the Ethereum Smart contract to store a
byte32=>byte32
key pair instead ofint64=>byte32
- Updated
ethereum.EthContract().record()
andethereum.EthContract().record()
to take a string as key input instead of an int. The string is hashed and the hash is used as key on the blockchain.
0.4.2
Fixes:
- Removed the contract JSON file fron the structure and added ethereum/contract_interface to get the contract abi and binary.
0.4.1
Fixes:
- Included the ethereum module in the package
0.4.0
Features:
- Add more precise feedback on Record.verify() errors
- Add ethereum.EthContract() to enable deploying the solidity smart contract on the Ethereum blockchain
0.3.0
Features:
Request.to_dict() and .to_json() now returns a simple object. The keys "hash" and "previous_hash" are appended at the same level
#####Fix: Add web3.py to the install_requires list
0.2.0
Features:
- Add records to build hash chains
- Add ethereum_connector to store hashes on the Ethereum blockchain
0.1.0
First Alpha release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file hashchain-0.8.0.tar.gz
.
File metadata
- Download URL: hashchain-0.8.0.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15rc1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6ea95de1dfceac73e4b43ca2548c77873176df99a76f8aa7b32e60f841e8074 |
|
MD5 | b4cefa14b2d1f7628bebf37fc8cc220f |
|
BLAKE2b-256 | fd5cc59ee7cbdb8da2d4e8ddda40cfc7830f9e85037e477dee23627a6240511b |