BTC
ETH
HTX
SOL
BNB
View Market
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Ethereum 2.0 Pyrmont テストネットの誓約に参加してみませんか

ECN以太坊中国
特邀专栏作者
この記事は約20212文字で、全文を読むには約29分かかります
ピルモントのテストネットワーク誓約に参加する方法、Teku の記事。
AI要約
ピルモントのテストネットワーク誓約に参加する方法、Teku の記事。

ソース |someresat.medium.com

ソース |

注意: このガイドに従って Eth2 メインネットに接続しないでください。メインネットのガイドについては、「イーサリアム 2.0 メインネット プレッジ ティーチング (Ubuntu/Teku)」を参照してください。

ダッシュボード

  • このガイドには次の手順が含まれています。

  • 新たに実行中の Ubuntu サーバー インスタンスに接続し、安全に構成します

  • Ethereum 1.0 ノードを構成し、サービスとして実行する

  • Pyrmont バリデーターのアカウントキーを生成し、資産を預ける

  • Pyrmont バリデータ アカウント キーを Teku クライアントにインポートする

  • 最初のレベルのタイトル

思い出させる

思い出させる

このガイドに従って Eth2 メインネットに接続しないでください。メインネット固有のガイドについては、「イーサリアム 2.0 メインネット ステーキング チュートリアル (Ubuntu/Teku)」を参照してください。

最初のレベルのタイトル

謝辞と免責事項

このチュートリアルでは、インターネット上のさまざまな資料を参照しています。資料を提供してくださった寄稿者に感謝します。ConsenSys DiscordありがたいEthStaker#てくチャンネル と

Discord のチームメンバーによって提供されるヘルプとレビュー。

最初のレベルのタイトル

サポート

サポート

状態

状態

このチュートリアルを使用するには、イーサリアム、ETH、ステーキング、テストネット、Linux、およびメタマスクに関する背景知識が必要です。

  • このチュートリアルも、開始する前にインストールして実行する必要があります。Ubuntu サーバー v20.04 (LTS) amd64

  • または、ローカル コンピューター、ネットワーク、またはクラウド (AWS、Digital Ocean、Microsoft Azure など) にインストールされて実行されている新しい Ubuntu サーバー。ネットワークの分散化を改善するには、ローカル コンピューターを使用することをお勧めします。クラウド プロバイダーがダウンすると、このプロバイダーでホストされているすべてのノードがオフラインになります。MetaMask。オペレーティング システム (Mac、Windows、Linux など) とブラウザ (Brave、Safari、FireFox など) を搭載したコンピュータ。

最初のレベルのタイトル

このチュートリアルは Raspberry Pi ではテストしていません。試してみたい場合は、以下にリストされているソフトウェアを ARM バージョンに交換してください。動作は保証されません。

最初のレベルのタイトル

  • 必要とする

  • Ubuntuサーバーの使用例。 v20.04 (LTS) amd64 サーバー VM を使用しました

  • ハードウェア要件は大きなトピックです。一般的に: 比較的新しい CPU、8 GB の RAM (16 GB の方が良い)、少なくとも 1 TB のメモリを備えた SSD、安定したネットワーク (十分に速いダウンロード速度と毎月のデータ割り当て)、これらのパフォーマンスにより、誓約プロセスがより安全かつスムーズになります。 。

最初のレベルのタイトル

概要

このチュートリアルは非常に長いです。次の図はステーキングの手順を簡単に説明しています。黄色でマークされた部分がこの記事で説明する部分です。

  • プロセス全体は次のように概念化できます。

  • Eth1 ノードをセットアップし、Eth1 Göerli テスト ネットワークのデータを同期します。

  • バリデーターキーを生成し、データをデポジットします。

  • Teku クライアントを構成し、Eth1 ノード データを同期する

今すぐ始めましょう!

最初のレベルのタイトル

SSH ポートを使用して、Ubuntu サーバーに接続します。通常、Ubuntu ではデフォルトで root アカウントが無効になっていますが、一部のクラウド プロバイダーでは root アカウントを有効にすることができます。 root としてログインしている場合は、管理者権限を持つユーザー アカウントを再作成することをお勧めします。危険。

危険

# adduser

注: root としてログインしていない場合は、ステップ 1 に直接スキップできます。

パスワードを設定し、その他の情報を入力します。

# usermod -aG sudo

新しいユーザーを sudo グループに追加して、管理者権限を付与します。ユーザー名を使用するとき

ログインするとき、コマンドラインの前に sudo を入力すると、スーパーユーザー権限で操作を実行できます。オプション: root アカウントを使用している場合SSHキー

# rsync --archive --chown=: ~/.ssh /home/

Ubuntu インスタンスに接続するには、root アカウントの SSH キー データを使用して新しいアカウントに接続する必要があります。Ubuntuサーバーにログインします。

最初のレベルのタイトル

システムが最新のソフトウェアとセキュリティ設定に更新されていることを確認してください。

$ sudo apt update && sudo apt upgrade$ sudo apt dist-upgrade && sudo apt autoremove

$ sudo reboot

最初のレベルのタイトル

