五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

云原生CTO資深Go區(qū)塊鏈開發(fā)系列五

2023-08-17 20:48 作者:bili_74890469624  | 我要投稿

Go實(shí)現(xiàn)區(qū)塊鏈(一)---基本原型

.簡易版區(qū)塊結(jié)構(gòu) Block

//區(qū)塊結(jié)構(gòu)type Block struct { ? ? ? ?//GO語言首字母大寫外部可以訪問 ? ?Hase ? ? ? ? ?[]byte //hase值 ? ?Data ? ? ? ? ?[]byte //交易數(shù)據(jù) ? ?PrevBlockHash []byte //存儲(chǔ)前一個(gè)區(qū)塊的Hase值 ? ?Timestamp ? ? int64 ?//生成區(qū)塊的時(shí)間}

3.區(qū)塊體的Hash值的生成方式

采用sha256對區(qū)塊體數(shù)據(jù)進(jìn)行二次加密,從而構(gòu)成區(qū)塊鏈上要得到下一個(gè)區(qū)塊的hash值,是要通過計(jì)算才能得出新的hash

Hash = sha256(Data+PrevBlockHash+Timestamp)

//生成區(qū)塊hase值func (b *Block) SetHash() { ? ?timestamp := []byte(strconv.FormatInt(b.Timestamp, 10)) ? ?headers := bytes.Join([][]byte{b.PrevBlockHash, b.Data, timestamp}, []byte{}) ? ?hash := sha256.Sum256(headers) ? ?b.Hash = hash[:]}

4.構(gòu)造一個(gè)新的區(qū)塊體函數(shù)方法

每次生成新的區(qū)塊都要計(jì)算一下hash值。

//生成一個(gè)新的區(qū)塊方法func NewBlock(data string, prevBlockHash []byte) *Block{ ? ?block := &Block{Timestamp:time.Now().Unix(), Data:[]byte(data), PrevBlockHash:prevBlockHash, Hash:[]byte{}} ? ?block.SetHash() ? ?return block}

5.區(qū)塊鏈Blockchian

區(qū)塊鏈?zhǔn)且环N==有序、反向鏈接鏈表==的數(shù)據(jù)結(jié),構(gòu)如圖1-1。這意味著塊按照插入順序存儲(chǔ),并且每個(gè)塊都鏈接到前一個(gè)塊。該結(jié)構(gòu)允許快速獲取鏈中的最新塊,并通過其哈希(有效)獲取塊。

在Golang中,這個(gè)結(jié)構(gòu)可以通過使用數(shù)組和地圖來實(shí)現(xiàn):數(shù)組可以保持有序散列(數(shù)組在Go中排序),并且映射可以保持hash → block對(地圖無序)。但是對于我們的區(qū)塊鏈原型,我們只需要使用一個(gè)數(shù)組,因?yàn)槲覀儸F(xiàn)在不需要通過它們的哈希來獲取塊。

// 區(qū)塊鏈type Blockchain struct { ? ?Blocks []*Block}// 保存區(qū)塊數(shù)據(jù)func (bc *Blockchain) AddBlock(data string) { ? ?//獲取上一個(gè)區(qū)塊 ? ?prevBlock := bc.Blocks[len(bc.Blocks)-1] ? ?//創(chuàng)建一個(gè)新的區(qū)塊 ? ?newBlock := NewBlock(data, prevBlock.Hash) ? ?//新的區(qū)塊添加到數(shù)組中 ? ?bc.Blocks = append(bc.Blocks, newBlock)}


云原生CTO資深Go區(qū)塊鏈開發(fā)系列五的評論 (共 條)

分享到微博請遵守國家法律
兴山县| 顺义区| 临沭县| 黄山市| 壤塘县| 津南区| 天津市| 昌江| 桐柏县| 泽州县| 云安县| 定兴县| 闵行区| 溧水县| 平顺县| 景泰县| 苏尼特左旗| 屏东市| 万载县| 安图县| 翼城县| 蚌埠市| 宁城县| 上林县| 临泽县| 汝阳县| 綦江县| 丰都县| 芦山县| 汽车| 淮南市| 沽源县| 黑河市| 客服| 正镶白旗| 长乐市| 彩票| 奎屯市| 曲松县| 德庆县| 上蔡县|