3rdIteration / btcrecover

BTCRecover is an open source wallet password and seed recovery tool. For seed based recovery, this is primarily useful in situations where you have lost/forgotten parts of your mnemonic, or have made an error transcribing it. (So you are either seeing an empty wallet or gettign an error that your seed is invalid) For wallet password or passphrase recovery, it is primarily useful if you have a reasonable idea about what your password might be.
https://btcrecover.readthedocs.io/
GNU General Public License v2.0
589 stars 185 forks source link

OpenCL very slow or stuck (seedrecovery.py) #256

Closed chiva closed 3 years ago

chiva commented 3 years ago

Hello,

I've successfully used seedrecovery to test some cases through the command line by using the CPU solver, but when I wan't to try the graphics card through OpenCL, it stops working.

I'm currently using btcrecover from master (f5065c7efe999fe3616c43a4cc271141a87a4305), as already found that 1.6.0 had some issue with OpenCL which has been solved. Also, all required libraries and packages for btcrecover and OpenCL compatibility have been installed.

All tests are passing, including OpenCL ones:

Show tests results

``` Testing seedrecover 1.11.0-CryptoGuide, btcrecover 1.11.0-Cryptoguide on Python 3.9.1 64-bit, 21-bit unicodes, 64-bit ints ** Testing in Unicode character mode ** btcrecover.test.test_passwords Test01Basics . test_alternate . test_alternate_unicode . test_chunksize_divisible . test_chunksize_indivisible . test_chunksize_modified . test_comments . test_count . test_count_one_chunk . test_count_two_chunks . test_count_zero . test_empty_file . test_mutex . test_one_char_file . test_only_yield_count . test_only_yield_count_all . test_require . test_token_counts_max_2 . test_token_counts_min_0 . test_token_counts_min_2 . test_token_counts_min_max_2 . test_z_all Test02Anchors . test_begin . test_begin_0len . test_begin_and_end . test_end . test_end_0len . test_middle . test_middle_0len . test_middle_invalid_begin . test_middle_invalid_range . test_middle_old . test_not_middle . test_positional . test_positional_0len . test_positional_invalid . test_positional_old . test_relative_one . test_relative_same . test_relative_two . test_tokens_duplicate Test03WildCards . test_backreference . test_backreference_bounds . test_backreference_length . test_backreference_map . test_backreference_map_bounds . test_backreference_map_length . test_backreference_map_missing . test_backreference_map_pos . test_backreference_map_pos_length . test_backreference_pos . test_backreference_pos_length . test_basics_1 . test_basics_2 . test_basics_3 . test_basics_4 . test_case_insensitive_1 . test_case_insensitive_2 . test_case_lower . test_case_upper . test_contracting_1 . test_contracting_2 . test_contracting_left . test_contracting_multiple . test_contracting_right . test_custom . test_custom_insensitive_1 . test_custom_insensitive_2 . test_custom_upper . test_invalid_length_1 . test_invalid_length_2 . test_invalid_nocust . test_invalid_nocust_cap . test_invalid_notype . test_length_2 . test_length_invalid_range . test_length_range . test_multiple . test_noset . test_range_1 . test_range_2 . test_range_insensitive . test_range_invalid . test_set . test_set_insensitive Test04Typos . test_capslock . test_capslock_min_1 . test_capslock_min_2 . test_capslock_nocaps . test_capslock_unicode . test_case . test_case_max . test_closecase . test_closecase_max . test_delete . test_delete_max . test_insert . test_insert_adjacent_1 . test_insert_adjacent_2 . test_insert_invalid . test_insert_max . test_insert_min_1 . test_insert_min_2 . test_insert_min_5 . test_insert_wildcard . test_insert_wildcard_adjacent . test_map . test_map_max . test_repeat . test_repeat_max . test_repeat_min_1 . test_repeat_min_2 . test_repeat_min_4 . test_replace . test_replace_invalid . test_replace_max . test_replace_wildcard . test_swap . test_swap_max . test_swap_min_1 . test_swap_min_2 . test_swap_min_3 . test_z_all . test_z_all_max . test_z_min_typos_1 . test_z_min_typos_2 Test05CommandLine . test_delimiter_tokenlist . test_delimiter_typosmap . test_embedded_tokenlist_option . test_embedded_tokenlist_option_invalid . test_embedded_tokenlist_option_unicode . test_embedded_tokenlist_overwridden_option . test_exclude . test_exclude_nodupchecks . test_exclude_noeta . test_exclude_noeta_nodupchecks . test_max_eta . test_max_eta_ok . test_max_eta_skip . test_max_eta_skip_ok . test_no_dupchecks_1 . test_no_dupchecks_2 . test_no_dupchecks_3 . test_passwordlist_no_wildcards . test_regex_never . test_regex_only . test_skip . test_skip_all_exact . test_skip_all_pastend_1 . test_skip_all_pastend_2 . test_skip_empty_1 . test_skip_empty_2 . test_skip_end2end . test_skip_end2end_all_exact . test_skip_end2end_all_noeta . test_skip_end2end_all_pastend . test_skip_large_1 . test_skip_large_1_all_exact . test_skip_large_1_all_pastend . test_skip_large_2 . test_skip_large_2_all_exact . test_skip_large_2_all_pastend . test_unicode . test_worker_evensplit . test_worker_unevensplit Test06AutosaveRestore . test_autosave . test_autosave_restore . test_restore . test_restore_changed_args . test_restore_changed_data_extract . test_restore_changed_tokenlist . test_restore_truncated Test07WalletDecryption . test_androidpin . test_androidpin_pp . test_androidpin_unencrypted . test_bitcoincore . test_bitcoincore_no_bsddb . test_bitcoincore_pp . test_bitcoincore_pywallet . test_bitcoinj . test_bitcoinj_multibit . test_bitcoinj_pp . test_bither . test_bither_hdonly . test_bither_hdonly_pp . test_bither_pp . test_blockchain_github_v1_1 . test_blockchain_github_v1_2 . test_blockchain_github_v1_3 . test_blockchain_github_v1_3_secondpass . test_blockchain_github_v2_1 . test_blockchain_github_v2_2 . test_blockchain_github_v3_1 . test_blockchain_github_v3_2 . test_blockchain_invalid . test_blockchain_second_OpenCL_Brute . test_blockchain_secondpass_unencrypted . test_blockchain_secondpass_unencrypted_pp . test_blockchain_secondpass_v0 . test_blockchain_secondpass_v0_pp . test_blockchain_secondpass_v2 . test_blockchain_secondpass_v2_pp . test_blockchain_v0 . test_blockchain_v0_Jan2014 . test_blockchain_v0_pp . test_blockchain_v2 . test_blockchain_v2_pp . test_blockchain_v3 . test_blockchain_v3_Jan2021 . test_blockchain_v3_pp . test_blockchain_v4 . test_coinomi_android . test_coinomi_desktop . test_dogechain_info_cpu . test_dogecoin_wallet_android_backup . test_dogecoincore . test_electrum . test_electrum2 . test_electrum27 . test_electrum27_loosekey . test_electrum27_multisig . test_electrum27_pp . test_electrum27_updated_to_4 . test_electrum27_upgradedfrom_electrum1 . test_electrum28 . test_electrum28_100kbwallet_OpenCL_Brute . test_electrum28_OpenCL_Brute . test_electrum28_pp . test_electrum2_loosekey . test_electrum2_upgradedfrom_electrum1 . test_electrum41 . test_electrum41_OpenCL_Brute . test_electrum_100kbwallet . test_electrum_pp . test_eth_keystore_pbkdf2 . test_eth_keystore_scrypt . test_invalid_wallet . test_litecoincore . test_litecoincore_no_bsddb . test_litecoincore_pp . test_metamask_JSON_firefox_cpu . test_metamask_binancechainwallet_leveldb_cpu . test_metamask_chrome_leveldb_OpenCL_Brute . test_metamask_leveldb_chrome_cpu . test_metamask_ronin_leveldb_cpu . test_msigna . test_msigna_pp . test_multibit . test_multibit_pp . test_multibithd . test_multibithd_pp . test_multibithd_v0_5_0 . test_multidoge . test_tenupcore Test08BIP39Passwords . test_Electrum2_mpk_opencl_brute test_address_BCH2021-10-03 09:16:21 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/44'/145'/0'/0/2 . test_address_BCH test_address_Dash2021-10-03 09:16:22 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/44'/5'/0'/0/2 . test_address_Dash test_address_DigiByte2021-10-03 09:16:23 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/44'/20'/0'/0/2 . test_address_DigiByte test_address_Dogecoin2021-10-03 09:16:24 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/44'/3'/0'/0/2 . test_address_Dogecoin test_address_Electrum2_legacy2021-10-03 09:16:25 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/0/2 . test_address_Electrum2_legacy test_address_Electrum2_segwit2021-10-03 09:16:26 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/0'/0/2 . test_address_Electrum2_segwit s test_address_Groestlecoin -- requires groestlcoin_hash test_address_Litecoin2021-10-03 09:16:26 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/44'/2'/0'/0/2 . test_address_Litecoin test_address_Monacoin2021-10-03 09:16:27 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/44'/22'/0'/0/2 . test_address_Monacoin test_address_Ripple2021-10-03 09:16:28 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/44'/144'/0'/0/2 . test_address_Ripple test_address_Vertcoin2021-10-03 09:16:29 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/44'/28'/0'/0/2 . test_address_Vertcoin test_address_Zilliqa2021-10-03 09:16:30 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/44'/313'/0'/0/0 . test_address_Zilliqa test_address_bitcoin_bip442021-10-03 09:16:31 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/44'/0'/0'/0/4 . test_address_bitcoin_bip44 test_address_bitcoin_bip492021-10-03 09:16:32 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/49'/0'/0'/0/4 . test_address_bitcoin_bip49 test_address_bitcoin_bip842021-10-03 09:16:33 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/84'/0'/0'/0/4 . test_address_bitcoin_bip84 test_address_cardano_ledger2021-10-03 09:16:34 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/1852'/1815'/0' . test_address_cardano_ledger . test_address_cardano_ledger_opencl test_address_cardano_trezor_12word2021-10-03 09:16:44 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/1852'/1815'/0' . test_address_cardano_trezor_12word . test_address_cardano_trezor_12word_opencl test_address_ethereum2021-10-03 09:16:52 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/44'/60'/0'/0/2 . test_address_ethereum . test_bip39_mpk . test_bip39_mpk_opencl_brute . test_bip39_pp . test_bip39_unicode_mnemonic . test_bip39_unicode_password Test08KeyDecryption . test_androidknc . test_androidknc_pp . test_androidknc_unicode . test_androidknc_unicode_pp . test_androidwallet . test_androidwallet_pp . test_androidwallet_unicode . test_androidwallet_unicode_pp . test_bitcoincore . test_bitcoincore_OpenCL_Brute . test_bitcoincore_OpenCL_JTR . test_bitcoincore_OpenCL_JTR_low_interrupt_rate s test_bitcoincore_OpenCL_JTR_sli -- requires two identical OpenCL devices . test_bitcoincore_OpenCL_JTR_unicode . test_bitcoincore_pp . test_bitcoincore_unicode . test_bitcoincore_unicode_pp . test_bitcoinj . test_bitcoinj_pp . test_bitcoinj_unicode . test_bitcoinj_unicode_pp . test_bither . test_bither_pp . test_bither_unicode . test_bither_unicode_pp . test_blockchain_main_OpenCL_Brute . test_blockchain_secondpass . test_blockchain_secondpass_no_iter_count . test_blockchain_secondpass_no_iter_count_pp . test_blockchain_secondpass_pp . test_blockchain_secondpass_unicode . test_blockchain_secondpass_unicode_pp . test_blockchain_v0 . test_blockchain_v0_pp . test_blockchain_v0_unicode . test_blockchain_v0_unicode_pp . test_blockchain_v2 . test_blockchain_v2_pp . test_blockchain_v3 . test_coinomi . test_dogechain_info_OpenCL_Brute . test_electrum . test_electrum2 . test_electrum2_loosekey . test_electrum2_pp . test_electrum2_unicode . test_electrum2_unicode_pp . test_electrum_pp . test_electrum_unicode . test_electrum_unicode_pp . test_invalid_crc . test_metamask_binancechainwallet . test_metamask_chrome . test_metamask_firefox . test_metamask_ronin . test_msigna . test_msigna_pp . test_msigna_unicode . test_msigna_unicode_pp . test_multibit . test_multibit_pp . test_multibit_unicode . test_multibit_unicode_pp . test_multibithd . test_multibithd_pp . test_multibithd_unicode . test_multibithd_unicode_pp . test_multibithd_v0_5_0 . test_multibithd_v0_5_0_pp . test_multidoge . test_multidoge_pp . test_multidoge_unicode . test_multidoge_unicode_pp Test09EndToEnd . test_end_to_end . test_restore . test_skip Test10YoroiWalletDecryption . test_yoroi_cpu . test_yoroi_opencl_brute Test11BIP38WalletDecryption . test_bip38_bitcoin_cpu . test_bip38_bitcoin_opencl_brute . test_bip38_dash_cpu . test_bip38_dash_opencl_brute . test_bip38_litecoin_cpu . test_bip38_litecoin_opencl_brute Test12BrainwalletDecryption . test_brainwallet_bitcoin_p2pkh_compressed_cpu . test_brainwallet_bitcoin_p2pkh_compressed_opencl . test_brainwallet_bitcoin_p2pkh_uncompressed_cpu . test_brainwallet_bitcoin_p2pkh_uncompressed_opencl . test_brainwallet_bitcoin_p2sh_compressed_cpu . test_brainwallet_bitcoin_p2sh_compressed_opencl . test_brainwallet_bitcoin_p2wpkh_compressed_cpu . test_brainwallet_bitcoin_p2wpkh_compressed_opencl . test_brainwallet_dash_p2pkh_compressed_cpu . test_brainwallet_dash_p2pkh_compressed_opencl . test_brainwallet_dash_p2pkh_uncompressed_cpu . test_brainwallet_dash_p2pkh_uncompressed_opencl . test_brainwallet_litecoin_p2pkh_uncompressed_cpu . test_brainwallet_litecoin_p2pkh_uncompressed_opencl . test_brainwallet_warpwallet_bitcoin_cpu . test_brainwallet_warpwallet_bitcoin_opencl . test_brainwallet_warpwallet_litecoin_cpu . test_brainwallet_warpwallet_litecoin_opencl Skipped btcrecover.test.test_passwords.Test08BIP39Passwords.test_address_Groestlecoin - requires groestlcoin_hash Skipped btcrecover.test.test_passwords.Test08KeyDecryption.test_bitcoincore_OpenCL_JTR_sli - requires two identical OpenCL devices Ran 381 tests in 230.335s using 12 processes OK (passes=379, skips=2) ** Testing seed recovery ** btcrecover.test.test_seeds TestAddressSet . test_add . test_collision . test_collision_fail . test_false_positives . test_file . test_file_update . test_null . test_pickle_mmap TestRecoveryFromAddress . test_BIP39_BTC_OpenCL_Brute . test_BIP39_Eth_OpenCL_Brute . test_Electrum_OpenCL_Brute . test_bip44_addr_BCH_CashAddr . test_bip44_addr_BCH_CashAddr_NoPrefix . test_bip44_addr_BTC . test_bip44_addr_BTC_defaultderivationpaths . test_bip44_addr_BTC_multi_account_derivationpaths . test_bip44_addr_BTC_multi_coin_derivationpaths . test_bip44_addr_BTC_passphraseList . test_bip44_addr_DASH . test_bip44_addr_DGB . test_bip44_addr_DOGE s test_bip44_addr_GRS -- requires groestlcoin_hash . test_bip44_addr_LTC . test_bip44_addr_MONA . test_bip44_addr_VTC . test_bip44_addr_XRP . test_bip44_addr_cs . test_bip44_addr_cs_firstfour . test_bip44_addr_en . test_bip44_addr_en_firstfour . test_bip44_addr_fr . test_bip44_addr_fr_firstfour . test_bip44_addr_it . test_bip44_addr_it_firstfour . test_bip44_addr_ja . test_bip44_addr_ko . test_bip44_addr_pt . test_bip44_addr_pt_firstfour . test_bip44_addr_zh_hans . test_bip49_addr_BTC . test_bip49_addr_BTC_defaultderivationpaths . test_bip49_addr_BTC_force_start_index . test_bip49_addr_DGB s test_bip49_addr_GRS -- requires groestlcoin_hash . test_bip49_addr_LTC . test_bip49_addr_MONA . test_bip49_addr_VTC . test_bip84_addr_BTC . test_bip84_addr_BTC_defaultderivationpaths . test_bip84_addr_DGB s test_bip84_addr_GRS -- requires groestlcoin_hash . test_bip84_addr_LTC . test_bip84_addr_MONA . test_bip84_addr_VTC . test_bitcoinj_addr_legacy_BTC . test_cardano_icarus_18word_baseaddress_opencl . test_cardano_icarus_24word_baseaddress_opencl . test_cardano_icarus_baseaddress . test_cardano_icarus_stakeaddress . test_cardano_ledger_baseaddress . test_cardano_ledger_baseaddress_opencl . test_cardano_trezor_12word_baseaddress . test_cardano_trezor_12word_baseaddress_opencl . test_cardano_trezor_24word_baseaddress . test_electrum1_addr_legacy_BTC . test_electrum27_addr_legacy_BTC . test_electrum27_addr_legacy_LTC . test_electrum27_addr_segwit_BTC . test_electrum27_addr_segwit_LTC . test_electrum27_electroncash_cashaddr_BCH . test_electrum2_addr_legacy_BTC . test_ethereum_addr . test_ethereum_addr_padding_bug . test_p2sh_addr_BTC_forceP2SH . test_pathfile_BCH . test_pathfile_BCH_Unsplit . test_pathfile_BTC_BIP44 . test_pathfile_BTC_BIP49 . test_pathfile_BTC_BIP84 . test_pathfile_BTC_BRD . test_pathfile_BTC_Electrum_Legacy . test_pathfile_BTC_Electrum_Segwit . test_pathfile_Eth_Coinomi . test_pathfile_Eth_Default . test_pathfile_LTC_Atomic . test_pathfile_LTC_BIP44 . test_pathfile_LTC_BIP49 . test_pathfile_LTC_BIP84 . test_pathfile_bip44_addr_DASH . test_pathfile_bip44_addr_DOGE s test_pathfile_bip44_addr_GRS -- requires groestlcoin_hash . test_pathfile_bip44_addr_MONA . test_pathfile_bip44_addr_VTC . test_pathfile_bip49_addr_DGB s test_pathfile_bip49_addr_GRS -- requires groestlcoin_hash . test_pathfile_bip49_addr_MONA . test_pathfile_bip49_addr_VTC . test_pathfile_bip84_addr_DGB s test_pathfile_bip84_addr_GRS -- requires groestlcoin_hash . test_pathfile_bip84_addr_MONA . test_pathfile_bip84_addr_VTC . test_walletbch . test_walletbch_BCH_Unsplit . test_walletbch_addr_bip44_CashAddr . test_walletbch_addr_bip44_CashAddr_NoPrefix . test_walletdash_addr_bip44 . test_walletdigibyte_addr_bip44 . test_walletdigibyte_addr_bip49 . test_walletdigibyte_addr_bip84 . test_walletdogecoin_addr_bip44 s test_walletgroestlecoin_addr_bip44 -- requires groestlcoin_hash s test_walletgroestlecoin_addr_bip49 -- requires groestlcoin_hash s test_walletgroestlecoin_addr_bip84 -- requires groestlcoin_hash . test_walletlitecoin_addr_atomic . test_walletlitecoin_addr_bip44 . test_walletlitecoin_addr_bip49 . test_walletlitecoin_addr_bip84 . test_walletmonacoin_addr_bip44 . test_walletmonacoin_addr_bip49 . test_walletmonacoin_addr_bip84 . test_walletripple_bip44 . test_walletvertcoin_addr_bip44 . test_walletvertcoin_addr_bip49 . test_walletvertcoin_addr_bip84 . test_walletzilliqa_addr_bech32 . test_walletzilliqa_addr_legacy TestRecoveryFromAddressDB . test_addressdb_bip44_bch . test_addressdb_bip44_bch_passphrase . test_addressdb_bip44_btc . test_addressdb_bip44_dgb . test_addressdb_bip44_ltc . test_addressdb_bip44_mona . test_addressdb_bip44_vtc . test_addressdb_bip49_btc . test_addressdb_bip49_dgb . test_addressdb_bip49_ltc . test_addressdb_bip49_mona . test_addressdb_bip49_vtc . test_addressdb_bip84_btc . test_addressdb_bip84_dgb . test_addressdb_bip84_ltc . test_addressdb_bip84_mona . test_addressdb_bip84_vtc TestRecoveryFromMPK . test_bip39_xpub . test_bip39_ypub . test_bip39_zpub . test_bip44_firstfour . test_bip44_ja . test_bip44_pass . test_bip44_pass_unicode . test_bitcoinj_xpub_legacy . test_electrum1_xpub_legacy . test_electrum27_xpub_legacy . test_electrum28_xpub_pass_legacy . test_electrum28_xpub_pass_segwit . test_electrum2_xpub_legacy . test_electrum2_xpub_legacy_ja . test_electrum2_xpub_pass_legacy . test_electrum2_xpub_pass_normalize_legacy . test_electrum2_xpub_pass_wide_legacy s test_groestlcoinj_xpub_legacy -- requires groestlcoin_hash s test_grs_bip39_xpub -- requires groestlcoin_hash s test_grs_bip39_ypub -- requires groestlcoin_hash s test_grs_bip39_zpub -- requires groestlcoin_hash TestRecoveryFromWallet . test_electrum1_legacy . test_electrum27_legacy . test_electrum27_upgradedfrom_electrum1_legacy . test_electrum2_legacy . test_electrum2_upgradedfrom_electrum1_legacy TestRecoverySeedListsGenerators . test_seedlist_allpositional . test_seedlist_pylist . test_seedlist_pytupe . test_seedlist_raw . test_tokenlist TestSeedTypos . test_delete . test_insert . test_replace . test_replaceclose . test_replaceclose_firstfour . test_replacewrong . test_swap Skipped btcrecover.test.test_seeds.TestRecoveryFromAddress.test_bip44_addr_GRS - requires groestlcoin_hash Skipped btcrecover.test.test_seeds.TestRecoveryFromAddress.test_bip49_addr_GRS - requires groestlcoin_hash Skipped btcrecover.test.test_seeds.TestRecoveryFromAddress.test_bip84_addr_GRS - requires groestlcoin_hash Skipped btcrecover.test.test_seeds.TestRecoveryFromAddress.test_pathfile_bip44_addr_GRS - requires groestlcoin_hash Skipped btcrecover.test.test_seeds.TestRecoveryFromAddress.test_pathfile_bip49_addr_GRS - requires groestlcoin_hash Skipped btcrecover.test.test_seeds.TestRecoveryFromAddress.test_pathfile_bip84_addr_GRS - requires groestlcoin_hash Skipped btcrecover.test.test_seeds.TestRecoveryFromAddress.test_walletgroestlecoin_addr_bip44 - requires groestlcoin_hash Skipped btcrecover.test.test_seeds.TestRecoveryFromAddress.test_walletgroestlecoin_addr_bip49 - requires groestlcoin_hash Skipped btcrecover.test.test_seeds.TestRecoveryFromAddress.test_walletgroestlecoin_addr_bip84 - requires groestlcoin_hash Skipped btcrecover.test.test_seeds.TestRecoveryFromMPK.test_groestlcoinj_xpub_legacy - requires groestlcoin_hash Skipped btcrecover.test.test_seeds.TestRecoveryFromMPK.test_grs_bip39_xpub - requires groestlcoin_hash Skipped btcrecover.test.test_seeds.TestRecoveryFromMPK.test_grs_bip39_ypub - requires groestlcoin_hash Skipped btcrecover.test.test_seeds.TestRecoveryFromMPK.test_grs_bip39_zpub - requires groestlcoin_hash Ran 181 tests in 63.217s using 12 processes OK (passes=168, skips=13) *** Full Results *** Ran 562 tests in 293.625s using 12 processes OK (passes=547, skips=15) Press Enter to exit ... ```

