(context post by Gespenster)
ByteReverseマクロは、SHA-256変換の前にスキップすべきだろう。
Quote from: Gespenster on August 29, 2010, 11:35:19 AM
ByteReverseマクロは、SHA-256変換の前にスキップすべきだろう。
前後両方?nonceやタイムスタンプのためにも削除が必要なByteReverse呼び出しが複数ある。
実際、ByteReverseされるためだけに存在する一時的なブロックヘッダを完全に不要にできるかもしれない。
Quote from: lfm on August 29, 2010, 04:41:10 PM Quote from: Gespenster on August 29, 2010, 11:35:19 AM
ByteReverseマクロは、SHA-256変換の前にスキップすべきだろう。
前後両方?nonceやタイムスタンプのためにも削除が必要なByteReverse呼び出しが複数ある。
実際、ByteReverseされるためだけに存在する一時的なブロックヘッダを完全に不要にできるかもしれない。
SHA-256はバイトストリームがビッグエンディアンであることを期待しているので、すべて削除できると思う。最も速い確認方法は、BEマシンとLEマシンで同時にデバッガを通してコードを実行し、各ステップで結果を比較することだと思う。
コードは全体を通してリトルエンディアンを前提としており、ビッグエンディアンに移植しない意図で書かれた。ネットワーク経由で送信されるすべての整数はバイトスワップする必要があり、コード内の他の数十箇所に加えて対応が必要だ。余分なソースコードの肥大化に見合わない。
いずれにせよ、ビッグエンディアンは廃れつつある。