kmyk / libproofofwork

Simple hash-mining c library and its python binding.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Simple hash-mining c library and its python binding.

License:MIT License


Languages

Language:C 73.5%Language:Python 22.8%Language:CMake 2.3%Language:Makefile 1.4%