JoinMarket-Org / joinmarket

CoinJoin implementation with incentive structure to convince people to take part
398 stars 119 forks source link

Sendpayment Qt GUI app #415

Open AdamISZ opened 8 years ago

AdamISZ commented 8 years ago

As most know, I recently released a first version of a Qt GUI for doing sendpayment here.

Does anyone have an opinion about this? I see a few things: could add this as a separate repo in Joinmarket-Org. Could (probably not) fold it into the main joinmarket repo. Could add features for tumbler and/or yield generator.

As I noted on reddit, it is a limited idea, and people are certainly more interested in integration with wallets (which has already been discussed here quite a bit). But it does provide a non-geek access to Joinmarket which doesn't currently exist.

The main criticism I've heard so far is that blockr is bad for privacy, but on the other hand in this it's no different from the existing non-GUI code; blockr is there by default, and Core is available if you choose to use it. Adding better privacy options for blockchain access is orthogonal to the GUI.

The other criticism (well, problem rather than criticism) is the trust aspect of binaries; without going full-gitian. The GUI can be run from source, if we maintain a gui branch for the main joinmarket repo, but of course that is only helpful to the 'geek' community side. For the binaries, I'm not sure what more can be done than pgp signatures (which I've attached). Support from other developers might be needed there, but there's no really good way, outside of gitian.

I'm toying with the idea of releasing an updated version 2 with fixes as per this TODO list, although the blockr privacy warning window is missing from that list and will be added for sure.

If you have an opinion whether this is a worthwhile exercise, please let me know here. I have a feeling people aren't that interested, but it's difficult to be sure.

(Somewhat tangential: I tend to see sendpayment as more of a 'fungibility support' app for making individual payments; that's how I use it; making external payments in a single JM coinjoin doesn't do very much for privacy in itself, really)

chris-belcher commented 8 years ago

I like the GUI. It's different to how I imagined a GUI would be but that's only style. With the donation option it could hopefully be a way to raise funds.

Yes blockr.io is very bad, however it might be comforting to think how some bitcoin users don't require that high a level of privacy. They may only want bitcoin's privacy to hide from their social circle or Non-US-allied governments (which won't have access to coinbase.com's servers). So it may be a net improvement even if it could be a lot better.

edit: I should add a few words about the viewpoint that blockr.io is bad. Blockr.io is owned by coinbase.com, they are legally obliged to spy and track their users. Using blockr.io means they will see all your addresses, they will know they are linked together and probably learn your IP address too. And all this happens with barely any warning or notification to the user. I'm sure many of you did not get involved in JoinMarket to remove tracking information from the blockchain only to hand it over to coinbase.com

For binaries, Electrum is also a high-trust-required python project that distributes binaries. It still all seems to work.

john-light commented 8 years ago

I like the work that's started on the sendpayment GUI app. That said, it is likely to face stiff competition from wallets with existing user bases that integrate JM. One idea I have to keep the GUI project alive and relevant is to make it a web app that can be installed on a server. I have JM running on my Bitseed node, and it'd be cool to be able to log in to a web UI and either mix my own coins or run the yield generator and help others mix. We have a basic web UI for Bitcoin Core that could be adapted to include a JM UI, or the JM UI could be a separate program altogether. If you're interested in collaborating on something like this, we can move this conversation somewhere else so we don't clutter this issue.

TL;DR I like the GUI, would like to see more featured added e.g. yield generator. Maybe we can turn it into a web app that can be installed on a server so it's not competing directly with other desktop wallets.

AdamISZ commented 8 years ago

@john-light Thanks for the comments.

I don't know if you saw the reddit post, but the context is: we've wanted to somehow get wallet integration with some or other popular wallet pretty much since day 1; in fact, we might have preferred (perhaps) not to code a wallet in Joinmarket at all, except it's needed because we deal with the HD branches differently, as you probably know, to achieve the privacy goals. And there are other limitations especially on the maker side (the always-on-ness/hotness of the wallet).

The problem is, high as it is on the wishlist to get wallet integration, it hasn't happened yet, and may not for some time. So the idea of this GUI is to give non-technical people a chance to try it, acknowledging they have the inconvenience of funding a JM wallet. It's not a competitor to a wallet integration, it's a "here's something" in the absence of the former.

As for adding other features to the Qt app - I'd be more inclined to add tumbler features than yieldgenerator features as a priority, partly because I think it's better that yieldgens run from source (and they should definitely run with Core) - there isn't really a shortage of people willing to do that. But that doesn't mean I don't want to offer that, it's just about priorities.

AdamISZ commented 8 years ago

Re:

Does anyone have an opinion about this? I see a few things: could add this as a separate repo in Joinmarket-Org. Could (probably not) fold it into the main joinmarket repo.

In the absence of other opinions, I'll do this: add the gui branch to the main joinmarket repo, and shift the JMBinary repo from my account to the Joinmarket-Org account (assuming I can figure out how).

Any disagreement? It doesn't seem like it would impact anything else, but it would look better from a consumer point of view.

I've made some updates and will push a version 2 of the Qt tool today.

chris-belcher commented 8 years ago

Why is this closed? This thread could be a good place to talk about this sendpayment-qt