独自のブロックを作成するために行きます

主パッケージ

のインポート(
    時間
    、「暗号化/ SHA256 
    バイト


// ブロック体 
型ブロック構造体{
     // バージョン情報
    バージョンのInt64
     // ハッシュ値ブロック連鎖前 
    PrevBlockHash [] バイト
    // 現在ブロックハッシュ 
    ハッシュ[] バイト
    // メイKaerルート 
    MerkelRoot [] バイト
    // タイムスタンプ
    timeStampにint64モード
     // 難易度の値の
    ビットのint64
     // 乱数
    ナンスのint64
     // トランザクション情報
    データ[] バイト
} 

FUNC(ブロックブロック)setHash(){ 

    TEP: = [] [] バイト{ 
        IntToByte(block.Version)、
        block.PrevBlockHash、
        block.MerkelRoot、
        IntToByte(block.TimeStamp)、
        IntToByte(block.Bits )、
        IntToByte(block.Nonce)、
        block.Data、

    } 
    データ: = bytes.Join(TEP、[] バイト{})

    ハッシュ: = sha256.Sum256(データ)
    block.Hash = ハッシュ[:] 
} 



NewBlock FUNC(データ、prevBlockHash [] バイト)*ブロック{
    VARのブロックブロックの
   ブロック = ブロック{ 
       バージョン:1 
       PrevBlockHash:prevBlockHash、
       MerkelRoot:[] バイト{}、
       タイムスタンプ:。time.Now()UNIX()、
       ビット:1 
       ノンス:1 
       データ:[] バイト(データ)
   } 

   block.setHash()

   リターンブロック
} 


// 传世区块 
FUNC NewGenesisBlock()* ブロック{
     リターン NewBlock(" ジェネシスブロック!"、[]バイト{})
}

 

おすすめ

転載: www.cnblogs.com/dqh123/p/12075421.html