ステップ 2: サーバーを保護する

セキュリティは非常に重要です。ただし、この記事はセキュリティに関するガイドではないため、いくつかの基本的な設定のみが記載されています。

ファイアウォールを構成するUbuntu 20.04 サーバーはデフォルトを使用できますUFW ファイアウォール

サーバーへのトラフィックを制限しますが、最初に SSH、Go Ethereum、Grafana、Teku からの受信トラフィックを許可するように設定します。

SSHを許可する

SSH 経由でサーバーへの接続を許可します。次に、セキュリティのためにデフォルトのポート 22 を変更します (これは一般的な攻撃ベクトルであるため)。

注: デフォルトの SSH ポートを変更しないことを選択した場合 (非推奨)、操作を追加する必要があります。デフォルトの SSH ポート *$ sudo ufw allowed 22/tcp* を許可してから、「Go」を許可する手順に進みます。イーサリアム」。

$ sudo ss -tulpn | grep ':'

1024 ~ 49151 のポート番号を選択し、次のコマンドを実行して未使用のポート番号を取得します。赤(使用中)の場合は、別のポートを選択します。例: sudo ss -tulpn | grep ':6673'ファイアウォールを更新して許可する

$ sudo ufw allow /tcp

インバウンドトラフィックの。 SSH には TCP プロトコルが必要です。例: sudo ufwallow 6673/tcp

$ sudo nano /etc/ssh/sshd_config

次に、デフォルトの SSH ポートを変更します。デフォルトのポート番号「ポート 22」または「ポート 22」を見つけて、独自のポート番号「ポート」を変更します。

。 # (ある場合) を削除します。以下のスクリーンショットを参照してください。ドキュメントは以下に示すものと似ているはずです (ただし、ポート番号が異なります)。保存して終了。

$ sudo systemctl restart ssh

SSHサービスを再起動します 。

次回 SSH 経由でログインするときにポート番号を使用します

$ sudo ufw deny 22/tcp

オプション: すでにポート 22/TCP で UFW を使用している場合は、そのポートでの受信トラフィックを拒否するようにファイアウォールを更新します。これは、新しい SSH ポートを使用してログインした後に必ず行ってください。

イーサリアムへの移行を許可するInfuraGo Ethereum ピア (ポート 30303/TPC および 30303/UDP) からの受信リクエストを許可します。 (

) 管理対象 Eth1 ノードの場合は、この手順をスキップできます。

$ sudo ufw allow 30303

注: Ubuntu サーバーをローカルでホストしている場合は、ポート 30303 からの受信トラフィックを許可するようにネットワーク ルーターを構成する必要があります。

テクを許可するTeku のピアとのピアツーピア接続が可能になるため、ビーコン チェーン ノード (Consensys供給

デフォルトのポート 9000/TCP および 9000/UDP) が動作します。 。

$ sudo ufw allow 9000

注: Ubuntu サーバーをローカルでホストしている場合は、ポート 9000 からの受信トラフィックを許可するようにネットワーク ルーティングとファイアウォールを構成する必要があります。

グラファナを許可する

$ sudo ufw allow 3000/tcp

Grafana Web サーバー (ポート 3000/TCP) への受信リクエストを許可します。

Prometheus を許可する (オプション)

$ sudo ufw allow 9090/tcp

Prometheus データ サービスに直接アクセスしたい場合は、ポート 9090/TCP を開くこともできます。 Grafana を使用してデータを表示するだけの場合、これは必要ありません。このポートを開いていません。

$ sudo ufw enable$ sudo ufw status numbered

表示は次のようになります

最初のレベルのタイトル

ステップ 3: Go Ethereum ノードをインストールして実行するInfuraビーコン チェーンが接続される Eth1.0 ノードをインストールして構成します。サードパーティのサービス (次のような) を選択した場合

)、この手順は省略できます。

Goイーサリアムをインストールする

$ sudo add-apt-repository -y ppa:ethereum/ethereum

Go Ethereum クライアントをインストールするには、PPA (Personal Package Archives、個人インストール パッケージ アーカイブ) を使用することをお勧めします。

$ sudo apt update$ sudo apt install geth

パッケージを更新し、最新の安定バージョンをインストールします。

Go Ethereum をバックグラウンド サービスとして実行する

$ sudo useradd --no-create-home --shell /bin/false goeth

このサービスを実行するにはアカウントを作成する必要がありますが、この種類のアカウントはサーバーにログインできません。

$ sudo mkdir -p /var/lib/goethereum

Eth1 ブロックチェーンのデータ ディレクトリを作成して、Eth1 ノード データを保存します。

$ sudo chown -R goeth:goeth /var/lib/goethereum

ディレクトリの権限を設定します。 goeth アカウントには、データ ディレクトリを変更する権限が必要です。

$ sudo nano /etc/systemd/system/geth.service

systemd サービス ファイルを作成して、サービス構成を保存します。この設定ファイルを使用して、systemd に geth プロセスを実行するように指示します。

