Replying to Avatar mleku

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.

i am going to maintain this fork, update it periodically to merge in any changes from upstream.

if i had my wish, it would be to get funded to radically improve its performance, update the wallet to bitcoin core's standard, and add a GUI to control both, ideally running both btcwallet and btcd inside LXC containers (without needing docker, this is pretty easy now).

it would only take me about 6 months to at least bring it to feature parity and performance as bitcoin core, just little old me.

the task isn't really that big, the hardest bit is decoding the poorly documented C++ code in bitcoin core and deciphering the badly written python reference code in non-implemented BIPs.

and it would take a sum total of 25 seconds plus download time to build it and start using it, from source. In fact i would want to make a script that does that all automatically including managing its own little private Go installation, and maintaining its updates and hot-reloading it on user request.

Reply to this note

Please Login to reply.

Discussion

No replies yet.