Questions about Full Nodes and Electrum Servers

15 replies 31 views
gas_gangFull Member
Posts: 23 · Reputation: 275
#1Oct 8, 2020, 02:17 AM
Hey everyone, I've got a couple of questions about Full Nodes and Electrum Servers. 1) When I connect to a full node, what information does the owner have access to? 2) Similarly, what does an Electrum server owner see when I connect to their server? That's all I wanted to ask. Thanks a lot, looking forward to your responses!
6 Reply Quote Share
SwiftMinerSenior Member
Posts: 259 · Reputation: 1036
#2Oct 8, 2020, 04:58 AM
He should be able to see your public IP address that's why it's advisable to make use of VPNs like Tor to mask your iP and Also anonymise your connection. Nodes you are connected to should also be able to view your node compatibility, and connection with other nodes. If you are making use of a wallet, nodes you are connected to will see transactions you broadcast and they can also rebroadcast the transaction if it isn't confirmed. Likewise for Electrum the server should be able to see your IP address, public keys, your transaction history and UTXOs and also you Version of Electrum. However they obviously can't see your seed phrase or private keys as well as your wallet encryption password. Some people prefer to run their own mode too if they don't want to share any of these details.
1 Reply Quote Share
im_lynxHero Member
Posts: 515 · Reputation: 2161
#3Oct 9, 2020, 04:37 AM
1) Node owner sees your IP address or Tor's exit node address and your onion address; the version of your node, its capabilities, if your node transmits transactions or only blocks, your node's blockheight, your node's minimum transfer fee 2) Your Electrum client's IP address, all public addresses of your wallet because your Electrum wallet will ask the Electrum server to send the transaction history of every active public address in your wallet and subscribe to new transactions of every known public address of your wallet. The Electrum server can assume that all public addresses belong to a connected client's wallet. Blockchain analysis companies like to run performant Electrum servers to aggregate public addresses that they can assume to belong to a particular wallet when Electrum wallet clients connect to them and request address histories. For this reason I run my own full Bitcoin node and my own Electrum server so that my SPV wallets only need to ask my own Electrum server and my light wallet's privacy is maintained.
3 Reply Quote Share
gas_gangFull Member
Posts: 23 · Reputation: 275
#4Oct 10, 2020, 07:26 AM
Is it actually possible to connect your own node to a public electrum server? Or does that not work because the Electrum server itself is a node?
2 Reply Quote Share
im_lynxHero Member
Posts: 515 · Reputation: 2161
#5Oct 11, 2020, 11:32 AM
An Electrum server usually talks to his Bitcoin Core node and needs RPC credentials to submit needed RPC commands to the Core node. You don't want to give a foreign Electrum server the ability to talk via RPC to your Bitcoin Core node. Such RPC credentials or local cookie files containing random credentials are stored in config files of the Electrum server and you don't have access to those for some public Electrum server. Usually an Electrum server gets blockchain data to build its data base from a Bitcoin node and the Electrum server needs to know the secret RPC credentials to properly talk with the Bitcoin node.
2 Reply Quote Share
w0lf404Hero Member
Posts: 801 · Reputation: 2381
#6Oct 11, 2020, 03:15 PM
I don't think electrum sends the public keys to servers. To get the transaction history and UTXOs, all electrum needs is the list of the addresses. You can run your own full node and have your own electrum server, so that you don't have to connect to the servers provided by third parties.
3 Reply Quote Share
HyperRavenFull Member
Posts: 175 · Reputation: 633
#7Oct 11, 2020, 06:35 PM
You cannot. Electrum servers are not the same as Bitcoin nodes, they have different protocols and are not compatible with each other. Electrum wallets can connect to Electrum servers, and Electrum server uses their own instance of their Bitcoin full node to be able to retrieve information. If you value privacy, you should run a full node yourself. That, or don't use Electrum specifically.
2 Reply Quote Share
eric.wolfFull Member
Posts: 117 · Reputation: 499
#8Oct 13, 2020, 02:31 AM
The owner will be able to see the time and duration that you have connected to the owner's node the most obvious one of course is your ip address but the owner will have no access or will not see your private keys Like your earlier question, your ip address will be seen by the owner as well as your transactions history and data No content of your wallet will be visible even if you connect to a node of another
4 Reply Quote Share
hash_bossLegendary
Posts: 1166 · Reputation: 5261
#9Oct 13, 2020, 04:27 AM
Other member already answered when you connect as full node. But if you connect as lightweight/SPV wallet (which use BIP 158), your wallet would request block filter and block which contain transaction on your opened wallet. If we want to be accurate on this matter, then we should say scripthash instead. https://electrumx-spesmilo.readthedocs.io/en/latest/protocol-methods.html mention these calls.
4 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#10Oct 13, 2020, 10:23 AM
I noticed that the two questions seem disconnected. I'm thinking that you're talking about something that can either connect to Bitcoin Core and public Electrum servers. Perhaps, this is related to your previous topic about "Specter Wallet"? If so, if it's connected to (your) Bitcoin Core, the owner will see entirely everything except private keys. It will mirror your wallet as a watch-only wallet in Bitcoin Core where the owner of the node can see your every transactions, addresses, and even xpubs. You shouldn't be connecting Specter to other people's Bitcoin Core anyways.
3 Reply Quote Share
yield_forkFull Member
Posts: 162 · Reputation: 728
#11Oct 13, 2020, 11:17 AM
I have a personal electrs server (rust), but i don't have and don't know how to view the IP address of the client that connected to my server, it's open to listen to connections coming from outside my local network (0.0.0.0). My electrs was installed directly, isn't an instance of pre-configured nodes like raspblitz, mynode, etc. It is installed directly on my linux. I configured it around 2020-21 on my old notebook and only update it from time to time, i use bitcoin core more directly. Maybe electrs doesn't have this capability, but other servers like electrumX can do this. Does everyone who runs electrs have the ability to see the IP address of clients/wallets that connect to their servers?
3 Reply Quote Share
im_lynxHero Member
Posts: 515 · Reputation: 2161
#12Oct 13, 2020, 01:21 PM
My main Electrum server that I run with Fulcrum is deliberately not public, so it won't announce its presence and availability. Log files usually show when Electrum clients connect and communicate. My experimental Umbrel box on a Raspi runs Electrs as Electrum server. I didn't check how it's configured, might have to look under the hood first. To the outside world it should only be reachable via its Tor address. I would've to dig deeper to figure out if it's public or not and how it logs connection and communication requests. I would be very surprised if Electrs doesn't have an IP logging option. I never had the need for it, though.
0 Reply Quote Share
sam.coinMember
Posts: 2 · Reputation: 68
#13Oct 13, 2020, 01:53 PM
If my Fulcrum reads "Please delete the datadir and resynch to bitcoind"  Does that mean just delete the whole Fulcum_db directory with all the files inside of it?
0 Reply Quote Share
im_lynxHero Member
Posts: 515 · Reputation: 2161
#14Oct 14, 2020, 04:35 PM
According to https://github.com/openoms/bitcoin-tutorials/blob/master/fulcrum.md#database-corrupted yes, whatever your db folder is named, its content needs to be deleted and Fulcrum restarted. If Fulcrum is still running, unlikely when it complained about a corrupted database, stop it. Delete content of your database folder, whatever its name is. Start Fulcrum and be patient, because it will take time to rebuild its database from scratch. Do you have an idea why your database got corrupted? What happended to your system?
0 Reply Quote Share
sam.coinMember
Posts: 2 · Reputation: 68
#15Oct 14, 2020, 10:37 PM
No clue why it stopped working, It's on a laptop that's only used for Fulcrum and Bitcoind.  Maybe power glitch, my internet went down a few weeks ago that's the only culprit.
0 Reply Quote Share
hash_bossLegendary
Posts: 1166 · Reputation: 5261
#16Oct 15, 2020, 01:07 AM
Based on my experience, yes. If you haven't deleted Fulcrum_db directory, it contains some log file which may give you some clue. And if you have free time, consider checking system log and S.M.A.R.T. status of the storage drive used to store Fulcrum database folder.
4 Reply Quote Share
?Reply
Sign in to reply to this topic

Related topics