The Libra Blockchain開發(fā)者文檔-(4)Libra上的第一筆交易

本文檔將指導(dǎo)您在Libra 區(qū)塊鏈上執(zhí)行您的第一筆交易欧引。 在執(zhí)行第一筆交易的步驟之前,我們建議您閱讀以下文檔恳谎,以熟悉Libra生態(tài)系統(tǒng)和Libra協(xié)議的關(guān)鍵方面:


歡迎頁(yè)

Libra協(xié)議核心概念

我們提供了一個(gè)命令行界面(CLI)客戶端來(lái)與區(qū)塊鏈進(jìn)行交互。

約定準(zhǔn)備條件

本文檔中的所有命令均假定已經(jīng)完成如下準(zhǔn)備:

您運(yùn)行的是Linux(基于Red Hat或Debian)或macOS系統(tǒng)。

可以穩(wěn)定地連接到互聯(lián)網(wǎng)因痛。

git已在您的系統(tǒng)上安裝婚苹。

macOS上已安裝Homebrew。

yum或者apt-get已在您的Linux系統(tǒng)上安裝鸵膏。

提交交易的步驟

在這個(gè)例子中膊升,我們將下載必要的Libra組件并在兩個(gè)用戶(Alice和Bob)之間執(zhí)行一個(gè)交易操作。

執(zhí)行以下步驟將交易提交到Libra testnet上的驗(yàn)證程序節(jié)點(diǎn):

克隆并構(gòu)建Libra Core.

編譯Libra CLI客戶端并連接到testnet.

創(chuàng)建Alice和Bob的帳戶.

鑄幣并添加到Alice和Bob的賬戶.

提交交易.

克隆并編譯Libra Core

克隆Libra Core庫(kù)

git clone https://github.com/libra/libra.git

安裝Libra Core

要安裝Libra Core谭企,請(qǐng)切換到libra目錄并運(yùn)行安裝腳本來(lái)安裝相關(guān)的依賴項(xiàng)廓译,如下所示:

cd libra

./scripts/dev_setup.sh

安裝腳本執(zhí)行以下操作:

安裝rustup — rustup是Rust編程語(yǔ)言的安裝程序,Libra Core是基于Rust實(shí)現(xiàn)的债查。

安裝版本所需的rust-toolchain.

安裝CMake — 用于編譯項(xiàng)目非区。

安裝protoc — 緩沖區(qū)編譯器。

安裝Go — 用于編譯緩沖區(qū)編譯器盹廷。

如果您的安裝失敗征绸,詳見故障排除說(shuō)明

編譯Libra CLI客戶端并連接到Testnet

運(yùn)行客戶端,連接到Libra testnet網(wǎng)絡(luò)的驗(yàn)證器節(jié)點(diǎn)俄占,如下圖所示:

./scripts/cli/start_cli_testnet.sh

使用cargo(Rust的包管理器)編譯和運(yùn)行客戶端管怠,并將客戶端連接到testnet上的驗(yàn)證器節(jié)點(diǎn)。

客戶端連接到testnet上的節(jié)點(diǎn)后缸榄,您將看到以下輸出渤弛。 要隨時(shí)退出客戶端,請(qǐng)使用quit命令甚带。

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)行客戶端和連接到testnet時(shí)遇到問題她肯,請(qǐng)參閱故障排除說(shuō)明.

注意: 如果要在系統(tǒng)上本地運(yùn)行驗(yàn)證器節(jié)點(diǎn),請(qǐng)按照運(yùn)行本地驗(yàn)證中的說(shuō)明進(jìn)行操作欲低。 創(chuàng)建帳戶辕宏,鑄幣和執(zhí)行交易的說(shuō)明與testnet上的節(jié)點(diǎn)相同。

創(chuàng)建Alice和Bob的賬戶

將客戶端連接到testnet后砾莱,可以運(yùn)行CLI命令來(lái)創(chuàng)建新帳戶瑞筐。這里為兩個(gè)用戶(Alice和Bob)創(chuàng)建帳戶。

步驟1:檢查CLI客戶端是否在您的系統(tǒng)上運(yùn)行

出現(xiàn)一個(gè)libra%命令行提示符表示您的Libra CLI客戶端正在運(yùn)行腊瑟。 要查看account命令的幫助信息聚假,請(qǐng)輸入“account”,如下所示:

libra% account

usage: account <arg>

Use the following args for this command:

create | c

? Create an account. Returns reference ID to use in other operations

list | la

? Print all accounts that were created or loaded

recover | r <file path>

? Recover Libra wallet from the file path

write | w <file name>

? Save Libra wallet mnemonic recovery seed to disk

mint | mintb | m | mb <receiver account> <number of coins>

? Mint coins to the account. Suffix 'b' is for blocking

步驟2: 創(chuàng)建Alice賬戶

請(qǐng)注意闰非,使用CLI創(chuàng)建帳戶不會(huì)更新區(qū)塊鏈膘格,只會(huì)創(chuàng)建本地密鑰對(duì)。

要?jiǎng)?chuàng)建Alice的帳戶财松,請(qǐng)輸入以下命令:

libra% account create

成功后輸出如下:

>> Creating/retrieving next account from wallet

Created/retrieved account #0 address 3ed8e5fafae4147b2a105a0be2f81972883441cfaaadf93fc0868e7a0253c4a8

#0是Alice帳戶的索引瘪贱,十六進(jìn)制字符串是Alice帳戶的地址纱控。

索引只是引用Alice帳戶的一種方式。 帳戶索引是本地CLI索引菜秦,可以在其他CLI命令中使用甜害,以便用戶方便地引用他們創(chuàng)建的帳戶。

該指數(shù)對(duì)區(qū)塊鏈毫無(wú)意義球昨。

只有當(dāng)通過鑄幣將任何一筆錢添加到Alice的賬戶時(shí)尔店,才會(huì)在區(qū)塊鏈上創(chuàng)建Alice的賬戶,或者通過來(lái)自另一個(gè)用戶的轉(zhuǎn)賬將錢轉(zhuǎn)移到Alice的賬戶主慰。

請(qǐng)注意嚣州,您也可以在CLI命令中使用十六進(jìn)制地址。 帳戶索引只是帳戶地址的方便顯示共螺。

步驟3: 創(chuàng)建Bob的賬戶

要?jiǎng)?chuàng)建Bob的帳戶该肴,請(qǐng)重復(fù)之前帳戶創(chuàng)建命令:

libra% account create

成功后輸出如下:

>> Creating/retrieving next account from wallet

Created/retrieved account #1 address 8337aac709a41fe6be03cad8878a0d4209740b1608f8a81566c9a7d4b95a2ec7

#1 是Bob帳戶的索引,十六進(jìn)制字符串是Bob帳戶的地址璃谨。有關(guān)索引的更多詳細(xì)信息沙庐,請(qǐng)參閱創(chuàng)建Alice的賬戶

步驟4 (可選): 賬戶列表

要列出您創(chuàng)建的帳戶,請(qǐng)輸入以下命令:

libra% account list

成功后輸出如下:

User account index: 0, address: 3ed8e5fafae4147b2a105a0be2f81972883441cfaaadf93fc0868e7a0253c4a8, sequence number: 0

User account index: 1, address: 8337aac709a41fe6be03cad8878a0d4209740b1608f8a81566c9a7d4b95a2ec7, sequence number: 0

帳戶中的序列號(hào)表示從該帳戶發(fā)送的交易數(shù)佳吞。 每次從該帳戶發(fā)送的交易被執(zhí)行后并存儲(chǔ)在區(qū)塊鏈中時(shí)拱雏,它會(huì)遞增。 要了解更多信息底扳,請(qǐng)參閱序列號(hào).

添加Libra Coin到Alice和Bob賬戶

在testnet上創(chuàng)建和鑄幣是通過Faucet完成的铸抑。 Faucet是一種與testnet一起運(yùn)行的服務(wù)。 此服務(wù)僅用于為testnet創(chuàng)建硬幣衷模,并沒有在主網(wǎng)上. 它創(chuàng)建的Libra Coin并沒有真實(shí)的價(jià)值鹊汛,假設(shè)創(chuàng)建Alice和Bob的賬戶, 分別使用了索引0和索引1,您可以按照以下步驟將Libra Coin添加到兩個(gè)帳戶阱冶。

步驟1: 添加100個(gè)Libra到Alice賬戶

鑄幣Libra刁憋,并添加到Alice的帳戶,輸入以下命令:

libra% account mint 0 110

0 是Alice賬戶的索引號(hào)木蹬。

110 是要添加到Alice賬戶的Libra數(shù)量至耻。

賬戶成功運(yùn)行鑄幣命令,也會(huì)在Libra區(qū)塊鏈上創(chuàng)建Alice的賬戶镊叁。

成功后輸出如下:

>> Minting coins

Mint request submitted

請(qǐng)注意尘颓,提交請(qǐng)求時(shí),這意味著它已成功添加到內(nèi)存池(testnet上的驗(yàn)證程序節(jié)點(diǎn))晦譬。 但并不一定意味著它將執(zhí)行完成疤苹。 稍后,我們將查詢帳戶余額以確認(rèn)鑄幣是否成功敛腌。

如果您的帳戶鑄幣命令未成功提交您的請(qǐng)求卧土,請(qǐng)參閱故障排除說(shuō)明

步驟2: 添加52個(gè)Libra到Bob賬戶

鑄幣Libra惫皱,并添加到Bob的帳戶,輸入以下命令:

libra% account mint 1 52

1 是Bob賬戶的索引號(hào)夸溶。

52 是要添加到Bob賬戶的Libra數(shù)量逸吵。

賬戶成功運(yùn)行鑄幣命令,也會(huì)在Libra區(qū)塊鏈上創(chuàng)建Bob的賬戶,在區(qū)塊鏈上創(chuàng)建Bob帳戶的另一種方法是將錢從Alice的帳戶交易到Bob的帳戶慨绳。

成功后輸出如下:

>> Minting coins

Mint request submitted

如果您的帳戶鑄幣命令未成功提交您的請(qǐng)求悦屏,請(qǐng)參閱故障排除說(shuō)明

步驟3: 余額檢查

檢查Alice賬戶的余額,運(yùn)行如下命令:

libra% query balance 0

成功后輸出如下:

Balance is: 110

檢查Bob賬戶的余額淳玩,運(yùn)行如下命令:

libra% query balance 1

成功后輸出如下:

Balance is: 52

提交交易

在我們提交將Libra從Alice的賬戶轉(zhuǎn)移到Bob的賬戶的交易之前,我們將查詢每個(gè)賬戶的序列號(hào)。 這將有助于我們了解交易執(zhí)行過程中如何更改每個(gè)帳戶的序列號(hào)粹污。

查詢賬戶的序列號(hào)

libra% query sequence 0

>> Getting current sequence number

Sequence number is: 0

libra% query sequence 1

>> Getting current sequence number

Sequence number is: 0

在query sequence 0, 0是Alice的帳戶的索引。 Alice和Bob的帳戶的序列號(hào)都為0首量,即表示到目前為止尚未執(zhí)行Alice或Bob的帳戶中的任何交易壮吩。

轉(zhuǎn)賬

提交一個(gè)從Alice賬戶轉(zhuǎn)賬10個(gè)Libra到Bob賬戶的交易,輸入以下命令:

libra% transfer 0 1 10

0是Alice的帳戶索引加缘。

1是Bob的帳戶索引鸭叙。

10是從Alice的賬戶交易到Bob賬戶的Libra數(shù)量。

成功后輸出如下:

>> Transferring

Transaction submitted to validator

To query for transaction status, run: query txn_acc_seq 0 0 <fetch_events=true|false>

您可以使用命令query txn_acc_seq 0 0 true(按帳戶和序列號(hào)進(jìn)行交易)來(lái)檢索有關(guān)您剛提交的交易的信息拣宏。 第一個(gè)參數(shù)是發(fā)件人帳戶的本地索引沈贝,第二個(gè)參數(shù)是帳戶的序列號(hào)。要查看此命令的示例輸出勋乾,請(qǐng)參閱輸出示例.

您剛剛將您的交易提交到testnet上的驗(yàn)證器節(jié)點(diǎn)宋下,它包含在驗(yàn)證器的內(nèi)存池。這并不一定意味著您的交易已被執(zhí)行辑莫。 理論上学歧,如果系統(tǒng)運(yùn)行緩慢或過載,則需要一些時(shí)間才能看到結(jié)果各吨,您可能需要通過查詢帳戶多次檢查枝笨。 要查詢索引為0的帳戶,可以使用命令query account_state 0.預(yù)期輸出顯示在輸出示例

要對(duì)傳輸命令出錯(cuò)進(jìn)行故障排除绅你,請(qǐng)參閱故障排除說(shuō)明.

