Hello Community,
This running topic will track the accomplished and remaining tasks of the Electrum Wallet and Server fork for BTG.
Electrum Server
- Correct electrum header creation
- Change chunksize
- Make regtest compatible
- Fix unittests
-
Bonus
- Merge changes/fixes from upstream repository
- Commit changes to upstream repository
Electrum Client
- Block header sync with server
- Make regtest compatible
- Adopt equihash validation
- Validate header solution
-
Adopt new difficulty algorithm by Zawy
- Regtest
- Testnet
- Mainnet (New algorithm not deployed yet)
-
Fix transactions
- Regtest
- Testnet
- Mainnet
- Deal with parent->child chain hierarchy
- Release beta version
-
Test and fix hardware wallet support
- Trezor
- Ledger
- UI updates and fixes
- Test all extra features
- Check and fix unit tests (ongoing)
- 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.