I’ve a setup the place a single stateful Bitcoin node (with a watch-only pockets) is now not enough because of being a single level of failure and the growing load of requests. Consequently, I must run a number of bitcoind server cases.
Round 6.5 years in the past, on this query, it was acknowledged that sharing a pockets.dat file between a number of bitcoind servers was not attainable as a result of danger of pockets corruption and potential lack of funds. Particularly, Ava Chow famous that:
“You shouldn’t share a pockets.dat file between two servers. It could not even work and will end in pockets corruption and lack of funds. If you’re planning on having the 2 cases open the identical pockets file, that isn’t allowed. BDB (the database system utilized by Bitcoin Core) doesn’t permit a database to be opened by a number of software program concurrently. If you’re in some way in a position to take action, you may corrupt your pockets.
Moreover, even when the pockets file will not be accessed concurrently, the 2 nodes may have totally different sync states which can outcome within the software program being confused and probably should rescan each time you begin up one of many nodes. It could additionally produce other points.”
Provided that Bitcoin Core 26.0 Launch Notes state:
“The createwallet RPC will now not create legacy (BDB) wallets when setting descriptors=false with out additionally offering the -deprecatedrpc=create_bdb choice. It’s because the legacy pockets is being deprecated in a future launch.”
With the change in pockets DB know-how, is it now attainable to soundly share a number of pockets recordsdata between a number of bitcoind cases, making certain that adjustments made on one server are mirrored on the others with out inflicting corruption? Does the brand new pockets know-how help this use case or does it nonetheless have the identical restrictions because the legacy BDB wallets?
If sharing pockets recordsdata continues to be not allowed, what are the really useful methods to scale a stateful Bitcoin Core setup (with pockets) to deal with elevated load and keep away from a single level of failure?
Thanks on your insights.