Tezosの環境構築
目次
ビルドと実行方法[編集]
構築手順[編集]
Tezosをコンパイルするには、OCamlコンパイラ(バージョン4.06.1)と、さまざまな tezos - *。opam
ファイルにリストされているすべてのライブラリが必要です。
すべての依存関係をインストールする最良の方法は、最初にOCamlパッケージマネージャの OPAM <https://opam.ocaml.org/>
__をインストールすることです。
次に、Tezos用の新しいスイッチエイリアスを作成する必要があります。スイッチは、OCamlコンパイラ、すべてのパッケージ、プロジェクトに関連するパッケージマネージャの設定など、OPAM設定の独自のバージョンです。これは、プロジェクトが他のOCamlプロジェクトやTezosの他のバージョンと競合しないようにするために必要です。
opamの更新 opamスイッチ "tezos" --alias-of 4.06.1
以前に tezos
という名前のスイッチを作成したが、古いOCamlバージョンのスイッチを作成した場合は、 opam switch remove "tezos"
でスイッチを削除する必要があることに注意してください。
スイッチの準備ができたら、スイッチをアクティブにする必要があります。
eval `opam config env`
Tezosが依存するライブラリをインストールします。
make build-deps
依存関係を構築する際、 opam
はOCamlライブラリを正しく扱うことができますが、依存するすべての外部Cライブラリを常に処理できるわけではありません。ほとんどのシステムでは、システムパッケージマネージャーへの呼び出しを提案できますが、現在はバージョンチェックを処理していません。
最後に、プロジェクトをコンパイルします:
make
これにより、3つのバイナリが生成されます。
-
tezos-node
:tezosデーモン自体。 -
tezos-client
:最小限のコマンドラインクライアント。 -
tezos-protocol-compiler
:新しいバージョンの経済プロトコルを開発するために使用されるプロトコルコンパイラ。
現在、TezosはLinux向けに開発されています。それはMac OSで動作するはずですが、最近テストされていません。 Windowsポートが進行中です。
make build-deps
を実行すると、OPAMは必要なシステム依存関係がインストールされているかどうかを検出します。しかし、あなたが実際に持っているバージョンを検出することはできません。通常、 make
はlibsodium&lt; 1.0.11。この場合、最近のバージョンのlibsodiumとlibsodium-devを持っているか、例えばhttps://pkgs.org/download/libsodium18とhttps://pkgs.org/download/libsodiumからダウンロードしてインストールしてください。 -dev
git pull
の後でビルドが失敗した場合( make build-deps
または make
)、 opamの内部状態を次のコマンドで表示します。
opamの更新 opamピンリスト-s | xargs opam pin取り外し ビルデンプルを作る make
ノードの実行[編集]
これまでの公式のTezosネットワークは稼働していませんが、ローカルのテストネットワーク(開発チームは独自のテストネットを実行しています。このネットワークに参加することに興味がある場合は、余裕のあるチャンネルでリクエストしてください。現時点では限られたサポート能力がありますが、最善の方法でサポートするよう努力します)。
着信接続を受け入れるノードを実行するには、次のコマンドを使用します。
./ tezos-node identity generate 24。
これは、最初に新しいノードアイデンティティを生成し、関連する職務証明のスタンプを計算する。次に、ノードは [::]:9732
に接続する接続を待ち受けます。使用されたすべてのデータは $ HOME / .tezos-node /
に保存されます。たとえば、デフォルト設定ファイルは $ HOME / .tezos-node / config.json
にあります。
同じマシン上で複数のノードを実行するには、 $ HOME / .tezos-node / config.json
を複製して編集し、データベースや他のデータファイルへのパスを共有しないようにします db.store
; db.context
; db.protocol
、 net.peers-metadata
net.identity
)。
コマンドラインでオプションを指定することで、Tezosに設定ファイルを生成させることもできます。たとえば、 $ dir / config.json
が存在しない場合、次のコマンドはそれを生成し、デフォルト値をコマンドラインの値に置き換えます。
./tezos-node run --data-dir "$ dir" --net-addr localhost:9733
Tezosサーバーには、ローカルネットワーク上のピアを検出するためのメカニズムが組み込まれています(ポート7732でブロードキャストされたUDPパケットを使用)。
このメカニズムが十分でない場合は、 config.json
ファイルの net.bootstrap-peers
オプションを編集するか、コマンドラインパラメータを指定することによって:
./tezos-node run \ --data-dir "$ dir" --net-addr localhost:2023 \ --peer localhost:2021 --peer localhost:2022
"$ dir" /config.json
が存在する場合、コマンドラインオプションは設定ファイルで読み取られたオプションを上書きします。デフォルトでは、Tezosは既存の "$ dir" /config.json
ファイルの内容を変更しません。しかし、次のコマンドラインでコマンドラインパラメータに従ってファイルをリセットまたは更新するようノードに明示的に指示することができます。
./tezos-node config reset --data-dir "$ dir" --net-addr localhost:9733 ./tezos-node config update --data-dir "$ dir" --net-addr localhost:9734
サンドボックスでノードを実行する[編集]
Tezosネットワークの 'localhost-only'インスタンスを実行するために、2つのヘルパースクリプトを用意しています:
-
./ src / bin_node / tezos-sandboxed-node.sh
-
./ src / bin_client / tezos-init-sandboxed-client.sh
たとえば、最初の端末で2つのノードを持つローカルネットワークを実行する場合、次のコマンドはポート 19731
のピアをリッスンしているポートを初期化し、ポート 18731
./ src / bin_node / tezos-sandboxed-node.sh 1
このノードは、ノードが強制終了されると削除される一時ディレクトリにデータを格納します。
2番目のノードを起動するには、次のコマンドを実行するだけで、ポート 19739
と 18739
でリッスンします。
./ src / bin_node / tezos-sandboxed-node.sh 9
2つ以上のノードを実行する場合は、 1
または 9
を任意の数で置き換えることができます。ただし、単一のノードネットワークを実行する場合は、代わりに次のコマンドを実行して、予想される接続数を減らして「接続が少なすぎます」という警告を削除することがあります。
./ src / bin_node / tezos-sandboxed-node.sh 1 - connections 0
ノードが実行されたら、新しい端末を開き、 "サンドボックス"クライアントデータを初期化します。
eval `./src/bin_client/tezos-init-sandboxed-client.sh 1`
一時ディレクトリにクライアントデータを初期化します。また、現在のシェルセッションで、同じ番号のノードを通信するためにあらかじめ設定された別名 tezos-client
を定義します。例えば:
$ tezos-client rpc呼び出しブロック/ head / hash {"ハッシュ": "BLockGenesisGenesisGenesisGenesisGenesisGeneskvg68z" }
新しいネットワークをブートストラップすると、ネットワークは「起源」というダミーの経済プロトコルで初期化されます。 init-sandboxed-client
は、アルファネットと同じプロトコルを実行したい場合は、別名 tezos-activate-alpha
を定義します。ネットワーク全体。例えば:
$ tezos-client rpc呼び出しブロック/ヘッド/プロトコル {"protocol": "ProtoGenesisGenesisGenesisGenesisGenesisGenesk612im" } $ tezos-activate-alpha 注入BMBcK869jaHQDc $ tezos-client rpc呼び出しブロック/ヘッド/プロトコル {"プロトコル": "ProtoALphaALphaALphaALphaALphaALphaALdDp3zK" }
設定オプション[編集]
以下に、すべてのパラメーターが指定された構成ファイルの例を示します。ほとんどの場合、デフォルト値が十分に説明できない場合を除いて、デフォルト値が使用されます(つまり、デフォルトでは "bootstrap-peers"は空のリストです)。コメントはJSONでは許可されていないため、この設定ファイルは解析されません。必要に応じて独自の設定ファイルを書くのに役立ちます。
{ / *ディスク上のデータディレクトリの場所。 * / "data-dir": "/ home / tezos / my_data_dir" / *ネットパラメータの設定* / "net":{ / * aを表す0?256の浮動小数点数 難易度24は、例えば少なくとも24人の先導者 ハッシュではゼロが予想されます。 * / 「予想される仕事の証明」:24.5、 / *ホストのリスト。 TezosはIPv6とIPv4の両方に接続できます ホスト。ポートが指定されていない場合、デフォルトのポート9732は 想定される。 * / [:: 1:10732 "、" :: ffff:192.168.1.3:9733 "、" mynode.tezos.com "]のような"ブートストラップピア " / *ネットワークが閉じられているかどうかを指定します。閉じたネットワーク 「ブートストラップピア」にリストされたピアのみを許可する。 * / "closed": false, / *ネットワーク制限* / "limits":{ / *認証を行うためにピアに与えられた遅延。 秒。 * / "authentication-timeout":5、 / *厳密な最小接続数(緊急を引き起こす) メンテナンス)。 * / "min-connections":50、 / *ブートストラップ時に到達するターゲット接続数/ 維持する。 * / "expected-connections":100、 / *接続の最大数(ピアを超えるものは 切断された)。 * / "max-connections":200、 / *着信接続が保留中の番号 すぐに拒否されました。 * / "バックログ":20、 / *接続が許可されている最大数 保留中の認証。 * / "max-incoming-connections":20、 / * KiB / sでの最大ダウンロード速度とアップロード速度。 * / "最大ダウンロード速度":1024、 "max-upload-speed":1024、 / * read(2)に渡されたバッファのサイズ。 * / "read-buffer-size":16384、 } }、 / * rpcパラメータの設定* / "rpc":{ / *聞くホスト。 ポートが指定されていない場合、デフォルト ポート8732が仮定されます。 * / "listen-addr": "localhost:8733"、 / *クロス・ソース・リソース共有パラメータ https://en.wikipedia.org/wiki/Cross-origin_resource_sharing * / "cors-origin":[]、 "cors-headers":[]、 / *証明書とキーファイル(TLSを使用する場合に必要)。 * / "crt": "tezos-node.crt"、 "key": "tezos-node.key" }、 / *ログパラメータの設定* / "log":{ / *ロギング機能の出力。 「stdout」、「stderr」、 または ログファイルの名前。 * / 「出力」:「tezos-node.log」、 / *冗長レベル:「致命的」、「エラー」、「警告」、「通知」、 'info'、 'debug' * / 「レベル」:「情報」、 / *ファイングレインロギングの指示。前述の形式と同じ `tezos-node run --help`、DEBUGセクションです。以下の例では、 セクション「ネット」は、 &quot;クライアント&quot;で始まるすべてのセクション持っているだろう 彼らのメッセージはデバッグレベルに記録され、残りの ログセクションは通知レベルまで記録されます。 * / 「ルール」:「クライアント*」 - &gt;デバッグ、ネット - &gt;デバッグ、* - &gt;通知」、 / *ログファイルのフォーマットです。 http://ocsigen.org/lwt/dev/api/Lwt_log_core#2_Logtemplates * / "テンプレート": "$(日付) - $(セクション):$(メッセージ)" }、 / *バリデータとmempoolパラメータの設定* / 「シェル」:{ / *同期するピアの数 ノードがブートストラップされたことを宣言する前に。 * / "bootstrap_threshold":4 } }
デバッグ[編集]
Tezosのさまざまなロギング・セクションに独立したログ・レベルを設定し、ロギング用の出力ファイルを指定することもできます。上のログパラメータの説明と、 `tezos-node run?help 'で表示されるDEBUGセクションのドキュメントを参照してください。
JSON / RPCインターフェース[編集]
TezosノードはJSON / RPCインタフェースを提供します。これはRPCであり、JSONベースですが、 "JSON-RPC"プロトコルには従いません。デフォルトではアクティブではなく、明示的に - rpc-addr
オプションで有効にする必要があります。通常、ローカルネットワークを実行しようとしておらず、単にRPCを調べたい場合は、次のコマンドを実行します。
./tezos-node run --rpc-addr localhost
RPCインタフェースは自己文書化されており、 tezos-client
実行可能ファイルはRPC APIをきれいに印刷することができます。例えば、Tezos Shellが提供するAPIを見るには:
./ tezos-client rpc list
関連する経済プロトコルバージョンによって提供される遠隔手続きを含むAPIを「起源」ブロックに添付するには:
./tezos-client rpc list / blocks / genesis /
また、RPCの予想される入出力を記述するJSONスキーマが必要な場合もあります。例えば:
./tezos-client rpc schema / blocks / genesis / hash
注:簡単なHTTPリクエストを使って、同じ情報を得ることができますが、生のJSONオブジェクトとして取得できます。
wget --post-data '{"再帰的":true}' -O - http:// localhost:8732 / describe wget --post-data '{"再帰的":true}' -O - http:// localhost:8732 / describe / blocks / genesis wget -O - http:// localhost:8732 / describe / blocks / genesis / hash
最小限のCLIクライアント[編集]
Tezosは、最小限のコマンドラインウォレット tezos-client
と管理ツール tezos-admin-client
の2つのコマンドラインツールで配布されています。
これらのコマンドラインインタフェースは、ref: here <ltzte_client_commands&gt;
および:ref: here&lt; tezos_admin_client_commands&gt;
に記述されています。
参考情報[編集]
http://doc.tzalpha.net/introduction/howto.html
TezosGithub
https://github.com/tezos/tezos
https://github.com/tezos/tezos/tree/alphanet
Tezosのドキュメント