If you are
solo mining, then your mining software is probably getting its block headers from Bitcoin Core using a getwork API call. In that case, Bitcoin Core has the transaction selecting algorithm coded into it. I haven't done any mining, so I don't know how configurable that algorithm is. You do have a few command line options when starting up Bitcoin Core:
- -blockmaxweight= Set maximum BIP141 block weight (default: 3000000)
- -blockmaxsize= Set maximum block size in bytes (default: 750000)
- -blockprioritysize= Set maximum size of high-priority/low-fee transactions in bytes (default: 0)
- -blockmintxfee= Set lowest fee rate (in BTC/kB) for transactions to be included in block creation. (default: 0.00001)
Excellent information again, thank you. Yes, I did notice those options when playing with the core but didn't fully understand them. So you could set blockmintxfee to quite a high value to only accept transactions with large fees. Very interesting, so it's the core that determines what transactions are available to miners, hence no setting for it on BFGMiner. So if you are using someone else's core, you have to go with their settings. I suppose this goes back to the early days when every miner would have their own core and the core (bitcoind) did the mining.