I have multiple bitcoind servers and they are load balancing. Using IP sticky feature of the load balancer, client app connects to same bitcoind server. However, the stickness is not perfect.

I'm having many broadcast error which are Missing inputs or txn-mempool-conflict errors due to seeing different bitcoin servers between at creating a transaction and at broadcast.


My app -----> Load balancer -----> bitcoind-A
                              |--> bitcoind-B

What I want to do is that syncing between bitcoind-A and bitcoind-B as soon as possible. Are there any ways?

[This is what I want]

(1)broadcast the signed transacton to bitcoind-A (my app calls sendrawtransaction via rpc)

My app -----> Load balancer -----> bitcoind-A

(2)bitcoind-B will notice by somehow that bitcoind-A received a new broadcast and update mempool of bitcoind-B.

Update 1

I'm not sure but seems -addnode= may by helpful.

How do I configure Bitcoin Core to connect always to a particular node?

-addnode= Add a node to connect to and attempt to keep the connection open

Update 2

My bitcoind is version 0.13.2

Update 3

I added the following configs and looking at the sync status between two nodes. I will let you know the findings later.




$bitcoin-cli getaddednodeinfo true

    "addednode": "10.x.x.x",
    "connected": true,
    "addresses": [
        "address": "10.x.x.x:xxxx",
        "connected": "outbound"

Does anyone know the difference outbound and inbound? I'm looking into it. My two servers has addnode setting each other but both result of getaddednodeinfo are "outbound". It is OK to me if it could help syncing mempool quickly regardless outbound or inbound.

  • @pieter-wuille I think you know well about it. Can you give me any ideas?
    – zono
    May 27, 2017 at 2:36


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.