我尝试了p2pool后发现stale较高,因此在p2pool专贴提问其原因,DeathAndTaxes做了解答:
#1863
jiyu_shi
April 09, 2012, 12:40:38 PM
我的stale有7.2%,它看上去太高了,为什么?
p2pool支持长轮询吗?
---------------------------------------------------------
#1864
DeathAndTaxes
April 09, 2012, 12:54:35 PM
p2pool确实支持长轮询。
p2pool里的孤行与其他pool的不同,它们没有失去工作,它们只是share链(使share一个接一个)的限额。
须谨记的是,这个份额是毫无价值的。它们绝对没有真正的价值,只是用来作为工作的追踪机制以防止作弊。
p2pool具有较高的孤行率,因为网络每10秒(对比Bitcoin的600秒)发现一个share。当两个节点在大致相同的时间提交(同一个share),只有一个能成为下一个链中的share,另一个就被孤禁。p2pool内部孤行不影响(生成)block,因为它们没有进入share链,发现它的节点直接把它广播到Bitcoin网络(且转播到所有p2pool节点)。
这并不是说孤行无所谓。对于p2pool孤行率来说,影响你的是你的stale与网络stale的比。如果它们近似,那么你将获得同样的速度。
举个例子可能会有帮助。
设你每小时生成10个share,网络生成1000个。你和网络的平均孤行率都是10%。
完成工作:
你:10,网络:1000,10/1000 =你贡献了1%的工作
孤禁的share:
你:1,网络:100,1/100 =你的孤行是所有孤禁的share的1%
share链中的工作记录:
你:9,网络:900,9/900 =你的回报份额为1%
您提供工作总量的1%,并得到1%的回报。
DOA(Local dead on arrival,失效到达)与普通pool的“stale”更具可比性。这是你的p2pool节点(的share结果)被(网络)判定接收到它时已无效的工作。按类似的方式,普通pool把接收到时已无效的share标记成stale。
你应该努力保持尽可能低的这个数字,以提高你的收益并使p2pool更高效。
为降低你的cgminer的DOA值,你可尝试以下设置:
每颗GPU的线程--gpu-threads|-g
:1
队列--queue|-Q :1
强度--intensity|-I :比其它常规pool低1(即我的5970在普通池用I:9,在p2pool用I:8)
小结:
1)p2pool的stale与其他pool的没有可比性,因为它包含了内部share孤行。
2)只要你的stale与p2pool平均值相当,你将获得相同数额(回报)。
3)DOA与普通池的stale率更具可比性。
4)为了降低DOA率,使用“更快”的cgminer设置(线程更少,队列更小的,强度更低)