Code Monkey home page Code Monkey logo

mithril's Introduction

Build Status

mithril

rust monero miner (pure Rust is the goal, but the project is not there yet, see help wanted section)

TODOs:

  • implement cryptonight hashing function
  • implement stratum protocol (for pooled mining support)
  • use a naive parallelisation scheme
  • measure hash performance
  • implement software AES (current work)
  • optimise cryptonight hashing function
  • ARM support (Raspberry, Pine64)

Middle-Term TODOs:

  • auto-optimisation via bandit algorithms
  • integrate gpu mining (ATI, Nvidia)

HowTo Compile, Configure and Run

You need the Rust nightly version to compile Mithril, since it uses inline assembler which is only available in the nightly version of Rust. The nightly version is best installed with rustup. Once you have the nightly version installed, type cargo build --release for an optimised binary. The binary can be found in the target/release/ folder.

Mithril expects a config.toml in the working directory. Copy the default_config.toml as config.toml to the Mithril working directory. You need at least configure your Monero address in the [pool] section for the reward and the num_threads depending on your machine (a good start is to use 2x number of your cores on your machine).

If you get a wrong instruction set kind of error you can try to disable hardware AES with the has_aes flag in the [hardware] section.

If you find any issues, please report them here: Mithril Issues

Supported Platforms

Mithril was tested on this Platform/architecture combinations so far:

  • macOS 10.13/x64
  • Windows/x64

Please notify me, if you tested mithril on one other platform (Linux would be intersting, since I'm on macOS only) and it is running stable.

ARM support (Raspberry, Pine64) is a short term goal I am working on.

Current Status (2017-11-14)

The error with wrong submitted shares has been resolved. Mithril is now actually ready to mine Monero! Performance is probably not yet comparable to other miners, but this will be the next step.

Help Wanted

The goal of this project is to build a pure Rust monero miner implementation. Currently the Skein and JH hash functions are used as FFI C-Bindings, because there is not Rust implementation available (or I have not found any). A pure Skein or JH Rust implentation would be very welcomed. Notify me if you did implement one of these hashing functions and I will gladly use them in mithril!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.