Skip to content

wallet_db: put 'genesis_blockhash' in DB, detect mainnet/testnet mixup. (db upgrade)#10592

Open
SomberNight wants to merge 2 commits intospesmilo:masterfrom
SomberNight:202604_testnet_mainnet_mixup2
Open

wallet_db: put 'genesis_blockhash' in DB, detect mainnet/testnet mixup. (db upgrade)#10592
SomberNight wants to merge 2 commits intospesmilo:masterfrom
SomberNight:202604_testnet_mainnet_mixup2

Conversation

@SomberNight
Copy link
Copy Markdown
Member

If the user tries to open a wallet for a different chain (mainnet vs testnet), try to show a reasonable error message.

See previous attempt at this: c13e057, which added wallet.test_addresses_sanity(). However there are many codepaths where "random" exceptions might get raised before the Wallet object is even instantiated.

See discussion there:

should we actually fix that?
if yes, it would be better to write the network type in storage

Indeed now I think we should do that. At the time I was concerned it would not help against altcoin forks if we put "mainnet" or "testnet" in the DB. Now I realise we should just put the genesis block hash in the DB instead.

If the user tries to open a wallet for a different chain (mainnet vs testnet), try to show a reasonable error message.

See previous attempt at this: spesmilo@c13e057, which added `wallet.test_addresses_sanity()`. However there are many codepaths where "random" exceptions might get raised before the Wallet object is even instantiated.
See [discussion there](spesmilo@c13e057#commitcomment-28017341):
> should we actually fix that?
> if yes, it would be better to write the network type in storage

Indeed now I think we should do that. At the time I was concerned it would not help against altcoin forks if we put "mainnet" or "testnet" in the DB. Now I realise we should just put the genesis block hash in the DB instead.

Many of the reports in spesmilo#6526 are likely due to users trying to open a mainnet wallet in testnet mode or vice-versa.

fixes spesmilo#9134
    same issue in wizard 2fa two-step wallet-creation flow
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment