A transaction generator for the Harmony blockchain
Project description
Transaction Generator Python library
This is for python 3.6+ only
A transaction generator library for the Harmony Blockchain. It utilizes the CLI to generate transactions.
Documentation can be found here and example scripts that use the transaction generator can be found in the root of this directory.
Install
You can install the library from pypi using the following command:
python3 -m pip install harmony-transaction-generator
You will require the pyhmy
library to be at least version 20.1.14.
You can check your version of pyhmy with: pip freeze | grep pyhmy
If your version is not updated or pyhmy is not listed, run:
python3 -m pip install pyhmy==20.1.14
Development Installation
On in this current directory run:
make install
Examples
Example script when running for devnet can be seen here
While in this directory (harmony-ops/test-automation/tx-gen), run:
python3 localnet_example.py
MAKE SURE TO HAVE A LOCALNET RUNNING
Important note about funding keys
One must have keys in the keystore that have funds on ALL shards (if one wishes to funds accounts on all shards). Note that one account does NOT have to have funds on all shard, but across all accounts in the keystore, there should be funds on all shards
This is because the library only does same shard transfers when funding.
How it works
A video demoing library can be seen here
Take a look at the localnet_example.py
for some idea of how it works.
Essentially, it follows a source / sink model for transaction generation (explained more in the start
function
of ./harmony_transaction_generator/generator.py
). Moreover, the annotations of the config in localnet_example.py
should give a better idea of how to use the library.
Analysis
The analysis
module of this library has a verify_transaction
function that looks at the transaction logs and checks
if said transactions appear on the blockchain. Refer to ./harmony_transaction_generator/analysis.py
for mode details
on how it works.
The library logs everything it can, so one can read the log files to analyze it. The filepath/filename can be accessed with
the filename
attribute of the logger, for example tx_gen.Loggers.transaction.filename
.
Note that all times in the logs are in UTC.
Caveat
The package has NOT been thoroughly tested so please report bugs and/or PR fixes if you find any, thank you!
Troubleshooting Errors While Testing
####Possible fixes
- Backup and clear keystore at
~/.hmy_cli/account-keys
- Update pyhmy to latest version, can be checked here.
Check version with
python3 -m pip list | grep pyhmy
- If
current balance is not enough for requested transfer
, try increasing the 'INIT_SRC_ACC_BAL_PER_SHARD' value in the config file
TODO
- Implement transaction plan logic once CLI has this feature implemented.
- Documentation.
- Verify reset logic for multiple runs.
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.
Source Distribution
Built Distribution
Hashes for harmony_transaction_generator-20.1.30.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9049df6bf393824314ee5facac669543072146acd08fe3680240ae0add6467b7 |
|
MD5 | 12905eb122ee5fd9fca90a9f5023f2d7 |
|
BLAKE2b-256 | 3137638cc3baabd60226d9b008136f2df0e98fd0a244dc1e3377c30bf594dcf2 |
Hashes for harmony_transaction_generator-20.1.30-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cec0f91372d8f39fb8a7bd938694b8eabe206c6e0ea594d8d748e4bd8872b649 |
|
MD5 | 1a393cfccc1990db0ea9bfbd9db57f86 |
|
BLAKE2b-256 | 4f6db82e32e7248c5b4fd9f185f78af654842bba2582c15e39f8e722b37c8b69 |