Motivation
We would like to ship bitcoind with our software, however it's problematic if the user has already Bitcoin Core in her machine, because of the disk requirements.
In order to avoid API/database/etc incompatibilities and various potential disastrous scenarios we would like to prevent the user to use Bitcoin Core with our software if the version of her own Core and our shipped Core differs.
Question
How do similar software resolve this issue?
Idea 1
Should I play a setup procedure with the user like this:
1. Do you want to use Bitcoin Core with Wasabi? Yes -> 2. / No -> END
2. Do you have already Bitcoin Core installed? Yes -> 3. / No -> GOOD
3. What version of Bitcoin Core do you have? ... -> Same -> 4. / Different -> BAD
4. Try to detect data folder automatically. Success -> GOOD / Fail -> 5.
5. What's your current Bitcoin Core's data folder? ... -> GOOD
- What if we update Bitcoin Core? Replay step 3.
- What if the user updates Bitcoin Core? It's a problem, there's no way we can detect it.
Idea 2
What I can do is to try to detect Bitcoin Core's default data folder and also get some input from the user if she's using a custom data folder, but is there a way to acquire the version from the data folder somehow?
Idea 3
I could call bitcoind --version. In this case the user should tell us the location of bitcoind. In that case, is it possible to recognize programmatically her custom data folder if she's using one?
Reiterating The Question
What are the common strategies of doing this? Is it possible to detect if Bitcoin Core is installed and what data folder is used?