塊傳輸命令: 你可以使用transferb命令 (如下所示), 而不是transfer命令伺帘。只有將交易提交到區(qū)塊鏈上transferb命令才會(huì)提交,并給客戶端進(jìn)行反饋?lái)憫?yīng)顯示忌锯,一個(gè)例子如下所示:

libra% transferb 0 1 10

參考交易的生命周期了解交易從提交到執(zhí)行和存儲(chǔ)的整個(gè)過程伪嫁。

查詢交易后序列號(hào)

libra% query sequence 0

>> Getting current sequence number

Sequence number is: 1

libra% query sequence 1

>> Getting current sequence number

Sequence number is: 0

Alice的帳號(hào)(索引0)的序號(hào)為1表示到目前為止已經(jīng)從Alice的帳戶發(fā)送了一個(gè)交易。 Bob的帳戶(索引1)的序列號(hào)為0表示到目前為止尚未從Bob的帳戶發(fā)送任何交易偶垮。 每次從帳戶發(fā)送交易時(shí)张咳,序列號(hào)都會(huì)增加1帝洪。

檢查交易后兩個(gè)賬戶的余額

要檢查兩個(gè)帳戶中的最終余額,請(qǐng)按照此頁(yè)面步驟操作脚猾,再次查詢余額. 如果您的交易(轉(zhuǎn)賬)成功執(zhí)行葱峡,您應(yīng)該在Alice的賬戶中看到100個(gè)Libra,在Bob的賬戶中看到62個(gè)Libra龙助。

libra% query balance 0

Balance is: 100

libra% query balance 1

Balance is: 62

恭喜!

您已成功在Libra testnet上執(zhí)行了您的交易砰奕,并將10個(gè)Libra從Alice的賬戶轉(zhuǎn)移到了Bob的賬戶!

故障排除

安裝

更新ust:

在libra目錄運(yùn)行rustup update.

從libra目錄重新運(yùn)行安裝腳本:

./scripts/dev_setup.sh

客戶端編譯運(yùn)行

如果您遇到構(gòu)建失敗提鸟,請(qǐng)嘗試從libra目錄中刪除cargo.lock文件:

rm Cargo.lock

如果您的客戶端沒有連接到testnet:

檢查網(wǎng)絡(luò)連接军援。

確保您使用的是最新版本的客戶端。 拉取最新的Libra Core并重新運(yùn)行客戶端:

./scripts/cli/start_cli_testnet.sh

鑄幣添加到賬戶

如果您在testnet上連接的驗(yàn)證程序節(jié)點(diǎn)不可用称勋,您將收到“服務(wù)器不可用”消息胸哥,如下所示:

libra% account mint 0 110

>> Minting coins

[ERROR] Error minting coins: Server unavailable, please retry and/or check **if** host passed to the client is running

如果您在提交交易后未更新余額,請(qǐng)稍等片刻再次查詢余額赡鲜。 如果區(qū)塊鏈上大量交易在提交空厌,那么可能會(huì)有延遲。 如果您的余額仍未更新银酬,請(qǐng)?jiān)俅螄L試鑄幣嘲更。

要檢查帳戶是否存在,請(qǐng)查詢帳戶狀態(tài)捡硅。 對(duì)于索引為0的帳戶哮内,請(qǐng)輸入以下內(nèi)容:

libra% query account_state 0

交易命令

如果testnet驗(yàn)證器節(jié)點(diǎn)(客戶端已確定連接了)不可用或您與testnet的連接已超時(shí),您將看到此錯(cuò)誤:

libra% transfer 0 1 10

>> Transferring

[ERROR] Failed to perform transaction: Server unavailable, please retry and/or check if host passed to the client is running

解決交易故障:

檢查testnet的連接壮韭。

查詢發(fā)件人帳戶以確保其確實(shí)存在北发。 對(duì)索引為0的帳戶使用以下命令:

query account_state 0

使用quit或q!退出, 然后重新運(yùn)行以下命令以連接到testnet:

從libre目錄運(yùn)行./scripts/cli/start_cli_testnet.sh

查詢命令輸出示例

附加查詢命令的示例輸出

此示例將使用帳戶和序列號(hào)查詢單個(gè)交易的詳細(xì)信息。

libra% query txn_acc_seq 0 0 true

>> Getting committed transaction by account and sequence number