Trying CPU

The command I'm using to solve it throught the CPU:

python .\seedrecover.py --dsw --no-dupchecks --mnemonic-length 12 --language EN --wallet-type ethereum --addr-limit 1 --addrs 0xZZZZZZZZZZZZZZZZZZZ --tokenlist .\seed.txt --bip32-path "m/44'/60'/0'/0"

Which finds the solution without problem, and keeps showing the progress constantly.

Starting seedrecover 1.11.0-CryptoGuide, btcrecover 1.11.0-Cryptoguide on Python 3.9.1 64-bit, 21-bit unicodes, 64-bit ints
Using the 'en' wordlist.
2021-10-02 14:45:41 : Phase 1/1: up to 12 mistakes, 12 of which can be an entirely different seed word.
Wallet Type: btcrseed.WalletEthereum
Counting passwords ...
Done
2021-10-02 14:53:41 : Using 12 worker threads
2021-10-02 16:34:08 : ***MATCHING SEED FOUND***, Matched on Address at derivation path: m/44'/60'/0'/0/0
298188020 of 479001600 [###################------------] 1:40:18, ETA:  1:00:49
2021-10-02 16:34:08 : Search Complete

Trying OpenCL

But when I switch to the graphics card, it doesn't work. It starts the threads correctly, and a compiler warning is showing, which I can't tell if that could affect the execution. After starting it doesn't update the progress done, maybe only after 15 minutes or so, but the speed is maaaany orders of magnitude slower than with the CPU. Also, when checking at the task manager, CPU and GPU load are at 0%.

In this particular run, it only updated the progress after 26 minutes, and after checking again two hours later it was still at the same point, so it seems that it gets stuck for wathever reason.

python .\seedrecover.py --dsw --no-dupchecks --mnemonic-length 12 --language EN --wallet-type ethereum --addr-limit 1 --addrs 0xZZZZZZZZZZZZZZZZZZZ --bip32-path "m/44'/60'/0'/0" --enable-opencl
Starting seedrecover 1.11.0-CryptoGuide, btcrecover 1.11.0-Cryptoguide on Python 3.9.1 64-bit, 21-bit unicodes, 64-bit ints
Using the 'en' wordlist.
OpenCL: Auto Selecting Best Platform
2021-10-02 21:57:20 : Phase 1/4: up to 2 mistakes, excluding entirely different seed words.

OpenCL: Available Platforms
Platform 0 - Name AMD Accelerated Parallel Processing, Vendor Advanced Micro Devices, Inc.

OpenCL: Auto Selecting Best Platform
OpenCL: Using Platform: 0
OpenCL: Using Work Group Size:  12800

Wallet Type: btcrseed.WalletEthereum
2021-10-02 21:57:20 : Using 12 worker threads
C:\Users\myuser\miniconda3\lib\site-packages\pyopencl\__init__.py:264: CompilerWarning: Built kernel retrieved from cache. Original from-source build had warnings:
Build on <pyopencl.Device 'Ellesmere' on 'AMD Accelerated Parallel Processing' at 0x1885789db90> succeeded, but said:

C:\Users\myuser\AppData\Local\Temp\\OCL948T3.cl:628:20: warning: initializing '__global unsigned long *' with an expression of type 'unsigned long const __global[4]' discards qualifiers
    __global word *pwdBuffer = pwdbuffer_arg[0].buffer;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

  warn(text, CompilerWarning)
C:\Users\myuser\miniconda3\lib\site-packages\pyopencl\__init__.py:264: CompilerWarning: Built kernel retrieved from cache. Original from-source build had warnings:
Build on <pyopencl.Device 'Ellesmere' on 'AMD Accelerated Parallel Processing' at 0x18141ffa530> succeeded, but said:

C:\Users\myuser\AppData\Local\Temp\\OCL948T3.cl:628:20: warning: initializing '__global unsigned long *' with an expression of type 'unsigned long const __global[4]' discards qualifiers
    __global word *pwdBuffer = pwdbuffer_arg[0].buffer;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

  warn(text, CompilerWarning)
C:\Users\myuser\miniconda3\lib\site-packages\pyopencl\__init__.py:264: CompilerWarning: Built kernel retrieved from cache. Original from-source build had warnings:
Build on <pyopencl.Device 'Ellesmere' on 'AMD Accelerated Parallel Processing' at 0x25c9da67590> succeeded, but said:

C:\Users\myuser\AppData\Local\Temp\\OCL948T3.cl:628:20: warning: initializing '__global unsigned long *' with an expression of type 'unsigned long const __global[4]' discards qualifiers
    __global word *pwdBuffer = pwdbuffer_arg[0].buffer;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

  warn(text, CompilerWarning)
C:\Users\myuser\miniconda3\lib\site-packages\pyopencl\__init__.py:264: CompilerWarning: Built kernel retrieved from cache. Original from-source build had warnings:
Build on <pyopencl.Device 'Ellesmere' on 'AMD Accelerated Parallel Processing' at 0x24dfdcad110> succeeded, but said:

C:\Users\myuser\AppData\Local\Temp\\OCL948T3.cl:628:20: warning: initializing '__global unsigned long *' with an expression of type 'unsigned long const __global[4]' discards qualifiers
    __global word *pwdBuffer = pwdbuffer_arg[0].buffer;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

  warn(text, CompilerWarning)
C:\Users\myuser\miniconda3\lib\site-packages\pyopencl\__init__.py:264: CompilerWarning: Built kernel retrieved from cache. Original from-source build had warnings:
Build on <pyopencl.Device 'Ellesmere' on 'AMD Accelerated Parallel Processing' at 0x23216a9c650> succeeded, but said:

C:\Users\myuser\AppData\Local\Temp\\OCL948T3.cl:628:20: warning: initializing '__global unsigned long *' with an expression of type 'unsigned long const __global[4]' discards qualifiers
    __global word *pwdBuffer = pwdbuffer_arg[0].buffer;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

  warn(text, CompilerWarning)
C:\Users\myuser\miniconda3\lib\site-packages\pyopencl\__init__.py:264: CompilerWarning: Built kernel retrieved from cache. Original from-source build had warnings:
Build on <pyopencl.Device 'Ellesmere' on 'AMD Accelerated Parallel Processing' at 0x18f76d31370> succeeded, but said:

C:\Users\myuser\AppData\Local\Temp\\OCL948T3.cl:628:20: warning: initializing '__global unsigned long *' with an expression of type 'unsigned long const __global[4]' discards qualifiers
    __global word *pwdBuffer = pwdbuffer_arg[0].buffer;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

  warn(text, CompilerWarning)
C:\Users\myuser\miniconda3\lib\site-packages\pyopencl\__init__.py:264: CompilerWarning: Built kernel retrieved from cache. Original from-source build had warnings:
Build on <pyopencl.Device 'Ellesmere' on 'AMD Accelerated Parallel Processing' at 0x25444d729a0> succeeded, but said:

C:\Users\myuser\AppData\Local\Temp\\OCL948T3.cl:628:20: warning: initializing '__global unsigned long *' with an expression of type 'unsigned long const __global[4]' discards qualifiers
    __global word *pwdBuffer = pwdbuffer_arg[0].buffer;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

  warn(text, CompilerWarning)
C:\Users\myuser\miniconda3\lib\site-packages\pyopencl\__init__.py:264: CompilerWarning: Built kernel retrieved from cache. Original from-source build had warnings:
Build on <pyopencl.Device 'Ellesmere' on 'AMD Accelerated Parallel Processing' at 0x2ac51004460> succeeded, but said:

C:\Users\myuser\AppData\Local\Temp\\OCL948T3.cl:628:20: warning: initializing '__global unsigned long *' with an expression of type 'unsigned long const __global[4]' discards qualifiers
    __global word *pwdBuffer = pwdbuffer_arg[0].buffer;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

  warn(text, CompilerWarning)
C:\Users\myuser\miniconda3\lib\site-packages\pyopencl\__init__.py:264: CompilerWarning: Built kernel retrieved from cache. Original from-source build had warnings:
Build on <pyopencl.Device 'Ellesmere' on 'AMD Accelerated Parallel Processing' at 0x2213bd10320> succeeded, but said:

C:\Users\myuser\AppData\Local\Temp\\OCL948T3.cl:628:20: warning: initializing '__global unsigned long *' with an expression of type 'unsigned long const __global[4]' discards qualifiers
    __global word *pwdBuffer = pwdbuffer_arg[0].buffer;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

  warn(text, CompilerWarning)
C:\Users\myuser\miniconda3\lib\site-packages\pyopencl\__init__.py:264: CompilerWarning: Built kernel retrieved from cache. Original from-source build had warnings:
Build on <pyopencl.Device 'Ellesmere' on 'AMD Accelerated Parallel Processing' at 0x2b73bc2ed60> succeeded, but said:

C:\Users\myuser\AppData\Local\Temp\\OCL948T3.cl:628:20: warning: initializing '__global unsigned long *' with an expression of type 'unsigned long const __global[4]' discards qualifiers
    __global word *pwdBuffer = pwdbuffer_arg[0].buffer;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

  warn(text, CompilerWarning)
C:\Users\myuser\miniconda3\lib\site-packages\pyopencl\__init__.py:264: CompilerWarning: Built kernel retrieved from cache. Original from-source build had warnings:
Build on <pyopencl.Device 'Ellesmere' on 'AMD Accelerated Parallel Processing' at 0x28aa62b1600> succeeded, but said:

C:\Users\myuser\AppData\Local\Temp\\OCL948T3.cl:628:20: warning: initializing '__global unsigned long *' with an expression of type 'unsigned long const __global[4]' discards qualifiers
    __global word *pwdBuffer = pwdbuffer_arg[0].buffer;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

  warn(text, CompilerWarning)
12448 of 18671 [##########################-------------] 0:26:35, ETA:  0:13:17

Running environment:

3rdIteration commented 3 years ago

This is normal, I have a RX570 to test here and it will generally run quite a bit slower than any modern CPU... Basically you need a better GPU to get any performance boost from it.