I recently started running a node and learning how to be effective with it from The Blockchain Commons project here.

https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line

Granted, I am new at this, I may have tied my shoe laces together and wanted to get feedback on what I experienced and perhaps suggest some fixes.


With chain=<chain> set in the bitcoin.conf and then mistakenly combined with a network argument such as -testnet it provides the error message "

EXCEPTION: St13runtime_error      
Invalid combination of -regtest, -signet, -testnet and -chain. Can use at most one."

As a novice, I didn't quite understand where this collision was coming from or why as I copied the conf file from an old setup. I got some help from the bitcoin-dev irc and worked it out. I was told there is currently no way of notifying where the arguments are coming from a config file or client arguments. Would an new argument options category being applied to arguments being set when the .conf file is being ingested by ArgsManager.ReadConfigFiles help? I see an enum class called Source which is used with MergeSettings. Perhaps that could be of help for generating a more descriptive warning in ArgsManager::GetChainName?

My second novice mistake was the mix naming of test and testnet. The command 'bitcoin-cli -chain=testnet' was failing me. having 'bitcoin-cli -testnet' be the equivalent of 'bitcoin-cli -chain=test' caused confusion leading to my opinion that it would be beneficial for the names to match CBaseChainParams network names.



argsman.AddArg("-chain=<chain>", "Use the chain <chain> (default: main). Allowed values: main, test, signet, regtest", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS);
argsman.AddArg("-testnet", "Use the test chain. Equivalent to -chain=test.", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS);


Would SetupChainParamsBaseOptions benefit from changing the added argument -testnet to -test to match the CBaseChainParams or add the argument of -test to maintain backwards capability.

Last, this is the first time I'm dipping my toe into contributing to this software. I've read a fair amount of guides before I got started online and through Chaincode's educational endeavors. I hope this doesn't seem like bike-shedding, but a novices attempt to contribute in good faith.

Any feedback of how this issue is presented will be warmly welcomed. I am looking forward to improving my effectiveness at engaging with this community.

Thank you for your time,
Zaidan






Sent with Proton Mail secure email.