<p><code>importmulti</code> is a completely blocking RPC call, no amount of CPU power or RPC threads will prevent it from being blocking. You need to create applications which do not use this command if it is an option. </p>

CC BY-SA 3.0
2018-04-02T08:08:56.890Z
Do you think that if I imported each address separately using guzzle (to send it asynchronously) will `rpcthreads=100`, `rpcworkqueue=50` have the effect?
Tailer
CC BY-SA 3.0
2018-04-02T14:33:22.613Z
No, the RPC blocks the entire `bitcoind`, it can't even respond to network connections during this time.
Claris
CC BY-SA 3.0
2018-04-02T14:35:19.697Z
Shouldn't we disable wallet locking especially when we're importing watch-only addresses? https://github.com/bitcoin/bitcoin/issues/12858
Tailer
CC BY-SA 3.0
2018-04-02T17:19:09.597Z
No, as watch only keys still require a rescan.
Claris
CC BY-SA 3.0
2018-04-02T02:39:23.627Z
2018-04-02T02:39:23.627Z
Claris
<p>I have ubuntu server running Bitcoin core v0.16.</p>

<p>I'm sending RPC calls asynchronously using Guzzle (PHP library), but, e.g., if I'm importing 1000 address using <code>importmulti</code> command, any further requests are waits until that command finish.</p>

<p>Even though I have set <code>rpcthreads=100
rpcworkqueue=50</code> and I've powerful server.</p>

<bitcoin-core><json-rpc>
Sending RPC calls asynchronously
Tailer
# Sending RPC calls asynchronously

(Asked by: username_0 on 2018-04-02)

I have ubuntu server running Bitcoin core v0.16.

I'm sending RPC calls asynchronously using Guzzle (PHP library), but, e.g., if I'm importing 1000 address using `importmulti` command, any further requests are waits until that command finish.

Even though I have set `rpcthreads=100
rpcworkqueue=50` and I've powerful server.

**Tags:** bitcoin-core, json-rpc


---

## 1 answers

### Answer by username_1 on 2018-04-02. Score: 2 | Accepted answer

`importmulti` is a completely blocking RPC call, no amount of CPU power or RPC threads will prevent it from being blocking. You need to create applications which do not use this command if it is an option.

> **Comments:**
> **username_0**: Do you think that if I imported each address separately using guzzle (to send it asynchronously) will `rpcthreads=100`, `rpcworkqueue=50` have the effect?  
> **username_1**: No, the RPC blocks the entire `bitcoind`, it can't even respond to network connections during this time.  
> **username_0**: Shouldn't we disable wallet locking especially when we're importing watch-only addresses? https://github.com/bitcoin/bitcoin/issues/12858  
> **username_1**: No, as watch only keys still require a rescan.  

---

