core - Terra2.0プロトコルのGO実装

(GO implementation of the Terra 2.0 Protocol)

Created at: 2022-05-16 12:00:00
Language: JavaScript
License: NOASSERTION

 

Terraブロックチェーンのフルノードソフトウェア実装。

ドキュメントを探索する»

TerraCoreリファレンスGo APIRest APIFinderStation


Terra移行ガイド

Terra Classicから新しいTerraブロックチェーンに移行する方法については、移行ガイドをご覧ください。

目次

テラとは?

Terraは、パブリック、オープンソース、プルーフオブステークのブロックチェーンです。Terra Coreは、Golangで記述されたTerraプロトコルのリファレンス実装です。Terra Coreは、CosmosSDKとTendermintBFTのコンセンサスによって強化されます

インストール

バイナリから

Terra Coreをインストールする最も簡単な方法は、ビルド済みのバイナリをダウンロードすることです。最新のバイナリはリリースページにあります。

ソースから

ステップ1:Golangをインストールする

Terra Coreには、Gov1.18以降が必要です。

  1. 公式サイトからGo1.18+をインストールします。

    GOPATH
    次のコマンドを使用して、
    GOBIN
    環境変数が適切に設定されていることを確認します。

    Windowsの場合:

    wget <https://golang.org/dl/go1.18.2.linux-amd64.tar.gz>
    sudo tar -C /usr/local -xzf go1.18.2.linux-amd64.tar.gz
    export PATH=$PATH:/usr/local/go/bin
    export PATH=$PATH:$(go env GOPATH)/bin

    Mac用:

    export PATH=$PATH:/usr/local/go/bin
    export PATH=$PATH:$(go env GOPATH)/bin
  2. バージョンを確認して、Goのインストールを確認します。

    go version

ステップ2:TerraCoreソースコードを取得する

公式リポジトリからTerraCoreのクローンを作成し、

main
ブランチで最新の安定したリリースを確認してください。

git clone https://github.com/terra-money/core/
cd core
git checkout main

ステップ3:Terraコアを構築する

次のコマンドを実行してにインストール

terrad
GOPATH
、TerraCoreをビルドします。
terrad
Terraノードと対話するためのノードデーモンおよびCLIです。

# COSMOS_BUILD_OPTIONS=rocksdb make install
make install

ステップ4:インストールを確認する

次のコマンドを使用して、インストールを確認します。

terrad version --long

インストールが成功すると、次のようになります。

name: terra
server_name: terrad
version: <x.x.x>
commit: <Commit hash>
build_tags: netgo,ledger
go: go version go1.18.2 darwin/amd64

terrad

terrad
Terraブロックチェーンと対話するためのオールインワンCLIおよびノー​​ドデーモンです。

さまざまなサブコマンドとそれらに期待される引数を表示するには、次のコマンドを使用します。

$ terrad --help
Stargate Terra App

Usage:
  terrad [command]

Available Commands:
  add-genesis-account Add a genesis account to genesis.json
  collect-gentxs      Collect genesis txs and output a genesis.json file
  debug               Tool for helping with debugging your application
  export              Export state to JSON
  gentx               Generate a genesis tx carrying a self delegation
  help                Help about any command
  init                Initialize private validator, p2p, genesis, and application configuration files
  keys                Manage your application's keys
  migrate             Migrate genesis to a specified target version
  query               Querying subcommands
  rosetta             spin up a rosetta server
  start               Run the full node
  status              Query remote node for status
  tendermint          Tendermint subcommands
  testnet             Initialize files for a terrad testnet
  tx                  Transactions subcommands
  unsafe-reset-all    Resets the blockchain database, removes address book files, and resets data/priv_validator_state.json to the genesis state
  validate-genesis    validates the genesis file at the default location or at the location passed as an arg
  version             Print the application binary version information

Flags:
  -h, --help                help for terrad
      --home string         directory for config and data (default "/Users/evan/.terra")
      --log_format string   The logging format (json|plain) (default "plain")
      --log_level string    The logging level (trace|debug|info|warn|error|fatal|panic) (default "info")
      --trace               print out full stack trace on errors

Use "terrad [command] --help" for more information about a command.

使用法の詳細については、terradのドキュメントページにアクセスしてください。

ノードのセットアップ

インストールしたら

terrad
、ネットワークの一部になるようにノードを設定する必要があります。

メインネットに参加する

メインネットノードを実行するには、次の要件が推奨されます。

  • 4つ以上のCPUコア
  • 少なくとも32GBのメモリ
  • 少なくとも300mbpsのネットワーク帯域幅
  • 少なくとも2TBのNVMESSD
  • Linuxディストリビューション

Terraノードクイックスタート

terrad init nodename
wget -O ~/.terra/config/genesis.json https://cloudflare-ipfs.com/ipfs/QmZAMcdu85Qr8saFuNpL9VaxVqqLGWNAs72RVFhchL9jWs
curl https://network.terra.dev/addrbook.json > ~/.terrad/config/addrbook.json
terrad start

テストネットに参加する

複数のテストネットが同時に存在する場合があります。

terrad
のバージョンが、参加するネットワークと互換性があることを確認してください。

最新のテストネットにノードを設定するには、テストネットリポジトリにアクセスしてください

ローカルテストネットを実行する

