こんにちは!フレセッツ株式会社の日向です。
いよいよ9月も2週目に入り、そろそろ涼しくなってくるかな……と思いきや、まだまだ残暑がキツいですね。先日業界の方とBBQに行ってきたのですが、炭の熱と地面からの照り返しの熱で見事に熱中症になり、2時間くらい汗がダクダクでした笑
さて、今回はネット業界の巨頭、Facebook が突如発表し話題になった「Libra(リブラ)」プロジェクトについてです。
Libra(リブラ)とは?
Libra の一つの大きな特徴は、他の多くの仮想通貨(暗号資産)とは異なり、裏付けとなる資産(リザーブ)があることです。裏付け資産があることで価格の安定が見込まれるという点においてはいわゆる「ステーブルコイン」に相当しますが、単純に一つの法定通貨や金融資産にペグするのではなく、複数の法定通貨を組み合わせることで「通貨バスケット」を作り、それに対してペグさせるという点で、単純なステーブルコインとは異なった仕組みとなっています。通貨バスケット制を導入している通貨としては、IMFのSDR(特別引出権; 複数の国が通貨を供出し合うことで、金融危機が起きた際などに通貨を融通し合える仕組み)などに似たものと言えるでしょう。
また新しいスマートコントラクト言語として「Move」と呼ばれる言語も開発予定となっており、Ethereum などの既存のスマートコントラクトプラットフォームにて露見された脆弱性を低減できることが期待されています。
グローバルな決済需要に答えるため、ローンチ直後から 1,000 TPS (Transactions Per Second) 以上の処理性能を備えることを目標としていることも一つの特徴でしょう。
なお、より詳しい話については、2019年9月17日に勉強会を行いますので、こちらにご来場いただければと思います。
Libra のビルド
さて、それではさっそく Libra をビルドしてみましょう。ビルド手順はいたって簡単で、開発者向けのこちらのウェブサイトに書かれているとおりです。
リポジトリをクローンする
$ git clone https://github.com/libra/libra.git
$ cd libra
テストネットブランチのチェックアウト
$ git checkout testnet
依存関係のインストール
$ ./scripts/dev_setup.sh
ビルドおよび CLI の起動
ドキュメントには「CLI の起動」としか書かれていませんが、実際には Rust のコンパイル処理が走りますのでそれなりに時間がかかります。なお2回目以降は再コンパイルされませんので、比較的すぐに終わります。ご安心を。
$ ./scripts/cli/start_cli_testnet.sh
以上で完了です。非常に簡単ですね。
ただ、最後の処理が手元の環境では「mempool.proto: No such file or directory」というエラーメッセージが出て成功しませんでした。いろいろと調べてみた結果、Protocol Buffers のバージョンが古いのが原因だったようです。Ubuntu 18.04 Bionic LTS で試したのですが、protobuf-compiler のバージョンが「3.0.0」だと失敗するようです。仕方がないので OS を最新版である Ubuntu 19.04 Disco に更新したところ(※protobuf-compiler のバージョンは「3.6.1」)正常にコンパイルできました。もし同様のエラーが発生している場合には、何らかの方法で Protocol Buffers を最新のバージョンにしてみてください。
無事に完了すると、下記のようなメッセージとともにインタラクティブなコンソール画面が立ち上がります。
Connected to validator at: ac.testnet.libra.org:8000
usage: <command> <args>
Use the following commands:
account | a
Account operations
query | q
Query operations
transfer | transferb | t | tb
<sender_account_address>|<sender_account_ref_id> <receiver_account_address>|<receiver_account_ref_id> <number_of_coins> [gas_unit_price_in_micro_libras (default=0)] [max_gas_amount_in_micro_libras (default 100000)] Suffix 'b' is for blocking.
Transfer coins (in libra) from account to another.
help | h
Prints this help
quit | q!
Exit this client
Please, input commands:
libra%
「libra%」の後にコマンドを入力することで、後に見るように様々な操作を行うことができます。
なお、終了するには Ctrl-D を押すか、「quit」コマンドを利用します。
Libra テストネットコインを使ってみる
無事に CLI コンソールを起動することができましたら、テストネットコインの送受金を試してみましょう。なお以下の操作はこちらのドキュメントを元にしています。
アカウントを2つ作る
送金用のアカウント(アカウント番号「0」)と、受金用のアカウント(アカウント番号「1」)の2つを作成しましょう。アカウントを作るためには「account create」コマンドを利用します。
libra% account create
>> Creating/retrieving next account from wallet
Created/retrieved account #0 address 8f55ae20c620a407debddf079a13ae5cb821b854132078b405af4c798731047a
libra% account create
>> Creating/retrieving next account from wallet
Created/retrieved account #1 address 5a0428b4b3fcaa507d37e9100cc5365d878848c4b759c0d25fab4f995230f9c6
上記のように、2回「account create」コマンドを実行することで、アカウント番号「0」および「1」が作成されます。なお、表示されている16進数の文字列(アカウントのアドレス)は実行ごとに異なりますので注意してください。
アカウントの一覧を確認する
アカウントを作成することができましたら「account list」コマンドで作成されたアカウントを確認してみましょう。
libra% account list
User account index: 0, address: 8f55ae20c620a407debddf079a13ae5cb821b854132078b405af4c798731047a, sequence number: 2, status: Persisted
User account index: 1, address: 5a0428b4b3fcaa507d37e9100cc5365d878848c4b759c0d25fab4f995230f9c6, sequence number: 0, status: Persisted
上記のように、作成されたアカウントのアドレスが2個表示されたら成功です。
テストネットコインを入手する
Libra のテストネットでは、誰でも自由に新しいコインを作成(鋳造、mint)することができます。「account mint」コマンドを利用します。それではアカウント番号「0」に対して「100 LBR」を鋳造してみましょう。
libra% account mint 0 100
>> Minting coins
Mint request submitted
処理に一瞬時間がかかりますが、すぐに終わるはずです。
残高確認
コインの鋳造ができましたら、アカウントの残高が正しく増えていることを確認しましょう。そのためには「query balance」コマンドを利用します。
libra% query balance 0
Balance is: 100.000000
libra% query balance 1
Balance is: 0.000000
アカウント番号「0」の残高が 100 LBR に増えていれば成功です!
送金を行う
以上で下準備は完了です。「transfer」コマンドを実行して実際に送金を行ってみましょう。
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>
これでアカウント番号「0」から「1」に対して「10 LBR」の送金を行うことができます。
実際に送金することができましたら、再度「query balance」コマンドを実行して残高が変わっていることを確認しましょう。
libra% query balance 0
Balance is: 90.000000
libra% query balance 1
Balance is: 10.000000
アカウント番号「0」の残高が「90 LBR」、アカウント番号「1」の残高が「10 LBR」になれば成功です。なお、送金手数料などは(テストネットだから?)発生しないようです。
まとめ
以上で、Libra の CLI クライアントのビルドおよびテストネット上での送受金を行うことができました。まだメインネットのローンチはされておりませんが、今後の動きに期待です。
お知らせ
■fressetsは積極的に採用を行っています!詳細は下記のリンクからご確認下さい。
Link: https://fressets.com/careers/careers-416/
Link: https://fressets.com/careers/careers-0/
■ステーキング事業の提供を始めました!
7月からHashHubでは、Cosmos,Tezos,IOSTの3つのトークンをステーキング出来るサービス「Sanka Network」を提供し始めました。本サービスのご利用をご検討の方は、下記のWEBサイトからお問い合わせください。
Sanke Network:https://www.sanka.network/
■HashHubでは下記のポジションを積極採用中です!
・コミュニティマネージャー
・ブロックチェーン技術者・開発者
・ビジネスディベロップメント
詳細は下記Wantedlyのページをご覧ください。
Wantedly:https://www.wantedly.com/companies/hashhub/projects
■HashHubでは入居者募集中です!
HashHubは、ブロックチェーン業界で働いている人のためのコワーキングスペースを運営しています。ご利用をご検討の方は、下記のWEBサイトからお問い合わせください。また、最新情報はTwitterで発信中です。
HashHub:https://hashhub.tokyo/
Twitter:https://twitter.com/HashHub_Tokyo
Facebook Libra(リブラ)のテストネットを使ってみた was originally published in Blockchain Engineer Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.