這個命令需要幾分鐘,所以要有耐心,如果一切順利,我們必須看到以下的輸出
建立帳戶、造幣和交易
我們要做的第一件事是建立兩個帳戶(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,這裡將看到五個指令碼。
1. create_account.mvir
2. mint.mvir
3. peer_to_peer_transfer.mvir
4. placeholder_script.mvir
5. rotate_authentication_key.mvir
現在讓我們開啟mint.mvir指令碼。
import 0x0.LibraAccount;
import 0x0.LibraCoin;
main(payee: address, amount: u64) {
LibraAccount.mint_to_address(move(payee), move(amount));
return;
}
該指令碼僅將一些代幣鑄造(新增)到指定的帳戶中。 接收地址和金額,然後呼叫LibraAccount程式碼即可完成此操作。
更新Move交易指令碼
首先,關閉我們機器中的本地客戶機輸入出口。 我們需要這樣做,因為我們將需要重新編譯本地的Libra 區塊鏈,以進行我們將對mint.mvir指令碼進行的更改
import 0x0.LibraAccount;
import 0x0.LibraCoin;
main(payee: address, amount: u64) {
assert(copy(amount) > 50000000, 0);
assert(copy(amount) < 100000000, 1);
LibraAccount.mint_to_address(move(payee), move(amount));
return;
}
所以我們在這裡做什麼,我們新增了兩個斷言,如果amount大於50且小於100,這將阻止我們的造幣指令碼新增代幣。
之後,我們將儲存指令碼,然後重新執行命令以啟動本地區塊鏈。
cargo run -p libra_swarm -- -s
當我們的Libra區塊鏈線上時,讓我們測試指令碼是否正常工作,執行一些命令。
Command: a create
Response: Created/retrieved account #0 address 957fce46498beb7be02aed705ba489717216beb033177f66ec825c3df7263eec
Command: a mint 0 1
Response: Mint request submitted
Command: query balance 0
Response: Balance is: 0.000000
Command: a mint 0 51
Response: Mint request submitted
Command: query balance 0
Response: Balance is: 51.000000
Command: a mint 0 100
Response: Mint request submitted
Command: query balance 0
Response: Balance is: 51.000000
Command: a mint 0 99
Response: Mint request submitted
Command: query balance 0
Response: Balance is: 150.000000
所以我們可以看到,現在我們的Libra區塊鏈只允許造幣價值在50到100之間。
就這樣。 我知道我們並沒有做非常複雜的事情,但是我們修改了本地Libra區塊鏈中的指令碼,這是一個很好的開始。 希望大家都喜歡本教程,並且不要懷疑是否有任何問題!