2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Adapting Plugin Nodes to XDC 2.0: Gas Fee Update Guide

Last updated at Posted at 2024-10-03
【English】

Adapting Plugin Nodes to XDC 2.0: Gas Fee Update Guide

Welcome to the guide for adapting to the latest XDC gas fee changes for Plugin nodes. This guide aims to assist Plugin node operators in updating their node settings to accommodate the impacts of the recent upgrade to XDC version 2.0 on the gas fees required per transaction.

How to Update Your Plugin Node for the Latest XDC Gas Fee

Screenshot by Dropbox Capture.png

The above official Plugin documentation details the upgrade steps needed to reflect the new pricing system. This document guides Plugin node operators on how to update their node settings to prevent transactions from being stuck in a pending state due to insufficient gas fees.

Following the official guide, this guide specifically recommends changing the minimum gas price in the config.toml file from the default 1 gwei to 12.5 gwei. By making this change, you can prevent job failures, ensure smooth transaction processing, and avoid operational disruptions.

Through this guide, we aim to support your node in efficiently meeting the latest network requirements.

Here are the necessary steps to resolve gas-related issues on Plugin nodes:

Problem

  • Default Gas Price Setting: The default setting of [EVM.GasEstimator] PriceMin = '1 gwei' can lead to 'under min gas' errors, causing jobs to get stuck in an in_progress state.
  • Impact on Jobs: Once an error occurs, subsequent jobs remain in an unstarted state, halting processing.

Solution

1. Configuration File Update:

  • Update the config.toml file to set [EVM.GasEstimator] PriceMin = '12.5 gwei' as the minimum gas price. This adjustment prevents insufficient gas errors and ensures that jobs complete successfully.

    Note: Although [EVM.GasEstimator] PriceMin = '1 gwei' is set, transactions can still be executed above the minimum gas cost of 12.5 gwei for XDC2.0.
    ::

1-1. Navigate to the directory containing the config.toml file:

1-1
cd ~/pluginV2/

1-2. Edit the config.toml file using nano:

  • Open the config.toml file with the nano editor
1-2-1
nano config.toml

Screenshot by Dropbox Capture.png

  • Once the file is open, add the following code to the end of the file:
1-2-2
[EVM.GasEstimator]
PriceMin = '12.5 gwei'

Screenshot by Dropbox Capture.png

1-3. Save the config.toml file.

How to Save in nano
To save a file edited with nano, follow these steps:

  1. Press the "Ctrl" and "X" keys simultaneously on your keyboard.
  2. Press the "Y" key to confirm the changes you want to save.
  3. Press the "Enter" key to exit the editor.
    Following these steps will save the changes to the edited file and exit the nano editor.

2. System Restart:

  • After making the above changes, use PM2, the Node.js process manager, to restart the node. Use the following command:
2
pm2 restart NodeStartPM2

Screenshot by Dropbox Capture.png

3. Verify on the Dashboard

  • Log in to the dashboard and check if the node is running correctly and if the config.toml has been properly applied. The following command can be useful for logging in to the dashboard:
3
echo https://$(ip a | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v '127.0.0.1'):6689 && cat ~/pluginV2/apicredentials.txt 
  • Once logged in, click the gear icon in the upper right corner, then click on Configuration. Next, check that [EVM.GasEstimator]PriceMin = '12.5 gwei' is properly reflected in the TOML Configuration.

Screenshot by Dropbox Capture.png

These steps will ensure that jobs are processed properly and the network functions smoothly. After making configuration changes, monitor the system to see how it responds and make further adjustments as necessary.

Handling Jobs That Get Stuck

If the log shows an under min gas error, jobs can get stuck in an in_progress state. When this error occurs, subsequent jobs remain in an unstarted state, causing processing to halt. In such cases, follow these steps to delete entries from PostgreSQL.

Database Cleaning:

  • Check and delete records from the eth_txes table where the state is 'unstarted', 'in_progress', or 'unconfirmed'.

  • Connect to the plugin_mainnet_db database as the postgres user using the following command:

sudo -i -u postgres psql -d plugin_mainnet_db
  • The following command can make the output more readable:
    \x auto is a command to change the display format in psql. It enables the "expanded display," which automatically formats wide output to show each field on a new line.
\x auto

Screenshot by Dropbox Capture.png

  • Next, run the following SQL command to review the records targeted for deletion:
SELECT * FROM eth_txes WHERE state IN ('unstarted', 'in_progress', 'unconfirmed');

Screenshot by Dropbox Capture.png

  • After confirming there are no issues, proceed to delete the records with this command:
DELETE FROM eth_txes WHERE state IN ('unstarted', 'in_progress', 'unconfirmed');

Screenshot by Dropbox Capture.png

  • To exit the PostgreSQL command-line tool psql, you can use one of the following methods:

    • Type the \q command and press the Enter key.
    • Press Ctrl + D simultaneously on your keyboard.

These actions will terminate the psql session and return you to the original shell.

Author:

  • 11ppm
  • X
    Moderator for XDC's native decentralized oracle, Plugin.
    Follow on X for more updates and insights.

Screenshot by Dropbox Capture.png

【日本語】

XDC2.0対応:プラグインノード・アップデートガイド

Pluginノードの最新のXDCガス料金の変更に対応するためのガイドにようこそ。このガイドは、XDCの最近のバージョン2.0へのアップグレードがトランザクションごとの必要ガス料金に与える影響に対処し、Pluginノードオペレーターが自身のノード設定を更新する手助けをすることを目的としています。

How to Update Your Plugin Node for the Latest XDC Gas Fee

