Skip to content

Latest commit

 

History

History
129 lines (85 loc) · 4.94 KB

build_JP.md

File metadata and controls

129 lines (85 loc) · 4.94 KB

grin - ビルド、設定、動作確認

Read this in other languages: Español, Korean, 日本語.

動作環境

grinのプログラミング言語であるrustはほぼ全ての環境に対応している。

現在の動作環境

  • Linux x86_64とmacOS [grin、マイニング、開発]
  • Windows 10は未対応 [一部のビルドはできるがマイニングがまだ。助けを募集中!]

要件

  • rust 1.31+ (rustupを使えばcurl https://sh.rustup.rs -sSf | sh; source $HOME/.cargo/envでインストール可)
    • rustをインストール済みの場合はrustup updateを実行
  • clang
  • ncursesとそのライブラリ (ncurses, ncursesw5)
  • zlibとそのライブラリ (zlib1g-dev または zlib-devel)
  • pkg-config
  • libssl-dev
  • linux-headers (Alpine linuxでは必要)
  • llvm

Debianベースのディストリビューション(Debian、Ubuntu、Mintなど)ではrustを除き1コマンドでインストールできる:

apt install build-essential cmake git libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev pkg-config libssl-dev llvm

Mac:

xcode-select --install
brew install --with-toolchain llvm
brew install pkg-config
brew install openssl

ビルド手順

git clone https://github.com/mimblewimble/grin.git
cd grin
cargo build --release

grinはデバッグモードでもビルド可能(--releaseを付けない状態で、--debug--verboseを付ける)。 しかし暗号の計算のオーバーヘッドが大きく、高速同期が著しく遅くなる。

ビルドエラー

Troubleshooting

何がビルドされるか

ビルドの成果物

  • target/release/grin - grinの実行ファイル

grinのデータ、設定ファイル、ログファイルはデフォルトでは(ホームディレクトリ配下の)~/.grinのディレクトリに格納されている。 全ての設定値は~/.grin/main/grin-server.tomlを編集することで変更可能。

データファイルをカレントディレクトリに出力することも可能。 そのためには以下のコマンドを実行。

grin server config

カレントディレクトリにgrin-server.tomlがある場合、カレントディレクトリにデータが出力される。 grinをgrin-server.tomlを含むディレクトリで起動する場合、デフォルトである~/.grin/main/grin-server.tomlよりも優先される。

テスト中はgrinのバイナリにpathを通す:

export PATH=`pwd`/target/release:$PATH

ただし、grinをインストールしたルートディレクトリから実行することを想定している。

これによりgrinが直接実行可能になる(オプションはgrin helpで調べられる)。

設定

grinは気の利いたデフォルト設定で起動するようになっており、さらにgrin-server.tomlのファイルを通じて設定可能。 このファイルはgrinの初回起動で作成され、利用可能なオプションに関するドキュメントを含んでいる。

grin-server.tomlを通じて設定することが推奨されるが、全ての設定はコマンドラインで上書きすることも可能。

コマンドライン関連のヘルプについてはこちらを実行:

grin help
grin wallet help
grin client help

Docker

docker build -t grin -f etc/Dockerfile .

floonetを使用する場合、代わりにetc/Dockerfile.floonetを指定。

コンテナ内で実行する場合、grinのキャッシュをバインドマウントすることも可能。

docker run -it -d -v $HOME/.grin:/root/.grin grin

dockerの名前付きボリュームを使用する場合、代わりに-v dotgrin:/root/.grinを指定。 ボリュームが作成される前に、名前付きボリュームがコピーされる。

クロスプラットフォームビルド

rust(cargo)はあらゆるプラットフォームでビルド可能なので、grinをバリデーションノードとして省電力なデバイスで実行することも可能である。 x86のLinux上でgrinをクロスコンパイルしARMバイナリを作成し、Raspberry Piで実行することも可能。

grinの使用

機能やトラブルシューティングなどに関するより多くの情報についてはWallet User Guide

grinのマイニング

grinのマイニングに関する全ての機能はgrin-minerと呼ばれるスタンドアローンなパッケージに分離されていることに注意。

grin-minerをgrinノードと通信させるためには、grin-server.tomlの設定ファイルでenable_stratum_server = trueと設定し、ウォレットリスナーを起動(grin wallet listen)しておく必要がある。