bytom 架构

1 minute read

概述

本文将简要介绍 bytom 的架构及如何编译和开启挖矿。

bytom 总体架构

总体架构如下所示。

bytom 源代码目录结构

tags=v1.0.5 的代码结构如下所示。

./bytom/
├── accesstoken     Token 管理
├── account         账户管理
├── api             API Server 接口管理
├── asset           资产管理
├── blockchain      交易打包、签名、查询等
├── cmd             main 入口文件
├── common          公共库
├── config          节点配置文件
├── consensus       共识相关模块
├── crypto          加密库
├── dashboard       dashboard 页面管理
├── database        数据库管理
├── Dockerfile      创建一个运行 bytom 的容器
├── docs            文档
├── encoding        协议相关编解码库
├── env             环境变量管理
├── equity          智能合约语言编译器
├── errors          错误及异常管理
├── LICENSE         许可证
├── Makefile        编译文件
├── math            数学计算相关库
├── metrics         metrics 指标库,用于采集 API Server 请求相关指标
├── mining          挖矿模块
├── net             API Server 使用的 HTTP 基础库
├── netsync         网络同步管理
├── node            当前节点管理模块,环境初始化
├── p2p             分布式网络管理模块
├── protocol        核心数据结构,包含块、交易、bvm 虚拟机等
├── README.md       自述文件
├── sync            同步模块
├── test            单元测试
├── testutil        单元测试工具包
├── tools
├── util            工具包
├── vendor          第三方库
├── version         版本
└── wallet          钱包管理

Ubuntu 环境下的编译及开启挖矿

注意以下只适用于 Ubuntu!windows 暂时没有官方编译手段。

编译

  1. 下载源代码

    我们在 GO 开发环境的安装与配置 一文中已经配置好了 GOPATH。接下来将代码下载到 GOPATH 下的 src 文件夹。

     git clone https://github.com/Bytom/bytom.git $GOPATH/src/github.com/bytom
    
  2. 切换至 v1.0.5 版本

     cd $GOPATH/src/github.com/bytom
     git fetch origin v1.0.5
     git checkout v1.0.5
    
  3. 编译源代码

     make bytomd
     make bytomcli 
    

运行 bytom

  1. 初始化

     cd ./cmd/bytomd
     ./bytomd init --chain_id mainnet
    
    • tips
    1. mainnet 主网

    2. testnet 测试网

    3. solonet 单机模式

  2. 启动 bytomd 进程

     ./bytomd node
    

    执行完上述命令会不断输出,因此打开另一个终端,再执行命令 ps -ef | grep bytomd 看是否有 ./bytomd node 进程。

    可以通过 ../bytomcli/bytomcli net-info 查看节点信息。

开启挖矿

默认情况下 bytom 的挖矿模式是关闭状态,需要使用 bytomcli 或者 dashboard 开启。

./bytomcli set-mining true