Screenshot by Dropbox Capture.png

上記のPlugin公式のドキュメントには、新しい料金体系を反映させるためのアップグレード手順が詳細に記載されています。このドキュメントは、不十分なガス料金によってトランザクションが保留状態になるのを避けるために、ノード設定をどのように更新するかをPluginノードオペレーターに指南します。

公式ガイドに沿って、本ガイドでは、特に config.toml ファイルの最小ガス価格をデフォルトの 1 gwei から 12.5 gwei に設定変更することを推奨しています。この変更を行うことで、ジョブの失敗を防ぎ、トランザクション処理をスムーズにし、運用上の中断を回避することができます。

このガイドを通じて、あなたのノードが最新のネットワーク要件に適切に対応し、効率的に運用できるようサポートします。

では、早速Pluginノードのガス関連の問題を解決するために必要なステップを以下に示します:

問題

  • デフォルトのガス価格設定:デフォルトで設定されている [EVM.GasEstimator] PriceMin = '1 gwei' が原因で「under min gas」というエラーが発生し、ジョブが in_progress 状態で詰まってしまいます。
  • ジョブへの影響:エラーが発生すると、次以降のジョブが unstarted 状態になり、処理が停止します。

解決策

1. 設定ファイルの変更:

  • config.toml ファイルに [EVM.GasEstimator] PriceMin = '12.5 gwei' と設定を追記し、これを最低ガス価格とします。この設定により、ガスが不足する問題を防ぎ、ジョブが正常に完了できるようになります。

    メモ:config.tomlに[EVM.GasEstimator] PriceMin = '1 gwei' が設定されていても、XDC2.0の最低ガス代である12.5gwei以上でトランザクションを実行することが可能です。
    ::

1-1. config.tomlファイルがあるディレクトリへ移動します

1-1
cd ~/pluginV2/

1-2. config.tomlファイルをnanoで編集します

  • config.tomlファイルをnanoエディタで開きます。
1-2-1
nano config.toml

Screenshot by Dropbox Capture.png

  • ファイルを開いたら、以下のコードをファイルの末尾に追加します。
1-2-2
[EVM.GasEstimator]
PriceMin = '12.5 gwei'

Screenshot by Dropbox Capture.png

1-3. config.tomlファイルを保存します

nanoで保存する方法
nano で編集したファイルを保存する方法は、次の手順に従ってください:

  1. キーボードで "Ctrl" キーと "X" キーを同時に押します。
  2. キーボードで "Y" キーを押して変更を保存することを確認します。
  3. キーボードで "Enter" キーを押してエディターを終了します。
    これらの手順により、編集したファイルの変更が保存され、nanoエディターが終了します。

2. システムの再起動:

  • 上記の変更を行った後、Node.jsのプロセスマネージャであるPM2を使用してノードを再起動します。使用するコマンドは以下の通りです:
2
pm2 restart NodeStartPM2

Screenshot by Dropbox Capture.png

3. ダッシュボードで確認

  • ダッシュボードにログインして、ノードが正しく起動し、config.tomlが正しく反映されているかを確認します。ダッシュボードにログインするために、以下のコマンドは便利です。
3
echo https://$(ip a | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v '127.0.0.1'):6689 && cat ~/pluginV2/apicredentials.txt 
  • ログインしたら、右上の歯車マークをクリックし、次にConfigrationをクリックします。そしてTOML Configuration[EVM.GasEstimator]PriceMin = '12.5 gwei'が反映されていることを確認してください。

Screenshot by Dropbox Capture.png

これらのステップにより、ジョブが適切に処理され、ネットワークがスムーズに機能するようになります。設定変更後は、システムがどのように反応するかを監視し、必要に応じてさらに調整を行ってください。

ジョブが詰まった場合の対処

ログにunder min gasというエラーが発生し、ジョブが in_progress 状態で詰まってしまいます。エラーが発生すると、次以降のジョブが unstarted 状態になり、処理が停止します。その場合、次の手順でPostgreSQLを削除します。

データベースのクリーニング:

  • eth_txes テーブルから state が 'unstarted'、'in_progress'、または 'unconfirmed' のレコードを確認し、削除します。

  • 次のコマンドで、postgresユーザーとしてplugin_mainnet_dbデータベースに接続します。

sudo -i -u postgres psql -d plugin_mainnet_db
  • 次のコマンドを実行しておくと見やすくなります。
    \x autopsqlの表示形式を変更するコマンドです。これにより、出力が広い場合に行ごとに分けて表示される「拡張表示」が自動的に有効になります。
\x auto

Screenshot by Dropbox Capture.png

  • 次に削除対象のレコードを確認するために以下のSQLコマンドを実行します:
SELECT * FROM eth_txes WHERE state IN ('unstarted', 'in_progress', 'unconfirmed');

Screenshot by Dropbox Capture.png

  • 確認後、問題がなければ以下のコマンドでレコードを削除します:
DELETE FROM eth_txes WHERE state IN ('unstarted', 'in_progress', 'unconfirmed');

Screenshot by Dropbox Capture.png

  • PostgreSQLのコマンドラインツール psql から抜け出すには、以下のいずれかの方法を使用します:

    • \q コマンドを入力してエンターキーを押します
    • キーボードで Ctrl + D を同時に押します

これらの操作により、psql セッションが終了し、元のシェルに戻ります。

著者:

  • 11ppm
  • X
    XDCのネイティブ分散型オラクル、Pluginのモデレーターです。
    最新情報やインサイトについては、Xでフォローしてください。

Screenshot by Dropbox Capture.png

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?