Forked from: create2crunch
This repository is a modified version of the original create2crunch tool, enhanced to significantly speed up create2 address searching by leveraging GPU processing through OpenCL. Key improvements include:
- GPU Acceleration (OpenCL): Optimized to run entirely on the GPU utilizing OpenCL, an open and cross-platform framework for parallel computing, drastically increasing search speeds. The use of OpenCL ensures broad compatibility across a wide range of GPU hardware from different vendors.
- Flexible Address Searching: Allows for specifying both prefixes and suffixes for targeted address searches.
This tool is ideal for developers and researchers needing to find Ethereum addresses generated via the CREATE2 opcode that adhere to specific patterns. The utilization of OpenCL makes this tool more versatile, allowing it to run efficiently on various hardware configurations.
Requirements:
Before running the tool, ensure your system meets the following requirements:
-
Rust Toolchain:
- Installation: Rust is required to compile and run this tool. If you haven't installed Rust, follow the instructions at https://www.rust-lang.org/tools/install to install Rustup, the Rust toolchain installer.
- Verification: After installation, verify that Rust and Cargo (Rust's package manager) are installed correctly by running the following commands in your terminal:
These commands should display the installed versions of
rustc --version cargo --version
rustcandcargo.
-
OpenCL Drivers:
- Installation: Ensure that you have the appropriate OpenCL drivers installed for your GPU hardware. Most modern GPU drivers come bundled with OpenCL support. You might need to install the OpenCL runtime environment separately depending on your operating system and GPU drivers.
- Vendor Specific Instructions: Refer to your GPU vendor's website for specific instructions on installing OpenCL drivers:
- NVIDIA: https://developer.nvidia.com/cuda-downloads (CUDA includes OpenCL)
- AMD: https://www.amd.com/en/support (AMD Radeon Software includes OpenCL)
- Intel: https://www.intel.com/content/www/us/en/developer/articles/technical/intel-gpu-drivers.html
- Verification (Optional): You can optionally verify your OpenCL installation using tools like
clinfo(available on most Linux distributions and macOS via package managers, and for Windows as a download). Runningclinfoin your terminal should display detailed information about your OpenCL platforms and devices if correctly installed.
Usage Example:
To use this tool, you must set the following environment variables before running:
| Environment Variable | Description | Example |
|---|---|---|
FACTORY |
The contract factory address. | 0x762fcf49c5ef21510755191bbed6aa2a702f0348 |
CALLER |
The caller address. | 0x762fcf49c5ef21510755191bbed6aa2a702f0348 |
INIT_CODE_HASH |
The SHA256 hash of the contract init code (bytecode). | 0x203773287d16fe811728bda3eab73efe10661426b4ee3c2a4f76be84c9f58eee |
GPU_DEVICE |
The GPU device ID to use (use 255 for all available GPUs). |
255 |
ADDRESS_START_WITH |
The desired starting characters of the Ethereum address. | b1c |
ADDRESS_END_WITH |
The desired ending characters of the Ethereum address. | b1c |
Generating INIT_CODE_HASH:
You can generate the INIT_CODE_HASH by taking your contract's bytecode and hashing it using SHA256. You can use online SHA256 hash tools like https://emn178.github.io/online-tools/sha256.html.
Running the Tool:
After setting the environment variables and ensuring OpenCL is installed, execute the following command in your terminal:
export FACTORY="0x762fcf49c5ef21510755191bbed6aa2a702f0348"
export CALLER="0x762fcf49c5ef21510755191bbed6aa2a702f0348"
export INIT_CODE_HASH="0x203773287d16fe811728bda3eab73efe10661426b4ee3c2a4f76be84c9f58eee"
export GPU_DEVICE=255
export ADDRESS_START_WITH="b1c"
export ADDRESS_END_WITH="b1c"
cargo run --release $FACTORY $CALLER $INIT_CODE_HASH $GPU_DEVICE $ADDRESS_START_WITH $ADDRESS_END_WITH