Simple hash-mining c library and its python binding.
Switch branches/tags
Nothing to show
Clone or download
kmyk Merge pull request #20 from kmyk/issue/5
#5: add sha256 support
Latest commit 5a920da Apr 29, 2018
Permalink
Failed to load latest commit information.
benchmark update SHA1 Mar 27, 2017
bindings/python RELEASE: 0.0.12 Apr 28, 2018
include #5: add sha256 support Apr 28, 2018
src #5: add sha256 support Apr 28, 2018
.travis.yml add .travis.yml Mar 16, 2017
CMakeLists.txt #5: add sha256 support Apr 28, 2018
LICENSE initial commit Mar 15, 2017
readme.md update badges Mar 28, 2017

readme.md

libProofOfWork

Travis PyPI PyPI PyPI PyPI

Simple hash-mining c library and its python binding.

Requirements

  • cmake and things to build
  • non-old CPU for AVX2 instructions
    • Check flags sections of your /proc/cpuinfo.
  • OpenMP (optional)

How to Install

$ pip install proofofwork

How to Use

>>> import proofofwork
>>> import hashlib

>>> s = proofofwork.md5('00000000')
>>> s
b'erno8AAA'
>>> hashlib.md5(s).hexdigest()
'0000000057c4ca67d38e6826053824bd'

>>> s = proofofwork.sha1('000??????????????????????????????????000', text=b'sha1{????????}', alphabet=bytes(range(128, 256)))
>>> s
b'sha1{\xcb\xf0\xa4\x80\x80\x80\x80\xe0}'
>>> hashlib.sha1(s).hexdigest()
'00099d6917591c54f861032fd0d0071fbc647000'

Benchmark

MD5

In my laptop environment (Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz),

Code Speed [hashes/sec]
libproofofwork 158000000
C openssl 5890000
python hashlib 794000

SHA1

In my laptop environment (Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz),

Code Speed [hases/sec]
libproofofwork 83700000
C openssl 6360000
python hashlib 815000

License

MIT License