I'm doing to a large stress test on 1000 node network where each node sends transactions to one another at a specific rate, and I need a way to create the funds for running it, enough so that each transaction is above the dust limit. I need a way to generate 9995000 spendable bitcoins to distribute to each address. At some point, 120 transactions will be sent per second on the network, which is why a lot of bitcoins are needed. Is there a way to get these many bitcoins to each node, which has its own address (~9800 BTC for each node, which each has one receiving address) without generating a lot of blocks and changing the subsidy variables in the source code? I'm unfamiliar with Core/bitcoind's codebase, and I might break something. Any simple solution would be appreciated.
This is not possible because the regtest network is limited to 15000 regtest BTC. Unlike mainnet and testnet, it's halving interval is 150 blocks which limits the number of regtest BTC on one chain to 15000 (actually just under that).
On regtest, you don't actually need to make outputs which reach the dust threshold. The default behavior is to allow non-standard transactions be relayed and mined on regtest and testnet. So you can just make outputs as small as you want and they should still be relayed and mineable. Furthermore, Bitcoin can actually have 0 value outputs, so you can make transactions which don't even send money, thereby removing the need to get any significant amount of regtest Bitcoin.
If for some reason regtest transactions are being rejected for being below the dust threshold, you can lower the dust threshold by using the
-dustrelayfee=<amt> option. With this, you set the feerate that the dust threshold is calculated at. Since it is in BTC/kB, you can set it to be 1 satoshi per kB with
-dustrelayfee=0.00000001, which is 0.0001 satoshis per byte. This should reduce the dust threshold to less than 1 satoshi allowing you to have outputs that are 1 satoshi.