ローカルテスト環境をセットアップする最も簡単な方法は、ゼロ構成の完全なテスト環境であるLocalTerraを実行することです。

シングルノードテストネットを実行する

単一のノードを使用してローカルテストネットを実行することもできます。ローカルテストネットでは、あなたが唯一のバリデーター署名ブロックになります。

ステップ1:ネットワークとアカウントを作成する

まず、ジェネシスファイルを初期化して、ネットワークをブートストラップします。ローカルテストネットの名前を作成し、ノードを参照するためのモニカを提供します。

terrad init --chain-id=<testnet_name> <node_moniker>

次に、次のコマンドを実行してTerraアカウントを作成します。

terrad keys add <account_name>

ステップ2:ジェネシスにアカウントを追加する

アカウントをジェネシスに追加し、開始する初期バランスを設定します。次のコマンドを実行してアカウントを追加し、初期残高を設定します。

terrad add-genesis-account $(terrad keys show <account_name> -a) 100000000uluna
terrad gentx <account_name> 10000000uluna --chain-id=<testnet_name>
terrad collect-gentxs

ステップ3:terradを実行する

これで、プライベートTerraネットワークを開始できます。

terrad start

ノード

terrad
はでノードを実行し、
tcp://localhost:26656
着信トランザクションをリッスンし、ブロックに署名します。

本番環境をセットアップする

:このガイドでは、実稼働レベルのフルノードの一般的な設定についてのみ説明します。詳細については、Terraバリデーターのガイドをご覧ください。

このガイドは、Linuxディストリビューションに対してのみテストされています。実稼働環境を正常にセットアップするには、Linuxシステムでのセットアップを検討してください。

開いているファイルの最大数を増やす

デフォルトで

terrad
は、一度に1024を超えるファイルを開くことはできません。

/etc/security/limits.conf
機能を変更して上げることで、この制限を増やすことができ
nofile
ます。

*                soft    nofile          65535
*                hard    nofile          65535

専用ユーザーを作成する

terrad
通常のユーザーとして実行することをお勧めします。スーパーユーザーアカウントは、ファイルを作成および変更するためのセットアップ中にのみ推奨されます。

ポート構成

terrad
さまざまな目的で複数のTCPポートを使用します。

  • 26656
    :P2Pプロトコルのデフォルトポート。このポートを使用して、他のノードと通信します。このポートはネットワークに参加するために開いている必要がありますが、一般に公開されている必要はありません。バリデーターノードは
    persistent_peers
    、このポートを構成して公開する必要があります。

  • 26657
    :RPCプロトコルのデフォルトポート。このポートはトランザクションのクエリ/送信に使用され、からのクエリを処理するには開いている必要があります
    terrad
    。パブリックノードを実行する予定がない限り、このポートを公開しないでください

  • 1317
    :で有効にできるLiteクライアントデーモン(LCD)のデフォルトポート
    ~/.terra/config/app.toml
    。LCDはHTTPRESTfulAPIレイヤーを提供し、アプリケーションとサービスが
    terrad
    RPCを介してインスタンスと対話できるようにします。使用例については、 TerraRESTAPIを確認してください。LCDを使用する必要がない限り、このポートを開かないでください。

  • 26660
    : Prometheusデータベースと対話するためのデフォルトのポート。Promethuesを使用して環境を監視できます。このポートはデフォルトで閉じられています。

サーバーをデーモンとして実行する

重要

常に

terrad
実行し続けます。最も簡単な解決策は
terrad
systemd
サービスとして登録して、システムの再起動やその他のイベントの後に自動的に開始されるようにすることです。

terradをサービスとして登録する

まず、にサービス定義ファイルを作成します

/etc/systemd/system

サンプルファイル:

/etc/systemd/system/terrad.service

[Unit]
Description=Terra Daemon
After=network.target

[Service]
Type=simple
User=terra
ExecStart=/data/terra/go/bin/terrad start
Restart=on-abort

[Install]
WantedBy=multi-user.target

[Service]
LimitNOFILE=65535

Service
設定に合わせて、上記のサンプルのセクションを変更してください。プロセスで開いているファイルの数を増やした場合でも、を含める必要があることに注意してください
LimitNOFILE

サービス定義ファイルを作成したら、を実行する必要があります

systemctl daemon-reload

サービスを開始、停止、または再開します

制御に使用

systemctl
(開始、停止、再起動)

# Start
systemctl start terrad
# Stop
systemctl stop terrad
# Restart
systemctl restart terrad

アクセスログ

# Entire log
journalctl -t terrad
# Entire log reversed
journalctl -t terrad -r
# Latest and continuous
journalctl -t terrad -f

資力

開発者ツール:

  • Terra docs:開発者向けドキュメント。
  • 蛇口:テストネットルナを入手してください。
  • LocalTerra:ドッキングされたローカルブロックチェーンテストネット。

開発者フォーラム:

ブロックエクスプローラー:

  • Terra Finder:Terraの基本的なブロックエクスプローラー。

ウォレット:

リサーチ:

コミュニティ

貢献

Terra Coreソースへの貢献に関心がある場合は、行動規範を確認してください。

ライセンス

このソフトウェアは、Apache2.0ライセンスの下でライセンスされています。

©2022TerraformLabs、PTE LTD