Committed transaction: SignedTransaction {

{ raw_txn: RawTransaction {

? ? sender: 3ed8e5fafae4147b2a105a0be2f81972883441cfaaadf93fc0868e7a0253c4a8,

? ? sequence_number: 0,

? ? payload: {,

? ? ? transaction: peer_to_peer_transaction,

? ? ? args: [

? ? ? ? {ADDRESS: 8337aac709a41fe6be03cad8878a0d4209740b1608f8a81566c9a7d4b95a2ec7},

? ? ? ? {U64: 10000000},

? ? ? ]

? ? },

? ? max_gas_amount: 10000,

? ? gas_unit_price: 0,

? ? expiration_time: 1560466424s,

},

public_key: 55af3fe3f28550a2f1e5ebf073ef193feda44344d94c463b48be202aa0b3255d,

signature: Signature( R: CompressedEdwardsY: [210, 23, 214, 62, 228, 179, 64, 147, 81, 159, 180, 138, 100, 211, 111, 139, 178, 148, 81, 1, 240, 135, 148, 145, 104, 234, 227, 239, 198, 153, 13, 199], s: Scalar{

? bytes: [203, 76, 105, 49, 64, 130, 162, 81, 22, 237, 159, 26, 80, 181, 111, 94, 84, 6, 152, 126, 181, 192, 62, 103, 130, 94, 246, 174, 139, 214, 3, 15],

} ),

}

}

Events:

ContractEvent { access_path: AccessPath { address: 3ed8e5fafae4147b2a105a0be2f81972883441cfaaadf93fc0868e7a0253c4a8, type: Resource, hash: "217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc97", suffix: "/sent_events_count/" } , index: 0, event_data: AccountEvent { account: 8337aac709a41fe6be03cad8878a0d4209740b1608f8a81566c9a7d4b95a2ec7, amount: 10000000 } }

ContractEvent { access_path: AccessPath { address: 8337aac709a41fe6be03cad8878a0d4209740b1608f8a81566c9a7d4b95a2ec7, type: Resource, hash: "217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc97", suffix: "/received_events_count/" } , index: 0, event_data: AccountEvent { account: 3ed8e5fafae4147b2a105a0be2f81972883441cfaaadf93fc0868e7a0253c4a8, amount: 10000000 } }

請(qǐng)注意喷屋,交易金額以microlibra單位顯示.

查詢事件

在以下示例中琳拨,我們將從索引為0的帳戶查詢“已發(fā)送”事件。您將注意到屯曹,我們從此帳戶發(fā)送了一個(gè)交易狱庇,所以只有一個(gè)交易。 還返回當(dāng)前區(qū)塊鏈狀態(tài)恶耽。以便可執(zhí)行驗(yàn)證 密任,確保沒有丟失任何交易- 這在查詢沒有返回“限制”交易時(shí)完成。

libra% query event 0 sent 0 true 10

>> Getting events by account and event type.

EventWithProof {

? transaction_version: 3,

? event_index: 0,

? event: ContractEvent { access_path: AccessPath { address: e7460e02058b36d28e8eef03f0834c605d3d6c57455b8ec9c3f0a3c8b89f248b, type: Resource, hash: "217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc97", suffix: "/sent_events_count/" } , index: 0, event_data: AccountEvent { account: 46efbad798a739c088e0e98dd9d592c27c7eb45ba1f8ccbdfc00bd4d7f2947f3, amount: 10000000 } },

? proof: EventProof { ledger_info_to_transaction_info_proof: AccumulatorProof { siblings: [HashValue(62570ae9a994bcb20c03c055667a4966fa50d0f17867dd5819465072fd2c58ba), HashValue(cce2cf325714511e7d04fa5b48babacd5af943198e6c1ac3bdd39c53c87cb84c)] }, transaction_info: TransactionInfo { signed_transaction_hash: HashValue(69bed01473e0a64140d96e46f594bc4b463e88e244b694e962b7e19fde17f30d), state_root_hash: HashValue(5809605d5eed94c73e57f615190c165b11c5e26873012285cc6b131e0817c430), event_root_hash: HashValue(645df3dee8f53a0d018449392b8e9da814d258da7346cf64cd96824f914e68f9), gas_used: 0 }, transaction_info_to_event_proof: AccumulatorProof { siblings: [HashValue(5d0e2ebf0952f0989cb5b38b2a9b52a09e8d804e893cb99bf9fa2c74ab304bb1)] } }

}

