Author

Topic: Why do most SPV / mobile wallets not allow you to change your SPV server (Read 312 times)

legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
-snip-

I was also able to connect a my Green wallet to a random Electrum server and it synced without any problem. thus, I believe you should be able to connect it to your own server too.


I think the issue is with green is that like Coinomi it needs a valid SSL because it does connect to the 1 node I have with one.
BUT, for internal testing I just hit the 192.168.1.x private IP.

Apprently, that's no longer possible. I tried to connect to my own server, it just get stuck at "SPV synchronization..." and whenever I make a transaction it says "SPV unverified".

I reached out to @BlockstreamHelp in Twitter, and this was their response:



@DaveF Have you tried BRD wallet? It says "Connected" even when I put an invalid IP address. The payments are going through just fine so I can't tell for sure if it's not working and I'm being connected directly to BRD servers, or it's just because I didn't configure my node properly.

Green:
Hmm, just tried again it did connect to the node with SSL but not the one with just an IP.
With that being said I also just noticed it's a much older build of green. For some reason it has not updated in a while, I  never noticed, that might be it.

BRD: I want to rebuild the VM that I have the Electrum servers on 1st. Just with everything going on with Corona / the shutdowns now I have about a dozen projects / testing things that are all in various states of progress.

I kind of work on them when I figure I have "X" time and this next step should take "X" time so it's good. If it turns out to take longer or I have less time it can all get pushed back or just stalled.

Stay safe.

-Dave
staff
Activity: 3500
Merit: 6152
-snip-

I was also able to connect a my Green wallet to a random Electrum server and it synced without any problem. thus, I believe you should be able to connect it to your own server too.


I think the issue is with green is that like Coinomi it needs a valid SSL because it does connect to the 1 node I have with one.
BUT, for internal testing I just hit the 192.168.1.x private IP.

Apprently, that's no longer possible. I tried to connect to my own server, it just get stuck at "SPV synchronization..." and whenever I make a transaction it says "SPV unverified".

I reached out to @BlockstreamHelp in Twitter, and this was their response:



@DaveF Have you tried BRD wallet? It says "Connected" even when I put an invalid IP address. The payments are going through just fine so I can't tell for sure if it's not working and I'm being connected directly to BRD servers, or it's just because I didn't configure my node properly.
legendary
Activity: 1624
Merit: 2481
SPV = getting block headers from the network
light wallets = connect to a server

SPV is a technique to verify payments (therefore Simplified Payment Verification).
All SPV wallets are lightweight clients. And all lightweight clients use SPV.

You can't distinguish between "SPV" and "light wallets" the way you are doing.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
Thank you Dave. I may sound dumb but honestly didn't know you can connect SPV wallets ,other than Electrum, to an Electrum server. Thought there would be some compatibility issues!

But, others do not such as Mycelium and Green.

for Mycelium, giszmo said that you have to change the server's address in the source code:
Quote
You could already for personal use replace our url with yours in the source code.

We currently use a slightly patched electrumX server. For almost all users the patch is irrelevant but for those with gigantic wallets or very slow internet the patch matters.
source: https://amp.reddit.com/r/mycelium/comments/b3n8ww/any_plans_to_add_the_ability_to_connect_to_your/

I was also able to connect a my Green wallet to a random Electrum server and it synced without any problem. thus, I believe you should be able to connect it to your own server too.

I think the issue is with green is that like Coinomi it needs a valid SSL because it does connect to the 1 node I have with one.
BUT, for internal testing I just hit the 192.168.1.x private IP.

Probably should sit down and do some methodical testing as opposed to just playing around and randomly trying but that would be work.

Re-compiling mycelium to do this is just not going to happen.

Stay safe.

-Dave
legendary
Activity: 2744
Merit: 3097
Top Crypto Casino
Thank you Dave. I may sound dumb but honestly didn't know you can connect SPV wallets ,other than Electrum, to an Electrum server. Thought there would be some compatibility issues!

But, others do not such as Mycelium and Green.

for Mycelium, giszmo said that you have to change the server's address in the source code:
Quote
You could already for personal use replace our url with yours in the source code.

We currently use a slightly patched electrumX server. For almost all users the patch is irrelevant but for those with gigantic wallets or very slow internet the patch matters.
source: https://amp.reddit.com/r/mycelium/comments/b3n8ww/any_plans_to_add_the_ability_to_connect_to_your/

I was also able to connect a my Green wallet to a random Electrum server and it synced without any problem. thus, I believe you should be able to connect it to your own server too.
newbie
Activity: 11
Merit: 5
SPV = getting block headers from the network
light wallets = connect to a server

