libra嘗鮮,沒趕上比特幣能不能上這趟車

  • 2019 年 11 月 10 日
  • 筆記

| 白皮書重點

在開始玩libra測試網路之前先來畫畫libra白皮書中的重點,比如幣怎麼產生,怎麼交易等。

建立一套簡單的、無國界的貨幣和為數十億人服務的金融基礎設施

效果是比如你要到美國去,需要點美元,那麼可以通過機構把人民幣換成libra幣,再兌換成美元,或者直接用libra幣進行交易。就像移動支付一樣簡單。

我們憑什麼相信libra幣

將全部使用真實資產儲備(稱為「Libra 儲備」)作為擔保,並由買賣 Libra 並存在競爭關係的交易平台網路提供支援

需要有大量資產做信用背書。Libra 協會是一個獨立的非營利性成員制組織,總部設在瑞士日內瓦。協會旨在協調和提供網路與資產儲備的管理框架,並牽頭進行能夠產生社會影響力的資助,為普惠金融提供支援。

所以這個協會權利巨大,前提你得信任這個協會. Libra 協會的成員將包括分布在不同地理區域的各種企業、非營利組織、多邊組織和學術機構

任何持有 Libra 的人都可以獲得高度保證, 他們能夠根據匯率將自己持有的這種數字貨幣兌換為當地貨幣,就像在旅行時將一種貨幣換成另一種貨幣一樣。這種方法類似於過去引入其他貨幣的方式:確保這種貨幣可以用於換取真實資產,比如黃金。目的是為了幫助培養人們對新貨幣的信任,並在貨幣誕生初期實現廣泛使用。儘管Libra 不會使用黃金作為支援,但它將採用一系列低波動性資產(比如,由穩定且信譽良好的中央銀行提供的現金和政府證券)進行抵押。

Libra 儲備中的資產將由分布在全球各地且具有投資級信用評價的託管機構持有,以確保資產的安全性和分散性

只有 Libra 協會能夠製造 (mint) 和銷毀 (burn) Libra

只有當授權經銷商投入法定資產從協會買入 Libra 幣以完全支援新幣時,Libra 幣才會被製造。只有當授權經銷商向協會賣出 Libra 幣以換取抵押資產時,Libra 幣才會被銷毀。

Libra 協會的一個重要目標就是逐步提高去中心化的程度

協會將逐步實現 Libra 網路的非許可型管理和共識。協會將力求在五年內啟動這一過渡,並以此逐漸減少對創始成員的依賴。同樣地,作為 Libra 儲備的管理者,Libra 協會也會力爭最大程度降低對自身的依賴

| 編譯

| 環境準備

Libra測試版對cmake 與proto版本要求比較高,建議從源碼先安裝這倆,要不然後面可能會報這個錯:

 Compiling grpcio-sys v0.4.4error: failed to run custom build command for `grpcio-sys v0.4.4`  Caused by:  process didn't exit successfully: `/root/libra/libra/target/debug/build/grpcio-sys-18712f499919ddc1/build-script-build` (exit code: 101)--- stdoutcargo:rerun-if-changed=grpc_wrap.cccargo:rerun-if-changed=grpccargo:rerun-if-env-changed=GRPCIO_SYS_USE_PKG_CONFIGcargo:rerun-if-env-changed=CARGO_CFG_TARGET_OS

安裝高版本cmake和protobuf

wget https://github.com/Kitware/CMake/releases/download/v3.16.0-rc3/cmake-3.16.0-rc3.tar.gztar zxvf cmake-3.16.0-rc3.tar.gzcd cmake-3.16.0-rc3yum install -y openssl-devel./configure && make && make install
yum install -y autoconfwget https://github.com/google/protobuf/releases/download/v3.6.1/protobuf-all-3.6.1.tar.gztar zxvf protobuf-all-3.6.1.tar.gz./autogen.sh./configuremakemake install

| 編譯libra

git clone https://github.com/libra/libra.gitcd libragit checkout testnet./scripts/dev_setup.sh

這裡會幫助你安裝go rust啥的,腳本里安裝的protoc cmake可能不能用,所以上面先裝了

| 啟動測試網路

./scripts/cli/start_cli_testnet.sh

然後就會進入到這個互動式命令行中

usage: <command> <args>  Use the following commands:  account | a  Account operationsquery | q  Query operationstransfer | transferb | t | tb  <sender_account_address>|<sender_account_ref_id> <receiver_account_address>|<receiver_account_ref_id> <number_of_coins> [gas_unit_price (default=0)] [max_gas_amount (default 10000)] Suffix 'b' is for blocking.  Transfer coins from account to another.help | h  Prints this helpquit | q!  Exit this client  Please, input commands:libra%

創建賬戶

0是Alice 1是Bob

libra% account create>> Creating/retrieving next account from walletCreated/retrieved account #0 address 3ed8e5fafae4147b2a105a0be2f81972883441cfaaadf93fc0868e7a0253c4a8

這裡返回索引0 和一個hex賬戶地址,0隻是本地方便你操作的.

再創建一個

libra% account create>> Creating/retrieving next account from walletCreated/retrieved account #1 address 8337aac709a41fe6be03cad8878a0d4209740b1608f8a81566c9a7d4b95a2ec7
此時就可以看到兩個賬戶了
libra% account listUser account index: 0, address: 3ed8e5fafae4147b2a105a0be2f81972883441cfaaadf93fc0868e7a0253c4a8, sequence number: 0User account index: 1, address: 8337aac709a41fe6be03cad8878a0d4209740b1608f8a81566c9a7d4b95a2ec7, sequence number: 0
發行貨幣

使用mint命令「鑄幣」,就和髮型貨幣一樣一樣,這裡與比特幣的區別就是比特幣是算力「挖」出來的,而libra只用權威機構敲個命令。。。

libra% account mint 0 110>> Minting coinsMint request submitted

0 是你賬戶索引,110就是「銀子」

再給52大洋給Bob

libra% account mint 1 52>> Minting coinsMint request submitted
查詢賬戶
libra% query balance 0Balance is: 110libra% query balance 1Balance is: 52

轉賬

先看交易sequence,每轉出一次加1

libra% query sequence 0>> Getting current sequence numberSequence number is: 0libra% query sequence 1>> Getting current sequence numberSequence number is: 0

Alice(0)轉 10大洋給Bob(1)

libra% transfer 0 1 10>> TransferringTransaction submitted to validatorTo query for transaction status, run: query txn_acc_seq 0 0 <fetch_events=true|false>

然後再看下交易sequence

libra% query sequence 0>> Getting current sequence numberSequence number is: 1libra% query sequence 1>> Getting current sequence numberSequence number is: 0
雙方賬戶:
libra% query balance 0Balance is: 100libra% query balance 1Balance is: 62
Alice少了10元,Bob多了10元.

| 結束語

全球化的貨幣必將到來,只是不是libra不知道,但是libra的全球推廣必然會遭受很多國家的巨大阻力,這可能是歷史上一次巨大的貨幣戰爭。

最後祝願大家將來能夠一行命令修改自己賬戶里的數字~