core - TerraプロトコルのGO実装

(GO implementation of the Terra Protocol )

Created at: 2018-11-19 01:11:47
Language: JavaScript
License: Apache-2.0

 

Terraプロトコルを実装するフルノードソフトウェア

ドキュメントの探索»

TerraCoreリファレンスGo APIRest APIPython SDKTerra.jsFinderStation


目次

テラとは?

Terraは、分散型経済に基本的なインフラストラクチャを提供し、お金の革新を促進するための新しい金融プリミティブの作成にオープンに参加できるようにする、パブリックなオープンソースのブロックチェーンプロトコルです。

Terraブロックチェーンは、賭けられた資産Lunaに関する分散コンセンサスによって保護され、UST、KRT、SDTなどの主要な世界通貨にアルゴリズムで固定された価格追跡ステーブルコインの発行をネイティブにサポートします。TerraのスマートコントラクトはWebAssemblyで実行され、オンチェーンスワップ、価格オラクル、ステーキング報酬などのコアモジュールを利用して、最新のDeFiアプリを強化します。コミュニティガバナンスによって管理される動的な財政政策を通じて、Terraはユーザーによって指示された進化する民主化された経済です。

Terra Coreは、Golangで記述されたTerraプロトコルのリファレンス実装です。TerraCoreはCosmosSDKの上に構築されており、 TendermintBFTコンセンサスを使用しています。Terra Coreソースで作業する場合は、それらのプロジェクトの概念をよく理解しておくことをお勧めします。

インストール

バイナリ

開始する最も簡単な方法は、オペレーティングシステム用にビルド済みのバイナリをダウンロードすることです。最新のバイナリはリリースページにあります。

ソースから

ステップ1.Golangをインストールします

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

まだインストールしていない場合は、公式ドキュメントに従ってGolangをインストールしてください。

GOPATH
GOBIN
環境変数が適切に設定されていることを確認してください。

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

公式リポジトリ

git
からTerraCoreを取得し、ブランチをチェックアウトするために使用します。このブランチには、バイナリをインストールする最新の安定したリリースが含まれています。
main
terrad

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

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

次のコマンドを実行して、実行可能ファイルをにインストールし、TerraCoreをビルド

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

# COSMOS_BUILD_OPTIONS=rocksdb make install
make install

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

次のコマンドを実行して、terradが正常にインストールされたことを確認します。

terrad version --long

terradが正しくインストールされている場合、次の情報が返されます。

name: terra
server_name: terrad
version: 0.5.0-rc0-9-g640fd0ed
commit: 640fd0ed921d029f4d1c3d88435bd5dbd67d14cd
build_tags: netgo,ledger
go: go version go1.17.2 darwin/amd64

terrad

注:

terracli
廃止され、そのすべての機能がに統合されまし
terrad
た。

terrad
実行中のTerraノードを操作および操作するためのオールインワンコマンドです。使用可能な各機能の包括的な説明については、terradリファレンス情報を参照してください。さまざまなサブコマンドとそれらに期待される引数を表示するには、次の
$ terrad --help
コマンドを使用します。

        
$ 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/$HOME/.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
、ネットワークの一部になるようにノードを設定する必要があります。

メインネットに参加する

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

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

Columbus-5メインネットノードをセットアップするための構成と移行の手順については、メインネットリポジトリにアクセスしてください。

テラノードクイックスタート

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,1000usd
terrad gentx <account_name> 10000000uluna --chain-id=<testnet_name>
terrad collect-gentxs

ステップ3.Terraデーモンを実行します

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

terrad start

ノード

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

おめでとうございます。ローカルTerraネットワークのセットアップに成功しました。

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

:このガイドでは、実稼働レベルのフルノードの一般的な設定についてのみ説明します。Terraバリデーターガイドにアクセスすると、バリデーターノードの操作に関する考慮事項の詳細を確認できます。

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

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

terrad
1024を超えるファイル(デフォルトの最大値)を同時に開くことはできません。

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

*                soft    nofile          65535
*                hard    nofile          65535

専用ユーザーを作成する

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

ポート構成

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

  • 26656
    : The default port for the P2P protocol. Use this port to communicate with other nodes. While this port must be open to join a network, it does not have to be open to the public. Validator nodes should configure
    persistent_peers
    and close this port to the public.

  • 26657
    : The default port for the RPC protocol. This port is used for querying / sending transactions and must be open to serve queries from
    terrad
    . DO NOT open this port to the public unless you are planning to run a public node.

  • 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 Coreソースへの貢献に関心がある場合は、行動規範を確認してください。

ライセンス

このソフトウェアは、Apache2.0ライセンスの下でライセンスされています。詳しくはこちらをご覧ください。

©2022TerraformLabs、PTE LTD


 

お金の革新に力を与える。