stratum协议原理

当前位置:首页 > 币圈百科 > stratum协议原理

stratum协议原理

2022-12-25币圈百科435

stratum协议原理

stratum协议是矿机和矿池之间最常用的TCP通信协议。首先简单解释一下挖矿的网络架构。

一、挖矿网络架构

比特币是一种去中心化的网络架构,新的交易和新的区块通过安装了比特币守护进程的节点进行转发。同时,矿机和矿池形成了另一个网络,我们称之为矿工网络。

矿工网分为矿机、矿池、钱包等几个主要部分。有时候矿池软件和钱包装在一起,可以统称为矿池。

矿机和矿池软件的通信协议是stratum,而矿池软件和钱包的通信是bitcoinrpc接口。

stratum是JSON数据格式,具体协议如下:

II。地层协议

1。任务订阅

矿机启动。首先通过mining.subscribe方法连接到挖掘池订阅工作。

挖掘池使用Mining . notify

客户端:{'id'1,' method''mining.subscribe '' params '[]}服务器:{'id'1,' result'[['mining.notify '' AE 6812 EB 4 CD 7735 a 302 a 8 a9 DD 95 cf 71 f '],' 08000002 '4],错误'null}

其中:

ae6812eb4cd7735a

0800002为ExtraNonce1,用于构造coibase事务;

ExtraNonce2_size为4,挖矿机ExtraNonce2计数器的字节数。

2。任务分配

该命令由矿池定期发送给矿机。当通过mining.subscribe方法注册了矿机时,矿池应立即返回带有mining.notify

Server的任务:{'params'['bf '' 4d 16 b 6 f 85 af 6 e 2198 f 44 AE 2 a6 de 67 f 78487 AE 5611 b 77 c 6 c 0440 b 921 e 0000000000010000000000000000 '' 010000000000000000000000000000

上一个块哈希:

' 4d 16 b 6 f 85 af 6 e 2198 f 44 AE 2 a6 de 67 f 78487 AE 5611 b 77 c 6 c 0440 b 921 e 000000 '

coinbase第1部分:

' 01000000000000000000000000000000000000000000000000000000000000000000000000000200862062 f 50325

交易id列表:

[' c5bd 77249 e 27 C2 D3 a 3602 DD 35 c 364 a 7983900 b 64 a 34644d 03 b 930 bfdb 19 c 0 e 5 '' 049 B4 e 78 e 2d 0 b 24 f 7 c 6 a 2856 aa 741811 ed 961 e 52 AE 75527 df9 e。

块版本号:“0000002”;

nBit:" 1c 2 AC 4 af ";

当前时间:“504 e86b 9”;

清理任务:如果为真,矿机将停止所有任务,并立即开始蓑衣网小编2022新的任务;如果为false,请等到当前任务完成后再开始新任务。

3。矿机登录

矿机用一定的账号和密码登录矿池。密码可以为空,挖掘池返回true登录成功。该方法必须在连接初始化后立即进行,否则矿机将得不到采池任务。

客户端:{'params' ['miner1 '' password'],' id' 2,' method'' mining.authorize'}服务器:{'error' null,' id' 2,' result' true}

4当矿返回true时,提交成功;如果失败,有具体的错误原因。

客户端:{'params' ['Miner1 '' BF '' 000001 '' 504E86ED '' B2957C02'],' ID' 4,' method'' mining.submit'}服务器:{

任务号:" BF ";

ExtraNonce2:"00000001 ";

当前时间:“504 e86ed”;

nonce:"b2957c02 ";

5。难度调整

难度调整是从矿池发送到矿机的,难度通过mining . set _ difference方法进行调整,这是params中的难度值。

服务器:{'id' null,' method '' mining . set _ difference '蓑衣网小编20229; params' [2]}

矿工将在下一个任务中采用新的难度。有时候矿池会立刻发出新的任务,把清理任务设置为真,这样矿工就可以立刻用新的难度工作了。

三。通用通信流程

矿机和矿池的通用通信流程如下:

[X] [X]正文/我看比特币[X]

stratum协议原理 | 分享给朋友: