Again, grin-wallet lacks multi-user support, which is kind of a deal killer for the Grin++ UI (imho). We absolutely should be able to swap out nodes (with an understanding that performance could be affected), but grin-wallet went a different route than Grin++. Since we’re currently without a grin-wallet maintainer, it’s unlikely that we’ll be able to make the necessary changes to that code anytime soon.
Edit: I really don’t see what we would gain by trying to make grin-wallet and the Grin++ wallet compatible. It’s not like you would want to have the option to switch back and forth between backends. They store data completely differently, so it’s going to lead to confusion and frustration if a user switches impls just to find out their account isn’t accessible.
Nodes, OTOH, make complete sense to be able to switch. Users should have the option of choosing the node they have the most faith in.
I think it would would be awesome if all wallets would expose the same api and then someone could just create a GUI which hooks to a wallet of your choice. This way one GUI implementation would work on all wallet backends. Not sure how viable this is, but it sounds like a good structure
Like I said, switching back and forth is not desirable at all. It leads to plenty of confusion, and people could lose access to their accounts if they don’t know what they’re doing. They could always switch back and recover their funds, but that’s only if they realize the mistake they’ve made before becoming too disgruntled and calling it a loss (I’ve seen far too many people lose coins in grin already, without this UX disaster-waiting-to-happen). So that means you could pick your backend on initial install and then just stick with it.
But again, what is it you’re trying to solve with having multiple backends to choose from? If the concern is one may contain bugs, well you’re risking introducing a lot more bugs if you have to maintain the integration of 2 different implementations, each with their own quirks.
yes, that’s exactly what i was thinking, on install pick the one you want.
Just getting the cool UX experience regardless of which code you want to run in the background. For example lets say that in 5 years there comes a formally verified haskell node and wallet backend. I would want to use that, but there would be no gui for it. Well i could use the existing GUI’s if we have a wallet & node api standardized
IMHO, I think we should have a RFC defining the API, and the wallets should follow the RFC. Having that, is not a matter of resolving any specific problem, it is about following a standard, and by following a standard there should not be any issue by integrating any grin wallet with any GUI, or any third party service. We should not be writing an API wrapper for each Grin implementation.
While I think it is a great idea, I’m not sure I’d actually want to work on this. It seems like something that takes a ton of time to get right (though incremental approach with interface extension over time would likely be a good approach) and I’m more interested in the research of many other areas in Grin - it would probably leave too little time for other things I’m interested in. For now I’m leaning towards not tackling this one, but I’ll think about it.
P.S. I know this answer is shit and that someone has to do it, but I also believe people are most productive when they work on things that excite them the most.