今週Facebookが仮想通貨Libraを発表しました。
ステーブルコインとして価値が一定になるような仮想通貨で、Facebook Messenger, WhatsApp, 専用のウォレットアプリ カリブラ(Calibra)などで利用できるようです。
Libraを使ったアプリを開発できるMoveというプログラミング言語も発表されています。
LibraのDeveloperサイト https://developers.libra.orgに、Libraを実行するチュートリアルがあったので、実行してみました。
1. Libraをクローンする
まずGitHubからLibraをクローンしてきましょう。
$ git clone https://github.com/libra/libra.git && cd libra
2. 依存ライブラリをインストールする
$ ./scripts/dev_setup.sh
スクリプトを実行すると、依存ライブラリをインストールされます。
3. Libra CLIを実行する
./scripts/cli/start_cli_testnet.sh
ビルドするのに結構時間がかかりました。 ビルドが終わるとLibra CLIが起動します。
4. トランザクションを実行する
LibraのMy First Transactionのページ https://developers.libra.org/docs/my-first-transaction に沿って実行していきます。
AliceとBobのアカウントを作成する
1. CLI Clientがシステムで動いているか確認する
Libra CLIで account
コマンドを実行します。すると以下のようにコマンドの説明が表示されます。
Use the following args for this command:
create | c
Create an account. Returns reference ID to use in other operations
list | la
Print all accounts that were created or loaded
recover | r <file_path>
Recover Libra wallet from the file path
write | w <file_path>
Save Libra wallet mnemonic recovery seed to disk
mint | mintb | m | mb <receiver_account_ref_id>|<receiver_account_address> <number_of_coins>
Mint coins to the account. Suffix 'b' is for blocking
2. Aliceのアカウントを作成する
account create
コマンドを実行します。
libra% account create
するとアカウントのアドレスが発行されます。
>> Creating/retrieving next account from wallet
Created/retrieved account #0 address 05f2ce8714d7f6fb6eeb0735477ce31c7ee8087790bc522b1d37a8a107e82f46
3. Bobのアカウントを作成する
もう一度 account create
コマンドを実行します。
libra% account create
すると次は #1のアカウントが作成されます。
>> Creating/retrieving next account from wallet
Created/retrieved account #1 address 806ada4d58bab45bf9f3ea1d37d2aa383a750812c16af63a57d69692459a3a97
4. アカウント一覧を表示する
account list
コマンドでアカウント一覧を表示できます。
libra% account list
すると先ほど作成したアカウント一覧が表示されます。
User account index: 0, address: 05f2ce8714d7f6fb6eeb0735477ce31c7ee8087790bc522b1d37a8a107e82f46, sequence number: 0, status: Local
User account index: 1, address: 806ada4d58bab45bf9f3ea1d37d2aa383a750812c16af63a57d69692459a3a97, sequence number: 0, status: Local
LibraコインをAliceとBobのアカウントに追加する
account mint
コマンドを使いますがこの機能はテストネットのみのようです。
1. 110 LibraをAliceのアカウントに追加する
account mint
コマンドでAliceのアカウントに110 Libraを追加します。
libra% account mint 0 110
するとリクエストがサブミットされたことがわかります。
>> Minting coins
Mint request submitted
ここではまだリクエストをサブミットしただけで実際に110Libra付与されたわけではありません。
2. Bobのアカウントに52Libra追加する
Alice同様、BobのアカウントにもLibraを追加します。
libra% account mint 1 52
こちらもリクエストがサブミットされます。
>> Minting coins
Mint request submitted
3. 残高を確認する
残高を確認するには、query
コマンドを使います。
Aliceの残高を確認します。
libra% query balance 0
すると先ほど付与した110libraあることがわかります。
Balance is: 110
同様にBobの残高も確認します。
libra% query balance 1
Balance is: 52
トランザクションを実行する
アカウントのシーケンス番号を取得する
トランザクションを実行する前に、シーケンス番号を取得します。
libra% query sequence 0
>> Getting current sequence number
Sequence number is: 0
libra% query sequence 1
>> Getting current sequence number
Sequence number is: 0
Alice, Bobのどちらもシーケンス番号は0です。これはまだどちらのアカウントもトランザクションを実行していないことを意味します。
送金する
送金するには transfer
コマンドを使用します。
Alice(0)からBob(1)に10Libraを送金します。
libra% transfer 0 1 10
すると送金リクエストがバリデータに送信されたことがわかります。
libra% transfer 0 1 10
>> Transferring
Transaction submitted to validator
To query for transaction status, run: query txn_acc_seq 0 0 <fetch_events=true|false>
query txn_acc_seq 0 0 true
コマンドを実行することでトランザクションの詳細をみることができます。
これでバリデータに承認されると送金が行われます。
送金後のシーケンス番号を確認する
libra% query sequence 0
>> Getting current sequence number
Sequence number is: 1
libra% query sequence 1
>> Getting current sequence number
Sequence number is: 0
Aliceのシーケンス番号は1, Bobのシーケンス番号は0のままです。AliceからBobに送金したのでAliceのシーケンス番号を1つ上がっています。
AliceとBobの残高を確認する
query balance
コマンドを使って、両者の残高を確認しましょう。
libra% query balance 0
Balance is: 100
libra% query balance 1
Balance is: 62
以上で送金ができました!
試すのは簡単
Libraの開発者サイトを参考にテストネットで試してみましたが、Libraを送金するのは非常に簡単ですね。
今度はMoveについても試してみたいと思います。
エンジニアリング Libra Facebook CryptoCurrency Blockchain
関連記事
-
2024/3/24
try! Swift Tokyo 2024
try! Swift Tokyo 2024の参加メモ
Swift
-
2023/1/31
SwiftUIでTabBarを非表示にする
SwiftUI TabBar
-
2023/1/14
Bootstrap5.3で追加されたダークモードに対応してみました
Bootstrap DarkMode
-
2021/2/17
brew upgradeで Your CLT does not support macOS 11というエラーがでた
homebrew macOS Big Sur
-
2020/12/1
Apple Silicon搭載 MacBook Pro M1で Homebrewとrbenvをインストールする
先日購入したApple Silicon搭載 MacBook Pro M1にこのブログをビルドするためにHomebrewとrbenvをインストールしたのでメモ。
Apple Silicon Homebrew rbenv
-
2020/11/27
Apple Silicon搭載のMacBook Pro M1が危うく文鎮化するところだったので記録
Apple Silicon搭載のMacBook Pro 13インチを仕事用に購入したのですが、クリーンインストールしたところ文鎮化しかけたので記録しておきます。
MacBook Pro Apple Apple Silicon M1
-
2020/6/23
Platform State of the Unionまとめ
Platform State of the Unioまとめ
WWDC2020 Apple アップル iOS macOS watchOS tvOS
-
2020/6/23
WWDC2020キーノートまとめ
WWDC2020 キーノートまとめ
WWDC2020 Apple アップル iOS macOS watchOS tvOS
-
2020/5/31
GitHub Pagesで無料ブログを作成する - Part4 自分のオリジナルのテーマを作る
Jekyllでは既存のテーマを使うこともできるのですが、さらに一歩踏み込んで、自分で既存のテーマをカスタマイズしたり、テーマを作ることもできます。
GitHub Pages ブログ
-
2020/5/28
GitHub Pagesで無料ブログを作成する - Part3 Jekyllの設定をカスタマイズする
前回の記事では、Jekyllのテーマを利用する方法と記事を追加する方法を紹介しました。今回はさらにJekyllをカスタマイズしていきますが、確認を簡単にするためにまずJekyllをローカル環境で実行する方法を紹介します。
GitHub Pages ブログ