昨天聽說 Facebook 的數(shù)字幣 Libra 官網(wǎng)已經(jīng)正式上線,找了好久才找到網(wǎng)址: https:// 可始終打不開,只好去讀各路介紹文章,有的看好,有的唱衰,不一而足。讀完后總體感覺 Libra 未來極有可能成為一種很重要的支付手段,值得研究一下。 還好今天很輕松就打開了官網(wǎng),于是參照文檔安裝編譯完 Libra 的命令行客戶端,在測試網(wǎng)絡(luò)上成功發(fā)起了第一筆 Libra 轉(zhuǎn)賬。 開玩笑似的截圖在朋友圈嘚瑟,果然點(diǎn)贊不少。大輝甚至建議我寫一篇使用教程,讓我頗為汗顏,因?yàn)檫@個(gè)操作其實(shí)只是跑了一下 Libra 的官方客戶端,沒任何技術(shù)含量,實(shí)在不值一曬。 但轉(zhuǎn)念又想,建立在區(qū)塊鏈上的數(shù)字貨幣畢竟還很早期,大部分人(包括我在內(nèi))都只是聽說,但也許從來沒上手用過,一點(diǎn)直觀的使用體驗(yàn)都沒有。所以雖然這些操作并不難,但應(yīng)該也能幫一些不便上官網(wǎng)的朋友親手體驗(yàn) Libra,對區(qū)塊鏈和數(shù)字幣積累一點(diǎn)實(shí)際的觸感。那么就簡單寫一個(gè)操作說明吧。 先聲明幾點(diǎn):以下操作完全是在 Libra 的測試網(wǎng)絡(luò)上運(yùn)行,所有充值和轉(zhuǎn)賬金額都只是虛擬數(shù)據(jù),僅出于演示目的,既不會損失你任何實(shí)際的金錢,也不會讓你得到任何實(shí)際的金錢。更不是什么能讓你會所嫩?;蛳潞8苫畹摹俺磶拧?。 下面是具體操作過程: 1. 準(zhǔn)備
接下來,我們會下載必要的 Libra 組件,然后創(chuàng)建兩個(gè)賬戶,并在這兩個(gè)賬戶之間進(jìn)行轉(zhuǎn)賬。 2. 克隆并編譯 Libra Core在終端里找一個(gè)合適的目錄下執(zhí)行: git clone https://github.com/libra/libra.git 然后進(jìn)入 libra 目錄:
運(yùn)行安裝腳本: ./scripts/dev_setup.sh 這一步視乎你的網(wǎng)絡(luò)連接速度,可能需要挺長時(shí)間,我這里是300M的光纖,大約用了40分鐘左右。 3. 編譯客戶端并連接到測試網(wǎng)絡(luò)執(zhí)行命令:
這條命令會編譯客戶端,并把客戶端連接到 Libra 測試網(wǎng)絡(luò)中的驗(yàn)證節(jié)點(diǎn)上。 連接成功后,會看到這些輸出信息: 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 (default=0)] [max_gas_amount (default 10000)] Suffix 'b' is for blocking. Transfer coins from account to another. help | h Prints this help quit | q! Exit this client
Please, input commands:
libra% 如果看到上面的信息,說明你的客戶端運(yùn)行正常,并且已經(jīng)成功連接到 Libra 的測試網(wǎng)絡(luò)上了,接著開始創(chuàng)建測試賬戶。 4. 創(chuàng)建測試賬戶在
意思是創(chuàng)建賬戶,你會看到類似這樣的信息: >> Creating/retrieving next account from wallet Created/retrieved account #0 address a81b8fcd484fd9bff6f67f51751cd6949de233c08019bb79038a09c626d29857
請注意,我們現(xiàn)在創(chuàng)建的這個(gè)賬戶暫時(shí)還只在本地,并沒有出現(xiàn)在區(qū)塊鏈上,只有以下兩種情況發(fā)生之后,才會真正在區(qū)塊鏈上創(chuàng)建這個(gè)賬戶:
我們要測試在賬戶之間進(jìn)行轉(zhuǎn)賬,所以還需要再創(chuàng)建另外一個(gè)賬戶: 再次輸入創(chuàng)建賬戶的命令:
這次返回的信息里 輸入命令: account list 意思是列出目前本地的所有賬戶,你應(yīng)該看到類似信息:
表明目前本地有兩個(gè)賬戶,本地編號分別是 你可以把這兩個(gè)地址記錄下來,稍后會用到。 5. 檢查賬戶余額我們現(xiàn)在還不能轉(zhuǎn)賬,為什么呢,因?yàn)閮蓚€(gè)賬戶里目前都沒有余額,你可以輸入查詢余額的命令來檢查一下: query balance 0 這里輸入的
表明目前A賬戶的余額是 也可以檢查一下我們創(chuàng)建的第二個(gè)賬戶(以下簡稱B賬戶)的余額,當(dāng)然應(yīng)該也是 query balance 1 應(yīng)該看到:
6. 給賬戶充值我們現(xiàn)在給A賬戶里充一些錢,由于在測試階段,不需要真的付錢,但以后 Libra 正式運(yùn)行時(shí),這一步應(yīng)該就要掏出真金白銀來充值了。 只需要執(zhí)行這行命令就可以給賬戶里充錢: mint 0 100 命令中的 同樣,可以把
那么,這里寫成: mint 3ed8e5fafae4147b2a105a0be2f81972883441cfaaadf93fc0868e7a0253c4a8 100 效果是完全一樣的。 好,現(xiàn)在查詢一下A賬戶的余額:
應(yīng)該看到余額就是你剛才充值的錢數(shù),假設(shè)是 Balance is: 100 7. 發(fā)起轉(zhuǎn)賬現(xiàn)在可以從A賬戶向B賬戶轉(zhuǎn)賬了,假設(shè)我們要轉(zhuǎn) 15 個(gè) Libra 幣:
其中 你會看到這樣的提示: >> Transferring Transaction submitted to validator To query for transaction status, run: query txn_acc_seq 0 0 <fetch_events=true|false> 意思是轉(zhuǎn)賬交易已經(jīng)提交給驗(yàn)證節(jié)點(diǎn)了,但這里多說一點(diǎn)細(xì)節(jié),就是此時(shí)理論上只能認(rèn)為轉(zhuǎn)賬信息已經(jīng)提交到節(jié)點(diǎn),但不保證已經(jīng)被執(zhí)行,按我的理解,就像你寄出的快遞已經(jīng)被快遞小哥收走,但具體送到哪兒了,還得隨時(shí)用快遞單號查詢。(把 在 Libra 里,你可以用下面的命令查詢轉(zhuǎn)賬狀態(tài):
其中第一個(gè) 返回信息類似這樣,記錄了這筆轉(zhuǎn)賬的詳細(xì)信息: >> Getting committed transaction by account and sequence number Committed transaction: SignedTransaction { raw_txn: RawTransaction { sender: a81b8fcd484fd9bff6f67f51751cd6949de233c08019bb79038a09c626d29857, sequence_number: 3, payload: {, transaction: peer_to_peer_transaction, args: [ {ADDRESS: 8ff67e42fcbc4633fb0165afa4a4bfd511e0064ab8ed431d3a8baf778b5053d2}, {U64: 100000000}, ] }, max_gas_amount: 10000, gas_unit_price: 0, expiration_time: 1560936041s, }, public_key: 5fa8955585aef04eba252ef27797834f591972b0d09759d42b44dcfc71dc26b9, signature: Signature( R: CompressedEdwardsY: [74, 194, 138, 73, 58, 65, 249, 140, 87, 159, 51, 152, 161, 157, 228, 94, 93, 138, 197, 222, 63, 240, 159, 76, 77, 192, 187, 83, 242, 49, 70, 225], s: Scalar{ bytes: [204, 212, 104, 57, 7, 225, 251, 159, 219, 52, 96, 71, 200, 180, 211, 245, 180, 14, 37, 0, 6, 53, 100, 99, 34, 215, 25, 217, 66, 194, 116, 7], } ), } Events: ContractEvent { access_path: AccessPath { address: a81b8fcd484fd9bff6f67f51751cd6949de233c08019bb79038a09c626d29857, type: Resource, hash: '217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc97', suffix: '/sent_events_count/' } , index: 3, event_data: AccountEvent { account: 8ff67e42fcbc4633fb0165afa4a4bfd511e0064ab8ed431d3a8baf778b5053d2, amount: 100000000 } } ContractEvent { access_path: AccessPath { address: 8ff67e42fcbc4633fb0165afa4a4bfd511e0064ab8ed431d3a8baf778b5053d2, type: Resource, hash: '217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc97', suffix: '/received_events_count/' } , index: 0, event_data: AccountEvent { account: a81b8fcd484fd9bff6f67f51751cd6949de233c08019bb79038a09c626d29857, amount: 100000000 } } 現(xiàn)在我們來查一下A賬戶的余額:
顯示余額為: Balance is: 85 再查一下B賬戶的余額:
顯示余額為: Balance is: 15 說明我們從A賬戶向B賬戶轉(zhuǎn)的 |
|