Maroc-OS / CleanedBitCrack

A tool for brute-forcing Bitcoin private keys.
MIT License
19 stars 13 forks source link

Not building on Apple M1 (arm64) #17

Open eztam- opened 3 years ago

eztam- commented 3 years ago

Hi,

I'm trying to build with make BUILD_OPENCL=1 on MacBook with M1 (arm64 architecture). I'm getting many warnings of this kind: ld: warning: ignoring file /Users/x/src/CleanedBitCrack/lib/liblogger.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /Users/x/src/CleanedBitCrack/lib/libcommonutils.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /Users/x/src/CleanedBitCrack/lib/libsecp256k1.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /Users/x/src/CleanedBitCrack/lib/libkeyfinder.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /Users/x/src/CleanedBitCrack/lib/libcryptoutil.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /Users/x/src/CleanedBitCrack/lib/libaddressutil.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /Users/x/src/CleanedBitCrack/lib/libclutil.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /Users/x/src/CleanedBitCrack/lib/libCLKeySearchDevice.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /Users/x/src/CleanedBitCrack/lib/libcmdparse.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64

in the end the build fails with:

ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [all] Error 1

Is there a way to build it for arm64 with OpenCL?

Thanks a lot!

BarhamAA commented 3 years ago

i got same error

Maroc-OS commented 3 years ago

Hello,

Am sorry about that, but this is designed for GPU usage arm in not included.

But this needs fixing and readme notice, Thanks! For the reminder. -- --

Merruk Technology, SARL. www.merruk.com

BarhamAA commented 3 years ago

Hello Maroc-OS

thank you for replay, please just put one release for this code (compiled version as release).

appreciate your help @Maroc-OS

eztam- commented 3 years ago

@Maroc-OS I'd like to offer my help, to fix the build on arm64. I have quite OK C skills, however they seem to be not good enough so that I'm able to spot the actual issue. But with some guidance from you, I might be able to fix it. So, please just give me some guidance on where to start if you think that might help.

Maroc-OS commented 3 years ago

Hello,

Thank for your offer.

Making it compile and run is not the issue here. But arm doesn’t have dedicated GPU to compute the same way as nvidia/amd/intel ones, thats the real issue.

OpenCL doesn’t completely support Apple’s SoC, as i know: does it??

I did not make any researches about this but ll keep this issue open for now until i get some time to make sure its not going to work. -- --

Merruk Technology, SARL. www.merruk.com

AsicPrince commented 2 years ago

bro, will you fix this issue?? and make it run with M1 GPU is awesome

Smiril commented 2 years ago

hello Maroc-OS

take a look AT hashcat from matrix see:Hashcat-M1/matrix

OpenCL works on M1 Macs ... you only need for power (pro/max) Modell not the base

hope you can use it

eztam- commented 6 months ago

Are there any news, if bitcrack can run on M1 chips?

Smiril commented 2 months ago

i´ve got some more errors on launching build complete

[2024-09-06.17:44:02] [Info] CleanedBitCrack

