Bytom矿池接入协议指南
矿机配置
https://gist.github.com/HAOYUatHZ/a47400bde4a138825faef415387b532c
固件升级
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
放松难度,用来使矿机在单位时间内能够有提交,然后矿池再验证~
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、提交完之后矿池需要做验证
- header_hash 使用 golang 的话可以利用
"github.com/bytom/protocol/bc/types"
中types.BlockHeader{}
的Hash()
使用别的语言的话参考 https://github.com/Bytom/B3-Mimic/blob/master/docs/blhr_hash_V3.go - 然后就要开始用 tensority 算 hash 结果 很遗憾现在 go 版本、cpp_openblas 版本、cpp_simd 版本都达不到理想的验证效果, 如果想做一个可用的矿池目前有必要上 gpu, 可以考虑 n 卡 1050,或者阿里云服务器 P4
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 的
- 使用 golang 的话可以利用
"github.com/bytom/protocol/bc/types"
中block_header.go
中的函数MmarshalText
- 使用别的语言的话参考
"github.com/bytom/protocol/bc/types"
中block.go
中的函数MarshalText
,WriteTo
,WriteVarintXXX
.WriteVarintXXX
需要参考 go函数binary.PutUvarint
8、retarget
见上面,动态调整使矿机每分钟提交三次
9、收益计算
略
批量转账
- 主网地址 bm 开头,长度普通地址42,多签62 工具 https://github.com/Bytom/bytom/tree/master/tools/sendbulktx
- 每次发币都会生成新的找零地址
- bytom input有21个的限制
转载于:https://www.cnblogs.com/bytom/p/9596035.html
Bytom矿池接入协议指南相关推荐
- 深入浅出说智图—POW矿池篇
深入浅出说智图-POW矿池篇 近来,有不少智图矿友向我询问,智图的POW矿池怎么建,建矿池能得到什么好处,今天我们就来聊一聊智图的POW矿池(以下简称矿池).矿池是什么,干什么用的,想必大多数人都知道 ...
- chia官方矿池常见问题
官方矿池常见问题 前言 一.一般常见问题 我怎样才能开始池化? 我需要重新绘制才能使用官方池协议吗? 我什么时候可以开始创建便携式绘图? 我需要支付 XCH 来创建池 NFT 或切换池吗? 我可以同时 ...
- 国内有那些chia矿池,chia矿池排行那几家比较靠谱
这个网站可以看到全世界目前的chia矿池,排行榜,查看网址:https://miningpoolstats.stream/chia 我这边目前接入是这家矿池:https://www.xchpool.i ...
- “误收”2100 个以太坊之后,星火矿池是退是分?
编者按:本文来自36氪战略合作区块链媒体"Odaily星球日报https://www.odaily.com/"(公众号ID:o-daily,APP下载https://downloa ...
- 区块链:4、矿池算力集中问题及51%攻击问题
区块链:4.矿池算力集中问题及51%攻击问题 一.矿池算力集中的问题 1.矿工及任务 以公共区块链分布式账本为基础的加密货币,如比特币.以太币等,需要靠分布在世界各地的矿工(mine)不停地运作来维持 ...
- teepool矿池有跑路的预兆?农民该怎么选择靠谱的chia矿池?
今日,在笔者收集素材时发现前不久新出的所谓的Chia官方新协议可信矿池也就是teepool已经被腾讯云封禁,具体原因如下: teepool挂靠腾讯云香港服务器,但是多个子域名的ip指向的是国内服务器, ...
- 神鱼发怒,揭露矿圈“扣块攻击”,矿池江湖暗流涌动
作者 | 王佳建 这两天,格力与奥克斯空调正面硬刚的新闻抢占了各大媒体头条. 格力实名举报奥克斯生产的8个型号空调虚假宣传,能效不合格.奥克斯称对方恶意造谣,不正当竞争. 12日,中国知名矿池鱼池(F ...
- Nchain旗下矿池挖出首个BCH区块,“算力战争”真的要来了?
本周三,SV矿池挖出了首个BCH区块.该矿池的经营者是区块链公司Nchain和Coingeek,他们表示已经有来自世界各地的数百位矿工选择加入这个矿池. Bitcoin SV迈出了第一步 BCH网络升 ...
- 如何看待矿池抽税激励社区开发者?如何看待EOS?——BCH极客大赛江卓尔专访
本次BCH极客大赛期间,我们还特别邀请了莱比特矿池BTC.TOP的CEO江卓尔做了专访.看看他是如何看待矿池抽税激励社区开发者?如何看待EOS?下一个牛市在哪里?如何看待区块链存储敏感信息?中国可能在 ...
最新文章
- AutoML大提速,谷歌开源自动化寻找最优ML模型新平台
- html中.inner样式,JavaScript-DOM动态控制Html标签对象样式和innerHTML、className属性
- 这就是我经常的C++状态,多练
- 博客样式-bbsmax4风格V0.2
- 计算机视觉CV目标检测综述
- 好用又免费的英文校对工具!英文写作就要用Wordvice AI
- 从零开始学WEB前端——网页的骨架——HTML理论讲解
- java的duplicate用法_Java FloatBuffer duplicate()用法及代码示例
- 杭州电子科技大学程序设计竞赛(2016’12)- 网络同步赛 1004
- 从DS1302电路设计总结的晶振电路设计规范
- java 为什么要get,set方法
- vbs:模拟键盘操作和在指定窗口进行操作
- 更改guest帐号权限
- 基于Java+SpringBoot+vue实现图书借阅和销售商城一体化系统
- matlab建立mex,手把手教你在VC++中建立MEX文件及调试
- 画论69 汪之元《天下有山堂画艺》
- mysql 获取当前日期_详解mysql 获取当前日期及格式化
- 红米Note 4开启root超级权限的经验
- android mtk6592 添加led三色灯,红色蓝色绿色
- json 语言解析为String,单个对象和集合的json和String之间的相互解析
热门文章
- notePad++安装及json,xml格式化插件安装
- 中南大学 科学计算与MATLAB语言 11矩阵求值
- 数据结构c语言描述第课后答案李学刚,数据结构(C语言描述)(第2版)
- 三维计算机视觉(二)--点云滤波
- 系统学习深度学习(二十三)--SqueezeNet
- 决策树(二)--C4.5
- SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘staff_info.depart_id‘ in ‘where clause‘
- mrc20温控f1什么意思_精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
- kiban可视化入门
- Prometheus入门简介