what you want is a wallet with a full node connection to your electrum server, try bluewallet
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
it is mainly because most of the wallets that are referred to as SPV are actually connecting to a centralized server rather than connecting to actual bitcoin nodes using features such as bloom filters. (Electrum is in between, you connect to nodes but the nodes have to be "special" nodes that have a separate index). so practically the choice is limited to only 1 server, the one that the wallet company runs.

but this could partly be because nobody has wanted the feature yet. usually people who go for an SPV wallet don't have the capability or willingness to run their own full node. you can always find your favorite wallet's developers and request the new feature though.

But, there are many Electrum / ElectrumX servers out there, I have one running for myself, and there have been several members of the forum running their own over the years.
It's not really for the desktop clients that matter, more for the phones since they more or less have to be SPV.


Hi DaveF, currently that's not an option on the Desktop version, but it will come on a future update. Just FYI, in case you try to connect your ElectrumX server to the mobile apps, self-signed certificates aren't accepted, but you can use a certificate from any free CA like Let's Encrypt for example.

Even though CA like Let's Encrypt is free, AFAIK you still need public static IP or domain in order to get the CA, which is quite costly.

Not really there are a lot of DYDNS services out there so static IP is not a real concern. My lightning node is behind a dynamic IP and is updated in more or less real time.

Additionally, Electrum don't use bloom filter and you practically have no privacy if the server log all "SPV request"

Which is part of the run your own and connect to your own node theory I was trying.

Stay safe.

-Dave
legendary
Activity: 3472
Merit: 10611
it is mainly because most of the wallets that are referred to as SPV are actually connecting to a centralized server rather than connecting to actual bitcoin nodes using features such as bloom filters. (Electrum is in between, you connect to nodes but the nodes have to be "special" nodes that have a separate index). so practically the choice is limited to only 1 server, the one that the wallet company runs.

but this could partly be because nobody has wanted the feature yet. usually people who go for an SPV wallet don't have the capability or willingness to run their own full node. you can always find your favorite wallet's developers and request the new feature though.
jr. member
Activity: 55
Merit: 10
And I could not find it at all on the desktop version.
Hi DaveF, currently that's not an option on the Desktop version, but it will come on a future update. Just FYI, in case you try to connect your ElectrumX server to the mobile apps, self-signed certificates aren't accepted, but you can use a certificate from any free CA like Let's Encrypt for example.



I never used their mobile version, but the mobile is much older and it looks safer. There were some problems with coinomi desktop security (about spell check in google), but not with the mobile version (which is pretty old and I like it, I use it for years)
Hi bitmover, the desktop issue you mentioned was fixed immediately, but it was concluded that no user lost funds due to it as it could not have been exploited. The user who reported it was trying to extort Coinomi, you can read the detailed forensic report here: https://twitter.com/kimionis/status/1131945228506738688. The difference between the desktop and mobile versions are mostly features. As you said, the mobile version is much older, and features are usually implemented there first, to go into the desktop version later.
legendary
Activity: 2352
Merit: 6089
bitcoindata.science
Perhaps because of the primary purpose of SPV wallets that you cannot your full node wallet, so you need to trust them...

This somehow makes sense, to the point where people who use SPV wallets usually don't run their own full node.
But that doesn't mean we have to trust them. We should be able to trust someone else if we wish (i.e., connect to another SPV server).

Not that it would make much difference in terms of security, as we can check balances in blockexplorers as well... But certainly in terms of privacy.

And I could not find it at all on the desktop version.

I never used their mobile version, but the mobile is much older and it looks safer. There were some problems with coinomi desktop security (about spell check in google), but not with the mobile version (which is pretty old and I like it, I use it for years)
legendary
Activity: 2702
Merit: 4002
Perhaps because of the primary purpose of SPV wallets that you cannot your full node wallet, so you need to trust them, and since you trust the developer "about the security of your coins," you will trust him on privacy, especially since running full node wallet does not generate much money.

If the wallet was open source, I don’t see any reason that prevents you from connecting to your node except (the laziness of the developers.)
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
I run my own Electrum / ElectrumX servers so I want to try to connect to them with my wallets.
Some mobile wallets such as Electrum and Coinomi allow me to connect to them. But, others do not such as Mycelium and Green.

Coinomi is kind of interesting in that the mobile version does have a setting to change the BTC SPV but I did not see it for any other coins. And I could not find it at all on the desktop version.

The bitcoin mobile wallet has the setting but it would not connect to my node. So that could be them or me, probably me but wanted it out there.

Now, I did not dig that deep into all the wallets out there so it could be someplace that is really not obvious, or it could be it's just not there.

But, it just seems to be a big security / privacy / functionality thing not to be able to do it. Possibly more privacy then security and a but it's still there.

Any thoughts.

Side note: This is a moderated thread because I can see it going off the rails very quickly with discussions about the wallets not the server choice side. Don't mind a little discussion about the wallets but there are other threads for them.

Stay safe.

-Dave
Jump to: