Yet another gem miner

Overview

Rusty Pickaxe

Multithreaded CPU miner for Provably Rare Gems, written in Rust. There is also closed-source GPU version, waiting to be released.

Config

Same config.json as in ramen miner. loop option works since v0.0.2. threads options works and is required since v0.0.4. You will probably want to set threads equal or less than your CPUs thread count.

Prerequisites

If following steps do not work for you, you can always ask for support in Discord.

Ubuntu

Install rust: https://www.rust-lang.org/tools/install

Install extra bits: sudo apt install build-essential libssl-dev pkg-config

Windows

Install VS build tools: https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019 , you want "Build Tools for Visual Studio 2019". When the installer asks what parts of "Build Tools for Visual Studio 2019" you want, go to the "individual components" tab and pick "x64/x86 build tools (latest)".

Install rust: https://www.rust-lang.org/tools/install

Run

cargo run --release config.json

Hashrate test

Data is stated in MH/s. You can share your results to appear here.

CPU Single core Threads Multi core
Ryzen 3700X 2.67 16 ~18.70
Ryzen 2600 2.20 12 ~13.44
i5-9600k@5GHz 2.82 6 ~16.92
i7-9700@3GHz 2.08 8 ~16.64
i7-10700k@5GHz 2.50 8 ~20.00
GPU Hashrate
3090 1700
3070 1007
3060 Ti 1007
2080 Ti 1200
1080 Ti 787
1060 280
1050 Ti 160

Improvement plan (ordered by priority)

  1. Proper error handling
  2. Better UI

Acknowledgments

  • Made it public thanks to generous wenl#6575.
  • Kakapo#5409 made nice json format for config file and wrote install instructions.
  • Also thanks to Spiry#6864, spiz0r#7566, shock#9999 for donations.
  • Anonymous donations were also a big help.

Kudos to all of you! Donations are accepted here: Ethereum, Fantom, BSC.

Contacts

  • Discord Booba#1974
  • Telegram @amazing_booba

Legal notice

SOFTWARE IS PROVIDED AS IS AND AUTHOR IS NOT RESPONSIBLE FOR ANYTHING.

You might also like...
Yet Another Serializer/Deserializer

yaserde   Yet Another Serializer/Deserializer specialized for XML Goal This library will support XML de/ser-ializing with all specific features. Suppo

Yarte stands for Yet Another Rust Template Engine
Yarte stands for Yet Another Rust Template Engine

Should we start to worry? bytes-buf feature can produce SIGILL. avx and sse flags are in almost all cpus of x86 and x86_64 architectures. More details

Yet another pager in Rust
Yet another pager in Rust

rust-pager Yet another pager in Rust Features Vim like keybindings Search substring Mouse wheel support Install cargo install rust-pager Usage comman

Yet another trojan-gfw in Rust

Trojan-rust Yet another trojan-gfw implementation in Rust. Features Server mode only (for now). Supports Redis auth & flow stat. Uses OpenSSL as crypt

Yet Another Kev-Value DataBase

Yet Another Kev-Value DataBase Extremely simple (simplest possible?) single-file BTree-based key-value database. Build for fun and learning: goal is t

Yet another ROS2 client library written in Rust
Yet another ROS2 client library written in Rust

RclRust Target CI Status Document Foxy (Ubuntu 20.04) Introduction This is yet another ROS2 client library written in Rust. I have implemented it inde

Yet Another Programming Language

Yet Another Programming Language

Yet Another Parser library for Rust. A lightweight, dependency free, parser combinator inspired set of utility methods to help with parsing strings and slices.

Yap: Yet another (rust) parsing library A lightweight, dependency free, parser combinator inspired set of utility methods to help with parsing input.

Yet Another File Transfer Protocol.

yaftp Yet Another File Transfer Protocol. Build & Run $ cargo build --release Features C2C Lightweight Per something per session High performence Res

Yet another geter/setter derive macro.

Gusket Gusket is a getter/setter derive macro. Comparison with getset: gusket only exposes one derive macro. No need to derive(Getters, MutGetters, Se

Yay - Yet another Yogurt - An AUR Helper written in Go
Yay - Yet another Yogurt - An AUR Helper written in Go

Yay Yet Another Yogurt - An AUR Helper Written in Go Help translate yay: Transifex Features Advanced dependency solving PKGBUILD downloading from ABS

Yet another multi-purpose discord bot

virus yet another multi-purpose discord bot

🥳Yet another crate to create native nodejs addons :)

nodex Yet another crate to create native nodejs addons :) This crate aims to make creating native nodejs addons very easy and comfortable. It is in a

yet another typing test, but crab flavoured

toipe A trusty terminal typing tester for the tux. Usage Install cargo install toipe Run typing test toipe looks best on a nice terminal (such as Ala

Yet another fractal generator (based on glium)

Juliabrot Yet another fractal generator. Juliabrot is a Rust application using the OpenGL Framework to render in realtime. Install Rust To download Ru

sentry - yet another multi-purpose discord bot

sentry - yet another multi-purpose discord bot

Another Key Logger Yet. Rust.

Another Key Logger Yet. Rust. For my very first experience of working with Rust, I decided to manage the keyboard, this time by logging and writing th

Virtual Machine Language - Yet another stack-based programming language
Virtual Machine Language - Yet another stack-based programming language

Virtual Machine Language - Yet another stack-based programming language

Yet another video to ASCII animation (in Rust)
Yet another video to ASCII animation (in Rust)

Yet another video to ASCII tool (in Rust) Requirements opencv Installation cargo install video2ascii You may also want to add

Comments
  • Errors while compiling in windows

    Errors while compiling in windows

    Hi I get the following error while compiling in windows

    Compiling rusty_pickaxe v0.0.1 (C:\rusty_pickaxe)
    warning: unused import: `FromHex`
     --> src\main.rs:6:17
      |
    6 | use rustc_hex::{FromHex, ToHex};
      |                 ^^^^^^^
      |
      = note: `#[warn(unused_imports)]` on by default
    
    warning: unused import: `Options`
     --> src\main.rs:8:32
      |
    8 | use web3::contract::{Contract, Options};
      |                                ^^^^^^^
    
    warning: unused imports: `Bytes`, `H160`, `H256`
     --> src\main.rs:9:28
      |
    9 | use web3::types::{Address, Bytes, H160, H256, U256};
      |                            ^^^^^  ^^^^  ^^^^
    
    error[E0277]: the `?` operator can only be used in an async block that returns `Result` or `Option` (or another type that implements `FromResidual`)
       --> src\main.rs:35:69
        |
    19  |   async fn main() -> web3::Result<()> {
        |  _____________________________________-
    20  | |     env_logger::init();
    21  | |     let config_path = std::env::args().nth(1).expect("no config given");
    22  | |     let mut file = File::open(config_path).unwrap();
    ...   |
    35  | |     let transport = web3::transports::Http::new(&config.network.rpc)?;
        | |                                                                     ^ cannot use the `?` operator in an async block that returns `()`
    ...   |
    114 | |
    115 | | }
        | |_- this function should return `Result` or `Option` to accept `?`
        |
        = help: the trait `FromResidual<Result<Infallible, web3::Error>>` is not implemented for `()`
    note: required by `from_residual`
    
    error[E0277]: the `?` operator can only be used in an async block that returns `Result` or `Option` (or another type that implements `FromResidual`)
       --> src\main.rs:37:47
        |
    19  |   async fn main() -> web3::Result<()> {
        |  _____________________________________-
    20  | |     env_logger::init();
    21  | |     let config_path = std::env::args().nth(1).expect("no config given");
    22  | |     let mut file = File::open(config_path).unwrap();
    ...   |
    37  | |     let chain_id = web3.eth().chain_id().await?;
        | |                                               ^ cannot use the `?` operator in an async block that returns `()`
    ...   |
    114 | |
    115 | | }
        | |_- this function should return `Result` or `Option` to accept `?`
        |
        = help: the trait `FromResidual<Result<Infallible, web3::Error>>` is not implemented for `()`
    note: required by `from_residual`
    
    error[E0308]: mismatched types
       --> src\main.rs:68:5
        |
    19  |   async fn main() -> web3::Result<()> {
        |                      ---------------- expected `Result<(), web3::Error>` because of return type
    ...
    68  | /     loop {
    69  | |         //let eth_nonce = web3.eth().transaction_count(config.address, None).await.unwrap();
    70  | |         let tx = contract.query("nonce", (config.address,), config.address, web3::contract::Options::default(), None);
    71  | |         let eth_nonce_tx: (U256, ) = tx.await.unwrap();
    ...   |
    112 | |         if !config.r#loop { break; }
    113 | |     };
        | |______^ expected enum `Result`, found `()`
        |
        = note:   expected enum `Result<(), web3::Error>`
                found unit type `()`
    help: try using a variant of the expected enum
        |
    68  |     utils::_::_serde::__private::Ok(loop {
    69  |         //let eth_nonce = web3.eth().transaction_count(config.address, None).await.unwrap();
    70  |         let tx = contract.query("nonce", (config.address,), config.address, web3::contract::Options::default(), None);
    71  |         let eth_nonce_tx: (U256, ) = tx.await.unwrap();
    72  |         let eth_nonce = eth_nonce_tx.0.as_u32();
    73  |
      ...
    
    Some errors have detailed explanations: E0277, E0308.
    For more information about an error, try `rustc --explain E0277`.
    warning: `rusty_pickaxe` (bin "rusty_pickaxe") generated 3 warnings
    error: could not compile `rusty_pickaxe` due to 3 previous errors; 3 warnings emitted
    
    opened by claudiocarotenuto 2
  • error building in ubuntu 21.04

    error building in ubuntu 21.04

    cargo run --features cuda --release config.json

    building it with. -> SM_86, compute_86

    Compiling rusty_pickaxe v0.0.4 (/home/dnubuntu/downloads/git/denaro/rusty_pickaxe) The following warnings were emitted during compilation:

    warning: nvcc warning : The 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). warning: In file included from /usr/include/cuda_runtime.h:83, warning: from : warning: /usr/include/crt/host_config.h:139:2: error: #error -- unsupported GNU version! gcc versions later than 10 are not supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk. warning: 139 | #error -- unsupported GNU version! gcc versions later than 10 are not supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk. warning: | ^~~~~

    error: failed to run custom build command for rusty_pickaxe v0.0.4 (/home/dnubuntu/downloads/git/denaro/rusty_pickaxe)

    Caused by: process didn't exit successfully: /home/dnubuntu/downloads/git/denaro/rusty_pickaxe/target/release/build/rusty_pickaxe-def47e0ef59265f6/build-script-build (exit status: 1) --- stdout TARGET = Some("x86_64-unknown-linux-gnu") OPT_LEVEL = Some("3") HOST = Some("x86_64-unknown-linux-gnu") CXX_x86_64-unknown-linux-gnu = None CXX_x86_64_unknown_linux_gnu = None HOST_CXX = None CXX = None NVCC_x86_64-unknown-linux-gnu = None NVCC_x86_64_unknown_linux_gnu = None HOST_NVCC = None NVCC = None CXXFLAGS_x86_64-unknown-linux-gnu = None CXXFLAGS_x86_64_unknown_linux_gnu = None HOST_CXXFLAGS = None CXXFLAGS = None CRATE_CC_NO_DEFAULTS = None DEBUG = Some("false") CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2") running: "nvcc" "-ccbin=c++" "-Xcompiler" "-O3" "-Xcompiler" "-ffunction-sections" "-Xcompiler" "-fdata-sections" "-Xcompiler" "-fPIC" "-m64" "-I" "./src" "-Xcompiler" "-Wall" "-Xcompiler" "-Wextra" "-cudart=shared" "-gencode" "arch=compute_50,code=sm_50" "-gencode" "arch=compute_52,code=sm_52" "-gencode" "arch=compute_60,code=sm_60" "-gencode" "arch=compute_61,code=sm_61" "-gencode" "arch=compute_75,code=sm_75" "-gencode" "arch=compute_86,code=sm_86" "-o" "/home/dnubuntu/downloads/git/denaro/rusty_pickaxe/target/release/build/rusty_pickaxe-6f5eb213ebf68f2a/out/./src/keccak.o" "-c" "./src/keccak.cu" cargo:warning=nvcc warning : The 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). cargo:warning=In file included from /usr/include/cuda_runtime.h:83, cargo:warning= from : cargo:warning=/usr/include/crt/host_config.h:139:2: error: #error -- unsupported GNU version! gcc versions later than 10 are not supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk. cargo:warning= 139 | #error -- unsupported GNU version! gcc versions later than 10 are not supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk. cargo:warning= | ^~~~~ exit status: 1

    --- stderr

    error occurred: Command "nvcc" "-ccbin=c++" "-Xcompiler" "-O3" "-Xcompiler" "-ffunction-sections" "-Xcompiler" "-fdata-sections" "-Xcompiler" "-fPIC" "-m64" "-I" "./src" "-Xcompiler" "-Wall" "-Xcompiler" "-Wextra" "-cudart=shared" "-gencode" "arch=compute_50,code=sm_50" "-gencode" "arch=compute_52,code=sm_52" "-gencode" "arch=compute_60,code=sm_60" "-gencode" "arch=compute_61,code=sm_61" "-gencode" "arch=compute_75,code=sm_75" "-gencode" "arch=compute_86,code=sm_86" "-o" "/home/dnubuntu/downloads/git/denaro/rusty_pickaxe/target/release/build/rusty_pickaxe-6f5eb213ebf68f2a/out/./src/keccak.o" "-c" "./src/keccak.cu" with args "nvcc" did not execute successfully (status code exit status: 1).

    opened by Dan70701 1
  • cant build - linux 21.04 cpu

    cant build - linux 21.04 cpu

    thread 'main' panicked at 'called Result::unwrap() on an Err value: Error("invalid length 17, expected a 0x-prefixed hex string with length of 40", line: 10, column: 36)', src/main.rs:125:69 note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

    opened by Dan70701 1
  • Can't running with ubuntu

    Can't running with ubuntu

    I followed install instructions but I met a problem.

    OS

    ubuntu

    cargo version

    (base) ➜  rusty_pickaxe cargo version
    cargo 1.55.0 (32da73ab1 2021-08-23)
    

    GPU verion

    (base) ➜  rusty_pickaxe lspci | grep VGA
    01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] (rev c7)
    

    result

    (base) ➜  rusty_pickaxe RUST_BACKTRACE=1 cargo run --release config.json
    warning: unused import: `FromHex`
     --> src/main.rs:6:17
      |
    6 | use rustc_hex::{FromHex, ToHex};
      |                 ^^^^^^^
      |
      = note: `#[warn(unused_imports)]` on by default
    
    warning: unused import: `Options`
     --> src/main.rs:8:32
      |
    8 | use web3::contract::{Contract, Options};
      |                                ^^^^^^^
    
    warning: unused imports: `Bytes`, `H160`, `H256`
     --> src/main.rs:9:28
      |
    9 | use web3::types::{Address, Bytes, H160, H256, U256};
      |                            ^^^^^  ^^^^  ^^^^
    
    warning: `rusty_pickaxe` (bin "rusty_pickaxe") generated 3 warnings
        Finished release [optimized] target(s) in 0.07s
         Running `target/release/rusty_pickaxe config.json`
    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error("0x prefix is missing", line: 10, column: 34)', src/main.rs:26:65
    stack backtrace:
       0: rust_begin_unwind
                 at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:515:5
       1: core::panicking::panic_fmt
                 at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/panicking.rs:92:14
       2: core::result::unwrap_failed
                 at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/result.rs:1599:5
       3: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
       4: tokio::park::thread::CachedParkThread::block_on
       5: tokio::runtime::thread_pool::ThreadPool::block_on
       6: tokio::runtime::Runtime::block_on
       7: rusty_pickaxe::main
    note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    
    
    opened by M4rkWhite 0
Releases(v0.0.5)
  • v0.0.5(Oct 14, 2021)

    Provided windows binary is not compiled by me, so I can not help you with it. You can check if this works for you using it like rusty_pickaxe.exe config.json.

    Linux binary is compiled by me. It works for me and I can not guarantee that it will work for you. Set executable bit with chmod +x rusty_pickaxe_linux and use it with rusty_pickaxe_linux config.json.

    Source code(tar.gz)
    Source code(zip)
    rusty_pickaxe.exe(4.71 MB)
    rusty_pickaxe_linux(9.55 MB)
Owner
Someone
Someone
Silent monero miner using xmrig and has 0% donation.

Note If this reprository is useful to you in in any shape or form please give it a star. Educational purposes only Don't use this project maliciously.

RadonCoding 4 Nov 21, 2022
Hackathon project, not production ready (yet)

Ledger Nano PIV Application This is a Ledger Hackathon project targeted on building a PIV compatible Ledger Nano X/S+ application. The focus of this a

Ledger 6 Dec 20, 2022
Bijou is a tiny yet fast encrypted file system.

Bijou ✨??✨ Bijou (['bi:ʒu], French for "jewel") is a tiny yet fast encrypted filesystem, built upon RocksDB. Bijou provides a FUSE interface, as well

Mivik 5 Sep 27, 2023
Turnstile encrypts data so that it can only be decrypted on another computer

Turnstile - One Way Encryption Turnstile encrypts data so that it can only be decrypted on another computer (and can't be decrypted on the encrypting

Faded Bee 4 May 6, 2022
A re-write of polkadot staking miner using subxt to avoid hard dependency to each runtime version

Staking Miner v2 WARNING this library is under active development DO NOT USE IN PRODUCTION. The library is a re-write of polkadot staking miner using

Parity Technologies 19 Dec 28, 2022
Silent monero miner using xmrig and has 0% donation.

Note If this reprository is useful to you in in any shape or form please give it a star. Educational purposes only Don't use this project maliciously.

RadonCoding 4 Nov 21, 2022
Blazingly fast function selector miner written in Rust.

About Blazingly fast function selector miner written in Rust. Usage git clone [email protected]:kadenzipfel/function-selector-miner.git cd function-selec

kaden 38 Apr 13, 2023
Solidity Function Selector Miner (AVX2 + Multithreaded)

Function Selector Miner Simple and fast Solidity function selector miner (CPU based). Uses AVX2 instructions and multithreading to compute hashes in p

Vectorized 45 Dec 4, 2023
Yet another fancy watcher. (Rust)

funzzy Yet another fancy watcher. (Inspired by antr / entr) Configure execution of different commands using semantic yaml. # .watch.yaml # list here a

Cristian Oliveira 188 Dec 12, 2022
Yet Another Technical Analysis library [for Rust]

YATA Yet Another Technical Analysis library YaTa implements most common technical analysis methods and indicators. It also provides you an interface t

Dmitry 197 Dec 29, 2022