Facebook的libra币开发指南

7 篇文章 0 订阅
7 篇文章 0 订阅

近期Facebook拟发行的Libra币,可以说是加密货币界和传统金融行业的一件大事,很多人都认为这次数字货币真的可能改变世界。作为程序员而言,怎样搭上这班车,相信是大家都非常关心的。我觉得我们可以从开发Libra币的智能合约入手,将现实世界中的支付场景,尤其是跨境支付场景,在Libra币的环境来实现,也许可以找到好的方向。本文就是根据libra.org中的文档,在本地运行Libra的测试网络,创建两个用户,实现两个用户之间的转账操作,为下面用Move语言来开发智能合约打下基础。

搭建Libra测试网络

由于Libra网络还没有正式运转,我们要体验Libra体系架构,可以通过测试网络来进行,这样做还有一个好处,就是不像正式网络那样,我们需要真金白银的投入资金,才有体验的资格。
根据Libra的文档,想要运行Libra测试网络,需要Linux或MacOS操作系统,所以本文以MacOS系统为例进行讲解。在MacOS中需要事先安装好git和homebrew,由于这些都是基本内容,这里就不再介绍了,读者可以参考网上的文章来进行安装配置。

下载Libra源码

Libra系统首先是一个区块链系统,所以我们先要下载Libra的源码:

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

整个项目是用Rust语言编写的,代码量不算大,很快就可以下载完成。

配置Libra Core

接下来通过命令配置Libra Core:

cd libra
./scripts/dev_setup.sh

安装过程选择让安装程序自动安装依赖库,即可完成安装过程。
在安装过程中,由于要向/usr/loca/share目录写入帮助文件,可能出现权限不足的问题,可以通过如下命令将该目录所有者改为当前用户:

sudo chown -R gile /usr/local/share

再次运行即可成功安装了。

连接到测试网络

通过如下命令来编译Libra客户端并连接到Libra测试网络的验证节点:

./scripts/cli/start_cli_testnet.sh

这一步由于要下载配置的东西较多,所以会等一段时间,所以请耐心等待。运行成功后会显示类似如下所示的界面:
在这里插入图片描述
在最后一行的libra%就是命令提示符,表示我们可以向Libra测试网络发送命令了。

创建用户

在连接到Libra测试网络之后,我们就可以开始创建账户了。

首先确认系统连接在Libra测试网络

运行如下命令:

account

如果打出类似如下内容,则证明环境是正常可用的:
在这里插入图片描述

创建账户

运行如下命令:

account create

运行结果如下所示:
在这里插入图片描述
如上所示:#0代表我们创建的这个账户的编号为0号,后面跟的是钱包地址,在实际应用中,我们需要将这个信息记录到数据库中。
接下来我们用同样的方式创建另一个账户Bob,如下所示:
在这里插入图片描述
到目前为止,我们系统中的账户有:

[
{
"account_name": "Alice",
"index": 0,
"address": "71748027e46f4117523284942a6e9aede3fe188c21a44b6f9453230b6c695847"
},
{
"account_name": "Bob",
"index": 1,
"address": "c4de7185942bf3f4d65628462d6303efc51375996b5d199dd4cc9c829263d9e4"
}
]

列出当前系统账户

account list

运行结果如下所示:
在这里插入图片描述
由此可以看出,这些信息与我们保存的信息是完全一样的。

挖矿和发币

在某种意义上来说,区块链就是挖矿和发币,所以我们也进行挖矿和发币。在Libra测试网络中,用Facet服务来挖矿和发币。所以下面我们分别产给Alice和Bob一些初始资金,为我们后续的转账操作打下基础。

给Alice发110

运行如下命令:

account mint 0 110

运行结果如下所示:
在这里插入图片描述
在account mint 0 110中,0代表给编号为0的账户发币,110为发币的数量,后面的提示信息表示这个交易成功提交到Libra测试网络,目前正存在于验证节点的内存池中,只有当验证节点将该交易写入区块链中时,交易才算正式完成。我们将在后面介绍查看账户余额的方法,就是只有在写入区块链后,账户的余额才会发生改变。
接下来可以通过下面的命令给Bob发币:

account mint 1 52

查看账户余额

接下来我们查看这两个账户的余额:

query balance 0
query balance 1

运行结果如下所示:
在这里插入图片描述

转账操作

下面我们把Alice的10元(我们假设Libra中的单位是元)转给Bob。

查看账户的交易编号

运行如下命令:

query sequence 0
query sequence 1

运行结果如下所示:
在这里插入图片描述
由于这两个账户都是新账户,所以其交易号为0 。

转账

运行如下命令:

transfer 0 1 10

在上面的命令中,0代表资金转出账户编号,1代表资金转入账户编号,10代表转账金额。运行结果如下所示:
在这里插入图片描述
在上面的命令中,txn_acc_seq 0 0表示这个交易,第一个0代表账户的编号,第二个0代表该账户的交易编号,如果想查看交易的详细信息,可以使用如下命令:

query txn_acc_seq 0 0 true

结果如下所示:
在这里插入图片描述
同样,这只是将交易提交到了Libra的测试网络,保存在验证节点的内存池中,只有当该交易被验证节点实际写入区块链中时,这个交易才生效,即用户的余额才会发生变化。

查看账户余额

运行下面命令查看账户余额:

query balance 0
query balance 1

运行结果如下所示:
在这里插入图片描述
如图所示,我们看Alice和Bob的账户均已经被正确修改过了。
此时如果我们再来查询交易号,如下所示:

query sequence 0
query sequence 1

运行结果如下所示:
在这里插入图片描述
如上图所示,Alice账户发生了一个交易(有资金转出时视为发生交易),所以其交易编号就变1了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值