V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Bytom
V2EX  ›  区块链

Bytom 矿池接入协议指南

  •  
  •   Bytom · 2018-09-06 08:34:35 +08:00 · 1588 次点击
    这是一个创建于 2274 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比原项目仓库:

    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 是动态压缩变长的需要进行解析

    5、解析完后进行下发

        var Diff1 = StringToBig("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")
    
        func GetTargetHex(diff int64) string {
            padded := make([]byte, 32)
            diffBuff := new(big.Int).Div(Diff1, big.NewInt(diff)).Bytes()
            copy(padded[32-len(diffBuff):], diffBuff)
            buff := padded[0:4]
            targetHex := hex.EncodeToString(Reverse(buff))
            return targetHex
         }
    
    • 矿池下发的 targethex 是拿 标准难度(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) / 一个难度值得出的
    • 这个值叫做矿池难度 一般会动态调整 保证矿机提交 share 的频率是稳定的 比如 1 分钟提交三次 提交得快了就会增加这个值 慢了就会降低这个值
    • target 是 16 进制的难度,1, 1024, …..等等,和前导 0 的个数有关,动态调整用来保证矿机每分钟至少提交三次,用来计算矿机算力以及防止矿机算力作弊 ffff3f00 对应 1024,c5a70000 对应 100001

    6、提交完之后矿池需要做验证

    cpp 的 tensority 逻辑在这里,并指出了如何针对 gpu 进行优化的建议,这样矩阵乘法能够跑进 2.5 ms, 整个 tensority 大概 6 ms

    • init matlist 有开销,seed 其实 256 个区块才改变一次, 遇到新的 seed 每次 gpu tensority 可能需要 100 ms,但做了 cache 的话 init matlist 可以忽略,可以认为每次 tensority 只需要不超过 6 ms
    • 用 golang 可以 cgo 调用 c 代码,参考 https://github.com/Bytom/bytom/blob/dev-ts-simd/mining/tensority/algorithm.go
    • 改好 gpu 版本后可以参照这个进行调用

    7、验证通过后使用 submit-work 接口进行提交

    提交的结果 也是 BlockHeader type 的

    8、retarget

    见上面,动态调整使矿机每分钟提交三次

    9、收益计算

    批量转账

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1251 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:02 · PVG 02:02 · LAX 10:02 · JFK 13:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.