BitcoinDesign / Bitcoin-Core-App

Tracking the design process for the Bitcoin Core App.
https://bitcoincore.app
MIT License
53 stars 11 forks source link

Feature: Add ability to locate & launch bitcoin.conf from the UI #52

Open yashrajd opened 1 year ago

yashrajd commented 1 year ago

The current UI does not provide a way to access bitcoin.conf

Suggestion: Given the potential to mess up things by users who don't know what they are doing, bitcoin.conf can be located in the Developer Options.

Thoughts? Can provide mockup if required.

edit: added last bullet point. Is there a chance this can be in the V1 milestone/MVP?

GBKS commented 1 year ago

This will not go into V1, as that scope is locked, and we really don't want to add anything else. Beyond that, it might be helpful to find some way to reference it, especially since the application does consider those settings and there are probably a lot of people who will migrate and not be aware that bitcoin.conf is being loaded.

yashrajd commented 1 year ago

Made a couple of mockups. Would like to get some feedback.

The Qt app will directly open up the file... Developer options - open bitcoin conf

In case we aren't able to open the file, pointing the user to the location is helpful. Developer options – locate bitcoin conf

yashrajd commented 1 year ago

Assuming bitcoin.conf might not be accessible from mobile, this setting should not be shown on mobile versions of the app.

GBKS commented 1 year ago

Some questions for @jarolrod:

  1. What's the status on Android for accessing the file system? Are we completely sandboxed? Can we even link to this file?
  2. Would it be possible to trigger an open of the .conf file. So you'd click and the OS would use its default text editor to open it?
GBKS commented 1 year ago

To keep this issue rolling, I'd like to give feedback on the mock-up. The layout will not work well on mobile, too much text on both sides. Don't think you even need to show the folder path, you could just have an icon to launch a file picker. That would give the text on the left more room. I'd also try to shorten the text further and remove the reference to the bitcoin.conf file name and the word GUI. Maybe just Settings in this file override application settings?

yashrajd commented 1 year ago

To keep this issue rolling, I'd like to give feedback on the mock-up. The layout will not work well on mobile, too much text on both sides.

@ryanofsky's comment also helps with this issue. The help text is not needed anymore.

Don't think you even need to show the folder path, you could just have an icon to launch a file picker. That would give the text on the left more room.

I hope you meant opening file location, I don't think we're allowing picking of a file somewhere as the bitcoin.conf file. But I tried with a button to indicate opening the file, Maybe I should try with just that file location?

I'd also try to shorten the text further and remove the reference to the bitcoin.conf file name and the word GUI. Maybe just Settings in this file override application settings?

44 helps here.

stackingsaunter commented 7 months ago

Just wanted to add here that from the user research the need to include it somehow, and - even better - allow for configuration of this file within the app was clear.

Are there any constrains from including bitcoin.conf configuration within the UI (in the future version)?

Jameson Lopp configurator for reference: https://jlopp.github.io/bitcoin-core-config-generator/

GBKS commented 7 months ago

Have you tried using the configurator? I tried a while back, when setting up a node on a Raspberry PI, and I found it super cryptic. Had to do a bunch of extra Googling to figure out what settings do and which ones are relevant, and then it took some trial-and-error to get it to work. So I would argue against this being easy to use and would prefer identifying what users actually want to do, and then give simpler options in the GUI (rather than including all these settings as is).

yashrajd commented 7 months ago

I agree with identifying what users want to do and giving options in GUI accordingly. The different kinds of users and their needs complicates things here though.

Bitcoin Core allows for dozens of configurations and settings, and the conf file allows users to set many/most of these. I do think that out of these dozens, maybe a dozen (ballpark) might be quite frequently used. Selecting the chain (for eg: signet = 1) is just one example.

Thus to stay aligned on user goals and serving them, I propose a multi-step approach to this problem (as I hopefully explicated during last week's call).

  1. Simply provide the location & easy access to the conf. file like the Qt app does (this issue partly does that, ideally we'd open the file itself for the user)

  2. Conduct user research to a) identify the main user goals that cause them to use the file and b) identify the frequently used config (so we can use them in next step 3). Hopefully #92 does this.

  3. Design a GUI for identifying, explaining and setting the most-used configs ( and perhaps templates like Jameson's site has) that sets these options without having to locate and edit the file.

What do we think about this proposed approach?

GBKS commented 7 months ago

I like it. I'd just add that we can make the application smarter to recommend certain settings based on environment and other data. We discussed this a lot initially. Like recommending pruning on mobile, or reducing RAM requirements, or other stuff.

GBKS commented 7 months ago

See the ideas in the developer settings page in the design docs and Discord conversation, specifically for showing bitcoin.conf content and locating the file.