Skip to main content

Use Ethereum precompiled pairing operations (BN128, specified in EIP196) in Python

Project description

Build Status

How to Install

pip install py_eth_pairing

How to Build from Source

curl https://sh.rustup.rs -sSf | sh
  • Install Maturin
pip install Maturin
  • Compile it
maturin develop --release

How to Use

Please check test.py as an example

from py_eth_pairing import curve_add, curve_mul, pairing2, curve_negate
from py_ecc.bn128 import G1, G2

curve_add(G1, G1)
sk = 100
g1_pk = curve_mul(G1, sk)
actual = pairing2(curve_negate(G1), G2, G1, G2)

Performance

The unit of time is second.

curve_add
6.985664367675781e-05
curev_mul
0.00014019012451171875
pairing2
0.0034821033477783203

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

py_eth_pairing-0.1.4-cp36-cp36m-manylinux1_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.6m

py_eth_pairing-0.1.4-cp36-cp36m-macosx_10_15_x86_64.whl (413.1 kB view hashes)

Uploaded CPython 3.6m macOS 10.15+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page