bytom 架构
概述
本文将简要介绍 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 暂时没有官方编译手段。
编译
-
下载源代码
我们在 GO 开发环境的安装与配置 一文中已经配置好了 GOPATH。接下来将代码下载到 GOPATH 下的 src 文件夹。
git clone https://github.com/Bytom/bytom.git $GOPATH/src/github.com/bytom -
切换至 v1.0.5 版本
cd $GOPATH/src/github.com/bytom git fetch origin v1.0.5 git checkout v1.0.5 -
编译源代码
make bytomd make bytomcli
运行 bytom
-
初始化
cd ./cmd/bytomd ./bytomd init --chain_id mainnet- tips
-
mainnet 主网
-
testnet 测试网
-
solonet 单机模式
-
启动 bytomd 进程
./bytomd node执行完上述命令会不断输出,因此打开另一个终端,再执行命令
ps -ef | grep bytomd看是否有./bytomd node进程。可以通过
../bytomcli/bytomcli net-info查看节点信息。
开启挖矿
默认情况下 bytom 的挖矿模式是关闭状态,需要使用 bytomcli 或者 dashboard 开启。
./bytomcli set-mining true