JoinMarket-Org/joinmarket-clientserver

Create all wallets with fidelity bond support by default?

kristapsk opened this issue · 2 comments

It there a reason to ask user a question to enable or not enable fidelity bond support when creating new wallets instead of always enabling it?

Good question. A couple of things come to mind:

1/ when we were first testing it, a big topic was the slowness of (especially initial creation but maybe also normal operation) syncing of the fidelity bond wallets, and the number of future dates supported was, iirc, modified after I complained that it was too slow as is. See the parameters here:

#should be a factor of 12, the number of months in a year
TIMENUMBER_UNIT = 1
# all timelocks are 1st of the month at midnight
TIMELOCK_DAY_AND_SHORTER = (1, 0, 0, 0, 0)
TIMELOCK_EPOCH_YEAR = 2020
TIMELOCK_EPOCH_MONTH = 1 #january
MONTHS_IN_YEAR = 12
TIMELOCK_ERA_YEARS = 80
TIMENUMBER_COUNT = TIMELOCK_ERA_YEARS * MONTHS_IN_YEAR // TIMENUMBER_UNIT

This is an argument for allowing people to generate the wallets without this extra overhead.

2/ Does the recovery of wallets work transparently between the versions? I can't think of any reason why not. There is validity in the logic 'if we allow people to recover a wallet which was used with an FB, and then allow them to choose 'no' when doing recover, they might lose funds', but this is not an argument against what you're suggesting, because you're suggesting always supporting FB. It would only be a problem the other way around.

I could easily be missing or forgetting something, but the only serious point I can remember is 1/ . The scanning is fairly non-trivial, but, it should be made much faster by #1594 I think.

For recovering we could also display information about blockheight and / or date when wallet was created. If that's written down together with seed, can be entered on recovery and rescan will be faster, as less blocks to rescan will be needed.