iT邦幫忙

2

大家來玩玩 FB 虛擬貨幣 Libra

  • 分享至 

  • xImage
  •  

前言

Facebook 最近發表他們專屬的FB 虛擬貨幣 -- Libra,目的是希望提供一個相對穩定的虛擬貨幣,讓全世界可以自由跨境轉移資金,所以,它的夥伴包括:
. 支付機構:Mastercard、Visa、PayPal 等
. 大型電商:eBay、Uber 等
. 電信業:Vodafone 等
. 區塊鏈業者:Coinbase、Xapo 等
. 創投:Andreessen Horowitz、Ribbit Capital 等
. NGO、學術單位...
為確保自由開放(??),故協會設在瑞士日內瓦,希望在 2020 上半年可以達到 100 個會員。

Libra 夥伴
圖片來源:Facebook announces Libra cryptocurrency: All you need to know

本文不在說明Libra的詳細玩法,筆者只對程式、技術有興趣,只想與大家分享如何安裝與使用,並在後續文章介紹Libra SDK 的程式語言 -- Move。

架構

基本上它分成兩層:
https://ithelp.ithome.com.tw/upload/images/20190623/20001976AuXbtpgU1b.png

Libra 帳簿(ledger)是一個單一版本的分散式資料庫(single-versioned distributed database),版本號碼記錄已經完成的交易狀態,它就可以賦予 Validator Node 執行以下任務:

  1. 依據最新的帳簿狀態,執行交易並更新帳簿。
  2. 提供用戶查詢帳簿及交易歷史。

Client 負責發動交易及查詢交易狀態,並不會儲存任何資料。

安裝

Libra 目前仍在推廣階段,還沒開張,FB在GitHub上提供Source Code,讓大家安裝Client,可以在測試環境玩玩,目前只支援Linux及Mac,但一般人哪來的 Linux及Mac,所以,身為賤民的筆者,只好土法煉鋼,使用 Windows 10內建的Linux(WSL),安裝 Client,程序如下:

  1. WSL 安裝:網路上已太多人寫了,筆者不在此贅言,請參考【WSL】Windows Subsystem for Linux 安裝及基本配置!
  2. 啟動 WSL:在命令行輸入 bash 或 wsl。
  3. 下載 Libra Client Source Code,如發生TLS error,請關掉防毒軟體
git clone https://github.com/libra/libra.git
  1. 切換到source code目錄:
cd libra
./scripts/dev_setup.sh
  1. 建置用戶端,並連接Validator Node(Testnet):
cd libra
./scripts/cli/start_cli_testnet.sh

看到以下畫面及Libra提示,安裝就大功告成了,已執行Client成功了,可以開始輸入指令了。
https://ithelp.ithome.com.tw/upload/images/20190623/20001976DdevG2KKJi.png

測試

  1. 建立兩個帳號:執行下列指令兩次。
account create
  1. 查詢帳號:
account list
  1. 替第一個帳號(Wallet #0)加值150:
account mint 0 150
  1. 查詢第一個帳號餘額:
query balance 0
  1. 進行交易,從第一個帳號(Wallet #0)轉帳10個虛擬幣給第二個帳號(Wallet #1):
transfer 0 1 10
  1. 查詢轉帳是否完成,第二個0是交易序號:
query txn_acc_seq 0 0 true

資訊如下:
https://ithelp.ithome.com.tw/upload/images/20190623/20001976A2ifHdDjCU.png

重要訊息內容說明如下:
. Sender address:寄送方(sender)
. Sender public key:寄送方公鑰(public key)
. Program 含 Move 交易函數腳本、收受方的資訊及交易金額(optional)、Move 模組(optional)
. Gas price:寄送方為交易執行所願意付出的成本,Gas 是交易計算及儲存的付出成本,單位為(microlibra/gas units)
. Maximum gas amount:寄送方願意付出的最大金額
. Sequence number:交易序號,依寄送方分別編碼
. Expiration time:在此時間內未完成交易,即視為無效交易
. Signature:寄送方的數位簽章

結論

整個安裝及測試過程還算順利,除了要防毒軟體的障礙,下次再來分享一下開發的程式語言 -- Move。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言