Libra是Facebook最新推出的一種技術。它看起來很有前途,是以我們正在探索和學習我們可以用它做什麼!
我們将使用Move(Libra智能合約的程式設計語言),看看能不能做幾筆交易。
概述
我們将要實作什麼功能:
- 在本地計算機上啟動Libra Validator。
- 在本地計算機上啟動Libra CLI。
- 在我們本地的Libra區塊鍊中進行一些交易。
- 更新一些MOVE代碼,看看Libra區塊鍊是如何工作的。
我讀了很多文章,它們隻是向我們展示了如何啟動本地Libra驗證程式和本地Libra用戶端,但是我找不到如何更改Move代碼的某些交易的任何資訊。
是以我決定對代碼進行一些更改,以了解它在move中如何處理交易代碼。我們不會做一些非常花哨的事情,隻會給move智能合約增加一些驗證。
本教程的第一部分可能與Libra官方網頁(https://developers.libra.org/docs/my-first-transaction)非常相似。最後一部分是我們在該部落格中所沒有做的事情。
如果你有一些疑問或不了解本部落格的某些指令或章節,強烈建議檢視Libra開發者的官方頁面,以便更多地了解我們在這裡所做的事情。
我們需要什麼?
我将在一台機器上操作,并且需要安裝以下工具:
- apt get或yum(sudo apt get update-it)
- git(sudo apt get install git)
- curl(sudo apt install curl)
- zlib(apt get install zlib1g dev)
- openssl dev package(apt get install libssl dev)
首先讓我們複制Libra核心存儲庫
git clone https://github.com/libra/libra.git
之後,讓我們通路libra檔案夾并在腳本檔案夾中運作dev_setup.sh。
cd libra
./scripts/dev_setup.sh
這将安裝多個工具(Go,protoc,CMake),以使我們的Libra Core和Libra Client在我們的計算機上運作。
此後,我們将需要登出并再次登入到我們的計算機中,這是因為我們需要更新PATH變量來運作Cargo,然後執行此操作,我們将自動更新它。
現在,我們将開始本地Libra區塊鍊(它将不會連接配接到Libra測試網絡-Testnet,将僅是本地的)。讓我們運作以下指令。
cargo run -p libra_swarm -- -s
僅供參考,cargo run–p libra_swarm負責在我們的機器中啟動驗證程式節點,–s參數隻負責訓示我們是否要啟動libra cli。
這個指令需要幾分鐘,是以要有耐心,如果一切順利,我們必須看到以下的輸出
建立帳戶、造币和交易
我們要做的第一件事是建立兩個帳戶(0和1),為此我們将運作指令:
a create
這将給我們這樣的輸出。
Created/retrieved account #0 address 522b562a0dbb9e88e2607425512f92d92e3aeb696f91468807a0f86743a75254
再次執行
a create
産生類似的輸出。
Created/retrieved account #1 address 091a2e7f02305c7d780f67e869470580701dd5d74c064c943d25052352be1173
現在讓我們來造币,實際上這項服務隻在testnet中提供,它的主要功能是向帳戶中添加代币,是以在生産區塊鍊中公開是有意義的。
運作以下指令在第一個帳戶中添加一些代币。
Command: a mint 0 100
Response: Mint request submitted
要檢查帳戶餘額,請運作:
Command: query balance 0
Response: Balance is: 100.000000
對于#1 account
Command: query balance 1
Response: Balance is: 0.000000
現在我們進行交易,将50個代币從帳戶0轉移到帳戶1
Command: transfer 0 1 50
Response: Transaction submitted to validator
現在檢查餘額,就像我們在上一步中檢查交易是否完成一樣。
Command: query balance 0
Response: Balance is: 50.000000
Command: query balance 1
Response: Balance is: 50.000000
Move交易腳本
我們需要首先确定MOVE 交易腳本的位置。 從用戶端調用此腳本是為了與區塊鍊進行互動(造币,交易)。
這些腳本被稱為Libra universe的智能合約。
是以,這些腳本位于:〜/ libra / language / stdlib / transaction_scripts,這裡将看到五個腳本。
- create_account.mvir
- mint.mvir
- peer_to_peer_transfer.mvir
- placeholder_script.mvir
- rotate_authentication_key.mvir
現在讓我們打開mint.mvir腳本。
該腳本僅将一些代币鑄造(添加)到指定的帳戶中。 接收位址和金額,然後調用LibraAccount代碼即可完成此操作。
更新Move交易腳本
首先,關閉我們機器中的本地客戶機輸入出口。 我們需要這樣做,因為我們将需要重新編譯本地的Libra 區塊鍊,以進行我們将對mint.mvir腳本進行的更改
是以我們在這裡做什麼,我們添加了兩個斷言,如果amount大于50且小于100,這将阻止我們的造币腳本添加代币。
之後,我們将儲存腳本,然後重新運作指令以啟動本地區塊鍊。
cargo run -p libra_swarm -- -s
當我們的Libra區塊鍊線上時,讓我們測試腳本是否正常工作,運作一些指令。
是以我們可以看到,現在我們的Libra區塊鍊隻允許造币價值在50到100之間。
就這樣。 我知道我們并沒有做非常複雜的事情,但是我們修改了本地Libra區塊鍊中的腳本,這是一個很好的開始。 希望大家都喜歡本教程,并且不要懷疑是否有任何問題!
本文轉載公衆号:區塊鍊研究實驗室