Это здорово, я ценю эту библиотеку.
Теперь, что касается ранее комментария, вот код, который делает асинхронной RPC:
https://gist.github.com/anonymous/6627745Мотивация не посылать множество команд одновременно насыщать (или какой-то другой лучше термин) bitcoind, но только чтобы не блокировать вызов. В сочетании с другими услугами, я просто не могу сделать блокирующий вызов, и это моя мотивация делать это так. Обратите внимание, что в этом коде, важные части (для этих неблокирующих вызовов) являются линиями 74, 79, а функция generic_cb для обработки результатов вызова асинхронного. Это не патч, а может быть, вы (или кто-то другой) мог бы рассмотреть его (модифицированными или нет) для включения в текущий код или другой ветви его.
Ваш код использует фьючерсный библиотеки - одна из моих целей с тем, что я делаю с питона-bitcoinlib является, в конечном счете иметь возможность либо порт в производительности критически важных частей Cython, или даже лучше, повернуть "консенсус критический" части опорного узла кодовую в отдельную библиотеку, что Python-bitcoinlib может в свою очередь используют; возможно, будут использованы оба подхода.
Имея это в виду, я бы предпочел, что bitcoinlib иметь несколько внешних зависимостей, как это возможно, в частности, те, которые связывают код конкретного способа эксплуатации. Точно так же с кодом pynode я работаю над устранением зависимости от Twisted библиотеки, так что реализация узла может использовать любой потоковую модель желательна. (Возможно, нет вообще)
FWIW Maaku также имеет
вилка питон-bitcoinlib, что он работает на и используется для его UTXO лицевого прототипирования, но он принял прямо противоположный подход и обнялся с использованием функций, которые могут быть сделаны только в истолковано Python.
EDIT: Хороший подход для потребительных случае может быть, чтобы сделать библиотеку асинхронного слоя для питона-bitcoinlib библиотеки. В основном вы бы класс bitcoin.rpc.Proxy и сделать подкласс этого, который поддерживается пул потоков и распределенную работу по мере необходимости для этих потоков. Если вам нужно изменить исходный код JSON-RPC в рамках этих усилий я могу работать с вами, чтобы сделать возможным для модуля jsonrpc, который использует заменить слишком класс Proxy.