Coding-Enthusiast / FinderOuter

Easy to use bitcoin recovery tool to fix damaged private key, mini-private key, address, BIP38 encrypted key, mnemonic (seed phrase), BIP-32 derivation path, Armory backups, recover passwords and more
MIT License
283 stars 108 forks source link

Add benchmark for time prediction #30

Open Coding-Enthusiast opened 3 years ago

Coding-Enthusiast commented 3 years ago

Users always want to know how long it would take to perform the recovery or sometimes to just know the possibility of recovering something considering how much of it is lost. Examples: #20 #17 #7
It would be useful to add a feature that would take some minimal inputs (such as mnemonic total word count and number of missing words), ran the main loop of the respective Service and reported a key/second speed with the total amount of time it would take to go through all of it.

Coding-Enthusiast commented 1 year ago

This is partially solved in 221ac3388843d59108ef3b77cbf81b0a022d7162 and 07e6a5fe36a7c003f99ca14428d85d94ce032d38
This new feature prints an estimated speed (number of permutations checked per second) and the time remaining to process all cases every couple of seconds (3 to be exact).

Although this method is accurate, the first value requires at least one round (in the outer loop) to finish which would update the Progress property used in its calculations. In cases where the total keys to check is huge, this can take a considerable amount of time before the estimated values starts showing up.
This means we still need a benchmark feature to know how many permutations can the user's computer process per second to give an initial time and speed prediction, then update it later using the exact values using the Progress property.