Last event state: Some(

? ? AccountStateWithProof {

? ? ? ? version: 3,

? ? ? ? blob: Some(

? ? ? ? ? ? AccountStateBlob {

? ? ? ? ? ? Raw: 0x010000002100000001217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc974400000020000000e7460e02058b36d28e8eef03f0834c605d3d6c57455b8ec9c3f0a3c8b89f248b00e1f50500000000000000000000000001000000000000000100000000000000

? ? ? ? ? ? Decoded: Ok(

? ? ? ? ? ? ? ? AccountResource {

? ? ? ? ? ? ? ? ? ? balance: 100000000,

? ? ? ? ? ? ? ? ? ? sequence_number: 1,

? ? ? ? ? ? ? ? ? ? authentication_key: 0xe7460e02058b36d28e8eef03f0834c605d3d6c57455b8ec9c3f0a3c8b89f248b,

? ? ? ? ? ? ? ? ? ? sent_events_count: 1,

? ? ? ? ? ? ? ? ? ? received_events_count: 0,

? ? ? ? ? ? ? ? },

? ? ? ? ? ? )

? ? ? ? ? ? },

? ? ? ? ),

? ? ? ? proof: AccountStateProof {

? ? ? ? ? ? ledger_info_to_transaction_info_proof: AccumulatorProof {

? ? ? ? ? ? ? ? siblings: [

? ? ? ? ? ? ? ? ? ? HashValue(62570ae9a994bcb20c03c055667a4966fa50d0f17867dd5819465072fd2c58ba),

? ? ? ? ? ? ? ? ? ? HashValue(cce2cf325714511e7d04fa5b48babacd5af943198e6c1ac3bdd39c53c87cb84c),

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? },

? ? ? ? ? ? transaction_info: TransactionInfo {

? ? ? ? ? ? ? ? signed_transaction_hash: HashValue(69bed01473e0a64140d96e46f594bc4b463e88e244b694e962b7e19fde17f30d),

? ? ? ? ? ? ? ? state_root_hash: HashValue(5809605d5eed94c73e57f615190c165b11c5e26873012285cc6b131e0817c430),

? ? ? ? ? ? ? ? event_root_hash: HashValue(645df3dee8f53a0d018449392b8e9da814d258da7346cf64cd96824f914e68f9),

? ? ? ? ? ? ? ? gas_used: 0,

? ? ? ? ? ? },

? ? ? ? ? ? transaction_info_to_account_proof: SparseMerkleProof {

? ? ? ? ? ? ? ? leaf: Some(

? ? ? ? ? ? ? ? ? ? (

? ? ? ? ? ? ? ? ? ? ? ? HashValue(c0fbd63b0ae4abfe57c8f24f912f164ba0537741e948a65f00d3fae0f9373981),

? ? ? ? ? ? ? ? ? ? ? ? HashValue(fc45057fd64606c7ca40256b48fbe486660930bfef1a9e941cafcae380c25871),

? ? ? ? ? ? ? ? ? ? ),

? ? ? ? ? ? ? ? ),

? ? ? ? ? ? ? ? siblings: [

? ? ? ? ? ? ? ? ? ? HashValue(4136803b3ba779bb2c1daae7360f3f839e6fef16ae742590a6698b350a5fc376),

? ? ? ? ? ? ? ? ? ? HashValue(5350415253455f4d45524b4c455f504c414345484f4c4445525f484153480000),

? ? ? ? ? ? ? ? ? ? HashValue(a9a6bda22dd6ee78ddd3a42da152b9bd39797b7da738e9d6023f407741810378),

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? },

? ? ? ? },

? ? },

)

查詢賬戶狀態(tài)

在此示例中偷俭,我們將查詢單個(gè)帳戶的狀態(tài)浪讳。

libra% query account_state 0

>> Getting latest account state

Latest account state is:

Account: 3ed8e5fafae4147b2a105a0be2f81972883441cfaaadf93fc0868e7a0253c4a8

State: Some(

? ? AccountStateBlob {

? ? Raw: 0x010000002100000001217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc9744000000200000003ed8e5fafae4147b2a105a0be2f81972883441cfaaadf93fc0868e7a0253c4a800e1f50500000000000000000000000001000000000000000100000000000000

? ? Decoded: Ok(

? ? ? ? AccountResource {

? ? ? ? ? ? balance: 100000000,

? ? ? ? ? ? sequence_number: 1,

? ? ? ? ? ? authentication_key: 0x3ed8e5fafae4147b2a105a0be2f81972883441cfaaadf93fc0868e7a0253c4a8,

? ? ? ? ? ? sent_events_count: 1,

? ? ? ? ? ? received_events_count: 0,

? ? ? ? },

? ? )

? ? },

)

Blockchain Version: 3

運(yùn)行本地驗(yàn)證器節(jié)點(diǎn)

要在本地計(jì)算機(jī)上啟動(dòng)驗(yàn)證程序節(jié)點(diǎn),并創(chuàng)建本地區(qū)塊鏈網(wǎng)絡(luò)(未連接到Libra testnet)涌萤,請(qǐng)確保您已經(jīng)按照安裝Libra Core, 切換到Libra Core庫(kù)的根目錄淹遵,然后運(yùn)行l(wèi)ibra_swarm如下顯示:

$cd~/libra$ cargo run -p libra_swarm -- -s

-p libra_swarm- 使用cargo運(yùn)行l(wèi)ibra_swarm包口猜,該包啟動(dòng)由一個(gè)節(jié)點(diǎn)組成的本地區(qū)塊鏈。

-s啟動(dòng)本地客戶端以連接到本地區(qū)塊鏈透揣。

要查看啟動(dòng)節(jié)點(diǎn)和連接Libra區(qū)塊鏈的其他選項(xiàng)济炎,請(qǐng)運(yùn)行:

$ cargo run -p libra_swarm -- -h

Cargo命令可能需要一些時(shí)間才能執(zhí)行完成。 如果此命令的執(zhí)行完成且沒有錯(cuò)誤辐真,則系統(tǒng)上運(yùn)行Libra CLI客戶端實(shí)例和Libra驗(yàn)證器節(jié)點(diǎn)须尚。 同時(shí)應(yīng)該能看到包含CLI客戶端菜單和libra%提示的輸出.

交易生命周期

執(zhí)行完第一筆交易后,您可以參考該文件交易生命周期:

從“底層”說(shuō)明交易從提交到執(zhí)行的整個(gè)生命周期

在Libra生態(tài)系統(tǒng)中提交和執(zhí)行交易時(shí)侍咱,了解Libra驗(yàn)證器的每個(gè)邏輯組件之間的交互恨闪。

參考

Welcome page.

Libra Protocol: Key Concepts— Introduces you to the fundamental concepts of the Libra protocol.

Getting Started With Move— Introduces you to a new blockchain programming language called Move.

Life of a Transaction— Provides a look at what happens "under the hood" when a transaction is submitted and executed.

Libra Core Overview— Provides the concept and implementation details of the Libra Core components through READMEs.

CLI Guide— Lists the commands (and their usage) of the Libra CLI client.

Libra Glossary— Provides a quick reference to Libra terminology.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市放坏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌老玛,老刑警劉巖淤年,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蜡豹,居然都是意外死亡麸粮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門镜廉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)弄诲,“玉大人,你說(shuō)我怎么就攤上這事娇唯∑胱瘢” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵塔插,是天一觀的道長(zhǎng)梗摇。 經(jīng)常有香客問我,道長(zhǎng)想许,這世上最難降的妖魔是什么伶授? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮流纹,結(jié)果婚禮上糜烹,老公的妹妹穿的比我還像新娘。我一直安慰自己漱凝,他們只是感情好疮蹦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碉哑,像睡著了一般挚币。 火紅的嫁衣襯著肌膚如雪亮蒋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天妆毕,我揣著相機(jī)與錄音慎玖,去河邊找鬼。 笑死笛粘,一個(gè)胖子當(dāng)著我的面吹牛趁怔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播薪前,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼润努,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了示括?” 一聲冷哼從身側(cè)響起铺浇,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎垛膝,沒想到半個(gè)月后鳍侣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吼拥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年倚聚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凿可。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡惑折,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出枯跑,到底是詐尸還是另有隱情惨驶,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布全肮,位于F島的核電站敞咧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏辜腺。R本人自食惡果不足惜休建,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望评疗。 院中可真熱鬧测砂,春花似錦、人聲如沸百匆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至存璃,卻和暖如春仑荐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背纵东。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工粘招, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人偎球。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓洒扎,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親衰絮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子袍冷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容