[2024-09-06.17:44:02] [Info] Compression: both
[2024-09-06.17:44:02] [Info] Starting at: 0000000000000000000000000000000000000000000000000000000080000000
[2024-09-06.17:44:02] [Info] Ending at:   00000000000000000000000000000000000000000000000000000000FFFFFFFF
[2024-09-06.17:44:02] [Info] Counting by: 0000000000000000000000000000000000000000000000000000000000000001
[2024-09-06.17:44:02] [Info] Threads: 128
[2024-09-06.17:44:02] [Info] Blocks: 64
[2024-09-06.17:44:02] [Info] Points per Thread: 1024
[2024-09-06.17:44:02] [Info] Compiling OpenCL kernels...
[2024-09-06.17:44:02] [Info] Initializing Apple M1 Max
[2024-09-06.17:44:02] [Info] Allocating Memory for Buffers (1024.0MB)
[2024-09-06.17:44:02] [Info] Generating 8,388,608 starting points (320.0MB)
[2024-09-06.17:44:02] [Info] 10.0%
[2024-09-06.17:44:02] [Info] 20.0%
[2024-09-06.17:44:02] [Info] 30.0%
[2024-09-06.17:44:02] [Info] 40.0%
[2024-09-06.17:44:02] [Info] 50.0%
[2024-09-06.17:44:02] [Info] 60.0%
[2024-09-06.17:44:02] [Info] 70.0%
[2024-09-06.17:44:02] [Info] 80.0%
[2024-09-06.17:44:02] [Info] 90.0%
[2024-09-06.17:44:02] [Info] 100.0%
[2024-09-06.17:44:02] [Info] Done
[2024-09-06.17:44:02] [Info] Loading addresses from '../../Downloads/btcaddresses.txt'
[2024-09-06.17:44:02] [Info] 1 address(es) loaded (0.0MB)
                             0 address(es) ignored
[2024-09-06.17:44:02] [Info] Initializing BloomFilter (0.0MB)
[2024-09-06.17:44:02] [Info] CL_INVALID_VALUE: values passed in the flags parameter is not valid
Smiril commented 2 months ago

whoops the thread -t 64 and device -d 0 solved my problem

4040.51 MKey/s

Smiril commented 2 months ago

[Info] Reached end of keyspace

without result

eztam- commented 2 months ago

@Smiril It indeed works as you described. But I got the same issue. I tested with several private key and address pairs but bitcrack doesn't find any match.

./clBitCrack -t 64 -d 0 -o out.txt --keyspace f7051f27b08d1800:f7051f27b09112d4 16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN

Smiril commented 2 months ago

@eztam-

I'll try this 👍

./clBitCrack -d 0 --keyspace 0000000000000000000000000000000000000000000000000000000000000001:EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140  --out "found.txt" -b 64 -t 64 -p 256  --compression both 16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN 
eztam- commented 2 months ago

That didn't work for me either. Did you get it working?

Smiril commented 2 months ago

yes true ... it goes cracking

Smiril commented 2 months ago

but (remaining) [ETA 100000000.00 milleniums and more]

eztam- commented 2 months ago

Have you tested it with a narrow keyspace and a known key/address pair? Because it just looks as it would work. It certainly does some processing, but it doesn't catch any private key, even if it should match.

Smiril commented 2 months ago

yes that does not catch any private key for me too but I can't figure out why

Smiril commented 2 months ago

for now I'll test this:

./bin/clBitCrack -d 0 --keyspace 0000000000000000000000000000000000000000000000F7051F27B08D1800:000000000000000000000000000000000000000000000FF7051F27B09112D4   -i "btcaddresses.txt" --continue continue.txt  --out "found.txt" -b 64 -t 64 -p 32000 --compression both 

on a M1 MAX with address : 16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN and this address has 0.00000000 btc and amphetamine started [Info] Allocating Memory for Buffers (16000.0MB) [Info] Generating 131,072,000 starting points (5000.0MB)

a few moments later :) approximate 2000-11000 years

Smiril commented 2 months ago

my research on privately.pw give the following result

000000000000000000000000000000000000000000000000F7051F27B09112D4
04100611C54DFEF604163B8358F7B7FAC13CE478E02CB224AE16D45526B25D9D4D5127C2D0B1C4A4D5B4996BBDF37633B86901D0303B61E2F6F0772282AE08FF95
16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN
eztam- commented 2 months ago

There seems to be something wrong with the code running on M1. Because I can confirm that the same code runs fine on an old Intel based MacBook. I guess this needs to be debugged to identify the cause. There might be an issue with the bloom filter or the calculation results from key to address are incorrect. Maybe related to data type issue on M1.

Smiril commented 2 months ago

So you mean there’s a different code to made the same thing?

eztam- commented 2 months ago

I'll try to debug and fix it, whenever I'll find some time on a rainy weekend :-)