Python

Python bitswap // Ethash 算法

  • October 6, 2016

我剛開始研究 Ethash 算法,我看到了這個:

s = sha3_512(header + nonce[::-1])

問題是,nonce 是一個整數,他們曾經[::-1]將它從大端位交換到小端位?我的問題是什麼 python 版本允許這樣做?我測試的每一個都給了我一個__getitem__未定義的。我也想看看在哪個版本的python中我們可以像這樣操作位,我不是在尋找替代的大端到小端轉換,我只是想知道他們是如何做到這一點的?

此外,在算法中,他們說他們通過這個sha3_512呼叫將 header 和 nonce 組合成一個 64 位種子。那麼 header 和 nonce 應該如何呢?作為十六進製字元串?整數?我應該將 nonce 轉換為十六進製字元串,以便可以輕鬆地將其添加到標題中嗎?這條線讓我在他們的算法中迷失了:/

來源:https ://github.com/ethereum/wiki/wiki/Ethash

問題是,nonce 是一個整數

我認為它實際上是類型bytes- 它不是真正的數字類型int。所以這裡nonce被視為一個字節數組。

那麼 header 和 nonce 應該如何呢?作為十六進製字元串?整數?

如上。您可以嘗試使用bytes()orbytearray()來轉換您擁有的內容。

引用自:https://ethereum.stackexchange.com/questions/9033