見出し画像

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で初期設定する必要がある。

バイナリを実行可能にするには、同じディレクトリでターミナルを開いて実行する:

chmod +x <BINARY_NAME>
# for example: chmod +x nym-mixnode

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

apt install pkg-config build-essential libssl-dev curl jq git

  • Arch/Manjaro: base-devel

pacman -S base-devel

  • Mac OS X: pkg-config , brew, openss1, protobuf, curl, git 以下のスクリプトを実行すると、Homebrewと上記の必要パッケージがインストールされます:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

  • Rust & cargo >= 1.66

Rust shell script installerを使用することをお勧めします。パッケージマネージャ(aptなど)からcargoをインストールするのは、パッケージ化されたバージョンが古すぎることが多いのでお勧めしません。
shell script installerをどうしても使いたくない場合は、Rust installation docs に多くのプラットフォーム向けの説明がある。

Nymバイナリのダウンロードと構築

以下のコマンドは、バイナリを nym/target/release ディレクトリにコンパイルする:


rustup update
git clone https://github.com/nymtech/nym.git
cd nym

git reset --hard # in case you made any changes on your branch
git pull # in case you've checked it out before

git checkout master # master branch has the latest release version: `develop` will most likely be incompatible with deployed public networks

cargo build --release # build your binaries with **mainnet** configuration

かなり多くのものが作られる。主要な稼働部分は以下の通りだ:

このリポジトリには、このプロセスではビルドされない Typescript アプリケーションも含まれています。これらのアプリケーションは、それぞれのドキュメントページの指示に従ってビルドすることができます。

GitHubの.zipや.tar.gzのアーカイブファイルからビルドすることはできません。Nymのビルドスクリプトはコンパイル時にビルドされたバイナリに現在のgitコミットハッシュを自動的に含めるため、アーカイブコード(Gitリポジトリではない)を使用するとビルドに失敗します。代わりにgit cloneを使ってgithubからコードをチェックしてください。


オペレーターガイド



4.Mixnet Nodeセットアップ

Nymのノードをセットアップするには、まずノードを動かすマシン(VPS)上にNymのプラットフォームを構築します。ノードはNymのウォレットにbondする必要があります。設定はここから。

このセクションには、以下のノードタイプのセットアップガイドが含まれています:


4.1準備段階

Nymのmixnodegatewaynetwork-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コマンドを実行します:

cd target/release

コマンドヘルプの表示

バイナリが正しくコンパイルされているかどうかは、次のようにして確認できる:

./nym-mixnode --help

利用可能なコマンドのリストを返してくれるはずだ。

Implementation of a Loopix-based Mixnode
Usage: nym-mixnode [OPTIONS] <COMMAND>
Commands:
describe Describe your mixnode and tell people why they should delegate state to you
init Initialise the mixnode
run Starts the mixnode
sign Sign text to prove ownership of this mixnode
node-details Show details of this mixnode
build-info Show build information of this binary
completions Generate shell completions
generate-fig-spec Generate Fig specification
help Print this message or the help of the given subcommand(s)
Options:
-c, --config-env-file <CONFIG_ENV_FILE> Path pointing to an env file that configures the mixnode
--no-banner Flag used for disabling the printed banner in tty
-h, --help Print help
-V, --version Print version

コンソール出力

また、個々のコマンドに必要な様々な引数を確認することもできる:

./nym-mixnode <COMMAND> --help

起動時に--no-bannerフラグを付けると、tty環境で実行してもNymのバナーが表示されなくなる。


mix nodeの初期設定

ノードを初期設定するために利用可能な設定オプションを確認するには、以下を使用します:

./nym-mixnode init --help

利用可能なすべてのコマンドのリストを返すはずだ。

Initialise the mixnode

Usage: nym-mixnode init [OPTIONS] --id <ID> --host <HOST>

Options:
--id <ID> Id of the mixnode we want to create config for
--host <HOST> The host on which the mixnode will be running
--mix-port <MIX_PORT> The port on which the mixnode will be listening for mix
packets
--verloc-port <VERLOC_PORT> The port on which the mixnode will be listening for verloc
packets
--http-api-port <HTTP_API_PORT> The port on which the mixnode will be listening for http
requests
--nym-apis <NYM_APIS> Comma separated list of nym-api endpoints of the validators
-o, --output <OUTPUT> [default: text] [possible values: text, json]
-h, --help Print help

