Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement nickminer algorithm for pow module #286

Merged
merged 7 commits into from
Sep 16, 2024
Merged

Implement nickminer algorithm for pow module #286

merged 7 commits into from
Sep 16, 2024

Conversation

pk910
Copy link
Owner

@pk910 pk910 commented Sep 15, 2024

This pull request adds support for a fourth mining algorithm: nickminer.

Key updates:

  • Integration of the nickminer WebAssembly (WASM) library (based on secp256k1).
  • Addition of the nickminer worker to the frontend.
  • Implementation of the nickminer verifier in the backend.
  • Extension of the WebSocket protocol to transmit the full hash for nickminer shares.
  • Remove support for shares with >1 nonces (not used anywhere anyway, and strongly recommended to not use)

Background

The nickminer algorithm is based on Nick's method, which describes a way to vanity-generate recognizable contract addresses for keyless deployments, commonly used in Ethereum Improvement Proposals (EIPs).
While not a standard hashing algorithm, nickminer is a custom implementation designed to generate recognizable contract addresses for future Ethereum contracts, making some use of the hashing power available in this faucet.

Algorithm Details

The nickminer algorithm operates as follows:

  • It generates pseudo-random signatures based on a configured deployment transaction hash.
  • The signature is recovered to the deployer's public key (sender wallet).
  • The algorithm computes the first contract address that will be deployed.
  • It then compares this contract address against a configured pattern (suffix and/or prefix).

On the server side, the hashes are further filtered and saved in a file, preserving the best matches for potential real-world deployments in the future.

@pk910 pk910 merged commit a0f2ef1 into master Sep 16, 2024
4 checks passed
@pk910 pk910 deleted the contract-miner branch September 16, 2024 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant