ElectrumSV 1.3.0

Roger Taylor
8 min readMay 14, 2020

This article is intended to introduce the differences between ElectrumSV versions 1.2.5 and 1.3.0 to our users. The major changes will be introduced below, in order to give users an easy way to learn how they will make use of the new version.

Find our website here.
Find our issue tracker here.

We do not provide support over Twitter or any other forms of social media. Not only is it not guaranteed we will see your comments, it is a very painful way to do support that we avoid. If you need support, submit an issue on our issue tracker.

What has changed in this release?

If you don’t want to know the details, just read the titles.

Your wallet data is now stored in a database

Affects all users who need to know how to deal with their wallet files.

When ElectrumSV branched off from Bitcoin Cash and Bitcoin Core, it stored the data for a given wallet in one text file that was decrypted when it was loaded, and encrypted when it was saved. When your coin is not used that much, this isn’t that big a deal. But as your wallet accrues more and more transactions it becomes problematic.

Wallet files are now SQLite databases.

One problem was that all transactions had to be retained in memory, and if you used your wallet to write large files to the blockchain all these would bloat the wallet file and the memory usage. One proactive user who had written lots of data to the blockchain, found their Linux operating system crawled to a halt and became unusable as their transactions were added to the wallet. The database now allows loading and saving the wallets transactions as needed, and has a dedicated cache for loaded transaction data where those that are least recently used are tracked for cache removal in order to limit the memory used (and so preventing Linux from melting down).

Introduction of wallet accounts

Affects all users who need to know why wallet creation has changed.

The new wallet wizard shown when a user starts ElectrumSV.

Creating a new wallet will require an additional step of adding an account to it before you can use it. At this time, wallets are limited to one account, but one of the first tasks after the 1.3.0 release will be upgrading the UI in some way to help users manage more than one.

A newly created wallet with no acount created yet.

An accounts can be created using the “Add Account” in the top left of the wallet window. Clicking it opens the account wizard.

Once the account is created, the wallet window is updated allowing it to be used.

A newly created wallet and account.

If a wallet from earlier versions of ElectrumSV (including Electrum Core or Electrum Cash) is opened, it will be migrated from it’s text file to a database and the preexisting wallet will contain an account.

An older wallet migrated to ElectrumSV 1.3.0.

A notification center highlights important information

Affects guidance given to users on the subject of backups and seed words.

The account creation process no longer steps the user through the process of writing down their seed. Instead we leave the user to do so at their leisure, and give them direction to do so through a notification that is shown in their wallet until they deal with it.

New notification center related UI elements have been added.

Both migrated wallets, and new wallets with a new account, will get an initial notification message about backing up the account.

The message we currently display reminding users to back up their account.

Clicking on the “account’s secured data” link will take the user directly to the secured data, which will currently include their seed words, and possibly their derivation path and any passphrase they might use. This is classically what has been used for restoring account contents, but it doesn’t actually restore much of what might be valuable as Bitcoin SV wallets get more flexible and useful. You can also access that secured data at any time, using the menu for the account, accessed in the pane on the left hand side of the window.

At this time, this is the only notification. But as we add more and more features, more notifications will be added.

Extended support for label importing and exporting

Affects anyone who used the label server extension.

Electrum-based wallets restore from seed because there’s not much to them besides transactions. One exception to this is labels, which users could set on both addresses and transactions. The way they backed up labels was to have a centralised server which provides an open API to the internet where key values can be stored. Electrum-based wallets with an active label server extension upload an encrypted form of these labels to the label server.

Now that we use a database, if we receive labels from the label server and we do not know about the addresses or transactions, we do not know what to do with them. We could write an extended system keeping the label server mechanism alive, but this is time that would otherwise better be spent on Paymail or other more extensive backup solutions that go beyond labels.

In the meantime, we have two mechanisms to both help people export their labels from the label server, and to import them when they need them.

The first is the ability to export one’s label server stored labels to a JSON file.

Clicking the “Force download” button will result in a dialog for export.

The second is the ability to import labels in a safer fashion.

An overview of the consequences of importing a file of labels.

This dialog only warns of what is new, what is unchanged, what will be replaced with what, and what ElectrumSV cannot work out goes where. There is no magic, it is up to the user to take responsibility for working out how to reconcile any differences, the best we can do is warn them of the potential problems. We could write an extended system that allows intelligent user direction of the process, but this is time that would otherwise better be spent on Paymail or other more extensive backup solutions that go beyond labels.

Multi-signature account creation has changed

Affects anyone wanting to create a multi-signature account.

Select the “Multi-signature” option when creating an account.

When creating the multi-signature account for your wallet, the first step is very similar to how it was in the older versions of ElectrumSV.

Select how many signers there are, and how many signatures are needed for a transaction.

A list of co-signers is presented, and the user can fill out the required information for each co-signer in any order.

The list of co-signers to provide information for.

In the case a co-signer signs remotely in their own wallet, their extended public key should be entered here in their entry. The owner of the wallet can if necessary use the “key” button to provide or create signing details, so they can participate in the wallet. Or all cosigners can be remote, and the owner of the wallet can watch the payments it makes or receives. Once all cosigners have valid information, the “Finish” button will be enabled and used to finalise the account.

Accounts will default to using “bare multi-signature” style transactions. But if the user wishes to, they can change this to other forms like “accumulator multi-signature” in the Preferences window. In most cases, it won’t make any real difference as long as you’re not using “P2SH multi-signature” which is not really functional after the Genesis upgrade where the protocol changed and payments can no longer be made in this form.

Limited amount of initial documentation

Affects all users who might want some information.

When the wallet window has the focus on-screen, and the operating system’s standard keys for showing documentation (F1 on Windows), the ElectrumSV in-wallet help system should open. It can also be manually opened by using the “Help” menu, followed by the “Documentation” sub-menu.

There are only a few documents present, and these will be added to and fleshed out as available development time and opportunity arises.

Final notes

The first task on the roadmap after this release is changing the user interface so it can handle multiple accounts in the same wallet. After that, we will work towards users being able to add Paymail accounts as long as they have a hosting service they can use that adheres to both our protocol and requirements.

What changed before this release?

There were a range of beta releases made on the way to ElectrumSV 1.3.0. You can read more detail about bug fixes and changes, included in these.

--

--