A simple proof of work using SHA-256 hashes
Project description
Proof of work
A simple Proof Of Work module made with python
POW ALGORITHM
The algorythm used in this module is very simple: The inputs are an initial SHA-256 hash (that could be the last proof of work hash, like in bitcoin system) and a difficult in number of zeroes. That means the number of zeroes that the resulting hash must have at it's begining.
Starting with those two arguments, the script now makes a new random hash. That's the proof of work. This new hash has to meet a condition:
- The new hash is attached to the initial hash
- The script now converts those two joint hashes into another hash. (Resulting hash)
- If the resulting hash begins with the specified number of zeroes, the proof of work is valid.
- The information returned is: (proof_of_work_hash, resulting_hash, number_of_attempts)
Notice that the resulting hash may have more zeroes than the specified. The difficult is a minimum.
For curious people: What is a proof of work?
Other methods
proof_of_work() is not the only method contained in this module. Here's an explanation of some others:
- random_hash(): Returns a random SHA-256 hash.
- random_string(): Returns a random string, with also a random length (From 1 to 1000 chars).
- make_hash(string): Converts a string into a SHA-256 hash.
How to use it
From pip: pip install powpy
From github repository: Download and run setup.py
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.