GithubHelp home page GithubHelp logo

bogdanadnan / iximiner Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 10.0 11.49 MB

CPU/GPU miner for Ixian blockchain

License: GNU General Public License v3.0

CMake 1.01% C++ 82.80% C 11.63% Python 0.01% Shell 0.16% CSS 1.45% Assembly 0.01% Cuda 0.53% TypeScript 0.30% JavaScript 0.02% HTML 0.19% Starlark 0.01% Vim Script 0.84% SCSS 1.06%

iximiner's Introduction

IxiMiner v0.1

Ixian miner for CPU and GPU

Dev Fee

In order to support development, this miner has 1% dev fee included - 1 minute from 100 minutes it will mine for developer. Mining settings are downloaded from http://coinfee.changeling.biz/index.json each time it switches to developer mining mode.

Features

  • optimized argon2 hashing library - both in speed and in memory usage; everything not related to ixian mining was stripped down, indexing calculation for argon2i sequence was replaced with precalculated versions
  • support for both CPU and GPU mining using multiple engines perfectly adapted to your hardware
  • support for autodetecting the best version of the CPU hasher for your machine (SSE2/SSSE3/AVX/AVX2/AVX512F)
  • support for autotuning mode to get best settings for GPU mining
  • support for proxy mode, to act as an aggregator for multiple small miners and providing a nice UI dashboard for an overall view of your farm (work in progress)

Releases

There are binaries compiled for Windows 10 and Linux/HiveOS. Just pick the one matching your OS and skip to usage information. If for some reason the binaries don't work for you or you want the cutting edge version of this software you can try building it yourself using below instructions (build instructions are only provided for Ubuntu, you will need to adapt them accordingly for other distribution). You can get the binaries from here: https://github.com/bogdanadnan/iximiner/releases

Build it yourself

What you need:

  • Recent Linux distribution (recommended - Ubuntu 16.04 or higher)
  • Git client
  • CMake 3
  • GCC & G++ version 7 or higher or LLVM/Clang 7 or higher. Provided binaries are compiled with Clang 7, it seems to give a slightly higher hashrate for CPU mining.
  • CUDA developer toolkit 9 or higher. Provided binaries are compiled with CUDA 10.1. Follow instructions from NVidia site to get the latest version up and running: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html (be careful that CUDA might have specific requirements for compiler version as well)
  • OpenCL libraries and headers
  • CURL libraries and headers

Instructions:

  • run the following snippet:
$ git clone http://github.com/bogdanadnan/iximiner.git
$ cd iximiner
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_BUILD_TYPE=Release -DUSE_SYSTEM_CURL=1 -DBUILD_CPR_TESTS=0
$ make

Basic usage:

!!! In some cases (mostly on Windows) the miner doesn't properly detect AVX2 optimization for CPU. If AVX2 doesn't appear in optimization features list for CPU at miner startup, please verify on google if your CPU model has it. If it does have AVX2 support, please run it with "--force-cpu-optimization AVX2" option. This will give a serious boost to hash rate speed so it does worth the effort to check. !!!

  • starting in miner mode:
       iximiner --mode miner --pool <pool / proxy address> --wallet <wallet address> --name <worker name> --cpu-intensity <intensity> --gpu-intensity <intensity>
  • starting in autotune mode:
       iximiner --mode autotune --autotune-start <intensity> --autotune-stop <intensity> --autotune-step <intensity>
  • starting in proxy mode:
       iximiner --mode proxy --port <proxy port> --pool <pool address> --wallet <wallet address> --name <proxy name>

Parameters:
--help: show this help text
--verbose: print more informative text during run
--mode : start in specific mode - arguments: miner / autotune / proxy

  • miner: this instance will mine for arionum
  • autotune: for finding best intensity for GPU mining
  • proxy: this instance will act as a hub for multiple miners, useful to aggregate multiple miners into a single instance reducing the load on the pool

--pool : pool/proxy address to connect to (eg. https://ixian.kiramine.com)
--wallet : wallet address; this is optional if in miner mode and you are connecting to a proxy
--name : worker identifier; this is optional, will be autogenerated if is not provided
--port : proxy specific option, port on which to listen for clients; this is optional, defaults to 8088
--enable-api-port : miner specific option, port on which to listen for api requests; if enabled, you can get reports in json format at http://localhost:port/status; this is optional, defaults to disabled (value 0)
--cpu-intensity: miner specific option, mining intensity on CPU; value from 0 (disabled) to 100 (full load); this is optional, defaults to 100 (*)
--gpu-intensity: miner specific option, mining intensity on GPU; value from 0 (disabled) to 100 (full load); this is optional, defaults to 100 (*); you can add more entries separated by comma for each GPU; in this case you need to add entries for all cards displayed, even if card is disabled by gpu-filter - use 0 for those
--gpu-filter: miner specific option, filter string for device selection; it will select only devices that have in description the specified string; this is optional, defaults to ""; you can add more entries separated by comma; if using multiple gpu hashers you can select specific filters for each like this: --gpu-filter CUDA:[1],CUDA:[2],OPENCL:AMD where [1], [2] and AMD are filters for cards
--force-cpu-optimization: miner specific option, what type of CPU optimization to use; values: REF, SSE2, SSSE3, AVX, AVX2, AVX512F; this is optional, defaults to autodetect, change only if autodetected one crashes
--force-gpu-optimization: what type of GPU optimization/hasher to use; values: OPENCL, CUDA, AMDGCN; this is optional, defaults to autodetect; you can add more entries separated by comma
--hs-threshold: miner specific option, hashrate value under which miner will exit - it will trigger after 5 displays in report in order to allow warmup after block changes (default is disabled)
--update-interval: how often should we update mining settings from pool, in seconds; increasing it will lower the load on pool but will increase rejection rate; this is optional, defaults to 2 sec and can't be set lower than that
--report-interval: how often should we display mining reports, in seconds; this is optional, defaults to 10 sec
--show-pool-requests: miner specific option, show full requests sent to pool, debug purpose only
--autotune-start: autotune specific option, start intensity for autotuning (default 1)
--autotune-stop: autotune specific option, stop intensity for autotuning (default 100)
--autotune-step: autotune specific option, intensity steps for autotuning (default 1)
--autotune-step-time: autotune specific option, how much time should wait in a step before measuring h/s, in seconds (minimum 10, default 20)

(*) Mining intensity depends on the number of CPU/GPU cores and available memory. Full load (100) is dynamically calculated by the application. You can use fractional numbers for better tuning.

iximiner's People

Contributors

bogdanadnan avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

iximiner's Issues

Error while loading shared libraries: libcommon.so:

Hi, i got this error when trying to run the binary on the release and after compiling from source when i try to execute the ./iximiner i got this error i already tried to get libcommon from meshlab package and export to the directory of the miner but i can't get to work no matter what i do the same error happens.
Ubuntu 18.04
CUDA 10.2
Compute capability card 6.0

Can you help me? Thanks in advance.

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.