
Coreブロックチェーンのノードを立てる
みんな大好きCoreブロックチェーン、犬も大好きです🐶
そんなCoreブロックチェーンで、最近 ノードの立て方がアナウンスされました ので、手順について解説します。
※色々解説していますが、ノードを立てるには太字だけ読めばOKです。
なお、本記事はXCBマイナーの皆さんが使っているであろう64ビットのUbuntu(Windowsでのマイニングもコレ)で動かす想定です。
Windowsでマイニング中の方へ
こちらの手順 でWSLのUbuntuウインドウを新しく開いておきましょう。
ノードを立てるコマンドは、そのウインドウで入力します。
以降の手順は、基本的にはコマンド(黒く囲まれた部分)をコピペするだけでOKです。
事前準備
※セキュリティを重視するのであれば専用ユーザを作った方が良いですが、今回は割愛します。
まずはノード用にディレクトリを作成し、そこに移動します。各コマンドの説明は下記の通りです。
・cd ~ でホームディレクトリに移動
・mkdir corenode で「corenode」という名前のディレクトリ作成
・cd corenode で「corenode」ディレクトリに移動
cd ~
mkdir corenode
cd corenode
ダウンロード
ノードのクライアントをDLします。
下記コマンドでは、執筆時点のUbuntu x86_64環境向け最新版をDLしています。
クライアントは Releases · core-coin/go-core · GitHub で公開されていますので、URLは必要に応じて書き換えてください。
wget https://github.com/core-coin/go-core/releases/download/v2.1.6/gocore-linux-x86_64
ファイルのリネームと実行権限の付与
クライアントの名前などを変更します。
・mv gocore-linux-x86_64 gocore で、DLしたクライアントのファイル名を「gocore」に変更しています
・chmod +x gocore で「gocore」ファイルを実行可能にしています
mv gocore-linux-x86_64 gocore
chmod +x gocore
実行!
下記の公式サイトを参考に、クライアントを実行します。
なお、sudo(管理者権限での実行コマンド)は無くても動いたため、省略しています。
How to Run Nodes and Their Role in the Core Blockchain | Blog
一応コマンドの説明を入れておくと、--syncmode "full" オプションでチェーンの全データを同期するモードで起動してるんじゃないかと思います。また、 --datadir=./mydatadir オプションで「mydatadir」ディレクトリにデータが格納されます。
チェーンのデータは結構大きく(現時点で5G弱)、今後も大きくなるので容量不足に注意しましょう。
consoleオプションはクライアントに対して色んなコマンドを実行できるコンソールを起動するためのオプションみたいです。コマンドはgeth互換のようです。
./gocore --syncmode "full" --datadir=./mydatadir console

なお、 Ctrl + D を押すとクライアントが終了します。
ノードを立てる手順はここまでで終了です。お疲れ様でした🐕
報酬とかその他もろもろ
現時点ではノードを立てても報酬等はもらえません。
Coreファンとして、ボランティア精神でノードになること自体を楽しみましょう🐶
また、データの同期が完了するまでは少しだけCPUパワーを消費しますが、同期完了後はほとんどパワーを消費しません。
犬のシングルボードのマイニングマシンで試したところ、マイナーのハッシュレートは
・マイナーのみ起動→2.07kH/s
・ノード立てた直後→1.7kH/s程度
・ノード立ててしばらく経ったあと→2.0kH/s程度
といった感じでした。
なお、ノードは密集して立ててもあまり意味が無いようですので、手元に複数のマシンがあっても、とりあえず1つだけ立てておけばOKかと思います。
ではみなさま、良いノードライフを🐩
おまけ:マイナーとノードを同じPCで起動する
質問をいただいたので追記です。
Windowsの場合
Windowsでマイニング中の場合は、WSLでUbuntuの新規ウインドウを開き、そのウインドウでノードを起動できます。
ウインドウを開いたら、 ノードを立てる手順 に戻ってOKです。

Ubuntu側で何とかしたい場合(※↑を追記する前の古いメモ)
Windowsの場合は前述の手順でOKですが、こちらも一応残しておきます。
マイナーをバックグラウンドで起動する
一番手っ取り早いのは、マイナーをバックグラウンドで起動する方法です。バックグラウンドで起動することで、他のコマンドを自由に打てる状態(もちろんノードも起動できる)になります。
下記のように、マイナー起動時に「nohup」と「&」を使えばOKです。
「nohup」はログイン中のユーザがログアウトした後もプロセスを継続実行させるためのコマンドで、末尾の「&」はバックグラウンド実行させるオプションです。
nohup bash mine.sh &
マイナーのログを見る
マイナーのログは↑のコマンドを実行したディレクトリの「nohup.out」に保存され、下記のコマンドでログの末尾をリアルタイムで見られます。
Ctrl + C でログを見るのをストップします。
tail -f nohup.out
マイナーを停止する
マイナーを停止したい時は、まず下記コマンドで「mine.sh」を実行しているプロセスのIDを特定します。
ps axで実行中のプロセス一覧を表示し、その中からgrepで「mine.sh」の文字を含む行だけ取り出しています。
ps ax | grep mine.sh

その後、killコマンドで対象のプロセスを終了します。
※↓のコマンドはプロセスIDを置き換えてから実行してください
kill プロセスID
最後に↑で使った ps ax | grep mine.sh を実行し、マイナーのプロセスが消えたことを確認して完了です。
おまけ2:そもそもノードとは何ぞや?
ご要望をいただいたので追記です。
ノードとは、簡単に言うと「ブロックチェーンに参加している端末」です。
Coreブロックチェーンの取引履歴などのデータを丸ごとコピーして保存し、必要な時に取り出したり、検証を行ったり、追記したりするのがノードの役割です。
これがなぜ大事かと言うと、ネットワークの分散化のためです。
旧来のシステムはどこかのサーバ(PC)にシステムが乗っていて、そこが故障すると障害が起きたり、そこに侵入してデータを改ざんすることも可能でした。
それに対し、Coreブロックチェーンなどの分散型ネットワークは、不特定多数のノードにデータが乗っているため、一部のノードが故障してもシステムは動き続けますし、一部が改ざんされてもそれを検出することが可能です。
つまり、ノードを増やせばCoreブロックチェーンの安定性を向上させられる、というわけです。
さあ、レッツトライ!🐶