btccom / btcpool-ABANDONED

backend of pool.btc.com
https://pool.btc.com
MIT License
643 stars 408 forks source link

workerId为什么是负数 #364

Closed mzspring closed 4 years ago

mzspring commented 5 years ago

管理员老大你好:请教一下 workerId 是不是将矿工名做一下HASH。比如ABCD.001 将这个分解后,calcWorkerId(“ABCD”)一下。 但是sharelog打印出来的矿工号是负数或者和calcWorkerId得到的值不符合,不知为什么。

YihaoPeng commented 4 years ago

calcWorkerId返回的是int64_t,本来就是有符号的,是负数很正常。负数的概率为 50%

ABCD.001 将这个分解后,calcWorkerId(“ABCD”)一下,显然会与 worker id 不符合,因为我们说的 worker id 是 001,不是ABCD。我们称ABCDuser name或者sub account name,在数据库里通过puid表示。

数据库里的 worker id 是 calcWorkerId(“001”) 的结果。