コンパイル、実行とデプロイ
このガイドでは、NEROのコンパイルと実行の手順を説明します。
ダウンロード
以下のgitコマンドを使用してNEROのソースコードをダウンロードします:
git clone https://github.com/nerochain/Nero.gitGolangのインストール
NEROをコンパイルする前に、システムにGolangがインストールされていることを確認してください。ダウンロードとインストール手順については、Golangの公式ウェブサイト(https://go.dev/dl/)を参照してください。
コンパイル
-
以下のコマンドを使用して、NEROのソースコードをクローンしたディレクトリに移動します:
cd /path/to/Nero -
以下のコマンドを実行してNEROをコンパイルします:
make gethこれにより、
build/binフォルダにコンパイルされたバイナリが作成されます。
実行
-
以下のコマンドを実行して、利用可能なオプションとその説明のリストを取得します:
./build/bin/geth --help -
具体的な使用方法については、コマンドラインオプションのドキュメントを参照してください。
カスタムオプション:
NEROは--traceactionというカスタムオプションを提供しています:
--traceaction value (デフォルト: 0)
内部トランザクションのcall/create/suicideアクションをトレース、0=トレースなし、1=ネイティブトークン > 0のみトレース、2=すべてトレースこのオプションを使用すると、内部トランザクションをトレースするためのカスタムJSON-RPCメソッドを有効または無効にすることができます。
デプロイ
systemd管理設定の紹介。
ハードウェア
最小要件
8コア
16GB RAM
SSD IOPS>5k推奨要件
16コア
32GB RAM
SSD IOPS>5kネットワークとポート
外部IPアドレス
ポート TCP/UDP 30303チェーンノード
- config.toml
[Eth]
SyncMode = "snap"
TrieTimeout = 1200000000000
StateScheme = "hash"
[Eth.Miner]
GasCeil = 40000000
Recommit = 3000000000
Noverify = false
[Eth.TxPool]
NoLocals = true
Journal = "transactions.rlp"
Rejournal = 600000000000
PriceLimit = 1000000000
PriceBump = 10
AccountSlots = 64
GlobalSlots = 10240
AccountQueue = 32
GlobalQueue = 1024
Lifetime = 1800000000000
[Node]
DataDir = "/data/nerochain/data"
DBEngine = "leveldb"
IPCPath = "geth.ipc"
HTTPHost = "0.0.0.0"
HTTPPort = 8545
HTTPCors = ["*"]
HTTPVirtualHosts = ["*"]
HTTPModules = ['eth', 'net', 'web3', 'turbo', 'engine']
WSHost = "0.0.0.0"
WSPort = 8546
WSModules = ['eth', 'net', 'web3', 'turbo', 'engine']
AuthPort = 8552
GraphQLVirtualHosts = ["localhost"]
[Node.P2P]
MaxPeers = 50
ListenAddr = ":30306"
EnableMsgEvents = false
[Node.HTTPTimeouts]
ReadTimeout = 30000000000
WriteTimeout = 30000000000
IdleTimeout = 120000000000設定でスナップ同期を使用し、フル同期が必要な場合は、この行を変更します
SyncMode = "snap"以下に変更:
SyncMode = "full"起動スクリプト
すべてのフラグの詳細なヘルプ情報を表示するには、
geth helpまたはgeth -hと入力してください
- run.sh
#!/usr/bin/env bash
/data/nero/chain/geth-linux-amd64 \
--config /data/nero/chain/config.toml \
--log.file /data/nero/chain/logs/chain.log \
--log.rotate=true \
--traceaction 2 \
--verbosity 3アーカイブノードとして使用する必要がある場合は、以下を追加します:
--syncmode full \
--gcmode archive \したがって:
#!/usr/bin/env bash
/data/nero/chain/geth-linux-amd64 \
--config /data/nero/chain/config.toml \
--log.file /data/nero/chain/logs/chain.log \
--log.rotate=true \
--traceaction 2 \
--syncmode full \
--gcmode archive \
--verbosity 3ネットワークフラグが提供されていない場合、ノードはデフォルトでNEROメインネットに接続します。NEROテストネットに接続したい場合は、以下を追加します:
--testnetsystemd設定
[Unit]
Description=NERO chain service
[Service]
Type=simple
ExecStart=/bin/sh /data/nero/chain/run.sh
WorkingDirectory=/data/nero/chain
TimeoutSec=600
Restart=on-failure
RestartSec=5s
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target