Bitcoin-Core

對使用 Bitcoin Core 的 SHA256 程式碼感到困惑

  • June 4, 2019

我正在查看比特幣核心程式碼以使用其 SHA256 程式碼,但對我應該查看的位置感到困惑。

在 bitcoin/src/crypto/sha256.h 有 CSHA256

在 bitcoin/src/crypto/sha256.cpp 中有名為 sha256_sse4、sha256_shani 的命名空間。

然後是 bitcoin/src/hash.h

解釋和指導將不勝感激。

sha256.h具有導出的(從外部可見)方法和函式。要計算 SHA256,您應該#include這樣做。

  • sha256_sse4.cpp
  • sha256_sse41.cpp
  • sha256_avx2.cpp
  • sha256_shani.cpp

包含 SHA256 轉換函式(在 中使用SHA256.Write),每個函式專門針對具有不同指令集的不同處理器。以上是按順序排列的,大部分電腦都支持SSE4,但只有少數支持SHA-NI指令集,這是新處理器計算SHA256最快的方法。

sha256.cpp包含其他不是瓶頸的方法、檢查支持哪些指令集的函式、測試以及用於較舊和非 x86 電腦的純 C++ 轉換函式。

hash.h通過 C++ 模板支持多態性。

例子:

引用自:https://bitcoin.stackexchange.com/questions/88153