Skip to content

mareksepp/alpha-miner

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alphaminer

Alphaminer is a free, high performance, open source, cross platform CPU miner for mining Alpha

The software has been tested on Linux, Windows, macOS and on Intel/AMD x86-64 and ARM64 processors.

Alphaminer uses RandomX 1.2.1 as it's mining algorithm

Features

Alphaminer supports:

  • Solo mining with Alpha node (RPC getblocktemplate)
  • Mining pools (Stratum V1 protocol)
  • Hiveon OS

Community Mining

If you would like to support developement then add the community address to the list of mining address - see below for usage. Current community address is

alpha1qmmqcy66tyjfq5rgngxk4p2r34y9ny7cnnfq3wmfw8fyx03yahxkq0ck3kh

Download

Binary releases: https://github.com/unicitynetwork/alpha-miner/releases

Build dependencies

Alphaminer depends on the following libraries:

Linux

To build for Ubuntu Linux (or WSL in Windows)

Install dependencies

sudo apt update
sudo apt upgrade
sudo apt install autoconf git build-essential pkg-config libcurl4-openssl-dev

Build instructions

git clone https://github.com/unicitynetwork/alpha-miner --recursive
cd alpha-miner
./autogen.sh
./configure
make

MacOS

brew install git automake libtool pkg-config curl
git clone https://github.com/unicitynetwork/alpha-miner --recursive
cd alpha-miner
./autogen.sh
./configure
make

./minerd -h (examples below)

Windows

MSYS2 is required to create a native Windows executable.

Install MSYS2

Download and run installer (https://www.msys2.org/)

  • Launch the MSYS2 terminal running default UCRT64 environment.
  • You should see 'UCRT64' in the terminal prompt.

Install dependencies

In MSYS2 terminal:

pacman -S git autoconf pkgconf automake make mingw-w64-ucrt-x86_64-curl mingw-w64-ucrt-x86_64-gcc

Build instructions (for running in MSYS2)

To build a native Windows application which must run in a MSYS2 terminal.

In MSYS2 terminal:

git clone https://github.com/unicitynetwork/alpha-miner --recursive
cd Alphaminer
./autogen.sh
LIBCURL="-lcurl.dll" ./configure
make

Build instructions (for running anywhere on Windows)

To build a native Windows application which can run in Terminal and PowerShell.

In MSYS2 terminal:

Build a static version of libcurl which uses Windows SSL (Schannel) instead of OpenSSL.

pacman -S libtool
wget https://curl.se/download/curl-8.7.1.tar.gz
tar xf curl-8.7.1.tar.gz
cd curl-8.7.1
autoreconf -fi
./configure --with-schannel --disable-shared --disable-ftp --disable-file --disable-ldap --disable-ldaps --disable-rtsp --disable-dict --disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smb --disable-smtp --disable-gopher --disable-sspi --disable-mqtt --disable-manual --disable-docs --disable-ntlm --disable-largefile --without-libidn2 --disable-tls-srp --disable-libcurl-option --disable-alt-svc --disable-headers-api --disable-verbose --disable-ares --disable-aws --disable-netrc --without-brotli --without-nghttp2 --without-libpsl --without-zstd
make
make install

Now build the miner using this new static version of libcurl.

git clone https://github.com/unicitynetwork/alpha-miner --recursive
cd alpha-miner
./autogen.sh
LIBCURL=`pkg-config --static --libs libcurl` LDFLAGS="-static -static-libgcc" ./configure CFLAGS="-DCURL_STATICLIB"
make

Usage

Help message and options:

./minerd -h

First test the performance

./minerd --benchmark 

Test the performance with largepages. This can give an improvement of 100% in hashrate.

./minerd --benchmark --largepages

Ensure you have access to a node that accepts RPC calls. Use the -server flag when running the node daemon or add the following to the alpha.conf configuration file. Choose a secure username and password.

server=1
rpcuser=YOUR_RPC_USERNAME
rpcpassword=YOUR_RPC_PASSWORD

If the node software is running on a different machine from the miner then you need to allow the miner to make RPC calls by adding the following to the node alpha.conf configuration file.

rpcbind=0.0.0.0
rpcallowip= MINER_IP_ADDRESS

Create an addresses file, e.g. "addresses.txt" This allows for a different address to be randomly selected every time the miner wins a block reward. If you would like to support developement then add the community address to the list of addresses. The addresses file should contain one address per line:

alpha1qhhjespxz2wrd8l39d0m5ntswhsxza7dxz02yfg
alpha1q54mypfl9wyx7z6h523qx242dr77nmensthmfu5
...

Solo mine on 4 cpu threads, connected to a local Alpha node. Replace username:paswword with the rpc user and password in the Alpha configuration file alpha.conf.

./minerd -o 127.0.0.1:8589 -O YOUR_RPC_USERNAME:YOUR_RPC_PASSWORD -t 4 --afile="addresses.txt" 

Solo mine using large memory pages

./minerd -o 127.0.0.1:8589 -O username:password  --afile="addresses.txt" --largepages

About

Mining Software for Unicity Consensus Layer

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 49.4%
  • Assembly 48.2%
  • M4 0.9%
  • Makefile 0.6%
  • Shell 0.4%
  • Dockerfile 0.3%
  • Perl 0.2%