Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func nextBlock(lastBlock Block) Block {
- blockIndex := lastBlock.index + 1
- blockTime := time.Now().String()
- blockData := "This is block " + strconv.Itoa(blockIndex)
- previousHash := lastBlock.previousHash
- var sha = sha256.New()
- tryString := lastBlock.previousHash
- rand.Seed(time.Now().UnixNano())
- nonce := make([]byte, 4)
- rand.Read(nonce)
- hashString := "00000" + lastBlock.previousHash[5:len(lastBlock.previousHash)]
- for ((tryString[:5]) != hashString[:5]) {
- sha.Write([]byte(tryString))
- tryString = hex.EncodeToString(sha.Sum(nil))
- tryString = tryString + hex.EncodeToString(nonce)
- fmt.Printf(tryString)
- fmt.Printf("\n\n")
- nonce[3]++
- }
- blockString := strconv.Itoa(blockIndex) + blockTime + blockData + previousHash + tryString
- var sha2 = sha256.New()
- sha2.Write([]byte(blockString))
- t, err := os.Create("height")
- check(err)
- n, err := t.WriteString(strconv.Itoa(blockIndex))
- fmt.Printf("Written height to file", n)
- t.Sync()
- return Block {blockIndex, time.Now(), blockData, hex.EncodeToString(sha2.Sum(nil)) }
- }
Add Comment
Please, Sign In to add comment