Daily Archive2022-03-12

Terra LUNA

テラは、Cosmos のブロックチェーン開発エンジンTendermintによって開発されています。LUNAというネイティブトークン以外に、USTという担保なしのアルゴリズムによって法定通貨とペッグする、ステーブルコインも発行しており、下記www.terra.moneyにも”Programmable Money”とあるようにファイナンス関して先進的な印象をもちました。最近勢いがあります。

https://github.com/terra-money/LocalTerra

今回は、LocalTerraというローカルブロックチェーンを使ってテストしてみました。(ここにもterra-moneyとありますが、”money” 目立ちます)

環境) Docker, WSL / Ubuntu 20.04 / Windows 11

git clone –depth 1 https://www.github.com/terra-money/LocalTerra
cd LocalTerra

(私の環境では、docker-composeをアップデート /usr/local/bin)

sudo wget https://github.com/docker/compose/releases/download/v2.3.2/docker-compose-linux-x86_64

docker-compose up

これで一気にブロックチェーンの起動までいきます。新しいコンソールを開き、

docker-compose stop

で停止します。

LocalTerraの起動状況

起動したときのコンテナの状態

terrad statusなどのコマンドは、CLIから実行可能。

アカウントがあらかじめ用意されているので、LocalTerraに接続して、Terra Station Wallet (Chrome機能拡張)を作成する。

Chrome機能拡張

Rustの設定

https://docs.terra.money/docs/develop/dapp/quick-start/initial-setup.html

rustup default stable
rustup target add wasm32-unknown-unknown
cargo install cargo-generate –features vendored-openssl
cargo install cargo-run-script

Terrain インストール

sudo npm install -g @iboss/terrain

DApp イントール

https://docs.terra.money/docs/develop/dapp/quick-start/using-terrain-localterra.html#install-and-run-localterra

terrain new my-terra-dapp
cd my-terra-dapp
npm install

デプロイ

terrain deploy counter –signer validator

コンソールを使ってデプロイしたコントラクトにアクセス

フロントエンドアプリを使ってコントラクトにアクセス(http://localhost:3000/)

terrain sync-refs
cd frontend
npm install
npm start

Walletに接続して、カウンターをインクリメント(コンソールのつづきなので9)

“+”を押すと、Walletがひらく

インクリメント完了

increment, getCountのコード確認

Blockchain開発にRustという言語はとても重要な位置をしめていますね。USTのようなステーブルコインのしくみはここでは関与しませんでしたが、とても興味深いです。

これまで、USDT,USDCのように実物のドルの担保があるのが普通でしたが、アルゴリズムだけで実現したものを皆が信用するということは、すごいことだなと、単純に思います。いろんな金融商品を組み合わせてリスクヘッジしたりすることは投資の世界でよくあるようですが、こういうのもアルゴリズムがあるのでしょう。最近Blockchainを研究するとともに、ちょっとファイナンス関連にも興味をもつようになってきたような・・