比原项目仓库:
Github地址:https://github.com/Bytom/bytom
Gitee地址:https://gitee.com/BytomBlockchain/bytom
矿机配置
固件升级
https://service.bitmain.com.cn/support
- 两个都要刷,先后顺序没关系
- update_1000.tar.gz 升级时间较长,升级期间请勿断电
配置节点
- 测试时可以考虑切换到 testnet 分支降低难度使cpu挖矿也能出块,
./bytomd init --chain_id testnet
或./bytomd init --chain_id solonet
init
/node
初始化/启动时可以加上-r "your/directory"
指定数据目录,若目录不存在则会自动新建该目录
流程
1、初始化节点先建个账户、地址,不然就挖到空地址
2、矿地址支持自定义,包括 非本地钱包地址
3、API doc
4、矿池向节点 getwork
get-work
得到的 block_header
是动态压缩变长的需要进行解析
- 使用 golang 的话可以利用
"github.com/bytom/protocol/bc/types"
中block_header.go
中的函数UnmarshalText
- 使用别的语言的话参考
"github.com/bytom/protocol/bc/types"
中block.go
中的函数UnmarshalText
,readFrom
,ReadVarintXXX
.ReadVarintXXX
需要参考 go函数binary.ReadUvarint
5、解析完后进行下发
- 通信格式参考 https://github.com/Bytom/B3-Mimic/blob/master/docs/STRATUM-BTM.md - 收到任务有
login
和 矿池主动下发, 没走getjob
, 只走login
和 池主动下发 - 这俩都是用submit
提交 - 逻辑参考 https://github.com/Bytom/B3-Mimic/blob/master/main.go -
Version
,Height
,Timestamp
,Bits
要转小端 - 关于target
+ btc.com 分享了一段 antpool 的代码 ~, 并说target
用以对bits
对应的difficulty
放松难度,用来使矿机在单位时间内能够有提交,然后矿池再验证~