Before the fix, it processed all transactions in the mempool which could be very slow when mempool grows to several MBs in size. I observed `get_block_template_backlog` taking up to 15 seconds of CPU time under high mempool load.
After the fix, only transactions that can potentially be mined in the next block will be processed (a bit more than the current block median weight).
@jtgrassie pointed out that the example I provided was colored incorrectly. He also made the good point that the image wasn't easy to review/correct. I reworked the example so that it's text-only. It's easier to review and edit, and reveals the structure better in my opinion. Also this is easier for people who can't distinguish colors as easily.
Make sure to double-check this work because there's a decent chance I screwed up the comments. The actual byte data was generated and should be solid.
That RPC will wait for mining to actually stop, which can be a while
if randomx has just started on randomx_init_dataset.
This fixes occasional failures in the mining functional test
Right now Doxygen is documenting everything in the repo including submodules, everything in contrib,
util, tests, etc. This bogs down the documentation to the point where it is very hard to navigate. I think
it would be a good move to focus on documenting only the main C++ code which is specific to this repo.
Right now this means documenting `src/` (without SUPERCOP), `contrib/epee/`, `external/easylogging++`. After this commit,
Doxygen went from running >6000 graphs to about 2200 graphs.
hash_extra: don't test for success in `jh_hash` and `skein_hash` since its guaranteed
device_ledger: move anonymous global variable apdu_verbose into .cpp file
Add comments to `refreshed` method variable in wallet2
If we were to call it with 100, it would cause rsiz to be 0,
leading to an infinite loop.
This is really a pedantic patch, but since there's already a
range test, might as well make it better.