深入Libra: 使用测试网络

这是深入Libra系列的第一篇,也是尝试Libra的第一步,在Libra网络上测试Libra的操作。

在Libra的测试网络上,可以任意的申请libra币,进行转账等操作。 有时候testnet会清空, 因为Libra还在开发之中,所以API有时候也会broken。

编译、测试

1、clone项目

1
git clone https://github.com/libra/libra.git && cd libra

2、检出 testnet 分支

1
git checkout testnet

3、安装依赖

如果还没有安装依赖的环境,这个脚本将会帮你安装这些依赖,比如rustup、rust toolchain、CMake、protoc、Go等。

1
./scripts/dev_setup.sh

4、运行客户端

1
./scripts/cli/start_cli_testnet.sh

客户端操作

启动客户端cli后可以执行几个子命令:

  • account | a: 账号相关。账号创建、账号保存和恢复、账号mint等
  • query | q: 查询相关的操作
  • transfer | t | transferb | tb: 阻塞和无阻塞的转账操作
  • help | h: 帮助
  • quit | q!: 退出

比如 a c 创建一个账号,这个账号还有一个序号,以后在本机可以使用这个序号或者公私钥进行操作。libra_wallet采用hierarchical key derivation库来生成密钥对,所有创建的账号可以基于一个原始的种子主密钥生成,所以只要记住原始的主密钥,再加上账号的序列号,就可以推断出此序列号的密钥对。所以你可以使用自己的原始种子主密钥,生成多个自己的密钥对(账号)。种子可以由助记词生成。抽取算法遵循HKDF RFC 5869

如果创建的账号你不保存的话,下次启动cli会认为你还没创建的账号,所以你可以使用a w <file_path>保存下来,下次启动的时候a r <file_path>再恢复。

a m 0 10000是为第零个账号分配10000个libra,反正是测试网络,所以libra组织还是很慷慨的,你可以随意的分配libra, 不够用就分配。

虽然Libra还没有正式推出,它的运行模式还没有最终确定,但是从白皮书和相关介绍中我们可以看到,如果你想使用Libra, 你需要拿着自己的真实的资产,比如美元等到Libra联盟或者代理处去兑换,兑换得到等值的Libra(或许还需要一点点手续费)。在测试网络中, 有一个地址faucet. testnet.libra.org可以直接申请libra。 以前可以直接使用HTTTP GET去申请,现在改成了HTTP POST去请求http://faucet.testnet.libra.org/?amount=AMOUNT&address=ADDRESS,请求的数量和地址按你的要求填即可。

Libra模式是有一个超级账号,它可以凭空产生libra,当然作为一个有良心的组织,Libra联盟也不会凭空造(mint)许多的libra给自己,而是根据用户抵押的价值分配相应的libra。

query可以查看账号的余额和状态,以及相应的交易事件,比如查看刚才我们创建的账号的余额。

1
2
libra% q b 0
Balance is: 10000.000000

查看此时网络上其它账号的余额,比如查看当前测试网络上最富有的一个账号,简直就是一个大富翁:

1
2
libra% q b 60ce03e1071acf0573d6f3e70898688ca77b519885a7c6b3b4a043eccd8ee8c7
Balance is: 5206950999115.000040

比当前的挖矿账号还富有:

1
2
libra% q b 000000000000000000000000000000000000000000000000000000000a550c18
Balance is: 24075309756.646968