https://github.com/mleku/btcd/commit/c08425ad7ca03e08ef7758e81c4df40c88ce21d4
this is mostly based on a previous attempt by me to add some substantial performance improvements to btcd's initial block download. https://github.com/btcsuite/btcd/pull/1899 proof of work.
zero serious response to it.
the new modification includes
- switching over from the default, 64 bit wide SHA256 implementation to one that uses AVX or AVX2 if available (possibly also the SIMD extensions for ARM processors).
- adding configuration items to set more sane values for GoGC and GoMaxProcs, both of which drastically benefit initial block download by nearly doubling the block validation speed.
- embed sample configuration file, extended with some good sane values for 4gb+ memory machines to run btcd
- writes config file with freshly generated random RPC logins using the now embedded file. previously this assumed to be run as 'go run .' from the repository source and does not work from the binary. Now fixed in my patch.
the result of this tiny set of modifications on the btcd source code is more than halving the time to initial sync and actually setting the configuration file as it should be, and giving users the ability to tune how much memory it uses, and how many threads it uses.