Skip to content

Python library for Hyperledger Iroha, a simple distributed ledger.

License

Notifications You must be signed in to change notification settings

SamHSmith/iroha-python

 
 

Repository files navigation

Iroha python

Python library for Hyperledger Iroha 2.

Version

If you are using the latest iroha release, rc21, then you should use the main branch. If you are using rc20 then you should use the 'stable' branch.

Install

To build, use the nightly-2024-04-25 version of the rust toolchain. Set it as the default before executing the build steps. TODO, complete list of dependencies.

maturin build
pip install --break-system-packages target/wheels/iroha-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl

The exact path to the .whl file may vary. After an installation, do a small test to check the installation was successful. Normally, this test will display the library's contents:

python -c "import iroha; print(dir(iroha))"
['Account', 'AccountId', 'Asset', 'AssetDefinition', 'AssetDefinitionId', 'AssetId', 'AssetValueType', 'BlockHeader', 'Client', 'DomainId', 'Instruction', 'KeyPair', 'Mintable', 'NewAccount', 'NewAssetDefinition', 'PrivateKey', 'PublicKey', 'Role', 'SignedTransaction', 'TransactionQueryOutput', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'hash', 'iroha']

If there was no error, you should be able to use iroha-python library. You may also see an error that ends like this:

ModuleNotFoundError: No module named 'iroha'

This means that the pip install did not work properly.

Running the tests

Running the tests requires you to have a running local test network of iroha. In the main iroha repository you must run 'scripts/test_env.py setup'. Then you can run the following command to run the python library test suite.

poetry run python -m pytest tests/

About

Python library for Hyperledger Iroha, a simple distributed ledger.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 72.9%
  • Python 27.1%