Facebook的libra幣開發指南

2021-09-24 15:48:09 字數 3274 閱讀 4768

近期facebook擬發行的libra幣,可以說是加密貨幣界和傳統金融行業的一件大事,很多人都認為這次數字貨幣真的可能改變世界。作為程式設計師而言,怎樣搭上這班車,相信是大家都非常關心的。我覺得我們可以從開發libra幣的智慧型合約入手,將現實世界中的支付場景,尤其是跨境支付場景,在libra幣的環境來實現,也許可以找到好的方向。本文就是根據libra.org中的文件,在本地執行libra的測試網路,建立兩個使用者,實現兩個使用者之間的轉賬操作,為下面用move語言來開發智慧型合約打下基礎。

由於libra網路還沒有正式運轉,我們要體驗libra體系架構,可以通過測試網路來進行,這樣做還有乙個好處,就是不像正式網路那樣,我們需要真金**的投入資金,才有體驗的資格。

根據libra的文件,想要執行libra測試網路,需要linux或macos作業系統,所以本文以macos系統為例進行講解。在macos中需要事先安裝好git和homebrew,由於這些都是基本內容,這裡就不再介紹了,讀者可以參考網上的文章來進行安裝配置。

git clone
接下來通過命令配置libra core:

cd libra

./scripts/dev_setup.sh

安裝過程選擇讓安裝程式自動安裝依賴庫,即可完成安裝過程。

在安裝過程中,由於要向/usr/loca/share目錄寫入幫助檔案,可能出現許可權不足的問題,可以通過如下命令將該目錄所有者改為當前使用者:

sudo chown -r gile /usr/local/share
再次執行即可成功安裝了。

通過如下命令來編譯libra客戶端並連線到libra測試網路的驗證節點:

./scripts/cli/start_cli_testnet.sh
在連線到libra測試網路之後,我們就可以開始建立賬戶了。

執行如下命令:

account
如果打出類似如下內容,則證明環境是正常可用的:

執行如下命令:

account create
執行結果如下所示:

如上所示:#0代表我們建立的這個賬戶的編號為0號,後面跟的是錢包位址,在實際應用中,我們需要將這個資訊記錄到資料庫中。

接下來我們用同樣的方式建立另乙個賬戶bob,如下所示:

到目前為止,我們系統中的賬戶有:

[

,]

account list
執行結果如下所示:

由此可以看出,這些資訊與我們儲存的資訊是完全一樣的。

在某種意義上來說,區塊鏈就是挖礦和發幣,所以我們也進行挖礦和發幣。在libra測試網路中,用facet服務來挖礦和發幣。所以下面我們分別產給alice和bob一些初始資金,為我們後續的轉賬操作打下基礎。

執行如下命令:

account mint 0 110
執行結果如下所示:

在account mint 0 110中,0代表給編號為0的賬戶發幣,110為發幣的數量,後面的提示資訊表示這個交易成功提交到libra測試網路,目前正存在於驗證節點的記憶體池中,只有當驗證節點將該交易寫入區塊鏈中時,交易才算正式完成。我們將在後面介紹檢視賬戶餘額的方法,就是只有在寫入區塊鏈後,賬戶的餘額才會發生改變。

接下來可以通過下面的命令給bob發幣:

account mint 1 52
接下來我們檢視這兩個賬戶的餘額:

query balance 0

query balance 1

下面我們把alice的10元(我們假設libra中的單位是元)轉給bob。

執行如下命令:

query sequence 0

query sequence 1

執行結果如下所示:

由於這兩個賬戶都是新賬戶,所以其交易號為0 。

執行如下命令:

transfer 0 1 10
在上面的命令中,0代表資金轉出賬戶編號,1代表資金轉入賬戶編號,10代表轉賬金額。執行結果如下所示:

在上面的命令中,txn_acc_seq 0 0表示這個交易,第乙個0代表賬戶的編號,第二個0代表該賬戶的交易編號,如果想檢視交易的詳細資訊,可以使用如下命令:

query txn_acc_seq 0 0 true
結果如下所示:

同樣,這只是將交易提交到了libra的測試網路,儲存在驗證節點的記憶體池中,只有當該交易被驗證節點實際寫入區塊鏈中時,這個交易才生效,即使用者的餘額才會發生變化。

執行下面命令檢視賬戶餘額:

query balance 0

query balance 1

執行結果如下所示:

如圖所示,我們看alice和bob的賬戶均已經被正確修改過了。

此時如果我們再來查詢交易號,如下所示:

query sequence 0

query sequence 1

執行結果如下所示:

如上圖所示,alice賬戶發生了乙個交易(有資金轉出時視為發生交易),所以其交易編號就變1了。

Libra教程之 Libra協議的關鍵概念

版本資料庫 賬戶賬戶位址 proof 驗證節點 儲存libra協議是libra區塊鏈的基礎,本文主要講解libra協議的一些關鍵概念。我們知道區塊鏈也可以叫分布式賬本,它主要的作用就是儲存各種交易。而為了便於查詢和提公升效率,現代的區塊鏈都會引入狀態的概念,來代表某時刻鏈上資料的當前快照。交易會改變...

Libra數字貨幣的全面解讀

我們對於區塊鏈算是有非常長的時間裡有關注,因為。可能在一六年啊,是在一五年的時候,圈兒裡就已經是乙個。在科技領域比較火熱的乙個領域了,但是大家都沒有想到,一七年的時候,跟隨位元幣的一波。然後呢,獲得社會這麼大的關注,當然說,在中國一八年年初的時候,那個時候可能位元幣 已經 了。那個時候,這個反兒國內...

從Libra看區塊鏈的機遇

一番碼客 挖掘你關心的亮點。記得去年扎克伯格搞libra的時候,引起了世界的關注。但隨著美國國會聽證會的阻力,漸漸很少聽見libra的聲音了,不持續關注,大家以為libra涼了,時不時也有中國的dcep也冒個泡。這兩天一番聽了乙個節目,持續解讀libra及其可能帶來的生態機會,不去了解就可能錯過未來...