Как совершать одновременные звонки на bitcoin core rp c? - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь вызвать getBlock для блоков по 100 тыс., Но это слишком медленно, чтобы вызывать их последовательно. Это то, что я пытаюсь. У меня полный узел с bitcoin ядром. Я устанавливаю -rpcthreads = 100 и -rpcworkqueue = 100 и использую js для создания Promise.all ([многократные вызовы rp c]). Насколько я понимаю, rpcthreads допускает одновременные вызовы, но, возможно, я неправильно понял это. Я ожидал, что время, необходимое для запуска 2 getblock, будет таким же, как и для запуска 1. Однако я не вижу значительного увеличения производительности (запуск 2 примерно занимает вдвое больше времени). Как правильно заставить bitcoin core принимать параллельные запросы rp c? Спасибо!

моя bitcoin конфигурация ядра: -server -rpcuser=un -rpcpassword=pw -txindex=1 -rpcthreads=100 -rpcworkqueue=100

моя попытка сделать его параллельным (клиент является классом-оболочкой для rp c api.):

    const before = Date.now();
    await Promise.all([
      client.getBlock('0000000000000000000119e179a3169afe7e1dbd867cb9070a6f75a583b98fb3'),
      client.getBlock('0000000000000000000119e179a3169afe7e1dbd867cb9070a6f75a583b98fb3')
    ]);
    const afterAll = Date.now();

    console.log('time for all');
    console.log(afterAll - before); 
...