Author Topic: Electrum-GRS 3.2.3 released  (Read 4371 times)

Offline gruve_p

  • Administrator
  • Full Member
  • *****
  • Posts: 137
  • Founder Groestlcoin
    • View Profile
    • Official Groestlcoin Website
Electrum-GRS 3.2.3 released
« on: December 22, 2018, 09:08:18 pm »


Electrum-grs is a lightweight "thin client" groestlcoin wallet Windows, MacOS and Linux based on a client-server protocol. Its main advantages over the original Groestlcoin client include support for multi-signature wallets and not requiring the download of the entire block chain.


If you are an ordinary user of Groestlcoin and simply want the convenience of a web wallet with the security of a real application and support for multi-signature, then Elecrum-GRS is the right choice for you.

Changelog Electrum-GRS 3.2.3:
• hardware wallet: the Safe-T mini from Archos is now supported.
• BIP39 seeds: if a seed extension (aka passphrase) contained multiple consecutive whitespaces or leading/trailing whitespaces then the derived addresses were not following spec. This has been fixed, and affected should move their coins. The wizard will show a warning in this case.
• Revealer: the PRNG used has been changed (#4649)
• fix Linux distributables: 'typing' was not bundled, needed for python 3.4
• fix #4626: fix spending from segwit multisig wallets involving a Trezor cosigner when using a custom derivation path
• Several other minor bugfixes and usability improvements.

Changelog Electrum-GRS 3.2.2:
• Qt GUI: seed word auto-complete during restore
• performance improvements (wallet, and Qt GUI)
• hardware wallets: show debug message during device scan
• add regtest support (via --regtest flag)
• other minor bugfixes and usability improvements
• If present, libsecp256k1 is used to speed up elliptic curve operations. The library is bundled in the Windows, MacOS, and Android binaries. On Linux, it needs to be installed separately.
• Transactions that are dropped from the mempool are kept in the wallet as 'local', and can be rebroadcast. Previously these transactions were deleted from the wallet.
• The scriptSig and witness part of transaction inputs are no longer parsed, unless actually needed. The wallet will no longer display 'from' addresses corresponding to transaction inputs, except for its own inputs.
• The partial transaction format has been incompatibly changed. This was needed as for partial transactions the scriptSig/witness has to be parsed, but for signed transactions we did not want to do the parsing.  Users should make sure that all instances of Electrum-GRS they use to co-sign or offline sign, are updated together.
• Signing of partial transactions created with online imported addresses wallets now supports significantly more setups. Previously only online p2pkh address + offline WIF was supported.  Now the following setups are all supported:
 - online {p2pkh, p2wpkh-p2sh, p2wpkh} address + offline WIF,
 - online {p2pkh, p2wpkh-p2sh, p2wpkh} address + offline seed/xprv,
 - online {p2sh, p2wsh-p2sh, p2wsh}-multisig address + offline seeds/xprvs
 (potentially distributed among several different machines)
Note that for the online address + offline HD secret case, you need the offline wallet to recognize the address (i.e. within gap limit).  Having an xpub on the online machine is still the recommended setup, as this allows the online machine to generate new addresses on demand.
• Segwit multisig for bip39 and hardware wallets is now enabled (both p2wsh-p2sh and native p2wsh).
• Ledger: offline signing for segwit inputs (#3302) This has already worked for Trezor. Offline segwit signing can be combined with online imported addresses wallets.
• Added Revealer plugin. ( https://revealer.cc ) Revealer is a seed phrase back-up solution. It allows you to create a cold, analog, multi-factor backup of your wallet seeds, or of any arbitrary secret. The Revealer utilizes a transparent plastic visual one time pad.
• Fractional fee rates: the Qt GUI now displays fee rates with 0.1 gro/byte precision, and also allows this same resolution in the Send tab.
• Hardware wallets: a "show address" button is now displayed in the Receive tab of the Qt GUI. (#4316)
• Trezor One: implemented advanced/matrix recovery (#4329)
• Windows: use dnspython to resolve dns instead of socket.getaddrinfo (#4422)
• Importing minikeys: use uncompressed pubkey instead of compressed (#4384)
• SPV proofs: check inner nodes not to be valid transactions (#4436)
• Qt GUI: there is now an optional "dark" theme (#4461)
• Several other minor bugfixes and usability improvements.
• Fix DNS resolution on Windows
• Fix websocket bug in daemon

Changelog Electrum-GRS 3.1.2:
• Capital gains: For each outgoing transaction, the difference between the acquisition and liquidation prices of outgoing coins is displayed in the wallet history. By default, historical exchange rates are used to compute acquisition and liquidation prices. These values can also be entered manually, in order to match the actual price realized by the user. The order of liquidation of coins is the natural order defined by the blockchain; this results in capital gain values that are invariant to changes in the set of addresses that are in the wallet. Any other ordering strategy (such as FIFO, LIFO) would result in capital gain values that depend on the presence of other addresses in the wallet.
• Local transactions: Transactions can be saved in the wallet without being broadcast. The inputs of local transactions are considered as spent, and their change outputs can be re-used in subsequent transactions. This can be combined with cold storage, in order to create several transactions before broadcasting them. Outgoing
transactions that have been removed from the memory pool are also saved in the wallet, and can be broadcast again.
• Checkpoints: The initial download of a headers file was replaced with hardcoded checkpoints. The wallet uses one checkpoint per retargeting period. The headers for a retargeting period are downloaded only if transactions need to be verified in this period.
• The 'privacy' and 'priority' coin selection policies have been merged into one. Previously, the 'privacy' policy has been unusable because it was was not prioritizing confirmed coins. The new policy is similar to 'privacy', except that it de-prioritizes addresses that have unconfirmed coins.
• The 'Send' tab of the Qt GUI displays how transaction fees are computed from transaction size.
• The wallet history can be filtered by time interval.
• Replace-by-fee is enabled by default. Note that this might cause some issues with wallets that do not display RBF transactions until they are confirmed.
• Watching-only wallets and hardware wallets can be encrypted.
• The SSL checkbox option was removed from the GUI.
• The Trezor One and T hardware wallet is now supported.
• The Ledger hardware wallet is now supported.
• BIP84: native segwit p2wpkh scripts for bip39 seeds and hardware wallets can now be created when specifying a BIP84 derivation path. This is usable with Trezor and Ledger.
• Windows: the binaries now include ZBar, and QR code scanning should work.
• The Wallet Import Format (WIF) for private keys that was extended in 3.0 is changed. Keys in the previous format can be imported, compatibility is maintained. Newly exported keys will be serialized as "script_type:original_wif_format_key".
• BIP32 master keys for testnet once again have different version bytes than on mainnet. For the mainnet prefixes {x,y,Y,z,Z}|{pub,prv}, the corresponding testnet prefixes are {t,u,U,v,V}|{pub,prv}. Note that due to this change, testnet wallet files created with previous versions of Electrum must be considered broken, and they need to be recreated from seed words.
• A new version of the Electrum-GRS protocol is required by the client (version 1.2). Servers using older versions of the protocol will not be displayed in the GUI.

Changelog Electrum-GRS 3.0.6:
• Moved away from Linux binary file. Users must compile from source now.
• Moved away from electrum-grs-server codebase to electrumx-grs 1.2
• The source code is relicensed under the MIT Licence
• Separation between plugins and GUIs
• The command line uses jsonrpc to communicate with the daemon
• New command: 'notify <address> <url>'
• Alternative coin selection policy, designed to help preserve user privacy. Enable it by setting the Coin Selection preference to Privacy.
• The install wizard has been rewritten and improved
• Support minikeys for private key import and sweeping
• QT: add colors to labels
• The wallet file format has been upgraded. This upgrade is not backward compatible, which means that a wallet upgraded to the 2.7 format will not be readable by earlier versions of Electrum-GRS. Multiple accounts inside the same wallet are not supported in the new format; the Qt GUI will propose to split any wallet that has several accounts. Make sure that you have saved your seed phrase before you upgrade Electrum-GRS.
• This version introduces a separation between wallets types and keystores types. 'Wallet type' defines the type of Groestlcoin contract used in the wallet, while 'keystore type' refers to the method used to store private keys.
• Replace-By-Fee: RBF transactions are supported in Qt. A warning is displayed in the history for transactions that are replaceable, have unconfirmed parents, or that have very low fees.
• Qt GUI:
   - A fee slider is visible in the in send tab
   - The Address tab is hidden by default, can be shown with Ctrl-A
   - UTXOs are displayed in the Address tab
• Seed phrases can be extended with a user-chosen passphrase. The length of seed phrases is standardized to 12 words, using 132 bits of entropy. In the wizard, the type of the seed is displayed in the seed input dialog.
• Add number of confirmations to request status.
• In the GUI, refer to passphrase as 'seed extension'.
• Wizard: Hide seed options in a popup dialog.
• Separate sign and broadcast buttons in Qt tx dialog
• Allow spaces in private keys
• Add size to transaction details window
• Move plot plugin to main code
• Merge exchange_rate plugin with main code
• Faster synchronization and transaction creation
• Use fee slider for static fees
• Add fee slider to RBF dialog
• Simplify fee preferences.
• Add Testnet support
• Allow daemon to be launched in the foreground
• Qt: use separate tabs for addresses and UTXOs
• Qt: update fee slider with a network callback
• Enforce https on exchange rate APIs
• Use hardcoded list of exchanges
• Move 'Freeze' menu to Coins (utxo) tab
• Wallet file encryption using ECIES: A keypair is derived from the wallet password. Once the wallet is decrypted, only the public key is retained in memory, in order to save the encrypted file.
• The daemon requires wallets to be explicitly loaded before commands can use them. Wallets can be loaded using: 'electrum-grs daemon load_wallet [-w path]'. This command will require a password if the wallet is encrypted.
• Invoices and contacts are stored in the wallet file and are no longer shared between wallets. Previously created invoices and contacts files may be imported from the menu.
• Fees improvements:
    - Child Pays For Parent (CPFP) dialog in the GUI.
    - RBF is automatically proposed for low fee transactions.
• The GUI shows a blue icon when connected using a proxy.
• Show paid invoices in history tab
• Improve CPFP dialog
• Multiple Chain Validation: Electrum-GRS will download and validate block headers sent by servers that may follow different branches of a fork in the Groestlcoin blockchain. Instead of a linear sequence,block headers are organized in a tree structure. Branching points are located efficiently using binary search. The purpose of MCV is to detect and handle blockchain forks that are invisible to the classical SPV model.
• The desired branch of a blockchain fork can be selected using the network dialog. Branches are identified by the hash and height of the diverging block. Coin splitting is possible using RBF transaction
• MultiGroestl, Groestlwallet, Simple Groestlcoin support: If the user enters a BIP39 seed, the full derivation path is configurable in the install wizard.
• Option to send only confirmed coins
• Qt GUI:
    - Network dialog uses tabs and gets updated by network events.
    - The gui tabs use icons
• Daemon: The wallet password can be passed as parameter to the JSONRPC API.
• Validate contacts on import
• Command-line option for locktime
• Force headers download if headers file is corrupted
• Add websocket to windows builds
• The project was migrated to Python3 and Qt5. Python2 is no longer supported. If you cloned the source repository, you will need to run "python3 setup.py install" in order to install the new dependencies.
• Segwit support:
    - Native segwit scripts are supported using a new type of seed. The version number for segwit seeds is 0x100. The install wizard will not create segwit seeds by default; users must opt-in with the segwit option.
    - Native segwit scripts are represented using bech32 addresses, following BIP173. Please note that BIP173 is still in draft status, and that other wallets/websites may not support it. Thus, you should keep a non-segwit wallet in order to be able to receive groestlcoins during the transition period. If BIP173 ends up being rejected or substantially modified, your wallet may have to be restored from seed. This will not affect funds sent to bech32 addresses, and it will not affect the capacity of Electrum-GRS to spend these funds.
    - The BIP32 master keys of segwit wallets are serialized using new version numbers. The new version numbers encode the script type, and they result in the following prefixes:
         * xpub/xprv : p2pkh or p2sh
         * ypub/yprv : p2wpkh-in-p2sh
         * Ypub/Yprv : p2wsh-in-p2sh
         * zpub/zprv : p2wpkh
         * Zpub/Zprv : p2wsh
These values are identical for mainnet and testnet; tpub/tprv prefixes are no longer used in testnet wallets.
    - The Wallet Import Format (WIF) is similarly extended for segwit scripts. After a base58-encoded key is decoded to binary, its first byte encodes the script type:
         * 128 + 0: p2pkh
         * 128 + 1: p2wpkh
         * 128 + 2: p2wpkh-in-p2sh
         * 128 + 5: p2sh
         * 128 + 6: p2wsh
         * 128 + 7: p2wsh-in-p2sh
The distinction between p2sh and p2pkh in private key means that it is not possible to import a p2sh private key and associate it to a p2pkh address.
• A new version of the Electrum-GRS protocol is required by the client (version 1.1). Servers using older versions of the protocol will not be displayed in the GUI.
• By default, transactions are time-locked to the height of the current block. Other values of locktime may be passed using the command line.
• Sweeping minikeys: search for both compressed and uncompressed pubkeys
• Qt GUI: sweeping now uses the Send tab, allowing fees to be set
• Windows: if using the installer binary, there is now a separate shortcut for "Electrum-GRS Testnet"
• OS notifications for incoming transactions
• Better transaction size estimation:
    - fees for segwit txns were somewhat underestimated
    - some multisig txns were underestimated
    - handle uncompressed pubkeys
• The JSONRPC interface is password protected
• JSONRPC commands are disabled if the GUI is running, except 'ping', which is used to determine if a GUI is already running

Changelog Electrum-GRS 2.5.4:
• Linux binary file included
• Fixed sweeping private keys
• Fixed signing/verifying messages
• Electrum-GRS servers updated to 2.5.4
• Installwizard: do not allow direct copy-paste of the seed
• The QT GUI supports multiple windows in the same process. When a new Electrum-GRS instance is started, it checks for an already running Electrum-GRS process, and connects to it.
• The network layer uses select(), so all server communication is handled by a single thread. Moreover, the synchronizer, verifier, and exchange rate plugin now run as separate jobs within the networking thread instead of as their own threads.
• Plugins are revamped
• Simplified Chinese wordlist
• Dynamic Fees: using estimatefee value returned by server
• Various GUI improvements
• Arbitrary m-of-n multisig wallets are supported (n<=15).
• Transaction fees set manually in the GUI are retained, including when the user uses the '!' shortcut.
• New 'email' plugin, that enables sending and receiving payment requests by email.
• improvements to the transaction dialog:
    - request password after showing transaction
    - show change addresses in yellow color
• Improved logic for the network layer.
• More efficient coin selection. Spend oldest coins first, and minimize the number of transaction inputs.
• The command line accepts the '!' syntax to send the maximum amount available. It can be combined with the '--from' option. Example: 'payto <destination> ! --from <from_address>'
• The command line also accepts a '?' shortcut for private keys arguments, that triggers a prompt.
• Payment requests can be signed with a SSL certificate, and published as bip70 files in a public web directory.
• Show amounts (thousands separators and decimal point) according to locale in GUI
• Show unmatured coins in balance
• Faster startup, thanks to the following optimizations:
   1. Transaction input/outputs are cached in the wallet file
   2. Fast X509 certificate parser, not using pyasn1 anymore.
• The 'Invoices' and 'Send' tabs have been merged.
• Contacts are stored in a separate file, shared between wallets.
• A Search Box is available in the GUI (Ctrl-S)
• Own addresses are shown in green in the Transaction dialog.
• Address History dialog.
• The password dialog will ask for password again if the user enters a wrong password
• The Master Public Key dialog displays which keys belong to the wallet, and which are cosigners
• The transaction dialog will ask to save unsaved transaction received from cosigner pool, when user clicks on 'Close'
• The multisig restore dialog accepts xprv keys.

Features
• Encrypted wallet - the file that contains your groestlcoins is protected with a password. You are protected from thieves.
• Deterministic key generation - If you lose your wallet, you can recover it from its seed. You are protected from your own mistakes.
• Instant on - the client does not download the blockchain, it requests that information from a server. No delays, always up-to-date.
• Freedom and Privacy - The server does not store user accounts. You are not tied to a particular server, and the server does not need to know you.
• No scripts - Electrum-GRS does not download any script. A compromised server cannot send you arbitrary code and steal your groestlcoins.
• No single point of failure - The server code is open source, anyone can run a server.
• Transactions are signed locally - Your private keys are not shared with the server. You do not have to trust the server with your money.
• Firewall friendly - The client does not need to open a port, it simply polls the server for updates.
• Free software - Gnu GPL v3. Anyone can audit the code.
• Written in Python - The code is short, and easy to review.
• User Friendly - Support for Groestlcoin URIs, signed URIs and Groestlcoin aliases
• No Lock-In - You can export your private keys and use them in other groestlcoin clients.
• No Downtimes - Electrum-GRS servers are decentralized and redundant. Your wallet is never down.
• Proof Checking - Electrum-GRS Wallet verifies all the transactions in your history using SPV.
• Cold Storage - Keep your private keys offline, and go online with a watching-only wallet. Sign transactions from a computer taht is always offline. Broadcast them from a machine that does not have your keys.
• Multisign - Split the permission to spend your coins between several wallets using parallel BIP32 derivations and P2SH addresses ("2 of 2", "2 of 3"). Compact serialization format for unsigned or partially signed transactions, that includes the BIP32 master public key and derivation needed to sign inputs. Serialized transactions can be sent to cosigners or to cold storage using QR codes
• Cosigner Pool plugin - encrypted communication channel for multisign wallets, to send and receive partially signed transactions.
• Get noticed - Run a public Electrum-GRS server, publish your message and reach thousands of Groestlcoin users

It is appreciated if feedback of the following is provided:
1. Can you receive coins with legacy addresses? (small amounts to avoid losing them)
2. Can you receive coins with bech32 addresses? (small amounts to avoid losing them)
3. Can you receive coins with legacy testnet addresses? (small amounts to avoid losing them)
4. Can you receive coins with bech32 testnet addresses? (small amounts to avoid losing them)
5. Can you send coins with legacy addresses? (small amounts to avoid losing them)?
6. Can you send coins with bech32 addresses? (small amounts to avoid losing them)?
7. Can you send coins with legacy testnet addresses? (small amounts to avoid losing them)?
8. Can you send coins with bech32 testnet addresses? (small amounts to avoid losing them)?
9. Does the cosigner pool work when using a multi-signature wallet?
10. Does the virtual keyboard work when it asks to enter your wallet password?
11. Does it automatically detect servers under Tools - Network?
12. Are you able to sweep private keys?
13. Are you able to sign/verify messages?
14. Are you able to encrypt/decrypt messages?

This application is licensed under the GPL version 3. There is no warranty and no party shall be made liable to you for damages. If you lose coins due to this app, no compensation will be given. Use this app solely at your own risk.

The application may have unfound bugs and problems. To leave feedback: 
1. PM me
2. Email: groestlcoin@gmail.com
3. Post reports of erros in this topic.

Important:
Store your secret phrase somewhere safe!
The multi-signature and non native segwit addresses starts with a "3" and not with a "F".
Electrum-GRS creates an encrypted filename default_wallet instead of wallet.dat (like in Groestlcoin Core)
• Location Windows: Navigate to C:\Users\USER NAME\AppData\Roaming\Electrum-grs\wallets (or open windows explorer and enter %appdata%\Electrum-grs\wallets) and back up your default_wallet file by making a copy of it and moving it to a secure location.
• Location Mac: Navigate to ~/Library/Application Support/Electrum-grs/wallets and back up your default_wallet file by making a copy of it and moving it to a secure location.

You can download it using the links below and be up and running with Groestlcoin in 5 minutes.

Download the OSX wallet here: https://github.com/Groestlcoin/electrum-grs/releases/download/v3.2.3/electrum-grs-3.2.3.dmg
Note: The QR code scanner is not supported in OSX binary

Download Windows installer here: https://github.com/Groestlcoin/electrum-grs/releases/download/v3.2.3/electrum-grs-3.2.3-setup.exe
Download Windows standalone wallet here: https://github.com/Groestlcoin/electrum-grs/releases/download/v3.2.3/electrum-grs-3.2.3.exe
Download Windows portable version here: https://github.com/Groestlcoin/electrum-grs/releases/download/v3.2.3/electrum-grs-3.2.3-portable.exe
                                       

Linux wallet instructions:
sudo apt-get install python3-setuptools python3-pyqt5 python3-pip python3-dev libssl-dev
sudo pip3 install groestlcoin_hash
sudo pip3 install https://github.com/Groestlcoin/electrum-grs/releases/download/v3.2.3/Electrum-grs-3.2.3.tar.gz
electrum-grs

Source code:
GitHub Source server: https://github.com/Groestlcoin/electrumx-grs
Github Source server installer: https://github.com/Groestlcoin/electrumx-grs-installer
Github Source client: https://github.com/Groestlcoin/electrum-grs
Github Source Icons: https://github.com/Groestlcoin/electrum-grs-icons
Github Source locale: https://github.com/Groestlcoin/electrum-grs-locale

 

anything