コンソール出力

以下のコマンドでmix nodeを起動します。--idの値をmix nodeに与えたい名前に置き換えてください。パケットをミックスするためには、--hostはインターネット上でパブリックにルーティング可能でなければならず、IPv4アドレスでもIPv6アドレスでもかまいません。$(curl -4 https://ifconfig.me) コマンドは、外部サービスを使って自動的にあなたのIPを返します。IPアドレスを手動で入力する場合は、ポート情報なしで入力してください。

./nym-mixnode init --id <NODE_NAME> --host $(curl -4 https://ifconfig.me)

.nym-mixnode init --id <YOUR_ID> --host $(curl -4 https://ifconfig.me) --wallet-address <WALLET_ADDRESS>
Initialising mixnode <YOUR_ID>...
Saved mixnet identity and sphinx keypairs
2023-06-04T08:20:32.862Z INFO nym_config > Configuration file will be saved to "/home/<USER>/.nym/mixnodes/<YOUR_ID>/config/config.toml"
Saved configuration file to "/home/<USER>/.nym/mixnodes/<YOUR_ID>/config/config.toml"
Mixnode configuration completed.
_ __ _ _ _ __ ___ | '_ \| | | | '_ \ _ \ | | | | |_| | | | | | | |_| |_|\__, |_| |_| |_| |___/ (nym-mixnode - version v1.1.29)
Identity Key: DhmUYedPZvhP9MMwXdNpPaqCxxTQgjAg78s2nqtTTiNF","version":"v1.1.29"},"cost_params
Sphinx Key: CfZSy1jRfrfiVi9JYexjFWPqWkKoY72t7NdpWaq37K8Z
Host: 62.240.134.189 (bind address: 62.240.134.189)
Version: v1.1.29
Mix Port: 1789, Verloc port: 1790, Http Port: 8000

コンソール出力

initコマンドは既存のmix node keyの破棄を拒否する。

init プロセス中に http_apiverlocmixnode のポートをデフォルト設定から変更するオプションがあります。将来的に変更したい場合は、~/.nym/mixnodes/<YOUR_ID>/にある初期化プロセスで作成されるconfig.tomlファイルの値を編集してください。


Mix nodeにbondingする


注意🚨:v1.1.3から、mixnodeのunbondを行うと、mixnetから離脱することになり、すべてのdelegationを(永久に)失うことになります。同じIDキーで再度参加することは可能ですが、その場合はdelegationがない状態からスタートすることになります。

デスクトップウォレット経由でbond(推奨)

mix nodeはデスクトップウォレットからボンドすることができます。

・ウォレットを開き、Bondページに行き、ノードタイプMixnodeを選択し、ノードの詳細を入力します。Nextを押します。

AmountOperating costProfit marginを入力し、Nextを押します。

gatewaysignコマンドを実行するよう求められます。-contract-msgの値として長い署名をコピー&ペーストして実行します。

./nym-mixnode sign --id <YOUR_ID> --contract-msg <PAYLOAD_GENERATED_BY_THE_WALLET>

こんな感じになるだろう:

./nym-mixnode sign --id upgrade_test --contract-msg 22Z9wt4PyiBCbMiErxj5bBa4VCCFsjNawZ1KnLyMeV9pMUQGyksRVANbXHjWndMUaXNRnAuEVJW6UCxpRJwZe788hDt4sicsrv7iAXRajEq19cWPVybbUqgeo76wbXbCbRdg1FvVKgYZGZZp8D72p5zWhKSBRD44qgCrqzfV1SkiFEhsvcLUvZATdLRocAUL75KmWivyRiQjCE1XYEWyRH9yvRYn4TymWwrKVDtEB63zhHjATN4QEi2E5qSrSbBcmmqatXsKakbgSbQoLsYygcHx7tkwbQ2HDYzeiKP1t16Rhcjn6Ftc2FuXUNnTcibk2LQ1hiqu3FAq31bHUbzn2wiaPfm4RgqTwGM4eqnjBofwR3251wQSxbYwKUYwGsrkweRcoPuEaovApR9R19oJ7GVG5BrKmFwZWX3XFVuECe8vt1x9MY7DbQ3xhAapsHhThUmzN6JPPU4qbQ3PdMt3YVWy6oRhap97ma2dPMBaidebfgLJizpRU3Yu7mtb6E8vgi5Xnehrgtd35gitoJqJUY5sB1p6TDPd6vk3MVU1zqusrke7Lvrud4xKfCLqp672Bj9eGb2wPwow643CpHuMkhigfSWsv9jDq13d75EGTEiprC2UmWTzCJWHrDH7ka68DZJ5XXAW67DBewu7KUm1jrJkNs55vS83SWwm5RjzQLVhscdtCH1Bamec6uZoFBNVzjs21o7ax2WHDghJpGMxFi6dmdMCZpqn618t4

_ __ _ _ _ __ ___
| '_ \| | | | '_ \ _ \
| | | | |_| | | | | | |
|_| |_|\__, |_| |_| |_|
|___/

(nym-mixnode - version v1.1.29)


>>> attempting to sign 22Z9wt4PyiBCbMiErxj5bBa4VCCFsjNawZ1KnLyMeV9pMUQGyksRVANbXHjWndMUaXNRnAuEVJW6UCxpRJwZe788hDt4sicsrv7iAXRajEq19cWPVybbUqgeo76wbXbCbRdg1FvVKgYZGZZp8D72p5zWhKSBRD44qgCrqzfV1SkiFEhsvcLUvZATdLRocAUL75KmWivyRiQjCE1XYEWyRH9yvRYn4TymWwrKVDtEB63zhHjATN4QEi2E5qSrSbBcmmqatXsKakbgSbQoLsYygcHx7tkwbQ2HDYzeiKP1t16Rhcjn6Ftc2FuXUNnTcibk2LQ1hiqu3FAq31bHUbzn2wiaPfm4RgqTwGM4eqnjBofwR3251wQSxbYwKUYwGsrkweRcoPuEaovApR9R19oJ7GVG5BrKmFwZWX3XFVuECe8vt1x9MY7DbQ3xhAapsHhThUmzN6JPPU4qbQ3PdMt3YVWy6oRhap97ma2dPMBaidebfgLJizpRU3Yu7mtb6E8vgi5Xnehrgtd35gitoJqJUY5sB1p6TDPd6vk3MVU1zqusrke7Lvrud4xKfCLqp672Bj9eGb2wPwow643CpHuMkhigfSWsv9jDq13d75EGTEiprC2UmWTzCJWHrDH7ka68DZJ5XXAW67DBewu7KUm1jrJkNs55vS83SWwm5RjzQLVhscdtCH1Bamec6uZoFBNVzjs21o7ax2WHDghJpGMxFi6dmdMCZpqn618t4
>>> decoding the message...
>>> message to sign: {"nonce":0,"algorithm":"ed25519","message_type":"mixnode-bonding","content":{"sender":"n1eufxdlgt0puwrwptgjfqne8pj4nhy2u5ft62uq","proxy":null,"funds":[{"denom":"unym","amount":"100000000"}],"data":{"mix_node":{"host":"62.240.134.189","mix_port":1789,"verloc_port":1790,"http_api_port":8000,"sphinx_key":"CfZSy1jRfrfiVi9JYexjFWPqWkKoY72t7NdpWaq37K8Z","identity_key":"DhmUYedPZvhP9MMwXdNpPaqCxxTQgjAg78s2nqtTTiNF","version":"1.1.14"},"cost_params":{"profit_margin_percent":"0.1","interval_operating_cost":{"denom":"unym","amount":"40000000"}}}}}

コンソール出力

出来上がった署名をコピーする:

>>> The base58-encoded signature is:
2GbKcZVKFdpi3sR9xoJWzwPuGdj3bvd7yDtDYVoKfbTWdpjqAeU8KS5bSftD5giVLJC3gZiCg2kmEjNG5jkdjKUt

そしてそれを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 を入力すると以下のように応答します:

{"binary_name":"nym-network-requester","build_timestamp":"2023-07-24T15:38:37.00657Z","build_version":"1.1.23","commit_sha":"c70149400206dce24cf20babb1e64f22202672dd","commit_timestamp":"2023-07-24T14:45:45Z","commit_branch":"feature/simplify-cli-parsing","rustc_version":"1.71.0","rustc_channel":"stable","cargo_profile":"debug"}

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 を使ってファイアウォールを設定することができます。

# check if you have ufw installed
ufw version

# if it is not installed, install with
sudo apt install ufw -y

# enable ufw
sudo ufw enable

# check the status of the firewall
sudo ufw status

最後に、<NODE>のp2pポート、ssh用ポート、verloc用ポート、計測ping用ポートを開く:

# for mix node, gateway and network requester
sudo ufw allow 1789,1790,8000,9000,9001,22/tcp

# In case of reverse proxy for the Gateway swagger page add:
sudo ufw allow 8080,80/443

# for validator
sudo ufw allow 1317,26656,26660,22,80,443/tcp

ファイアウォールのステータスを確認する:

sudo ufw status

ノードのポート構成に関する詳細は、以下のポート参照表をご確認ください。

VPSセットアップと自動化

nohup、tmux、systemdを使ったノードの自動化

完全に必要というわけではないが、システム起動時にmix nodeが自動的に起動するようにしておくと便利だ。

nohup

nohupは、HUPまたは'hangup'シグナルを無視するようにターミナルに指示するコマンドです。これにより、セッションを終了してもノードプロセスが終了しないようになります。

nohup ./<NODE> run --id <YOUR_ID> # where `<YOUR_ID>` is the id you set during the `init` command and <NODE> depends on which node you starting

tmux

1つの方法は、現在のVPSターミナルの上でtmuxシェルを使用することです。Tmuxはターミナルのマルチプレクサで、1つのターミナルから複数のターミナルウィンドウやペインを作成できます。tmuxで開始されたプロセスは、指定されたtmuxウィンドウが終了していない限り、ターミナルを閉じた後も実行され続けます。

tmuxを取得するには、以下のコマンドを使用する。

あなたの環境下でうまくいかなかった場合は、バージョン管理からtmuxをビルドする方法を参照してほしい。

tmuxを動かす

VPSにtmuxをインストールしたときに、ターミナルを切り離して<NODE>をVPS上で動作させることができるMix Nodeをtmux上で動作させましょう。

<NODE>を一時停止する。
・コマンドでtmuxを起動します。

tmux

・tmuxターミナルは同じ作業ディレクトリで開き、レイアウトをtmuxのデフォルトレイアウトに変更する。
・コマンドで<NODE>を再び起動する:

./<NODE> run --id <YOUR_ID>

・これで、tmuxウィンドウを閉じなくても、ターミナル全体を閉じれば、<NODE>(およびtmuxで実行中の他のプロセス)はアクティブなままになります。
・次回からはターミナルを起動し、VPSにsshでログインして以下のコマンドを実行すれば、以前のセッションに戻ることができます:

tmux attach-session

・tmuxのキーバインドオプションを見るには、ctrl+bを押し、1秒後に?

systemed

そのためのsystemdサービスファイルは:

For Mix Nodes

[Unit]
Description=Nym Mixnode <VERSION>
StartLimitInterval=350
StartLimitBurst=10
[Service]
User=<USER>
LimitNOFILE=65536
ExecStart=/home/<USER>/<PATH>/nym-mixnode run --id <YOUR_ID>
KillSignal=SIGINT
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target

・上記のファイルを /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 のようにします。

そして:

systemctl daemon-reload # to pickup the new unit file

# for Mix Node
systemctl enable nym-mixnode.service

# for Gateway
systemctl enable nym-gateway.service

ノードを起動する:

# for Mix Node
service nym-mixnode start

# for Gateway
service nym-gateway start

これにより、システム起動時にノードが起動するようになります。マシンを再起動すると、ノードは自動的に復帰します。

以下を実行すると、ノードのシステムログをモニターできます:

journalctl -f -u <NODE>.service

または、以下を実行することによってステータスをチェックする:

systemctl status <NODE>.service

service <NODE> stopservice <NODE> restart を実行することもできます。

注: systemd スクリプトを有効にした後に変更を加える場合は、systemd スクリプトを実行する必要があります:

systemctl daemon-reload

これで、オペレーティングシステムは、サービスコンフィギュレーションをリロードしても問題ないことを知ることができる。

ulimitの設定

Linuxマシンは、ユーザーが開くことのできるファイルの数を制限している。これはulimitと呼ばれる。

ulimitはほとんどのシステムでデフォルトで1024です。mix nodeは他のノードと多くの接続を行ったり、受け取ったりするので、もっと高く設定する必要があります。

もし以下のようなエラーが表示された場合は

Failed to accept incoming connection - Os { code: 24, kind: Other, message: "Too many open files" }

これは、オペレーティングシステムがネットワーク接続を妨げていることを意味する。


systemdサービスファイルでulimitを設定

<NODE> 変数を nym-mixnode, nym-gateway または nym-network-requester に置き換えてください。

ulimitの設定はNym Mix Nodeのメンテナンスにのみ関係します。

以下で<NODE>ulimitのクエリを送信する:

# for nym-mixnode, nym-gateway and nym-network-requester:
grep -i "open files" /proc/$(ps -A -o pid,cmd|grep <NODE> | grep -v grep |head -n 1 | awk '{print $1}')/limits

# for nyx validator:
grep -i "open files" /proc/$(ps -A -o pid,cmd|grep nymd | grep -v grep |head -n 1 | awk '{print $1}')/limits

以下のようなハードリミットとソフトリミットが返ってくる:

Max open files 65536 65536 files

出力が上記と同じであれば、ノードはulimit関連の問題に遭遇することはありません。

しかし、どちらかの値が1024の場合は、systemdサービスファイルを使ってリミットを上げる必要があります。以下を追加してください:

LimitNOFILE=65536

デーモン(daemon)をリロードする:

systemctl daemon-reload

または、システム全体でulimitを設定するためにrootとして実行する:

echo "DefaultLimitNOFILE=65535" >> /etc/systemd/system.conf

マシンを再起動し、ノードを再起動する。戻ってきたら:

# for nym-mixnode, nym-gateway and nym-network-requester:
cat /proc/$(pidof <NODE>)/limits | grep "Max open files"

# for validator
cat /proc/$(pidof nym-validator)/limits | grep "Max open files"

リミットが65535に変更されていることを確認してください。


non-systemdベースのディストリビューションで ulimit を設定する

Mix Nodeのオートメーションにtmuxオプションを選択した場合は、以下を実行してulimitリストを参照してください:

ulimit -a

# watch for the output line -n
-n: file descriptors 1024

以下のコマンドを実行することでも変更できる:

ulimit -u -n 4096

またはetc/security/confを編集し、以下を追加する:

# Example hard limit for max opened files
username hard nofile 4096

# Example soft limit for max opened files
username soft nofile 4096

その後、サーバーを再起動し、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エンドポイントを使用すると、報酬推定に関する情報が返されます:

/status/mixnode/<MIX_ID>/reward-estimation

クエリーのレスポンスは以下の通り:

"estimation": {
"total_node_reward": "942035.916721770541325331",
"operator": "161666.263307386408152071",
"delegates": "780369.65341438413317326",
"operating_cost": "54444.444444444444444443"
},

価値の単位は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ファイルをリリースに含めます。これらを解凍してビルドすることはできない:

process didn't exit successfully: `/build/nym/src/nym-0.12.1/target/release/build/nym-socks5-client-c1d0f76a8c7d7e9a/build-script-build` (exit status: 101)
--- stderr
thread 'main' panicked at 'failed to extract build metadata: could not find repository from '/build/nym/src/nym-0.12.1/clients/socks5'; class=Repository (6); code=NotFound (-3)', clients/socks5/build.rs:7:31
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed

なぜこのようなことが起こるのでしょうか?

後でデバッグしやすくするために、バイナリに Git のコミットハッシュと Git タグを自動的に含めるスクリプトを用意しています。.zipをダウンロードしてそこからビルドしようとすると、Gitリポジトリではないので上記のようにビルドに失敗します。

どうすればいいのか?

・gitリポジトリを作成したいディレクトリでターミナルを開きます。
・初めてNymリポジトリを取得する場合は、以下のコマンドを実行します:

git clone https://github.com/nymtech/nym.git

・指示に従ってプラットフォームを構築する
・アップグレードするには、ノードを一時停止し、同じターミナルウィンドウでgit pullを実行し、アップグレードの指示に従ってノードを再起動します。

一般的なノード設定

秘密鍵や公開鍵、設定はどこで確認できますか?

すべてのconfigファイルとkeysファイルは、initプロセスで選択したidにちなんだディレクトリに保存され、以下のPATHにあります:$HOME/.nym/<NODE_TYPE>/<NODE_ID>ここで$HOMEは、ノードまたはクライアントを起動したユーザー(この場合は現在のユーザー)のホームディレクトリです。

各ノードのディレクトリ構造はおおよそ以下のようになる:

bob@nym:~$ tree /home/nym/.nym/mixnodes/
/home/nym/.nym/mixnodes/
|-- nym010
| |-- config
| | `-- config.toml
| `-- data
| |-- private_identity.pem
| |-- private_sphinx.pem
| |-- public_identity.pem
| `-- public_sphinx.pem

public_sphinx.pem keycatすると、Nymのダッシュボードに表示される公開鍵とは異なるものが出力されます。その理由は、.pemファイルはbase64でエンコードされていますが、ウェブ上ではbase58でエンコードされているからです。鍵が違って見えても混乱しないでください。エンコーディングが違うだけで、同じ鍵です :)


Mix Nodes

ノードが稼働し、トラフィックをミキシングしていることを確認するにはどうすればよいですか?


まず、Nym Network Explorersの”Mixnodes”セクションを確認してください:

メインネット
Sandboxテストネット

自分のidentity keyキーを入力して自分のノードを見つけます。Mixnode statsRouting scoreセクションの内容を確認してください。

現在、Nodes Guruによって作成された2つのcommunity explorersがあります:

メインネット
Sandboxテストネット

すべてのexplorerに関するNyxチェーンのレジストリエントリを含むディレクトリはこちらです。

より詳細な情報が必要な場合、またはあなたのノードが選択したexplorerに表示されず、再確認したい場合は、ノードが適切に設定されているかどうかを確認する方法の例をいくつか紹介します。

VPSから確認する

追加の詳細は、VPS に接続した後、さまざまな方法で取得できます:

ssによるソケット統計

sudo ss -s -t | grep 1789 # if you have specified a different port in your Mix Node config, change accordingly

このコマンドはESTABを含む多くのデータを返すはずである。このコマンドはすべてのunixベースのシステムで動作するはずである。

lsofで開いているファイルと依存しているプロセスをリストアップする。

# check if lsof is installed:
lsof -v
# install if not installed
sudo apt install lsof
# run against nym-mix-node node port
sudo lsof -i TCP:1789 # if you have specified a different port in your mixnode config, change accordingly

このコマンドは次のようなものを返すはずだ:

nym-mixno 103349 root 53u IPv6 1333229972 0t0 TCP [2a03:b0c0:3:d0::ff3:f001]:57844->[2a01:4f9:c011:38ae::5]:1789 (ESTABLISHED)
nym-mixno 103349 root 54u IPv4 1333229973 0t0 TCP nym:57104->194.5.78.73:1789 (ESTABLISHED)
nym-mixno 103349 root 55u IPv4 1333229974 0t0 TCP nym:48130->static.236.109.119.168.clients.your-server.de:1789 (ESTABLISHED)
nym-mixno 103349 root 56u IPv4 1333229975 0t0 TCP nym:52548->vmi572614.contaboserver.net:1789 (ESTABLISHED)
nym-mixno 103349 root 57u IPv6 1333229976 0t0 TCP [2a03:b0c0:3:d0::ff3:f001]:43244->[2600:1f18:1031:2401:c04b:2f25:ca79:fef3]:1789 (ESTABLISHED)

journalctl で systemd のジャーナルをクエリする

sudo journalctl -u nym-mixnode -o cat | grep "Since startup mixed"

nym-mixnode.serviceファイルを作成している場合(つまりsystemd経由でMix Nodeを動かしている場合)、このコマンドはこれまでにミキシングしたパケット数を表示し、以下のようなメッセージのリストを返すはずだ:

2021-05-18T12:35:24.057Z INFO nym_mixnode::node::metrics > Since startup mixed 233639 packets!
2021-05-18T12:38:02.178Z INFO nym_mixnode::node::metrics > Since startup mixed 233739 packets!
2021-05-18T12:40:32.344Z INFO nym_mixnode::node::metrics > Since startup mixed 233837 packets!
2021-05-18T12:46:08.549Z INFO nym_mixnode::node::metrics > Since startup mixed 234081 packets!
2021-05-18T12:56:57.129Z INFO nym_mixnode::node::metrics > Since startup mixed 234491 packets!

必要に応じて、コマンドの最後に|tailを追加して、新しいエントリーをリアルタイムで監視することもできる。

ビルド情報

build-infoコマンドは、--versionコマンドと同じように、コミットハッシュ、rustバージョン、バイナリバージョンなどのビルド情報を出力する。しかし、--output=json フラグを指定することで、出力全体を json 形式にし、解析が桁違いに簡単になります。

たとえば ./target/debug/nym-network-requester --no-banner build-info --output json は以下のように返します:

{"binary_name":"nym-network-requester","build_timestamp":"2023-07-24T15:38:37.00657Z","build_version":"1.1.23","commit_sha":"c70149400206dce24cf20babb1e64f22202672dd","commit_timestamp":"2023-07-24T14:45:45Z","commit_branch":"feature/simplify-cli-parsing","rustc_version":"1.71.0","rustc_channel":"stable","cargo_profile":"debug"}

ローカルマシンからのチェック

nmapでポートをスキャンする:

nmap -p 1789 <IP ADDRESS> -Pn

Mix Nodeが正しく設定されていれば、このような出力が出るはずです:

bob@desktop:~$ nmap -p 1789 95.296.134.220 -Pn

Host is up (0.053s latency).

PORT STATE SERVICE
1789/tcp open hello

オンラインノードにクエリを実行:

curl --location --request GET 'https://validator.nymtech.net/api/v1/mixnodes/'

現在オンラインになっているノードのリストを返します。

上記のコマンドの nym-mixnodesnym-gateways に置き換えることで Gateways をクエリでき、validatorsandbox-validator に置き換えることで Sandbox testnet 上の Mix Nodes と Gateway をクエリできます。

ネットワークAPIで確認

現在、ネットワークの測定テストを返すAPIを設定しています。あなたのMix Nodeに関する情報を得るために、reporthistoryの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のような特定のクラウドプロバイダーでは、ファイアウォールの追加設定を行い、--hostlocal ip--announce-hostにMix Nodeホストのpublic ipを指定する必要があります。

この2つの違いが不明な場合は、VPSプロバイダのヘルプデスクにお問い合わせください。

IPv6接続がない


お使いのVPSがIPv6接続が可能なプロバイダーであることを確認してください。

ホストの全てのIPアドレスを取得するには、以下のコマンドをお試しください:

hostname -i

あなたのlocal ipアドレスが返ってきます

hostname -I

ホストのすべてのIPアドレスを返します。この出力は以下のようになるはずです:

bob@nym:~$ hostname -I
88.36.11.23 172.18.0.1 2a01:28:ca:102::1:641

  • 最初の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コマンドのサンプルです。

./nym-mixnode init --id <YOUR_ID> --host 0.0.0.0 --announce-host 85.160.12.13

  • --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セッションを終了した後でも持続させる方法はいくつかありますが、一番簡単なのはtmuxnohupを使うことで、もっとエレガントなのはsystemdを使ってノードを動かすことです。自動化のマニュアルはこちら(6.メンテナンス)。


よくあるエラーと警告

ノードのログにあるERRORWARNメッセージのほとんどは良性のものです - ノードが起動以来X個のパケットをミックスして出力している限り!(Xは> 0かつ時間と共に増えなければならない)、そのノードはパケットをミキシングしています。確かめたい場合は、Nymダッシュボードか、上記の「ノードが稼働していてトラフィックをミキシングしていることを確認するにはどうすればよいですか?」を確認してください。

より具体的なエラーや警告については、以下で説明します。


tokio runtime worker error


以下のようなエラーに遭遇した場合:

thread 'tokio-runtime-worker' panicked at 'Failed to create TCP listener: Os { code: 99, kind: AddrNotAvailable, message: "Cannot assign requested address" }'

その場合、起動時に--announce-host <PUBLIC_IP>--host <LOCAL_IP>を指定する必要がある。この問題は上記で説明した。

1789以外のポートを使うことはできますか?

はい!必要なことは以下の通りです:

Mix Nodeに1337ポートを使いたい場合、新しいポートを開いて(古いポートは閉じて)ください:

sudo ufw allow 1337
sudo ufw deny 1789

そしてMix Nodeの設定を編集する。

すでに稼働しているノードのポートを変更したい場合は、設定ファイルを編集する前にプロセスを停止する必要があります。

設定ファイルは~/.nym/mixnodes/<YOUR_ID>/config/config.tomlにあります。

例えば、<YOUR_ID>alice-nodeに選ばれたとします:

nano ~/.nym/mixnodes/alice-node/config/config.toml

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.(翻訳元):


この記事が気に入ったらサポートをしてみませんか?