Libra是Facebook近期发售的一种技术。它看上去很有前途,所以我们正在探寻和自学我们可以用它做到什么!我们将用于Move(Libra智能合约的编程语言),想到能无法做到几笔交易。阐述我们即将构建什么功能:1. 在本地计算机上启动Libra Validator。2. 在本地计算机上启动Libra CLI。
3. 在我们本地的Libra区块链中展开一些交易。4. 改版一些MOVE代码,想到Libra区块链是如何工作的。
我读书了很多帖子,它们只是向我们展出了如何启动本地Libra检验程序和本地Libra客户端,但是我去找将近如何变更Move代码的某些交易的任何信息。因此我要求对代码展开一些变更,以理解它在move中如何处置交易代码。
我们会做到一些十分花哨的事情,只不会给move智能合约减少一些检验。本教程的第一部分有可能与Libra官方网页(https://developers.libra.org/docs/my-first-transaction)十分相近。
最后一部分是我们在该博客中所没做到的事情。如果你有一些疑惑或不解读本博客的某些命令或章节,强烈建议查阅Libra开发者的官方页面,以便更好地理解我们在这里所做到的事情。
我们必须什么?我将在一台机器上操作者,并且必须加装以下工具:1. apt get或yum(sudo apt get update-it)2. git(sudo apt get install git)3. curl(sudo apt install curl)4. zlib(apt get install zlib1g dev)5. 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 address522b562a0dbb9e88e2607425512f92d92e3aeb696f91468807a0f86743a75254再度继续执行a create产生类似于的输入。
Created/retrieved account #1 address091a2e7f02305c7d780f67e869470580701dd5d74c064c943d25052352be1173现在让我们来造币,实质上这项服务只在testnet中获取,它的主要功能是向帐户中加到代币,因此在生产区块链中公开发表是有意义的。运营以下命令在第一个帐户中加到一些代币。Command: a mint 0 100Response: Mint request submitted要检查帐户余额,请求运营:Command: query balance 0Response: Balance is: 100.000000对于#1 accountCommand: query balance 1Response: Balance is: 0.000000现在我们展开交易,将50个代币从帐户0移往到帐户1Command: transfer 0 1 50Response: Transaction submitted to validator现在检查余额,就像我们在上一步中检查交易否已完成一样。
Command: query balance 0Response: Balance is: 50.000000Command: query balance 1Response: Balance is: 50.000000Move交易脚本我们必须首先确认MOVE 交易脚本的方位。从客户端调用此脚本是为了与区块链展开交互(造币,交易)。
这些脚本被称作Libra universe的智能合约。因此,这些脚本坐落于:〜/ libra / language / stdlib / transaction_scripts,这里将看见五个脚本。1. create_account.mvir2. mint.mvir3. peer_to_peer_transfer.mvir4. placeholder_script.mvir5. 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 createResponse: Created/retrieved account #0 address 957fce46498beb7be02aed705ba489717216beb033177f66ec825c3df7263eecCommand: a mint 0 1Response: Mint request submittedCommand: query balance 0Response: Balance is: 0.000000Command: a mint 0 51Response: Mint request submittedCommand: query balance 0Response: Balance is: 51.000000Command: a mint 0 100Response: Mint request submittedCommand: query balance 0Response: Balance is: 51.000000Command: a mint 0 99Response: Mint request submittedCommand: query balance 0Response: Balance is: 150.000000所以我们可以看见,现在我们的Libra区块链只容许造币价值在50到100之间。
就这样。我告诉我们并没做到非常复杂的事情,但是我们改动了本地Libra区块链中的脚本,这是一个很好的开始。
期望大家都讨厌本教程,网卓新闻网,并且不要猜测否有任何问题!。
本文来源:尊龙官方网站-www.lutlegaly.com