Electrum Personal Server

Groestlcoin Electrum Personal Server: Maximally lightweight electrum-grs server for a single user,

Groestlcoin Electrum Personal Server aims to make using Electrum groestlcoin wallet more secure and more private. It makes it easy to connect your Electrum-GRS wallet to your own full node.
It is an implementation of the Electrum-grs server protocol which fulfills the specific need of using the Electrum-grs wallet backed by a full node, but without the heavyweight server backend, for a single user. It allows the user to benefit from all of Groestlcoin Core's resource-saving features like pruning, blocksonly and disabled txindex. All of Electrum-GRS's feature-richness like hardware wallet integration, multisignature wallets, offline signing, seed recovery phrases, coin control and so on can still be used, but connected only to the user's own full node.
Full node wallets are important in groestlcoin because they are an big part of what makes the system be trustless. No longer do people have to trust a financial institution like a bank or paypal, they can run software on their own computers. If groestlcoin is digital gold, then a full node wallet is your own personal goldsmith who checks for you that received payments are genuine.
Full node wallets are also important for privacy. Using Electrum-GRS under default configuration requires it to send (hashes of) all your groestlcoin addresses to some server. That server can then easily spy on your transactions. Full node wallets like Groestlcoin Electrum Personal Server would download the entire blockchain and scan it for the user's own addresses, and therefore don't reveal to anyone else which groestlcoin addresses they are interested in. Groestlcoin Electrum Personal Server can also broadcast transactions through Tor which improves privacy by resisting traffic analysis for broadcasted transactions which can link the IP address of the user to the transaction. If enabled this would happen transparently whenever the user simply clicks "Send" on a transaction in Electrum-grs wallet.

Features

  • Use your own node
  • Tor support
  • Uses less CPU and RAM than electrumx
  • Used intermittently rather than needing to be always-on
  • Doesn't require an index of every groestlcoin address ever used like on electrumx

How To

  • If you dont already have them, download and install Groestlcoin Core version 2.17.2 or higher. The Groestlcoin node must have wallet enabled, and must have the RPC server switched on (server=1 in groestlcoin.conf). On first run, it is recommended to create a wallet dedicated to Groestlcoin Electrum Personal Server using the command line argument groestlcoin-cli createwallet electrumpersonalserver true.
  • If you dont already have it, download and install Electrum-grs wallet, and set up your Electrum-grs wallet (for example by linking your hardware wallet). To avoid damaging privacy by connecting to public Electrum-GRS servers, disconnect from the internet first or run Electrum-grs with the command line argument --server localhost:50002:s.
  • Download the latest release of Groestlcoin Electrum Personal Server. If using Windows OS take the packaged binary release build electrum-grs-personalserver-windows-release-XXX.zip.
  • Extract and enter the directory, and copy the file config.ini_sample to config.ini. Edit the file config.ini to configure everything about the server. Add your wallet master public keys or watch-only addresses to the [master-public-keys] and [watch-only-addresses] sections. Master public keys for an Electrum-grs wallet (which start with xpub/ypub/zpub/etc) can be found in the Electrum-grs client menu Wallet -> Information. You can add multiple master public keys or watch-only addresses by adding separate lines for the different keys/addresses:
    wallet1 = xpub661MyMwAqRbcF...
    wallet2 = xpub7712KLsfsg46G...
  • If you created a wallet dedicated to Groestlcoin Electrum Personal Server in Groestlcoin Core, you have to modify the line wallet_filename in the [groestlcoin-rpc] section with the name of the wallet, for example electrumpersonalserver.
  • If using the windows packaged binary release, drag the file config.ini onto the file electrum-personal-server.exe to run the server, or on the command line run electrum-personal-server config.ini.
  • If installing from the source release, install Groestlcoin Electrum Personal Server in your home directory with pip3 install --user .. On Linux the script electrum-personal-server will be installed in ~/.local/bin. Please note, if for some reason, you want to make a system-wide install, simply run pip3 install . as root (e.g. if you have sudo setup, you could use: sudo pip3 install .). Run electrum-personal-server /path/to/config.ini to start Groestlcoin Electrum Personal Server.
  • The first time the server is run it will import all configured addresses as watch-only into the Groestlcoin node, and then exit. If the wallets contain historical transactions you can use the rescan script (electrum-personal-server --rescan /path/to/config.ini) to make them appear. If using the windows packaged binary release build then drag the file config.ini onto the file electrum-personal-server-rescan.bat.
  • Run the server again which will start Groestlcoin Electrum Personal Server. Wait until the message Listening for Electrum-grs Wallet ... appears and then tell Electrum-grs to connect to the server in Tools -> Server. By default the server details are localhost if running on the same machine. Make sure the port number matches what is written in config.ini (port 50002 by default).

Note: Right now Groestlcoin Electrum Personal Server can only accept one connection at a time.

Source code:
https://github.com/Groestlcoin/electrum-personal-server