區塊鏈V3版本實現之二

2022-06-29 14:45:10 字數 1262 閱讀 6751

部分**(gob.go檔案中建立乙個gob的demo實現序列化與反序列化的功能):

1

package main23

import (4"

encoding/gob"5

"bytes"6

"log"7

"fmt"8

)910//

1. gob是go語言內建的編碼包

11//

2. 它可以對任意資料型別進行編碼和解碼

12//

3. 編碼時,先要建立編碼器,編碼器進行編碼

13//

4. 解碼時,先要建立解碼器,解碼器進行解碼

1415 type person struct

1920

func main()

2627

varbuffer bytes.buffer

2829

//定義編碼器

30 encoder := gob.newencoder(&buffer)

3132

//編碼器對結構進行編碼,一定要進行校驗

33 err := encoder.encode(&jim)

34if err !=nil

3738 fmt.printf("

編碼後的資料: %x\n

", buffer.bytes())

3940

//......傳輸

4142

//解碼,將位元組流轉換person結構

4344

//4. 解碼時,先要建立解碼器,解碼器進行解碼

45var

p1 person

4647

//建立解碼器

48 decoder :=gob.newdecoder(bytes.newreader(buffer.bytes()))

49 err = decoder.decode(&p1)

5051

if err !=nil

5455 fmt.printf("

解碼後的資料: %v\n

", p1)

5657 }

顯示效果:

區塊鏈V3版本實現思路

當前版本問題 區塊在記憶體中,每次執行完程式就釋放,無法重用 建立區塊不靈活,在main中寫死,無法隨意新增區塊 v3版本思路 bolt資料庫介紹 輕量級 開源 go語言實現 key value進行讀取 map byte byte blockchain結構重寫 newblockchain函式重寫 由...

區塊鏈V3版本實現之六

命令列demo 1 package main23 import 4 fmt 5 os 6 78func main 16 顯示效果 使用命令列分析 所有的支配動作交給命令列來做 主函式只需要呼叫命令列結構即可 根據輸入的不同命令,命令列做相應動作 a addblock b printchain cli...

區塊鏈V3版本實現之四

部分 blockchain.go檔案中改寫addblock函式 1 v3版本 2 func bc blockchain addblock data string 12 block newblock data,bc.tail 13 b.put block.hash,block.serialize 將區...