Nym Operators Guide日本語ver. (最終編集:2023/11/15)
Mixnodeセットアップに焦点を当てて翻訳しているため、 Gateway、Network Requester、Validator部分は省略しています。
翻訳者はnon-techなので、翻訳に修正が必要な箇所があると思います。
該当箇所を見つけ次第Telegramにてご連絡いただけるととても嬉しいです!!
1.Introduction
これはNymのオペレーターガイドで、Nymのmixnetインフラストラクチャ(mix node、gateway、network requester)とNyx blockchain validatorsの様々な情報とセットアップガイドが含まれています。
Nymを初めて利用する方で、mixnetについて学びたい方、キックスタートのオプションやデモを検討したい方、ネットワークとの統合方法を学びたい方、開発者向けチュートリアルをフォローしたい方は、開発者ポータルをチェックしてください。
Nymのアーキテクチャ、クライアント、node、SDKの例についてより深く知りたい場合は、技術ドキュメントをご覧ください。
一般的なページ
バイナリ情報
Node setup and usage guides:
メンテナンス、トラブルシューティング、FAQ
2.Pre-built Binaries
Githubのリリース・ページには、Ubuntu 20.04やその他のDebianベースのシステムで動作するはずのpre-built binariesがあるが、現段階ではどこでも動作することを保証するものではない。
pre-built binariesが動作しなかったり、あなたのシステムで利用できない場合は、自分でプラットフォームを構築する必要がある。
2.1バイナリの初期設定と構成
すべてのNymバイナリは、run前にまず実行可能な状態にし、initで初期設定する必要がある。
バイナリを実行可能にするには、同じディレクトリでターミナルを開いて実行する:
initコマンドは通常、通信したいgateway、バイナリが参照したいポートなどの設定引数を指定するフラグを渡す場所です。
initコマンドは、必要なキーペアと設定ファイルを~/.nym/<BINARY_TYPE>/<BINARY_ID>/に作成します。既存のキーペアがある場合は上書きされません。
バイナリは、~/.nym/<BINARY_TYPE>/<BINARY_ID>/config/config.tomlにあるconfigファイルを編集し、バイナリプロセスを再起動することで、いつでも再設定することができます。
initを実行したら、通常は指定したバイナリのidだけを伴って、runコマンドでバイナリを起動することができます。
このidはネットワーク経由で送信されることはなく、起動に使用するローカル設定ファイルとキーファイルを選択するために使用されます。
3.ソースからの構築
NymはMac OS X、Linux、Windows上で動作します。Windows上のDesktop WalletとNymConnectを除く全てのノードは実験的なものであると考えるべきである。 アプリ開発者なら問題なく使えるが、ノードの運用にはお勧めできない。
Nymの構築
Nymには2つの主要なコードベースがある:
Rustで書かれたNym platform。これには、validatorを除くすべてのコードが含まれている。
Goで書かれたNym validators
このページでは、Nymプラットフォームの主要なコードを構築する方法を詳しく説明する。validatorを実行したい場合は、こちらをご覧ください。
前提条件
Debian/Ubuntu: pkg-config, build-essential, libssl-dev, curl, jq, git
Arch/Manjaro: base-devel
Mac OS X: pkg-config , brew, openss1, protobuf, curl, git 以下のスクリプトを実行すると、Homebrewと上記の必要パッケージがインストールされます:
Rust & cargo >= 1.66
Rust shell script installerを使用することをお勧めします。パッケージマネージャ(aptなど)からcargoをインストールするのは、パッケージ化されたバージョンが古すぎることが多いのでお勧めしません。
shell script installerをどうしても使いたくない場合は、Rust installation docs に多くのプラットフォーム向けの説明がある。
Nymバイナリのダウンロードと構築
以下のコマンドは、バイナリを nym/target/release ディレクトリにコンパイルする:
かなり多くのものが作られる。主要な稼働部分は以下の通りだ:
mix node: nym-mixnode
gateway node: nym-gateway
websocket client: nym-client
socks5 client: nym-socks5-client
webassembly client: webassembly-client
network requester: nym-network-requester
nym-cli tool: nym-cli
このリポジトリには、このプロセスではビルドされない Typescript アプリケーションも含まれています。これらのアプリケーションは、それぞれのドキュメントページの指示に従ってビルドすることができます。
GitHubの.zipや.tar.gzのアーカイブファイルからビルドすることはできません。Nymのビルドスクリプトはコンパイル時にビルドされたバイナリに現在のgitコミットハッシュを自動的に含めるため、アーカイブコード(Gitリポジトリではない)を使用するとビルドに失敗します。代わりにgit cloneを使ってgithubからコードをチェックしてください。
オペレーターガイド
4.Mixnet Nodeセットアップ
Nymのノードをセットアップするには、まずノードを動かすマシン(VPS)上にNymのプラットフォームを構築します。ノードはNymのウォレットにbondする必要があります。設定はここから。
このセクションには、以下のノードタイプのセットアップガイドが含まれています:
4.1準備段階
Nymのmixnode、gateway、network-requesterのバイナリは、nymのビルドセクション(3.ソースからの構築)でビルドした。まだNymをビルドしておらず、コードを実行したい場合は、まずそこに行ってください。
mix node, gateway,network requesterのセットアップを始める前に、いくつかのステップを完了する必要があります:
・デスクトップウォレットまたはCLIウォレットの準備
・VPS(仮想プライベートサーバー)をレンタルする
ウォレットの準備
メインネット
mix nodeを初期設定して実行する前に、私たちのwebsiteへ行き、あなたのオペレーティングシステム用のNymウォレットをダウンロードしてください。もしあなたのオペレーティングシステム用のコンパイル済みバイナリが利用できない場合は、こちらの手順を参考に自分でウォレットをビルドしてください。
まだお持ちでない場合は、ウォレットを使ってNymアドレスを作成し、トークンで資金を供給してください。mix nodeをbondするのに必要な最低額は100 NYMですが、ガス代を考慮してもう少し多めに用意しておいてください。
NYMはBTCまたはフィアットでウォレット自体からBity経由で購入することができ、現在いくつかの取引所に存在する。
mix nodeへのbondには、CosmosのNYMトークンのみ使用できることを覚えておいてください。ERC20上のNYMを使用してノードを動かすことはできません。
Sandboxテストネット
ウォレットをダウンロードし、上記の要領でアカウントを作成してください。その後、トークンのfaucetにアクセスし、Bondに使用するトークンを入手してください。
VPSハードウェアスペック
ノードを稼働させるためにVPSをレンタルする必要があります。その主な理由の1つは、ノードがIPv4とIPv6の両方を使用してTCPデータを送信できなければならないからです(他のノードがどちらかのプロトコルを使用している可能性があるため)。
今のところ、スループットを向上させるための同時実行性の最適化にはあまり力を入れていないので、マルチコアを備えたとんでもないサーバーをわざわざ用意する必要はない。もっと本格的に性能の最適化を始める機会があれば、これは変わるだろう。Sphinxのパケット復号化はCPUに縛られるので、一度最適化すれば、より高速なコアを使った方が良いでしょう。
とりあえず、以下の大まかなスペックをご覧いただきたい:
・プロセッサー: 2コアで十分。CPUはできるだけ速いものを。
For mix node
・RAM:メモリ要件は非常に低く、 通常、mix nodeが使用するRAMは数百MB程度です。
・Disks: mixnodeは設定ファイル用に数バイトのディスクスペースを必要とします。
For gateway
・RAM: メモリ要件は、Gateway が一度に処理するユーザーの量によって異なります。自分で使うだけなら、最小限のRAMで十分です。サービス助成金の一部としてGatewayを運用するのであれば、少なくとも4GBのRAMを搭載したものを購入しましょう。
・Disks:Gatewayが使用できる RAM の量と同様に、必要なディスク容量は、Gatewayがサービスを提供するユーザーの量によって異なります。サービス助成金の一部としてGatewayを運用する場合は、少なくとも40GBのストレージを用意してください。
4.2Mix Nodes
Nym mix nodeのバイナリは、nymをビルドするセクション(3.ソースからの構築)でビルドした。まだNymをビルドしておらず、コードを実行したい場合は、まずそちらへ。
<>括弧内のsyntaxは、ユーザー独自の変数です。<>括弧のない対応する名前に変更してください。
現在のver.
1.1.33
nym-mix nodeバイナリは、リリースの間に適用されたパッチにより、現在、他のプラットフォームのバイナリより1ポイントバージョンが進んでいます。
準備段階
mix nodeをセットアップする前に、”4.1準備段階”に記載されている準備を必ず行ってください。
Mix nodeセットアップ
コードベースをビルド(3.ソースからの構築)し、ウォレットをセットアップし、nym-mix nodeバイナリがインストールされたVPSを用意したら、以下の手順でmix nodeをセットアップすることができる。
まず、/target/releaseディレクトリに移動し、そこからnodeコマンドを実行します:
コマンドヘルプの表示
バイナリが正しくコンパイルされているかどうかは、次のようにして確認できる:
利用可能なコマンドのリストを返してくれるはずだ。
また、個々のコマンドに必要な様々な引数を確認することもできる:
起動時に--no-bannerフラグを付けると、tty環境で実行してもNymのバナーが表示されなくなる。
mix nodeの初期設定
ノードを初期設定するために利用可能な設定オプションを確認するには、以下を使用します:
利用可能なすべてのコマンドのリストを返すはずだ。
以下のコマンドでmix nodeを起動します。--idの値をmix nodeに与えたい名前に置き換えてください。パケットをミックスするためには、--hostはインターネット上でパブリックにルーティング可能でなければならず、IPv4アドレスでもIPv6アドレスでもかまいません。$(curl -4 https://ifconfig.me) コマンドは、外部サービスを使って自動的にあなたのIPを返します。IPアドレスを手動で入力する場合は、ポート情報なしで入力してください。
initコマンドは既存のmix node keyの破棄を拒否する。
init プロセス中に http_api、verloc、mixnode のポートをデフォルト設定から変更するオプションがあります。将来的に変更したい場合は、~/.nym/mixnodes/<YOUR_ID>/にある初期化プロセスで作成されるconfig.tomlファイルの値を編集してください。
Mix nodeにbondingする
注意🚨:v1.1.3から、mixnodeのunbondを行うと、mixnetから離脱することになり、すべてのdelegationを(永久に)失うことになります。同じIDキーで再度参加することは可能ですが、その場合はdelegationがない状態からスタートすることになります。
デスクトップウォレット経由でbond(推奨)
mix nodeはデスクトップウォレットからボンドすることができます。
・ウォレットを開き、Bondページに行き、ノードタイプMixnodeを選択し、ノードの詳細を入力します。Nextを押します。
・Amount、Operating cost、Profit marginを入力し、Nextを押します。
・gatewayでsignコマンドを実行するよう求められます。-contract-msgの値として長い署名をコピー&ペーストして実行します。
こんな感じになるだろう:
出来上がった署名をコピーする:
そしてそれをwallet nodalに貼り付け、Nextを押してトランザクションを確認する。
・これであなたのノードはbondされ、次のエポック(最長でも1時間)の開始時にミックスできるようになる。
mixnetスマートコントラクトがあなたのnymアドレスをあなたのノードにマッピングできるように、あなたはbonding上でトランザクションにsignするよう求められます。これにより、アカウントごとにnonceを作成し、リプレイ攻撃を防御することができます。
CLI経由のBond(熟練者向け)
ーーーーーーーー省略ーーーーーーーーー
ノードが正しくミックスしているか確認する
Network explorers
mix nodeを起動してvalidatoに接続すると、Nym Network Explorerーの「mix node」セクションにノードが自動的に表示されます:
identity keyを入力して自分のノードを探します。このページにはあなたのノードに関する多くの統計情報があり、稼働時間(up-time history)、ミックスしたパケット(packets mixed)、ノードが持っているdelegationをチェックするのに便利です。
Nodes Guruが作成した2つのcommunity explorerもあります:
詳しくはトラブルシューティングFAQをご覧ください。
メンテナンス
mix nodeのアップグレード、ファイアウォールの設定、ポート設定、APIエンドポイント、VPSの提案、自動化などについては、メンテナンスページをご覧ください。
4.3 Gateway----省略----
4.4Network Requester----省略----
5 Nyx validator setup----省略----
6.メンテナンス
便利なコマンド
起動時に--no-bannerフラグを付けると、tty環境で実行してもNymのバナーが表示されなくなる。
ビルド情報
build-infoコマンドは、--versionコマンドと同じように、コミットハッシュ、rustバージョン、バイナリバージョンなどのビルド情報を出力する。しかし、--output=jsonフラグを指定することで、出力全体をjsonとしてフォーマットし、解析が桁違いに簡単になる。
たとえば ./target/debug/nym-network-requester --no-banner build-info --output json を入力すると以下のように応答します:
Nodeのアップグレード
このプロセスは、mix node、gateway、network requesterで同様です。以下のステップでは、コマンドにplaceフォルダ <NODE> を使用しています。指定されたノードのタイプに特有のものはすべて含まれます。
ノードのアップグレードは2段階のプロセスで行います:
・VPS上のバイナリと~/.nym/<NODE>/<YOUR_ID>/config/config.tomlの更新
・mixnetスマートコントラクトのノード情報を更新する。これはmixnet explorer上に存在する情報です。
ステップ1:バイナリのアップグレード
以下の手順に従って、mix nodeのバイナリをアップグレードし、設定ファイルを更新してください:
・mix nodeプロセスを一時停止する。
・既存のバイナリを最新のバイナリ(自分でコンパイルするか、リリースページから取得できます)に置き換えます。
・最初に使ったのと同じ値でinitを再実行する。これは設定ファイルを更新するだけで、既存のキーを上書きすることはありません。
・新しいバイナリでmix nodeプロセスを再起動します。
Network Requestesterの場合、次のステップはMix NodeとGatewayの場合のみである。
ステップ2:スマートコントラクトのノード情報を更新する
以下の手順に従って、Nym APIから公開されている<NODE>の情報と、mixnet explorerに表示される情報を更新してください。
この作業は、Desktop Wallet を使ってグラフィカルに行うことも、CLI を使って行うこともできます。
デスクトップウォレットによるノード情報の更新
・Bondingページに移動し、右上隅にあるNode Settingsリンクをクリックします:
Node Settingsページのフィールドを更新し、Submit changes to blockchainをクリックします。
CLIによるノード情報の更新
CLI経由で<NODE>をボンディングしたい場合は、Nym CLIドキュメントの該当セクションを参照してください。
Network Requesterをv1.1.9からv1.1.10にアップグレードする
以前のバージョンのnetwork-requesterでは、機能させるためにnym-clientを一緒に実行する必要がありました。v1.1.10では、network-requesterのバイナリにnymクライアントが組み込まれ、スタンドアロンで動作するようになりました。
nym-connect で登録された既存の network-requestester を動かしている場合、アップグレードするには古いキーを新しい network-requestester の設定に移す必要があります。スムーズな移行を確実にするため、以下の指示に注意深く従うことをお勧めします。
ーーーーーーーーーー省略ーーーーーーーーーー
ファイアウォールの設定
これで<NODE>はトラフィックを受け取る準備ができましたが、サーバーはそうではないかもしれません。以下のコマンドで ufw を使ってファイアウォールを設定することができます。
最後に、<NODE>のp2pポート、ssh用ポート、verloc用ポート、計測ping用ポートを開く:
ファイアウォールのステータスを確認する:
ノードのポート構成に関する詳細は、以下のポート参照表をご確認ください。
VPSセットアップと自動化
nohup、tmux、systemdを使ったノードの自動化
完全に必要というわけではないが、システム起動時にmix nodeが自動的に起動するようにしておくと便利だ。
nohup
nohupは、HUPまたは'hangup'シグナルを無視するようにターミナルに指示するコマンドです。これにより、セッションを終了してもノードプロセスが終了しないようになります。
tmux
1つの方法は、現在のVPSターミナルの上でtmuxシェルを使用することです。Tmuxはターミナルのマルチプレクサで、1つのターミナルから複数のターミナルウィンドウやペインを作成できます。tmuxで開始されたプロセスは、指定されたtmuxウィンドウが終了していない限り、ターミナルを閉じた後も実行され続けます。
tmuxを取得するには、以下のコマンドを使用する。
あなたの環境下でうまくいかなかった場合は、バージョン管理からtmuxをビルドする方法を参照してほしい。
tmuxを動かす
VPSにtmuxをインストールしたときに、ターミナルを切り離して<NODE>をVPS上で動作させることができるMix Nodeをtmux上で動作させましょう。
・<NODE>を一時停止する。
・コマンドでtmuxを起動します。
・tmuxターミナルは同じ作業ディレクトリで開き、レイアウトをtmuxのデフォルトレイアウトに変更する。
・コマンドで<NODE>を再び起動する:
・これで、tmuxウィンドウを閉じなくても、ターミナル全体を閉じれば、<NODE>(およびtmuxで実行中の他のプロセス)はアクティブなままになります。
・次回からはターミナルを起動し、VPSにsshでログインして以下のコマンドを実行すれば、以前のセッションに戻ることができます:
・tmuxのキーバインドオプションを見るには、ctrl+bを押し、1秒後に?
systemed
そのためのsystemdサービスファイルは:
For Mix Nodes
・上記のファイルを /etc/systemd/system/nym-mixnode.service に置きます。
For Gateway、Network Requester、 Validaor
ーーーーーーー省略ーーーーーーー
Nym Mixnetノードの場合は以下の手順
ExecStartの<PATH>を<NODE>バイナリ(nym-mixnode, nym-gateway または nym-network-requester)を指すように変更し、<USER>を実行しているユーザに変更します。
サーバ上の$HOMEディレクトリにnymをビルドし、ユーザ名がjetpantherの場合、nym mixnodeの起動コマンドは次のようになります:
ExecStart=/home/jetpanther/nym/target/release/nym-mixnode run --id <YOUR_ID>.
基本的には、/path/to/nym-mixnode run --id whatever-your-node-id-is のようにします。
そして:
ノードを起動する:
これにより、システム起動時にノードが起動するようになります。マシンを再起動すると、ノードは自動的に復帰します。
以下を実行すると、ノードのシステムログをモニターできます:
または、以下を実行することによってステータスをチェックする:
service <NODE> stop や service <NODE> restart を実行することもできます。
注: systemd スクリプトを有効にした後に変更を加える場合は、systemd スクリプトを実行する必要があります:
これで、オペレーティングシステムは、サービスコンフィギュレーションをリロードしても問題ないことを知ることができる。
ulimitの設定
Linuxマシンは、ユーザーが開くことのできるファイルの数を制限している。これはulimitと呼ばれる。
ulimitはほとんどのシステムでデフォルトで1024です。mix nodeは他のノードと多くの接続を行ったり、受け取ったりするので、もっと高く設定する必要があります。
もし以下のようなエラーが表示された場合は
これは、オペレーティングシステムがネットワーク接続を妨げていることを意味する。
systemdサービスファイルでulimitを設定
<NODE> 変数を nym-mixnode, nym-gateway または nym-network-requester に置き換えてください。
ulimitの設定はNym Mix Nodeのメンテナンスにのみ関係します。
以下で<NODE>のulimitのクエリを送信する:
以下のようなハードリミットとソフトリミットが返ってくる:
出力が上記と同じであれば、ノードはulimit関連の問題に遭遇することはありません。
しかし、どちらかの値が1024の場合は、systemdサービスファイルを使ってリミットを上げる必要があります。以下を追加してください:
デーモン(daemon)をリロードする:
または、システム全体でulimitを設定するためにrootとして実行する:
マシンを再起動し、ノードを再起動する。戻ってきたら:
リミットが65535に変更されていることを確認してください。
non-systemdベースのディストリビューションで ulimit を設定する
Mix Nodeのオートメーションにtmuxオプションを選択した場合は、以下を実行してulimitリストを参照してください:
以下のコマンドを実行することでも変更できる:
またはetc/security/confを編集し、以下を追加する:
その後、サーバーを再起動し、Mix Nodeを再起動してください。
ノードの移動
ーーーーーーーーーーーー省略ーーーーーーーーーーー
バーチャルIPとGoogle & AWS経由のホスティング
ーーーーーーーーーーーー省略ーーーーーーーーーーー
Nym API(以前の”Validator API”)のエンドポイント
数多くのAPIエンドポイントが、Nym API(以前は「Validator API」)のSwagger Documentationに文書化されている。そこでは、ブラウザから様々なリクエストを試したり、APIからのレスポンスをダウンロードしたりすることもできる。Swaggerでは実行中のコマンドも表示されるので、必要に応じてアプリやCLIから実行することもできる。
Mix Node報酬推定APIエンドポイント
報酬推定APIエンドポイントにより、Mix Nodeオペレーターは特定のMIX_IDでNym Mix Nodeを実行することで得られる報酬を推定することができます。
<MIX_ID>は、Network Explorerの "MIX ID " 欄に表示されます。
エンドポイントは、Mix Nodeを経由するトラフィック量、Mix Nodeのパフォーマンスの質、ネットワーク内のMix Nodeに対する全体的な需要などの要因に基づいて、潜在的な収益の見積もりを提供できるため、Mix Nodeオペレータにとって特に一般的な情報となります。この情報は、Mix NodeオペレータがMix Nodeを実行するかどうかを決定する際や、最大の収益性を得るためにMix Nodeの運用を最適化する際に役立ちます。
このAPIエンドポイントを使用すると、報酬推定に関する情報が返されます:
クエリーのレスポンスは以下の通り:
価値の単位はuNYMである。
estimated_total_node_reward - 特定のMix Nodeが現在のエポック中に受け取ることができる報酬の総額の推定値。この値は、ネットワークの現在のステータス、ネットワークで現在アクティブなMix Nodeの数、Mix Nodeによって処理されているネットワークトラフィックの量など、多くの要因に基づいてNym Validatorによって計算されます
estimated_operator_reward - 特定のMix Nodeオペレーターが受け取ることが期待できる報酬額の推定値。この値は、Mix Nodeによって処理されるトラフィックの量、Mix Nodeによって提供されるサービスの品質、ネットワークにおけるオペレーターのステークなど、多くの要因に基づいてNym Validatorによって計算されます。
estimated_delegators_reward - Mix Nodeのdelegatorが個別に受け取ることができる報酬額の見積もり。この値は、Mix Nodeによって処理されるトラフィック量、Mix Nodeによって提供されるサービスの品質、ネットワークにおけるデリゲーターのステークなど、多くの要因に基づいてNym Validatorによって計算されます。
estimated_node_profit - 特定のMix Nodeオペレーターが得られると予想される利益の見積もり。この値は、現在のエポックのestimated_operator_rewardからMix Nodeオペレータのoperating_costsを差し引くことで計算されます。
estimated_operator_cost - 特定のMix Nodeオペレータが参加するために発生すると予想される総コストの見積もり。この値はNym Validatorによって、サーバーホスティング料金などのMix Nodeの運営コストや、Mix Nodeの運営に関連するその他の費用など、多くの要素に基づいて計算されます。
Validator: HTTPS 用の nginx のインストールと設定
ーーーーーーーーーーーー省略ーーーーーーーーーーー
Ports
<NODE>固有のポート設定はすべて$HOME/.nym/<NODE>/<YOUR_ID>/config/config.tomlにあります。ポート設定を編集した場合は、クライアントとノードのプロセスを再起動することを忘れないでください。
Mix Node ポート参照
Gateway,Network Requester,Validator port reference
ーーーーーーーーーーーー省略ーーーーーーーーーーー
7.トラブルシューティング
バイナリ構築の問題
GitHubのアーカイブファイルからビルドしようとしているのですが、ビルドに失敗します。
GitHubは自動的にNymリポジトリの.zipファイルやtar.gzファイルをリリースに含めます。これらを解凍してビルドすることはできない:
なぜこのようなことが起こるのでしょうか?
後でデバッグしやすくするために、バイナリに Git のコミットハッシュと Git タグを自動的に含めるスクリプトを用意しています。.zipをダウンロードしてそこからビルドしようとすると、Gitリポジトリではないので上記のようにビルドに失敗します。
どうすればいいのか?
・gitリポジトリを作成したいディレクトリでターミナルを開きます。
・初めてNymリポジトリを取得する場合は、以下のコマンドを実行します:
・指示に従ってプラットフォームを構築する
・アップグレードするには、ノードを一時停止し、同じターミナルウィンドウでgit pullを実行し、アップグレードの指示に従ってノードを再起動します。
一般的なノード設定
秘密鍵や公開鍵、設定はどこで確認できますか?
すべてのconfigファイルとkeysファイルは、initプロセスで選択したidにちなんだディレクトリに保存され、以下のPATHにあります:$HOME/.nym/<NODE_TYPE>/<NODE_ID>ここで$HOMEは、ノードまたはクライアントを起動したユーザー(この場合は現在のユーザー)のホームディレクトリです。
各ノードのディレクトリ構造はおおよそ以下のようになる:
public_sphinx.pem keyをcatすると、Nymのダッシュボードに表示される公開鍵とは異なるものが出力されます。その理由は、.pemファイルはbase64でエンコードされていますが、ウェブ上ではbase58でエンコードされているからです。鍵が違って見えても混乱しないでください。エンコーディングが違うだけで、同じ鍵です :)
Mix Nodes
ノードが稼働し、トラフィックをミキシングしていることを確認するにはどうすればよいですか?
まず、Nym Network Explorersの”Mixnodes”セクションを確認してください:
自分のidentity keyキーを入力して自分のノードを見つけます。Mixnode statsとRouting scoreセクションの内容を確認してください。
現在、Nodes Guruによって作成された2つのcommunity explorersがあります:
・メインネット
・Sandboxテストネット
すべてのexplorerに関するNyxチェーンのレジストリエントリを含むディレクトリはこちらです。
より詳細な情報が必要な場合、またはあなたのノードが選択したexplorerに表示されず、再確認したい場合は、ノードが適切に設定されているかどうかを確認する方法の例をいくつか紹介します。
VPSから確認する
追加の詳細は、VPS に接続した後、さまざまな方法で取得できます:
ssによるソケット統計
このコマンドはESTABを含む多くのデータを返すはずである。このコマンドはすべてのunixベースのシステムで動作するはずである。
lsofで開いているファイルと依存しているプロセスをリストアップする。
このコマンドは次のようなものを返すはずだ:
journalctl で systemd のジャーナルをクエリする
nym-mixnode.serviceファイルを作成している場合(つまりsystemd経由でMix Nodeを動かしている場合)、このコマンドはこれまでにミキシングしたパケット数を表示し、以下のようなメッセージのリストを返すはずだ:
必要に応じて、コマンドの最後に|tailを追加して、新しいエントリーをリアルタイムで監視することもできる。
ビルド情報
build-infoコマンドは、--versionコマンドと同じように、コミットハッシュ、rustバージョン、バイナリバージョンなどのビルド情報を出力する。しかし、--output=json フラグを指定することで、出力全体を json 形式にし、解析が桁違いに簡単になります。
たとえば ./target/debug/nym-network-requester --no-banner build-info --output json は以下のように返します:
ローカルマシンからのチェック
nmapでポートをスキャンする:
Mix Nodeが正しく設定されていれば、このような出力が出るはずです:
オンラインノードにクエリを実行:
現在オンラインになっているノードのリストを返します。
上記のコマンドの nym-mixnodes を nym-gateways に置き換えることで Gateways をクエリでき、validator を sandbox-validator に置き換えることで Sandbox testnet 上の Mix Nodes と Gateway をクエリできます。
ネットワークAPIで確認
現在、ネットワークの測定テストを返すAPIを設定しています。あなたのMix Nodeに関する情報を得るために、reportとhistoryの2つのエンドポイントがあります。詳しくは Mixnodes metrics documentation をご覧ください。
私のNodeがパケットをミックスしないのはなぜですか?
それでもダッシュボードにノードが表示されない場合、またはノードがパケットをミックスしていないと宣言している場合、いくつかの問題が考えられます:
ホストマシンのファイアウォールが適切に設定されていない。手順(ファイヤーウォールの設定)を確認してください。
ノードのbonding時に間違った情報を入力した。
IPv6をサポートしていないVPSからMix Nodeを実行している。
NATの後ろにあるローカルマシンからMix Nodeを実行する際に--announce-hostフラグを使用していない。
NATの後ろでローカルマシンからMix Nodeを実行している時に、ルーターのファイアウォールを設定していないか、IPv6をサポートしていない。
Mix Nodeが全く動作していない、終了/停止した、またはノードを永続化せずにセッションを終了した。手順を確認してください(6.メンテナンス)。
注意:Mix Nodeは他のノードと協力し、トラフィックをルーティングするためにIPv4とIPv6の両方をサポートしている必要があります。これはノードオペレータの間で見られる多くのエラーの背景にある一般的な理由ですので、お使いのVPSがこれを実行できるかどうかをプロバイダに確認してください!
誤ったbonding情報
Web walletインターフェースでMix Nodeにbondingする際に正しい情報を提供したかを確認してください。疑問がある場合は、ノードのbondingを解除し、再度bondingを行ってください!
すべてのdelegated stakeは、un-bonding時に失われます!しかし、delegation が効力を発揮するためには、そもそもMix Nodeが稼動していなければならない。
announce-host flagがない
AWSやGoogle Cloudのような特定のクラウドプロバイダーでは、ファイアウォールの追加設定を行い、--hostにlocal ip、--announce-hostにMix Nodeホストのpublic ipを指定する必要があります。
この2つの違いが不明な場合は、VPSプロバイダのヘルプデスクにお問い合わせください。
IPv6接続がない
お使いのVPSがIPv6接続が可能なプロバイダーであることを確認してください。
ホストの全てのIPアドレスを取得するには、以下のコマンドをお試しください:
あなたのlocal ipアドレスが返ってきます
ホストのすべてのIPアドレスを返します。この出力は以下のようになるはずです:
最初のipv4は、--announce-hostフラグに使用するpublic ipです。
2番目のipv4は、--hostフラグに使うlocal ipである。
3番目の出力は、あなたのマシンがipv6を利用できるかどうかを確認するものである。
固定IPアドレスのない、NATの背後にあるローカルマシンでの実行
ローカルマシンでMix Nodeを使いたい場合、ISPはIPv6に対応していなければなりません。悲しいことに、2020年現在、ほとんどのISPはIPv6に対応しておらず、ISPからデフォルトでIPv6アドレスを取得することはできません。通常、IPv6アドレスは追加の有料サービスか、そもそも提供していないだけなのだ。
IPv6を始める前に、ここで、または上のセクション(”IPv6接続がない”パート。検索してください)で説明したコマンドを実行して、IPv6があるかどうか確認してください。もしそうでなければ、この制限のためにどんなパケットもミックスできないノードを走らせて時間を無駄にする必要はない。ISPに電話してIPv6を要求してください!誰にでもたくさんある!
すべてがうまくいき、IPv6が使えるようになったら、Mix Nodeを--announce-hostという追加フラグでinitする必要があります。また、IPv4アドレスが変わるたびにconfig.tomlファイルを編集する必要があります。上記のセクション(”IPv6接続がない”パート。検索してください))でIPv4を確認してください。
ポート1789とIPv6サポートへのトラフィックの出入りを許可するために、ルーターの追加設定も必要になるかもしれません。
以下は、Mix Nodeコンフィグを作成するinitコマンドのサンプルです。
--host 0.0.0.0は、ローカルマシンのIPv4アドレスが変更されても、毎回動作するはずです。例えば、月曜日にルーターがあなたのマシンに192.168.0.13のアドレスを与え、水曜日にDHCPリースが終了して192.168.0.14が割り当てられる。0.0.0.0を使えば、ルーターのコンフィギュレーションで固定IPを設定しなくても、このような事態は避けられるはずです。
現在のIPv4アドレスは、MacOSやLinuxを使っている場合はcurl ipinfo.ioを使うか、whatsmyipサイトにアクセスすることで取得できる。それをコピーして--anounce-hostアドレスとして使ってください。
あなたのノードが本当にミキシングされているか確認してください。我々はローカルで動作しているオペレータのセットアップを改善することを目指していますが、NATの裏側にある自宅からこれをセットアップするには少し忍耐が必要かもしれません。
セッション終了時にノードプロセスを誤って終了させてしまう
現在のターミナルセッションを終了するとき、Mix Nodeプロセスを終了しないようにする必要があります!sshセッションを終了した後でも持続させる方法はいくつかありますが、一番簡単なのはtmuxやnohupを使うことで、もっとエレガントなのはsystemdを使ってノードを動かすことです。自動化のマニュアルはこちら(6.メンテナンス)。
よくあるエラーと警告
ノードのログにあるERRORやWARNメッセージのほとんどは良性のものです - ノードが起動以来X個のパケットをミックスして出力している限り!(Xは> 0かつ時間と共に増えなければならない)、そのノードはパケットをミキシングしています。確かめたい場合は、Nymダッシュボードか、上記の「ノードが稼働していてトラフィックをミキシングしていることを確認するにはどうすればよいですか?」を確認してください。
より具体的なエラーや警告については、以下で説明します。
tokio runtime worker error
以下のようなエラーに遭遇した場合:
その場合、起動時に--announce-host <PUBLIC_IP>と--host <LOCAL_IP>を指定する必要がある。この問題は上記で説明した。
1789以外のポートを使うことはできますか?
はい!必要なことは以下の通りです:
Mix Nodeに1337ポートを使いたい場合、新しいポートを開いて(古いポートは閉じて)ください:
そしてMix Nodeの設定を編集する。
すでに稼働しているノードのポートを変更したい場合は、設定ファイルを編集する前にプロセスを停止する必要があります。
設定ファイルは~/.nym/mixnodes/<YOUR_ID>/config/config.tomlにあります。
例えば、<YOUR_ID>がalice-nodeに選ばれたとします:
config.tomlファイルの anounce_address と listening_address を編集します。IPアドレスの後の:1789(デフォルトのポート)を:1337(新しいポート)に置き換えるだけだ。
最後に、ノードを再起動してください。ノードを起動した直後に、Mix Nodeがconfig.tomlファイルで変更したポートを使用していることを確認できるはずです。
verlocとは何ですか?また、それを実装するためにMix Nodeを設定する必要がありますか?
verlocとはverifiable locationの略です。Mix NodeとGatewayはお互いに光速の距離を測定し、どれだけ離れているかを検証します。後のリリースでは、これによってアルゴリズム的にノードの位置をフェイク不可能で信頼できる方法で検証できるようになります。
これを実装するために、ノードに追加の設定をする必要はなく、これはバージョン0.10.1以降、mixnetのバックグラウンドで実行されるパッシブなプロセスです。
Gateways & Network Requesters
ーーーーーーー省略ーーーーーーー
どこでより多くのヘルプを得ることができますか?
最も早い方法は、私たちの誰かに連絡するか、コミュニティからヘルプを得ることです。Telegram Node Setup Help Chatにアクセスするか、私たちのDiscordに参加してください。
より技術的な質問がある場合は、他のビルダーやNymコアチームメンバーに会えるMatrix core community channelに参加してください。
FAQ
8.Mix Nodes
mix nodeの報酬は何で決まるのですか?
mix nodeが最大の報酬を得るために必要なstakeを、mix node saturation pointと呼びます。これは、staking supply(すべての循環サプライ+ロック解除トークンの一部)から計算されます。ステーキングの目標レベルは、staking supplyの50%がmix nodesにロックされていることです。
node stake saturation point(Nsat、飽和点)は、目標staking supply ➗(アクティブ セット内の)ノードの数によって値が決まります。
このデザインにより、ノードはdelegation stakingによって同じサイズのstake(評価)を目指すと同時に、ノードあたりのstakeトークンが高いほど報酬が悪化するため、stakingの分散も確保されます。逆に、より多くのmix nodesがアクティブであればあるほど、Nsatは低くなります。均衡は、stakeトークンがアクティブなmix nodes全体に均等にdelegateされるときに達成され、これがこのインセンティブシステムの基盤です。 より詳細な計算については、当社のブログ投稿「Nym Token Economics update」を読んでください。stakingに関する詳細な情報はこちらで確認できます。そして、delegationのためのmix nodeの選択方法に関する情報はこちらです。最後に、2023年7月のトークンエコノミクスのアップデートもご覧ください。
どのVPSプロバイダーがお勧めですか?
あなたが居住している司法管轄区と、どこでmix nodeを実行したいかを考慮してください。暗号通貨で支払いを行いたいかどうか、およびあなたのケースにおいて他の重要な事項は何ですか? 私たちは常に、インターネットの大部分をコントロールしている最も知られたVPSプロバイダーではなく、より小規模で分散化されたVPSプロバイダーを選ぶようオペレーターにお勧めしています。これに関していくつかの良いフィードバックを受けています:Linode、Ghandi、Flokinet、およびExoscale。ご自身で調査を行い、コミュニティと共有してください。
Sphinxパケットのサイズは?
サイズはこちらの設定で示されています(デフォルトはクライアントが使用するもので、他のものは研究目的であり、これを本番で使用しないでください。これにより匿名性が分断される可能性があります)。詳細はこちらで確認できます。
なぜmix nodeとgatewayは同じウォレットにbondできないのか?
スマートコントラクトの仕組み上、現時点では1ノード1アドレスにしています。
Nymのインフラを強化するために最も必要なノードと、報酬をもたらすノードはどれですか?
現時点では、報酬が与えられているのはmix nodeだけです。現在、entry gatewayおよびserviceの支払いに取り組んでいます。Gatewaysは特にインセンティブ不足により、現在は弱点となっています。Network Requesterのようなサービスは、プラットフォームの利用を開始するために明らかに最も必要なものであり、私たちはsmart contractを作成して、人々がmix nodeと同じようにそれらを宣伝できるようにしています。
mixnodesはホワイトリストに登録されていますか?
ホワイトリスト制(許可制)ではなく、誰でもmix nodeを運営可能です。純粋にノードの評価(self stake + delegations)とルーティングスコアに依存します。
英語ver.(翻訳元):