Libra币核心代码研读1---找到程序入口点

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

在接下来的博文中,我们将一起来研究Libra Core的核心源码,由于Libra Core是一门叫Rust的小众语言编写的,因此在阅读源码之前,可以粗略的看一下《The Rutst Programming Language》,在官网上就有HTML版本可以在线看,可惜是英文版的,不清楚是否有中文版本。这本书有600多页,个人建议只需要花两三天时间大概浏览一下,知道有如ownership、borrow、move等概念即可,在阅读和修改代码时,阅读代码和错误提示时知道怎么去查资料就可以了。
在研读任何代码之前,我们第一步要做的肯定是找到程序的入口点。在上一篇博文中,我们介绍了可以用如下命令启动本地测试网络:

cargo run -p libra_swarm -- -s

我们知道cargo是Rust语言包管理和运行工具,cargo run就是来编译和运行可执行程序的,所以我们知道要运行的程序为libra_swarm。在libra目录下查询libra_swarm,发现其是一个目录,内容如下所示:
在这里插入图片描述
在该目录下有Cargo.toml文件,定义这个程序的版本号等元信息和依赖的第三方库,还有src目录,在src目录下,我们看到了main.rs,我们基本可以确定,程序的入口文件为这个文件,通过编辑器找开这个文件:

fn main() {
    println!("Startup in swarm mode ...");
    let args = Args::from_args();
    let num_nodes = args.num_nodes.unwrap_or(1);

    let (faucet_account_keypair, faucet_key_file_path, _temp_dir) =
        generate_keypair::load_faucet_key_or_create_default(args.faucet_key_file_path);

    println!("Faucet account created in file {:?}", faucet_key_file_path);

如上所示,我们在程序开头处打印了一条信息,用来验证我们的猜想是否正确。保存这个文件,然后运行如下命令启动本地测试网络:

cargo run -p libra_swarm -- -s

运行之后,大家可以看到,我们添加的打印内容,可以正常的打印出来。这就说明我们的猜想是正确的,这个文件中的main函数确实是程序的入口。找到程序的入口之后,我们就可以正式开始Libra Core的代码研读之旅了。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值