[Unit]Description=Ethereum go client
After=network.target
Wants=network.target[Service]
User=goeth
Group=goeth
Type=simple
Restart=always
RestartSec=5
ExecStart=geth --goerli --http --datadir /var/lib/goethereum[Install]
WantedBy=default.target

次のサービス構成をコピーしてドキュメントに貼り付けます。http://localhost:8545)。

フラグ --goerli は Göerli テストネットを見つけるために使用され、フラグ --http は HTTP ポートを公開するために使用されます (

以下のスクリーンショットを参照してください。保存して終了。

$ sudo systemctl daemon-reload

上記の変更を表示するには、systemd をリロードします。

$ sudo systemctl start geth$ sudo systemctl status geth

サービスを開始し、正しく実行されていることを確認します。

表示は以下のスクリーンショットのようになります。"すべて正しく行うと、緑色のフォントで「アクティブ (実行中)」と表示されます。

。表示されない場合は、戻って上記の手順を繰り返して問題を解決する必要があります。 Qを押して終了します。

$ sudo systemctl enable geth

システムの再起動時に geth サービスが自動的に開始されるようにします。

NOTE: Issuing Ctrl+C to quit out of journal doesn’t impact the service. Journal is simply a real-time view of the service logs.

Go Ethereum ノードが同期を開始します。ジャーナル コマンドを実行して進行状況を追跡できます。 「CTRL+C」を押して終了します。

$ sudo journalctl -fu geth.service

同期するピアを見つけるのに長い時間 (10 分以上) かかる場合は、ピアを追加できます。アクセスここここ

$ sudo systemctl stop geth$ sudo nano /etc/systemd/system/geth.service

最新のマニフェストを取得するには、次のコマンドを実行して geth サービスを変更します。

ExecStart=geth --goerli --http --datadir /var/lib/goethereum --bootnodes "enode://46add44b9f13965f7b9875ac6b85f016f341012d84f975377573800a863526f4da19ae2c620ec73d11591fa9510e992ecc03ad0751f53cc02f7c7ed6d55c7291@94.237.54.114:30313,enode://119f66b04772e8d2e9d352b81a15aa49d565590bfc9a80fe732706919f8ccd00a471cf8433e398c55c4862aadb4aadf3a010201483b87e8358951698aa0b6f07@13.250.50.139:30303"

ExecStart 行を変更して --bootnodes フラグを追加します。最新のピアをカンマで区切って以下にリストします。

$ sudo systemctl daemon-reload$ sudo systemctl start geth
$ sudo journalctl -fu geth.service

ファイルを保存して終了します。次に、サービスを再起動して監視します。

ビーコン チェーンを実行する前に、ノードが同期するまで待つ必要があります。クリックここここ

最新のブロックにアクセスします。

次に、バリデーターのデポジットデータを準備します。同期ステータスを確認したい場合は、いつでもコマンド sudojournalctl -fu geth.service を実行して確認できます。

最初のレベルのタイトル

ステップ 4: バリデーターキーを生成し、データをデポジットする

Eth2.0 Pyrmont テストネットでバリデーター ノードを実行できるようにするには、1 つ以上のバリデーター アカウントを登録する必要があります。

注: すでにデポジット データを生成し、質権デポジットを送信している場合は、この手順をスキップできます。他の場所で生成した場合は、認証キーをこのサーバーにコピーする必要があります。

  • 登録手順は次のとおりです。

  • ゲルリ ETH を取得する

  • バリデータキーを生成します。キーはバリデーターアカウントを表します。

  • 各バリデーターアカウントに 32 Göerli ETH を入金します

バリデーターアカウントがアクティブ化されるまで待ちます

今すぐ始めましょう!

  • ゲルリ ETH を取得する

  • ブラウザプラグインMetaMaskがインストールされたコンピュータを使用してください。

  • 「MetaMask」をクリックしてログインします

  • 上部のドロップダウン メニューをクリックし、Göerli テスト ネットワークを選択します。

  • アカウント名をクリックして、Göerli テストネット ウォレットのアドレスをコピーします。authenticated faucetからのアドレスを使用してくださいethstaker DiscordGöerli ETH を入手するか、。

ボット コマンドの #request-goerli-eth チャネル: !goerliEth

注: バリデーターには 32 ETH のデポジットが必要です。 MetaMask ウォレットには、各バリデーター クライアントに十分な Göerli ETH がデポジットされている必要があります。たとえば、10 個のバリデータを実行したい場合、320 Göerli ETH に加えて、ガス料金をカバーするための追加のお金 (たとえば 1 Göerli ETH) が必要になります。

に行く

に行くここここ

Deposit CLI アプリケーションの「最新リリース」を入手します。"「資産」では、

$ cd ~$ sudo apt install curl
$ curl -LO https://github.com/ethereum/eth2.0-deposit-cli/releases/download/v1.1.0/eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz

このリンクを Linux バージョンにコピーするための 1 つの列。以下に示すように、そのリンクを使用してダウンロードします。コマンド内の URL を最新バージョンのダウンロード リンクに変更します。

$ sudo tar xvf eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz$ cd eth2deposit-cli-ed5a6d3-linux-amd64

アプリケーションを実行して、デポジット データと検証キーを生成します。

意思意思

$ sudo ./deposit new-mnemonic --num_validators --mnemonic_language=english --chain pyrmont

これを、作成するバリデーターキーの数に変更します。例: --num_validators 5

ウォレットのパスワードを作成するように求められます。これを使用して、Teku クライアントのバリデーター ウォレットにバリデーター キーをロードします。安全な場所にバックアップしてください。

シードフレーズ(ニーモニック)を生成します。別の場所にバックアップしてください。これは重要です。引き出しキーを生成したり、バリデーターを追加したりするために必要になります。

ニーモニックを確認すると、バリデーターキーが作成されます。

新しく作成されたバリデーターキーとデポジットデータファイルは、特定の場所に作成されます。例: eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys。後で必要になるのでマークしてください。

フォルダーの内容は次のとおりです。secure FTP (SFTP)deposit_data-[timestamp].json ファイルには、バリデーターの公開キーとデポジットに関する情報が含まれています。この文書は、入金プロセスを完了する次のステップで使用されます。ここではサーバー上にあり、Web ブラウザがないので、

MetaMask を実行しているコンピューターにファイルを移行します。続行する前に、必ずこの手順を完了してください。

keystore-m...json ドキュメントには、暗号化された署名キーが含まれています。各バリデーター アカウントには keystore-m があります。これらは、Teku クライアント バリデーター ウォレットを作成するために使用されます。

$ cd ~$ rm -rf eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz

デポジット データとキーストア ファイルが完成したので、Teku をセットアップします。 Teku をセットアップする前に、キーにアセットをデポジットする (バリデーターをアクティブにするために Göerli ETH をデポジットする) 必要があるため、最初にセットアップを検証できます。バリデーターデポジットがアクティブ化されていても、システムの準備ができていない場合、速度低下ペナルティが発生します。

最初のレベルのタイトル

ステップ5: 実装条件

Teku は Java 言語に基づいて構築されているため、実行には Java ランタイム環境 (JRE)、コンパイルには Java 開発キット (JDK) が必要です。

$ sudo apt install default-jre default-jdk$ java --version
$ javac --version

表示は次のようになります。

ethstaker@ETH-STAKER-001:~$ java --versionopenjdk 11.0.9.1 2020-11-04

OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
ethstaker@ETH-STAKER-001:~$ javac --version
javac 11.0.9.1

最初のレベルのタイトル

アクセス

アクセスここここ

ラベルを使用します (この場合は 20.11.0-RC2)

$ cd ~$ git clone --b 20.11.0-RC2 https://github.com/Consensys/teku.git
$ cd teku

使用Gradle使用

$ sudo ./gradlew installDist

コードをコンパイルするにはビルド時間は約 3 ~ 6 分かかります。飲み物を買って水分補給する時間です。私も読むことができます。

すべての操作が成功した場合は続行してください。操作が失敗した場合は、ConsenSys Discord の #teku チャンネルで助けを求めてください。https://discord.gg/trQ378WCp4

最初のレベルのタイトル

ステップ 7: Teku バイナリをコピーする

$ cd ~$ sudo cp -a teku/build/install/teku/. /usr/local/bin/teku

注: *teku* バイナリの新しいバージョンをプルまたはビルドするたびに、これを行う必要があります。このチュートリアルの最後の付録である Teku Updates を参照してください。

最初のレベルのタイトル

ステップ 8: ビーコン ノードとバリデータ クライアントを構成する

Teku クライアントをサービスとして実行するため、システムが再起動すると、プロセスが自動的に再起動されます。

アカウントとディレクトリをセットアップする

$ sudo useradd --no-create-home --shell /bin/false teku

ビーコンノードとバリデーターノードを操作するためのアカウントを作成します。このタイプのアカウントを使用してサーバーにログインすることはできません。

$ sudo mkdir -p /var/lib/teku$ sudo mkdir -p /etc/teku

Teku クライアントのデータ ファイル用のデータ ディレクトリと、Teku の構成ファイル用の config ディレクトリを作成します。

$ sudo cp -a /$HOME/ /var/lib/teku

このようにして、ドキュメントを 1 か所に集中させ、keystore-m...json ドキュメントを前に作成したデータ ディレクトリにコピーできます。生成された認証キーのパスを入力します。

$ cd /var/lib/teku/validator_keys$ ls
$ sudo rm

例: eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys。 keystore-m ファイルのみをコピーすることに注意してください。デポジットデータドキュメントをコピーしないでください。コピーした場合は、次のコードを使用して削除してください。

次の結果が得られるはずです (検証ドキュメントの数に応じて)

バリデータパスワード文書を作成する

Teku クライアントでは、サービスの実行中および自動的な再起動中に各認証アカウントにアクセスするためのパスワード ファイルが認証システムに必要です。

$ ls /var/lib/teku/validator_keys

各 keystore_m*.json ファイルに同じ名前のパスワード ファイルを作成します。

$ sudo nano /var/lib/teku/validator_keys/.txt

存在する存在する

jsonドキュメントの名前を入力します。最後に .txt を追加することを忘れないでください。 txt ファイルの YourKeystorePasswordForThisValidator に、パスワード ストアのパスワード (手順 4 でバリデータ ファイルを作成するときに指定したパスワード) を入力します。保存して起動します。 *.json ファイルごとに上記の手順を繰り返します。

次の結果が得られるはずです。このステップは完了です。

注: *deposit_data-\*.json* ファイルが存在してはいけません。ある場合は削除してください。 Teku クライアントは対応するパスワード ファイルがあることを期待しているため、ペアリングミスが発生します。

権限の設定

$ sudo chown -R teku:teku /var/lib/teku$ sudo chown -R teku:teku /etc/teku
$ ls -dl /var/lib/teku; ls -dl /etc/teku

ディレクトリのアクセス許可を設定します。 teku アカウントには、番号ディレクトリを変更する権限が必要です。ディレクトリのアクセス許可が正しく設定されていることを確認してください。

次のようになります。

$ sudo chmod -R 700 /var/lib/teku/validator_keys$ sudo ls -lh /var/lib/teku/validator_keys

ドキュメントのアクセス許可を認証者キーに適用して、追加のセキュリティ層を提供し、誤って削除されることを防ぎます。 (teku) ユーザーに読み取り/書き込み/実行権限を与えます。ドキュメントの権限が正しく設定されていることを確認してください。

結果は次のようになります

認証キーとパスフレーズを設定したので、次はサービスを構成します。

Teku 構成ファイルを作成する

$ sudo nano /etc/teku/teku.yaml

Teku クライアントは、構成ファイルを通じてコマンド ライン オプションを読み取ることができます。今すぐ作成してください。

data-base-path: "/var/lib/teku"network: "pyrmont"eth1-endpoint: "http://127.0.0.1:8545/"validator-keys: "/var/lib/teku/validator_keys:/var/lib/teku/validator_keys"validators-graffiti: ""p2p-port: 9000log-destination: CONSOLEmetrics-enabled: truemetrics-port: 8008rest-api-enabled: true
rest-api-docs-enabled: true

以下のコードをドキュメントに貼り付けます。

flagdata-base-path は、サービスがデータを保存する場所を定義します。

フラグ validators-keys は、パスワード ファイル内のキー ファイルの場所を示します。このように、それらはすべて同じディレクトリ内にあります。

存在する存在する"abcdefg12345"。

必要なテキストを入力します。例: バリデーター落書き:

systemd を使用する場合は、log-destination: CONSOLE 設定を推奨します

以下のスクリーンショットを参照してください。ドキュメントもこれに似ているはずです。終了して保存します。

Teku サービスの作成と構成

$ sudo nano /etc/systemd/system/teku.service

systemd サービス ファイルを作成して構成サービスを保存します。

[Unit]Description=Teku Client
Wants=network-online.target
After=network-online.target[Service]
Type=simple
User=teku
Group=teku
Restart=always
RestartSec=5
Environment="JAVA_OPTS=-Xmx2g"
ExecStart=/usr/local/bin/teku/bin/teku --config-file=/etc/teku/teku.yaml[Install]
WantedBy=multi-user.target

以下のコードをコピーしてドキュメントに貼り付けます

Java (Teku が使用するプログラミング言語) は、実行時に大量の RAM を消費するように設計されています。 flagEnvironment="JAVA_OPTS=-Xmx2g" ではヒープ サイズが 2 GB に制限されるため、Teku は使用可能な合計メモリが約 3 ~ 3.5 GB で実行されます。

以下のスクリーンショットを参照してください。ドキュメントもこれに似ているはずです。終了して保存します。

$ sudo systemctl daemon-reload

systemd をリロードして変更を表示します。

注: ローカル Eth1 ノードを実行している場合 (ステップ 3 を参照)、完全に同期されるまで待ってから Teku サービスを開始する必要があります。ここで進行状況を確認してください: *sudojournalctl -fu geth.service*

$ sudo systemctl start teku$ sudo systemctl status teku

サービスを開始し、正しく実行されていることを確認します。

表示される結果は次のようになります。"すべて正しく行うと、緑色のフォントで「アクティブ (実行中)」と表示されます。

。表示されない場合は、戻って上記の手順を繰り返して問題を解決する必要があります。 Qを押して終了します。

$ sudo systemctl enable teku

システムの再起動時にサービスを自動的に再起動できるようにします。

ビーコン ノードはデータの同期を開始します。完全に同期するには数時間かかる場合があります。ジャーナル コマンドを実行すると、進行状況を追跡できます。 CTRL+C を押して終了します。

$ sudo journalctl -fu teku.service

注: Ctrl+C を押してジャーナルを終了しても、サービスには影響しません。ジャーナルは、サービス ログのリアルタイム ビューを示します。

Started Teku Client....
INFO  - Loading 2 validator keys...
INFO  - BLS: loaded BLST library
INFO  - Loaded 2 Validators: 96a349b, b7f51b6
...
INFO  - Sync Event  *** Current slot: 30174, Head slot: 54, Connected peers: 1
INFO  - Sync Event  *** Current slot: 30175, Head slot: 92, Connected peers: 6
INFO  - Sync Event  *** Current slot: 30176, Head slot: 128, Connected peers: 8
INFO  - Sync Event  *** Current slot: 30177, Head slot: 160, Connected peers: 10

このステップは終了です。これで、実行中のビーコン チェーンとバリデータ ノードができました。おめでとう!あなたは素晴らしいです!

最初のレベルのタイトル

ステップ 9: バリデーターのデポジットを行う

セットアップが起動して実行されたので、32 Göerli ETH を Pyrmont テストネットにデポジットする必要があります。

注: すでに質権保証金を提出している場合は、この手順をスキップできます。

このステップは、必要な Göerli ETH を Pyrmont テストネットのデポジット コントラクトにデポジットすることに関するものです。これには、ブラウザ上で Pyrmont の Launchpad Web サイト経由で MetaMask (またはその他) ウォレットを起動する必要があります。

注: このチュートリアルがメインネット用である場合 (実際はそうではありません)、入金を行う前に Eth1 ノードとビーコン ノードが完全に同期されるまで待つ必要があります。そうしないと、Eth1 ノードまたはビーコン チェーンの同期時に速度低下のペナルティが発生する可能性があります。https://pyrmont.launchpad.ethereum.org/

Pyrmont テストネットの Launchpad:

キー ペアの生成セクションに到達するまで、画面の遷移に合わせて警告ステップをクリックし続けます。実行するバリデーターの数を選択します。手順 4 で生成した認証者ファイルの数と一致する値を選択します。

下にスクロールして内容に同意するか確認し、「続行」をクリックします。

Deposit_data-[timestamp].json ファイルをアップロードするように求められます。この文書は空中で生成され、ブラウザを備えたコンピュータにコピーされます。ドキュメントを参照/選択するかドラッグ アンド ドロップし、[続行] をクリックします。

ウォレットを接続します。 MetaMask (またはその他のサポートされているウォレット) を選択してログインし、Göerli ETH が保存されている Göerli テスト ネットワークを選択して、[続行] をクリックします。

注: MetaMask で Göerli テスト ネットワークを選択したことを 100% 確認してください。本物の ETH をピルモントのテストネットに送信しないでください。

その後、バリデーターの数と必要な Göerli ETH の量を示す概要が表示されます。同意する場合はこれらのボックスにチェックを入れ、「続行」をクリックします。

クリック"Initiate All Transactions"クリック

(すべてのトランザクションを開始します)。

MetaMask の複数のインスタンスがポップアップし、それぞれが Pyrmont テストネットに対して 32 Göerli ETH のトランザクション リクエストを行います。それぞれのお取引をご確認ください。

すべての取引が正常に完了すると、賭け金が完了します。

おめでとう!

最後にチェックリストがあります。その中には役立つ情報がたくさんあります。見てみることができます

バリデーターデポジットのステータスを確認する

  • 新しく参加したバリデーターは、アクティブ化されるまで (数時間から数日) 待つ必要があります。次の手順に従って、キーのステータスを確認できます。

  • Göerli テストネット ウォレットのアドレスをコピーしますhttps://pyrmont.beaconcha.in/

  • 次の場所に移動します:

ウォレットのアドレスを検索します。あなたのキーが表示されます。

これで、動作するビーコン チェーン、バリデータ ノード、およびテストネット デポジットが目の前にできました。デポジットが有効になると、仕事をして収入を得ることができるようになります。おめでとう!

最初のレベルのタイトル

Prometheus は、モニタリング機能とアラート ツールボックスを提供するオープン ソース システムです。これは Ubuntu サーバー上でサービスとして実行され、その仕事はデータをフェッチすることです。詳細については、を参照してください。ここ。

ここ

Prometheus を使用して、ビーコン チェーン、バリデーターのランタイム データ、およびインスタンス固有のデータを公開します。

ユーザーアカウントを作成する

$ sudo useradd --no-create-home --shell /bin/false prometheus$ sudo useradd --no-create-home --shell /bin/false node_exporter

これらのサービスはアカウントで実行されます。これらのアカウントはサーバーにログインできません。

ディレクトリを作成する

$ sudo mkdir /etc/prometheus$ sudo mkdir /var/lib/prometheus

プログラムとデータのディレクトリ。

$ sudo chown -R prometheus:prometheus /etc/prometheus$ sudo chown -R prometheus:prometheus /var/lib/prometheus

プロメテウス ソフトウェアをダウンロード

からからプロメテウスのダウンロードページ

$ cd ~$ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.22.2/prometheus-2.22.2.linux-amd64.tar.gz

最新バージョンのバージョン番号を変更します。 Rpi ユーザーは必ず ARM バイナリを入手する必要があります。

$ tar xvf prometheus-2.22.2.linux-amd64.tar.gz

tar アーカイブを開きます。これには 2 つのバイナリ ドキュメントといくつかのコンテンツ ドキュメントが含まれています。

$ sudo cp prometheus-2.22.2.linux-amd64/prometheus /usr/local/bin/$ sudo cp prometheus-2.22.2.linux-amd64/promtool /usr/local/bin/

バイナリを次の場所にコピーします。

$ sudo chown -R prometheus:prometheus /usr/local/bin/prometheus$ sudo chown -R prometheus:prometheus /usr/local/bin/promtool

ディレクトリの所有権を設定します。 prometheus アカウントがこれらを管理します。

$ sudo cp -r prometheus-2.22.2.linux-amd64/consoles /etc/prometheus$ sudo cp -r prometheus-2.22.2.linux-amd64/console_libraries /etc/prometheus

これらのコンテンツ ドキュメントを次の場所にコピーします。

$ sudo chown -R prometheus:prometheus /etc/prometheus/consoles$ sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

ディレクトリとファイルの所有権を設定します (-R)。 prometheus アカウントがこれらを管理します。

$ rm -rf prometheus-2.22.2.linux-amd64.tar.gz prometheus-2.22.2.linux-amd64

ダウンロード アーカイブを削除します。

設定ファイルを編集する

Prometheus は構成ファイルを使用して、データをフェッチする場所を認識します。

$ sudo nano /etc/prometheus/prometheus.yml

YAML 構成ファイルを編集のために開きます。

global:  scrape_interval: 15s
scrape_configs:
 - job_name: "prometheus"
   static_configs:
   - targets: ["localhost:9090"]
 - job_name: "teku"
   scrape_timeout: 10s
   metrics_path: /metrics
   scheme: http
   static_configs:
   - targets: ["localhost:8008"]

以下のコードをドキュメントにコピーし、他の編集を行わないように注意し、終了してファイルを保存します。

$ sudo chown -R prometheus:prometheus /etc/prometheus/prometheus.yml

構成ファイルの所有権を設定します。 prometheus アカウントはこの所有権を持ちます。

$ sudo -u prometheus /usr/local/bin/prometheus \    --config.file /etc/prometheus/prometheus.yml \
   --storage.tsdb.path /var/lib/prometheus/ \
   --web.console.templates=/etc/prometheus/consoles \
   --web.console.libraries=/etc/prometheus/console_libraries

最後に、サーバーが正しく実行されていることをテストします。

level=info ts=2020-11-22T17:24:35.396Z caller=main.go:684 msg="Server is ready to receive web requests."

出力は次のようになります。 Ctrl+C を押して終了します。

Prometheus を自動起動サービスとして設定する

$ sudo nano /etc/systemd/system/prometheus.service

サービス構成ファイルを保存する systemd サービス ファイルを作成します。これにより、prometheus ユーザーとして Prometheus を実行するように systemd に指示され、構成ファイルをディレクトリ /etc/prometheus/prometheus.yml に配置し、ディレクトリ /var/lib に保存されます。 /プロメテウス。

[Unit]Description=Prometheus
Wants=network-online.target
After=network-online.target[Service]
Type=simple
User=prometheus
Group=prometheus
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/prometheus \
   --config.file /etc/prometheus/prometheus.yml \
   --storage.tsdb.path /var/lib/prometheus/ \
   --web.console.templates=/etc/prometheus/consoles \
   --web.console.libraries=/etc/prometheus/console_libraries[Install]
WantedBy=multi-user.target

次のコードをドキュメントにコピーします。終了して保存します。

$ sudo systemctl daemon-reload

systemd をリロードして変更を表示します。

$ sudo systemctl start prometheus$ sudo systemctl status prometheus

次に、以下のコマンドでサービスを開始し、ステータスをチェックして正しく実行されていることを確認します。

出力は以下のようになります。"すべて正しく行うと、緑色のフォントで「アクティブ (実行中)」と表示されます。

文章

$ sudo systemctl enable prometheus

最初のレベルのタイトル

ステップ 11: ノード エクスポーターをインストールするNode_Exporter拡大。以下で別のバージョンを指定した場合は、次の場所にあります。ここここ

$ cd ~$ curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz

最新の安定バージョンを見つけます。 Rpi ユーザーは、ARM バイナリを忘れずに入手してください。

$ tar xvf node_exporter-1.0.1.linux-amd64.tar.gz

ダウンロードしたソフトウェアを開きます。

$ sudo cp node_exporter-1.0.1.linux-amd64/node_exporter /usr/local/bin$ sudo chown -R node_exporter:node_exporter /usr/local/bin/node_exporter

バイナリをディレクトリ /usr/local/bin にコピーし、ユーザーとグループの所有権を前に作成した node_exporter ユーザーに設定します。

$ rm -rf node_exporter-1.0.1.linux-amd64.tar.gz node_exporter-1.0.1.linux-amd64

ダウンロードしたアーカイブを削除します。

Node Exporter を自動開始サービスとして設定する

$ sudo nano /etc/systemd/system/node_exporter.service

systemd サービス ファイルを作成してサービス構成ファイルを保存します。これにより、systemd に Node_Exporter ユーザーとして Node_Exporter を実行するように指示されます。

[Unit]Description=Node Exporter
Wants=network-online.target
After=network-online.target[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter[Install]
WantedBy=multi-user.target

次のコードをドキュメントにコピーします。終了して保存します。

$ sudo systemctl daemon-reload

systemd をリロードして変更を表示します。

$ sudo systemctl start node_exporter$ sudo systemctl status node_exporter

次に、以下のコマンドでサービスを開始し、ステータスをチェックして正しく実行されていることを確認します。

出力は以下のようになります。"すべて正しく行うと、緑色のフォントで「アクティブ (実行中)」と表示されます。

。表示されない場合は、戻って上記の手順を繰り返して問題を解決する必要があります。 Qを押して終了します。

$ sudo systemctl enable node_exporter

最後に、Node Exporter がシステム起動時に起動できるようにします。

Prometheus と Node Exporter をテストする (オプション):9090 その機能を選択的にテストできます。そこでクエリを実行してさまざまなデータを表示できます。たとえば、次のクエリを試して、使用可能なメモリの量を確認できます。

http://:9090/new/graph?g0.expr=node_memory_MemFree_bytes&g0.tab=1&g0.stacked=0&g0.range_input=1h

最初のレベルのタイトル

ステップ 12: Grafana をインストールする

Prometheus はデータ ソースであり、Grafana はダッシュボード データをレポートする機能を提供します。次に Grafana をインストールし、ダッシュボードを構成します。

インストールとアップデートが簡単になるため、インストールには APT リポジトリを使用します。 Grafana は公式 Ubuntu パッケージ リポジトリにありますが、そのバージョンは最新ではない可能性があるため、Grafana の公式リポジトリを使用します。

$ wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

wget を使用して Grafana GPG キーをダウンロードし、出力を apt-key にパイプします。これにより、APT インストールの信頼できるキーのリストにキーが追加されます。

$ sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

Grafana リポジトリを APT のソースに追加します。

$ sudo apt update

apt キャッシュをフラッシュします。

$ apt-cache policy grafana

Grafana がリポジトリからインストールされていることを確認します。

grafana:  Installed: (none)
 Candidate: 7.3.3
 Version table:
    7.3.3 500
       500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
    7.3.2 500
       500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
    7.3.1 500
       500 https://packages.grafana.com/oss/deb stable/main amd64
...

上部に表示されているバージョンがここここ

$ sudo apt install grafana

表示されている最新バージョンは一致します。その後、インストールを続行します。

$ sudo systemctl start grafana-server$ sudo systemctl status grafana-server

Grafana サーバーを起動し、ステータスをチェックして正しく実行されていることを確認します。

出力は次のようになります。"すべて正しく行うと、緑色のフォントで「アクティブ (実行中)」と表示されます。

。表示されない場合は、戻って上記の手順を繰り返して問題を解決する必要があります。 Qを押して終了します。

$ sudo systemctl enable grafana-server

Grafana がシステム起動時に起動できるようにします。

Grafana ログインの構成これができるのは素晴らしいことです!すべての設定と実行が完了したので、http:// にアクセスできます。

:3000/、Grafana ログイン ウィンドウが表示されます。

管理者にユーザー名とパスワードを入力します。システムによりパスワードの変更を求められますので、変更してください。

Grafanaのデータソースを設定する

データソースを設定しましょう。マウスを左側のメニュー バーの歯車アイコンに移動すると、メニューがポップアップ表示され、[データ ソース] を選択します。

[データ ソースの追加] をクリックし、[Prometheus] を選択します。 URL に http://localhost:9090 と入力し、「保存してテスト」をクリックします。

Grafana ダッシュボードのインポート

マウスを左側のメニュー バーの + アイコンに移動すると、メニューが表示され、[インポート] を選択します。コード 13457 を使用して、公式 Teku の単一バリデータをインポートしますダッシュボードまたは、Ben Edgington のコード 12522 をインポートします。

ダッシュボード

最初のレベルのタイトル

最後に書きます

最後に書きます

  • それでおしまい!このチュートリアルがお役に立てば幸いです。Twitterフィードバックがある場合は、次の場所にあります。Redditまたは

  • に連絡してくださいfriends linkこのチュートリアルが楽しかったので、他の人にもフォローしてもらいたい場合は、を使用してください

  • チュートリアルを共有しましょう!

  • サポート: somer.eth

存在する

存在するここここ必要なバージョンを見つけて入力します

$ cd ~$ cd teku
$ sudo git fetch --tags && git checkout
$ sudo ./gradlew installDist
$ sudo systemctl stop teku
$ sudo rm -r /usr/local/bin/teku # <-- Delete old build
$ sudo cp -a ~/teku/build/install/teku/. /usr/local/bin/teku
$ sudo systemctl start teku
$ sudo systemctl status teku # <-- Check status
$ sudo journalctl -fu teku # <-- Check status

。例: $ git fetch --tags && git checkout 20.11.0-RC2。

公式アカウント: ETHチャイニーズステーション

ウェブサイト: ethereum.cn

ETH
开发者
Odaily公式コミュニティへの参加を歓迎します
購読グループ:
https://t.me/Odaily_News
チャットグループ:
https://t.me/Odaily_GoldenApe
公式アカウント:
https://twitter.com/OdailyChina