Tezosの環境構築

提供: tezos-wiki
移動先: 案内検索

ビルドと実行方法[編集]

構築手順[編集]

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のドキュメント

http://doc.tzalpha.net/