課程
/后端開發(fā)
/Go
/用GO語言構(gòu)建自己的區(qū)塊鏈
貌似計算hash的函數(shù)沒寫完整
2019-06-11
源自:用GO語言構(gòu)建自己的區(qū)塊鏈 4-1
正在回答
//注意int轉(zhuǎn)string不能這樣:string(b.Index)?+?string(b.TimeStamp) blockData?:=?strconv.Itoa(int(b.Index))+strconv.Itoa(int(b.TimeStamp))+b.PreBlockHash fmt.Println(blockData)
這是因為老師的int轉(zhuǎn)string語句寫錯了,
string(b.Index)?+?string(b.TimeStamp)
上面這條語句每次輸出都是同一個亂碼符號,因此Index和TimeStamp在計算哈希值的時候根本沒有起到作用,而創(chuàng)世區(qū)塊其他的值都是固定的,所以每次算出來的哈希值都是一樣的。
weixin_慕容7184231
func?CalculateHash(b?Block)?string?{ ???blockData?:=?string(b.Index)?+?string(b.Timestamp)?+?b.PreBlockHash?+?b.Data ???hashInBytes?:=?sha256.Sum256([]byte(blockData)) ???return?hex.EncodeToString(hashInBytes[:]) }
每次的時間Timestamp都不一樣呀,為什么生成的第0個blockhash都一樣的~
慕村1538275
weixin_慕容7184231 回復(fù) 慕村1538275
傳入的數(shù)據(jù)是一致的,那么hash出來的結(jié)果就不會變。
這就是hash運算的確定性 看下2-4節(jié)就明白了
同一個數(shù)據(jù)hash后的結(jié)果是確定的
舉報
區(qū)塊鏈自己動手實現(xiàn)一把,啥都明白了!
1 回答這里計算新區(qū)塊的Hash是有問題的吧
2 回答 invalid block Process finished with exit code 1 為什么我的運行結(jié)果是這樣的
1 回答創(chuàng)建新區(qū)塊的方法里面,是不是少了給本身data賦值的代碼?
1 回答時間戳為什么一樣呀
2 回答有源代碼可以下載嗎,總是出現(xiàn)問題運行不了
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2020-03-10
這是因為老師的int轉(zhuǎn)string語句寫錯了,
上面這條語句每次輸出都是同一個亂碼符號,因此Index和TimeStamp在計算哈希值的時候根本沒有起到作用,而創(chuàng)世區(qū)塊其他的值都是固定的,所以每次算出來的哈希值都是一樣的。
2019-07-25
每次的時間Timestamp都不一樣呀,為什么生成的第0個blockhash都一樣的~
2019-07-08
傳入的數(shù)據(jù)是一致的,那么hash出來的結(jié)果就不會變。
2019-06-25
這就是hash運算的確定性 看下2-4節(jié)就明白了
同一個數(shù)據(jù)hash后的結(jié)果是確定的