This Rust project is a fully-functional tool for participating in Ethereum's PoWERC20 mining process. It offers a Rust-based implementation for connecting to the Ethereum blockchain, generating nonces, and submitting transactions upon discovering a valid nonce. Ideal for those interested in Ethereum mining or exploring the mechanics of blockchain interactions in Rust.
- Mining Functionality: Generates nonces and compares the resulting hash with a target, mirroring Ethereum's actual mining process.
- Parallel Mining Workers: Leverages Rust's concurrency model with async/await and thread pools for deploying multiple mining workers, boosting the probability of finding a valid nonce.
- Smart Contract Interaction: Interfaces with a specified Ethereum smart contract to retrieve the current mining challenge and difficulty.
- Nonce Submission and Transaction Handling: Submits the mining solution to the Ethereum network and manages the transaction process after identifying a valid nonce.
- Install Rust: Ensure you have Rust 1.73 or newer installed.
- Clone the Repository: Download this repository to your machine.
- Build the Project:
- Navigate to the project directory.
- Run
cargo build --release
to build the release version of the executable.
-
Configuration:
- Configure your Ethereum private key and contract address in a configuration file or environment variables.
- Adjust the number of mining workers as desired.
-
Running the Tool:
- Start the tool by running
./target/release/pow-erc20
in your terminal. - Optional flags or environment variables can be used for specific configurations.
- Start the tool by running
Contributions are welcome. Please adhere to the project's coding standards and include tests for any new features or fixes.