Comment exécuter une requête à l'aide de la bibliothèque Hyperledger Iroha Python.
Essayez d'exécuter "Obtenir les transactions du compte" pour obtenir une liste des transactions envoyées par le compte spécifié.
from iroha import Iroha, IrohaCrypto, IrohaGrpc
import iroha_config
net = IrohaGrpc(iroha_config.IROHA_HOST)
iroha = Iroha(iroha_config.ADMIN_ACCOUNT)
admin_priv_key = iroha_config.ADMIN_PRIV_KEY
# Créer une requête
get_block_query = iroha.query(
'GetAccountTransactions',
account_id = 'admin@test',
page_size = 10,
)
# Requête de signe
IrohaCrypto.sign_query(get_block_query, iroha_config.ADMIN_PRIV_KEY)
# Envoyer la requête
response = net.send_query(get_block_query)
print(response)
Le nom d'hôte et la clé privée d'Iroha sont définis dans iroha_config.
Les points sont les trois suivants. -Utilisez "iroha.query" pour créer une requête. (Le système de mise à jour utilise "iroha.command") -Utilisez "sign_query" pour signer. (Le système de mise à jour utilise "sign_transaction") -Utilisez "send_query" pour envoyer une requête. (Le système de mise à jour utilise "send_tx")
J'ai pu obtenir les informations de la transaction envoyées par le compte spécifié. J'ai mis page_size à 10, mais je n'ai pas mis beaucoup de données sur la blockchain, donc je n'ai pu obtenir que 3 données.
query_hash: "a45f8b59aa211688836bb6567c10baf10e24dfdc9db6c62d3fc8a779200ee136"
transactions_page_response {
transactions {
payload {
reduced_payload {
commands {
create_asset {
asset_name: "samplecoin"
domain_id: "test"
precision: 10
}
}
commands {
add_asset_quantity {
asset_id: "samplecoin#test"
amount: "100000000"
}
}
creator_account_id: "admin@test"
created_time: 1594000825126
quorum: 1
}
}
signatures {
public_key: "313a07e6384776ed95447710d15e59148473ccfc052a681317a72a69f2a49910"
signature: "042b25c8096ca4bfcaca54d05c3d862498f38ddc612b0255138cc74044005d0475467176ef84672fd79b93714e8263e22aa867e7f8e22cf7eba06bb0e63e0b02"
}
}
transactions {
payload {
reduced_payload {
commands {
transfer_asset {
src_account_id: "admin@test"
dest_account_id: "test@test"
asset_id: "samplecoin#test"
description: "test"
amount: "10000"
}
}
creator_account_id: "admin@test"
created_time: 1594002435597
quorum: 1
}
}
signatures {
public_key: "313a07e6384776ed95447710d15e59148473ccfc052a681317a72a69f2a49910"
signature: "f147a7e1c1604a3172efa91e4604fd4bfff728fe0d8d4c644e7d3a0d65ee4f3d2436ad9a26bc9777b0de514f120ed6b4d83a5410cbc097a281a5a588702d4d06"
}
}
transactions {
payload {
reduced_payload {
commands {
create_account {
account_name: "iroha"
domain_id: "test"
public_key: "efdc215eab6dd2c4435d370da73e4b88350e1fed9d39afed503fcbee985fce1f"
}
}
creator_account_id: "admin@test"
created_time: 1594016319157
quorum: 1
}
}
signatures {
public_key: "313a07e6384776ed95447710d15e59148473ccfc052a681317a72a69f2a49910"
signature: "429bf3ae70b60d31ab3fc3c15fa11cb8155b6a824f831652c1c46068feaeb866846b8048e0959cbcbeed532423f050e77d2fe192ea90d0827a6f1489bf67ec0a"
}
}
all_transactions_size: 3
}
・ [Hyperledger Iroha] Notes sur la façon d'utiliser le SDK Python
J'ai essayé d'utiliser la bibliothèque Iroha. D'autres requêtes fonctionneront si vous modifiez le nom de la requête à exécuter ou si vous modifiez les paramètres.
Tant que vous regardez la requête Iroha, vous pouvez facilement obtenir "qui" et "quoi", mais Il semble qu'aucune requête n'indique «pour quel actif», «qui» et «quoi».
Recommended Posts