Как ускорить транзакции 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

0 ответов

Другие вопросы по тегам