Bitcoin-Core-App icon indicating copy to clipboard operation
Bitcoin-Core-App copied to clipboard

Research bitcoin.conf configuration within GUI

Open stackingsaunter opened this issue 1 year ago • 4 comments

Many bitcoin core users configure bitcoin.conf file to customise their node to their needs. However,

  • there’s no official documentation describing the file’s settings,
  • there’s no way to access nor configure the file within the GUI,
  • users use third party tools to configure that (but they also seem lacking for some and are not fully descriptive regarding the features)

Goal of the research would be to find out if it's worth implementing some part of the configuration within the GUI, and If yes, what's the useful way to do it

I came up with a research draft HERE

Related issues: https://github.com/BitcoinDesign/Bitcoin-Core-App/issues/52

stackingsaunter avatar Jan 17 '24 20:01 stackingsaunter

Part of this research might also lead to improving the documentation and/or Lopp configurator?

GBKS avatar Jan 18 '24 06:01 GBKS

@GBKS that was my reasoning too

stackingsaunter avatar Jan 18 '24 09:01 stackingsaunter

Just poked around a bit and the Loop configurator breaks things down in these categories:

  • Bitcoin Core
  • Debugging & testing
  • Chain selection
  • Mining
  • Networking
  • Transaction relay
  • RPC API
  • Wallet
  • ZeroMQ

If I ask ChatGPT about why people might edit this file, it comes up with these categories (some of this might be hallucination):

  • RPC configuration
  • Network configuration
  • Security settings
  • Database and storage settings
  • Logging configuration
  • Mining configuration
  • Node connectivity
  • Memory usage
  • Fee and transaction settings
  • Tor integration

Just does not seem like a casual user should have to touch 99% of these and this is more into hobbyist, pro, dev land. The casuals probably need some of the wallet and fee settings, maybe RPC so they can connect other applications, and select settings related to performance and bandwidth that we can bundle and recommend (e.g. a simple low, medium, high bandwidth usage selector. I would be curious if there are some that 50% of people who edit this touch, and some that 0.001% touch, to get a feel for priority.

GBKS avatar Jan 25 '24 10:01 GBKS

GUI users should never really have a bitcoin.conf and pass it to the GUI. Configuration for 99% of users will be from them editing settings within the GUI, which these end up in settings.json and QSettings.

Now, it's possible to pass a bitcoin.conf, and some power users will, that's why we have to consider it. The path of evaluation is that the bitcoin.conf will take precedent over others, the following is the evaluation order in terms of importance and what overrides what: command-line parameters > bitcoin.conf > settings.json > QSettings

In terms of what's there you can look at jameson lopps config: https://jlopp.github.io/bitcoin-core-config-generator/

There is a gen-bitcoinconf script included in the codebase that will generate the conf based on whats compiled into the binary, if all features are compiled in then the conf will have all options, but jameson lopps config generator is enough to look at to see what's there

jarolrod avatar Sep 25 '24 21:09 jarolrod