Poclbm

提供: ArchWiki
ナビゲーションに移動 検索に移動

Poclbm (Python OpenCL Bitcoin miner) は m0mchil によって作成された python プログラム/スクリプトです (https://github.com/m0mchil/poclbm )。OpenCL に対応しているデバイスを使って Bitcoin を採掘します。この記事では Poclbm をインストールして systemd サービスとして使う方法を説明します。

イントロダクション

Bitcoin の採掘では GPU/CPU などの計算資源を使用して Bitcoin ネットワークで取引の検証に使われる"ブロック"を生成します。現在、ブロックを生成すると 50 BTC が与えられます。ただし、2012年11月の終わりまでには 25 BTC に落ちる予定です。

ブロックは生成されるたびに難易度が上昇していくので、今日 (2012年11月現在)、平均的なゲームパソコンではブロックを生成するには2年以上かかります。そのためゲームパソコンでブロックを生成しようとするのは電気代に釣り合いません。ブロック生成はランダムなので、ときには運良く普通のゲームパソコンでもブロックが生成できる可能性はあります。しかしながら、万に一つもない可能性に賭けて何ヶ月も費やすのは賢いとは言えないでしょう。結局あきらめて何も得られないまま高額の電気代を払うことになるのが落ちです。それに対して、プールマイニングという方法が存在します。

プールとはブロックを共同で採掘するコンピュータのネットワークであり、得られた報酬はブロックを生成するのに貢献した全ての人に分配されます。プールを利用することで、小額ながら安定した収入が見込めます。適切なハードウェアを使用すれば立派なビジネスにさえなります。

採掘を行うときに CPU を使うのは現実的ではありません。たとえローエンドのグラフィックカードでもハイエンドの CPU を打ち負かすのは容易いことです。したがって GPU を使って採掘を行います。ウェブサーバーなど別のことに使用しているマシンでも適切な設定をすることで採掘は可能です。採掘に専念させたい場合は低性能なシングルコアの CPU と、同じくローエンドのマザーボードで良いでしょう。RAM も 2GB もあれば十二分です。

ノート:
  • NVIDIA のカードは採掘には適していません。得られるお金よりも (電気代によって) 出ていくお金の方が多くなるでしょう。たとえプールを使っても収益は見込めないので、コンピュータを暖房として使いたいのでなければ (寝室で採掘すればそこらの暖房器具よりも暖かくなるかも) やめておいたほうが無難です。
  • 採掘には ATI/AMD カードが最適です。カードの値段が安くて電気消費量が少ない上に NVIDIA のカードと比べて (採掘においては) 圧倒的な性能を発揮します (一枚の ATI カードで三枚の NVIDIA GTX580 よりも強力な性能が出せます)。儲けるために採掘するなら ATI カードが必要です。

(ATI と NVIDIA の両方で) ドライバーによってはバグが存在し、(GPU で採掘しているのにも関わらず) マイナーによって2コアの CPU が 100% 消費されることがあります。原因は不明ですが Windows でも同様の問題があるようです。

インストール

AUR から poclbm-gitAUR をインストールしてください。

マイナーの実行

以下のコマンドを実行することで全ての OpenCL デバイスでマイナーを起動します。エラーが表示される場合は設定が正しいことを確認して、必要なパッケージとドライバーが全てインストールされていることをチェックしてください:

ヒント: プールのログイン名とパスワードはあらかじめ用意してください。https://mining.bitcoin.cz で登録することで取得できます。
$ poclbm username:password@server:port

マイナーは起動するとハッシュレート (x MH/s) を表示します。終了したいときは Ctrl+C を使ってください。マイナーを手動で実行したいだけなら以下の設定は必要ありません。

systemd サービスとして実行

サービスファイルを作成:

/etc/systemd/system/poclbm.service
[Unit]
Description=Python OpenCL Bitcoin miner
After=network.target

[Service]
ExecStart=/usr/bin/poclbm --verbose <user-specific arguments>

[Install]
WantedBy=multi-user.target

#マイナーの実行に書かれているようにプールの情報を入力してください。ユニットを作成したら systemctl でサービスを起動できます。