Development

創建 Base58Checked 解析器時應該做哪些開發測試?

  • January 18, 2013

如果我編寫了 Base58Checked 編碼器/解碼器,是否應該針對我的程式碼執行任何特殊測試(測試數據)?

我在 .NET 中使用 BigInteger,因此這些測試對於這種情況是獨一無二的,但可能適用於 Java 或其他語言。

我發現有用的測試是在任何中間步驟轉換為十六進製或從十六進制轉換時確保數據在以下情況下是正確的:

  • 校驗和的第一個或最後一個字節是一個或多個 0
  • 地址的第一個或最後一個字節是一個或多個 0

通常這可能會導致二進制補碼錯誤,具體取決於正在使用的 BigInteger 的實現。

我將執行我自己的 vanity gen 版本來生成有這些錯誤的地址,並將它們發佈在這裡。

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