ソロマイニング
ソロマイニングは、PAIコインプールのような集合プールを介したマイニングの代替手段です。ソロマイニングを行うと、デバイスまたはサーバーは、PAIブロックチェーンの難易度の目標を満たすハッシュ(つまり、「ラッキーハッシュ」)を持つブロックが見つかるまで、有効なブロックをローカルで構築します。検出されると、ネットワーク全体で受け入れられるようにブロックを他のピアにブロードキャストします。
ソロマイニングの主な意味は、デバイスがネットワークで受け入れられる有効なブロックを見つけた場合、ブロック報酬のすべての部分をマイニング用に予約しておくことができるということです。一方、デバイスが有効なブロックを見つけられない場合、マイニングから何も得られません。
ソロマイニングは、どの個々のコントリビューターがラッキーハッシュで有効なブロックを実際に見つけたかに関係なく、プールへのすべてのコントリビューター間でブロック報酬が比例して共有されるプールマイニングとは対照的です。簡単に言えば、特定の範囲内で、ソロマイニングは比較的大きな報酬が支払われる頻度が少なくなる可能性があり、プールマイニングは通常、報酬が少なくなりますが、より頻繁に支払われます。全体的なネットワークハッシュレートが非常に高いブロックチェーンの場合、マイナーは比較的低い計算能力でソロマイニングを実行することはできません。
ソロマイニングは、1つまたはいくつかの大規模なマイニングプール(PAIコインプールなど)からマイニングのソースを分散することでネットワークをさらに分散化するため、ネットワークにおけるPAIブロックチェーンにとっても有益です。
目次
ウォレットを使用したフルノードのセットアップ 1
ソロマイニングソフトウェアの構築とインストール 4
ソロマイナーの実行 5
参考 5
ウォレットを使用したフルノードのセットアップ
注:マイニングを実行しているのと同じマシンのコマンドラインウォレットにマイニング報酬を保存する場合は、以下の手順に従ってウォレットを備えたフルノードを設定します。マイニング報酬を他の場所(PAI Upモバイルまたはウェブ・ウォレットなど)に保存する場合は、このセクションをスキップして、このガイドに従ってフルノードを設定する必要があります。
次のコマンドを実行して、ウォレットを備えた完全なノードを構築します。
まず、いくつかの必要な依存関係をインストールします。
sudo apt update
sudo apt install autoconf autogen automake make gcc libcurl4-gnutls-dev build-essential libtool autotools-dev pkg-config libssl-dev libevent-dev bsdmainutils python3 libboost-all-dev
次に、ウォレットに必要なBerkeley DB4.8をフェッチしてコンパイルします。
wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz
echo ‘12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz’ | sha256sum -c
tar -xvf db-4.8.30.NC.tar.gz
sed -i ‘s/__atomic_compare_exchange/__atomic_compare_exchange_db/g’ db-4.8.30.NC/dbinc/atomic.h
cd db-4.8.30.NC/build_unix
mkdir -p build
BDB_PREFIX=$(pwd)/build
…/dist/configure --disable-shared --enable-cxx --with-pic --prefix=$BDB_PREFIX
make install
次に、PAI Coin Coreを構成してビルドします。
cd
git clone https://github.com/projectpai/paicoin.git
cd paicoin
./autogen.sh
./configure CPPFLAGS="-I${BDB_PREFIX}/include/ -O2" LDFLAGS="-L${BDB_PREFIX}/lib/" --disable-tests
次が表示されます:
Options used to compile and link:
with wallet = yes
with gui / qt = no
with zmq = no
with test = no
with bench = yes
with upnp = auto
use asm = yes
debug enabled = no
werror = no
target os = linux
build os =
CC = gcc
CFLAGS = -g -O2
CPPFLAGS = -I/home/ubuntu/db-4.8.30.NC/build_unix/build/include/ -O2 -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS
CXX = g++ -std=c++11
CXXFLAGS = -g -O2 -Wall -Wextra -Wformat -Wvla -Wformat-security -Wno-unused-parameter -Wno-implicit-fallthrough
LDFLAGS = -L/home/ubuntu/db-4.8.30.NC/build_unix/build/lib/
ARFLAGS = cr
最後に下記をコンパイルします:
make
次が表示されます:
CXX stake/libpaicoinconsensus_la-votebits.lo
CXX libpaicoinconsensus_la-uint256.lo
CXX libpaicoinconsensus_la-utilstrencodings.lo
CXX support/libpaicoinconsensus_la-cleanse.lo
CXX libpaicoinconsensus_la-sync.lo
CXX libpaicoinconsensus_la-fs.lo
CXX libpaicoinconsensus_la-random.lo
CXX libpaicoinconsensus_la-utiltime.lo
CXX libpaicoinconsensus_la-util.lo
CXXLD libpaicoinconsensus.la
make[2]: Leaving directory ‘/home/ubuntu/paicoin/src’
make[1]: Leaving directory ‘/home/ubuntu/paicoin/src’
Making all in doc/man
make[1]: Entering directory ‘/home/ubuntu/paicoin/doc/man’
make[1]: Nothing to be done for ‘all’.
make[1]: Leaving directory ‘/home/ubuntu/paicoin/doc/man’
make[1]: Entering directory ‘/home/ubuntu/paicoin’
make[1]: Nothing to be done for ‘all-am’.
make[1]: Leaving directory ‘/home/ubuntu/paicoin’
正常にコンパイルされたら、~/.paicoinディレクトリを作成し、その中に、少なくとも以下を含むpaicoin.confというテキストファイルを作成します(rpcuserとrpcpasswordの値を任意に設定します)。
daemon=1
rpcuser=user
rpcpassword=password
最後に、paicoin/srcディレクトリで./paicoindを実行してノード全体を起動し、同期するのを待ちます。同期の進行状況を確認するには、paicoin-cli getmininginfoを実行するか、~/.paicoin/debug.logを表示して、ローカルブロックの高さを確認します。 https://paichain.infoなどで見られるように、ローカルブロックの高さがブロックチェーンの高さと一致すると、同期が完了します。
PAIコインウォレットは、paicoin-cli getbalance、paicoin-cli sendtoaddress、paicoin-cli getnewaddressなどのコマンドで使用できます。可能なコマンドの完全なリストは、paicoin-cli helpを実行することで入手できます。
ソロマイニングソフトウェアの構築とインストール
依存関係をインストールします。
sudo apt install libcurl4-gnutls-dev
cpuminerリポジトリのクローンを作成し、ビルドを構成します。
git clone https://github.com/projectpai/cpuminer.git
cd cpuminer
./autogen.sh
アウトプット
configure.ac:9: installing ‘./compile’
configure.ac:4: installing ‘./config.guess’
configure.ac:4: installing ‘./config.sub’
configure.ac:6: installing ‘./install-sh’
configure.ac:6: installing ‘./missing’
Makefile.am: installing ‘./INSTALL’
Makefile.am: installing ‘./depcomp’
次を実行します。:
./nomacro.pl
アウトプット:
./configure CFLAGS="-O3"
アウトプット:
Compilation…: make (or gmake)
CPPFLAGS…:
CFLAGS…: -O3
LDFLAGS…: -pthread
LDADD…: -lcurl compat/jansson/libjansson.a -lpthread
Installation…: make install (as root if needed, with ‘su’ or ‘sudo’)
prefix…: /usr/local
最後に、ソフトウェアをコンパイルします。
make
ソロマイナーの実行
paicoindを実行している状態で、cpuminerディレクトリで次のコマンドを実行すると、cpuminerが起動します。
./minerd -a paicoin -o http://127.0.0.1:8566 -u user -p password --coinbase-addr=paiaddress --no-stratum &> ~/cpu-miner-output.log &
上記のコマンドでは、userとpasswordを、paicoin.confファイルで指定したrpcuserとrpcpasswordの値に置き換える必要があります。paiaddress値は、マイニングから獲得できるブロック報酬を収集するために使用するPAIコインアドレスと同じに設定する必要があります。
cpu-miner-output.logファイルをチェックして、マイナーのパフォーマンスを評価できます。
cpu-miner-output.logファイルをチェックして、マイナーのパフォーマンスを評価できます。
参考
「Berkeley DB 4.8」をインストールするためのいくつかのアドバイスをこちらから確認して下さい:https://gist.github.com/danieldk/5700533