After more script tweaking, I can generate a 20,000,000 key database in less than 10 seconds. Search time less than 2 seconds.
36 Bit Result:
This is the public key: 02b3e772216695845fa9dda419fb5daca28154d8aa59ea302f05e916635e47b9f6
Building the Binary Database
Targeting PubKey: 02b3e772216695845fa9dda419fb5daca28154d8aa59ea302f05e916635e47b9f6
Number of PubKeys: 20,000,000
Writing to file every: 20,000,000 keys
Subtract Value: 1
Space Covered: 20,000,000 / 0x1312d00
DB Generation Time: 0:00:09.604563
Scanning Randomly
Current Random Key: 0x9dd926219 Jumps Made: 291
PK Found: 42387769980
PK Found: 0x9de820a7c
Search Time: 0:00:01.815859
Total Time: 0:00:11.420422
EDIT:
If I use the BitArray option, as in original code, 20,000,000 keys generated into DB takes right at 4 seconds.
Are you using multithreading? It works only for consecutive keys?
With multithreading and 16 cores, I get 2**24 (16.77M) keys in 4.35 seconds. Non consecutive keys.
EDIT:multithread (16 cores), 2^25 keys (
33.5M) with distance = 16 (using ice.point_loop_subtraction):
5.15 secondsmultithread (16 cores), 2^25
consecutive keys (using ice.point_sequential_decrement):
1.39 secondsEDIT2:multithread (16 cores), 2^25 keys (
33.5M) with distance = 16 (using ice.point_loop_subtraction):
4.8 secondsmultithread (16 cores), 2^25
consecutive keys (using ice.point_sequential_decrement):
1.06 secondsEDIT3:multithread (16 cores), 2^25 keys (
33.5M) with distance = 16 (using ice.point_loop_subtraction):
4.67 secondsmultithread (16 cores), 2^25
consecutive keys (using ice.point_sequential_decrement):
0.89 seconds