Как ускорить транзакции BigChainDB, используя MultiThreading? - Python Driver
Недавно я пытался отправить 1000 транзакций в BigChainDB с помощью его драйвера python. Я использую свой собственный сервер BigChainDB, работающий на локальном хосте с портом 9984. Я попытался заключить скрипт в цикл for для 1000 раз, и потребовалось 20 минут, чтобы повторить 1000 раз, что очень медленно для моих нужд. мой код:
from bigchaindb_driver import BigchainDB
from bigchaindb_driver.crypto import generate_keypair
BIGCHAIN_IP = 'http://127.0.0.1'
bdb = BigchainDB(f'{BIGCHAIN_IP}:9984/')
user = generate_keypair()
data = {
'message': 'hello'
}
for i in range(1000):
data['AssetProductID'] = i
bdb.transactions.send_commit(
bdb.transactions.fulfill(
bdb.transactions.prepare(
operation = 'CREATE',
signers = user.public_key,
asset = {
'data': data
}
),
private_keys=user.private_key
)
)
print(f"Sent Transcation {i}")
Мне известно, что если я попытаюсь отправить ту же транзакцию, она отклонит ее, поэтому я включил ключ AssetProductID как часть ресурса, который будет уникальным каждый раз.
В настоящее время, когда я запускаю эту функцию, отправка 1000 транзакций занимает 20 минут. Мой процессор немного медленнее, но 20 минут - это слишком много, чтобы ждать, и иногда мне приходится отправлять более 10 000 транзакций. Я не хочу ждать такого количества времени.
Я хочу запустить этот код быстрее, чтобы он заканчивался за меньшее время, и я мог делать другие вещи. В настоящее время я включил этот скрипт в приложение Flask. Я не хочу, чтобы мои пользователи ждали 20 минут, чтобы отправить свои транзакции.
Я попытался встроить модуль потоков Python и другие подобные вещи, но он просто не работает.
Пожалуйста помоги мне с этим. Мне нужно, чтобы эта проблема была решена.
TL; DR: я хочу ускорить время, необходимое для отправки транзакций в BigChainDB с использованием драйвера Python в цикле for.
БОЛЬШОЕ СПАСИБО!
ВАЖНЫЕ ДАННЫЕ: версия сервера bigchaindb: 2.0.0b9 версия драйвера bigchaindb python: 2.0.0b9