Quote from: lzsaver on October 02, 2010, 05:49:47 AM
もう少し教えてほしい: 「extraNonceで特殊なことをしなければならず、ブロックヘッダーのサイズが増える」について。
生成時にはブロックヘッダーのハッシュを計算する。より多くのデータをハッシュする方が少ないデータをハッシュするより遅いので、ブロックヘッダーは一つの例外を除いて全員にとって固定サイズであることが極めて重要だ。各ハッシュ試行後にNonceヘッダーフィールドをインクリメントするが、このフィールドは32バイトしかないため、頻繁にオーバーフローする。オーバーフローするたびに、可変サイズのextraNonceフィールドをインクリメントする。extraNonceが大きくなるほど、生成は遅くなる。ただし通常のインクリメントでは有意に大きくはならない。
多くのコンピュータがあり、すべてが同じ公開鍵で同じブロックに取り組んでいる場合、すべてが同時に同じブロックをハッシュしている可能性が非常に高く、これは無意味だ。これを修正するために、各コンピュータに固有のextraNonce修飾値が与えられる。衝突を防ぐためにこれは非常に大きくなる可能性があり、そのためハッシュが遅くなる。
間違いなくこの欠点のないプーリングシステムを設計できるだろうが、それはより困難になる。
m0mchilのgetworkがextraNonceで何かしているのは見た。その実装がどれほど悪いかわからないが、理論的にはそれなしのクライアントよりも必ず遅くなる(他の条件が同じなら。GPUサポートの追加で明らかにパフォーマンスは向上する)。