BTG Electrum Wallet Development - Fork Progress


#1

Hello Community,

This running topic will track the accomplished and remaining tasks of the Electrum Wallet and Server fork for BTG.

Electrum Server

  • :ballot_box_with_check: Correct electrum header creation
  • :ballot_box_with_check: Change chunksize
  • :ballot_box_with_check: Make regtest compatible
  • :ballot_box_with_check: Fix unittests
  • Bonus
    • :ballot_box_with_check: Merge changes/fixes from upstream repository
    • :ballot_box_with_check: Commit changes to upstream repository

Electrum Client

  • :ballot_box_with_check: Block header sync with server
  • :ballot_box_with_check: Make regtest compatible
  • :ballot_box_with_check: Adopt equihash validation
  • :ballot_box_with_check: Validate header solution
  • :ballot_box_with_check: Adopt new difficulty algorithm by Zawy
    • :ballot_box_with_check: Regtest
    • :ballot_box_with_check: Testnet
    • :ballot_box_with_check: Mainnet (New algorithm not deployed yet)
  • :ballot_box_with_check: Fix transactions
    • :ballot_box_with_check: Regtest
    • :ballot_box_with_check: Testnet
    • :ballot_box_with_check: Mainnet
  • :hourglass_flowing_sand: Deal with parent->child chain hierarchy
  • :ballot_box_with_check: Release beta version
  • :o: Test and fix hardware wallet support
    • :ballot_box_with_check: Trezor
    • :hourglass_flowing_sand: Ledger
  • :hourglass_flowing_sand: UI updates and fixes
  • :o: Test all extra features
  • :o: Check and fix unit tests (ongoing)
  • :o: Release final version
  • Bonus
    • Implement scheduled automatic-update of blockchain_headers file
    • Merge changes/fixes from the upstream repository

Notes:

Adopting new header format required more work than initially anticipated; BTG version must handle different header sizes for pre-fork and post-fork, but much Electrum header-related info was hard-coded in many places; this required more rework in more code and therefore more debugging and testing.

The same applies to the code for chunked header requests. The code parts/constants were tied to the BTC-specific difficulty algorithm and are used in different places with different meanings. This slowed progress during the early stages, but that’s largely behind us, now.


#2

Excellent. You are best!:handshake:


#3

Oops!!

easy to see!

Thank you!!!


#4

Sweet!!! Will this wallet be a desktop version or android or both??


#5

It’s both but we currently focus on the desktop version.


#6

Update on initial sync (https://github.com/BTCGPU/electrum/issues/31):

Initial bootstrap using a compressed blockchain_headers download has been implemented (PR pending). This will get you up and running pretty quickly.

We also implemented a fallback to checkpoints (Pre-Fork headers only) and in case this fails we will fallback to sync from Genesis block (very slow).

It would amazing to setup using checkpoints only (would be the fastest method) but that’s simply not possible with BTG. Unlike BTC, our difficulty changes with every block. This means that our checkpoints would need to include every block header since the fork. This makes checkpoints pretty useless. Therefore we decided to provide a compressed blockchain_headers file for download which we will update periodically (interval not decided yet).


Update on Hardware wallets

Trezor

Everything is working fine so far. We tested all desktop platforms with all address types and didn’t encounter any problem.

Test on Linux with transfer from/to all address types

Test on Windows

Test on OSX

Ledger

Currently we are testing Ledger and will give an update as soon as we’re done. Stay tuned.


#7

Looking great!! :call_me_hand:t4:


#8

I’d also like to thank Wilson & the team for this:

image

Progress is good!


#9

Hi folks,

it’s been a while since the last update. Sorry for that.

We worked hard behind the scenes to get ElectrumG ready for it’s full release including HW Wallets, improved syncing, bugfixes, stabilizing and so on.
But sadly due to the 51% attack on multiple coins, including BTG, we had to switch priorities.

Priority number 1 is, has always been and will always be: Decentralization!

I guess you already read about the upcoming network upgrade. Not an easy task and everyone is currently working day and night to make all needed changes to every bit of software (including ElectrumG) of the whole ecosystem. And it’s a lot :sweat:

This means that with the upcoming network upgrade we will release a new version of ElectrumG too, including some improvements and partial or even full HW wallet support. Depending on the time we have to work on it.

We will keep you updated, so stay tuned!


#10

please tell us fork progress days .


#11

can I replenish my deposit on the stock exchange now?
I am a miner, I have the extracted coin for supernova … if they stay on my account at the supernova pool, after hardfork coins are burned on the pool of prey or for them you do not have to worry?


#12

at the moment the bitrex exchange has suspended withdrawal and replenishment of funds, they are waiting for you to make decisions, please tell me when will there be a hard plug of the gold network?
I can not withdraw funds from the supernova mining to the bitrex exchange


#13

Coins sitting in any wallet - whether at Suprnova, an exchange, or a private wallet - are at no risk during an upgrade or fork.

The devs continue to work hard, and we will provide a date as soon as we can possibly provide a date.

We need to ensure everything is tested and working on testnet before making the software available for all the services, and then we need to give at least a week of notice for all our partners to deploy the new software.

The original target was end of June… we are trying to advance it as much as possible, but we can’t yet say when that will be.