Add nonce & timestamp to block

This commit is contained in:
vbodinaud
2020-03-01 21:23:47 +01:00
parent b8847bd8a9
commit 00bc56adc3
2 changed files with 23 additions and 4 deletions

View File

@@ -10,12 +10,27 @@ import Foundation
import CryptoSwift import CryptoSwift
class Block { class Block {
var hash: String! var hash: String
var data: String! var data: String
var previousHash: String! var previousHash: String
var index: Int! var index: Int
var nonce: Int
var timestamp: Int
init(hash: String = "", data: String = "", previousHash: String = "", index: Int = 0, nonce: Int = 0, timestamp: Int = 0) {
self.data = data
self.previousHash = previousHash
self.index = index
self.nonce = nonce
self.timestamp = timestamp
self.hash = hash
}
func generateHash() -> String { func generateHash() -> String {
return data.sha256() return data.sha256()
} }
func generateTimestamp() -> Int {
return Int(Date().timeIntervalSince1970)
}
} }

View File

@@ -16,6 +16,8 @@ class Blockchain {
genesisBlock.data = data genesisBlock.data = data
genesisBlock.previousHash = "0000" genesisBlock.previousHash = "0000"
genesisBlock.index = 0 genesisBlock.index = 0
genesisBlock.nonce = 0
genesisBlock.timestamp = genesisBlock.generateTimestamp()
genesisBlock.hash = genesisBlock.generateHash() genesisBlock.hash = genesisBlock.generateHash()
chain.append(genesisBlock) chain.append(genesisBlock)
print("Genesis block created -- hash: \(genesisBlock.hash ?? "")") print("Genesis block created -- hash: \(genesisBlock.hash ?? "")")
@@ -26,6 +28,8 @@ class Blockchain {
newBlock.data = data newBlock.data = data
newBlock.previousHash = chain[chain.count-1].hash newBlock.previousHash = chain[chain.count-1].hash
newBlock.index = chain.count newBlock.index = chain.count
newBlock.nonce = 0
newBlock.timestamp = newBlock.generateTimestamp()
newBlock.hash = newBlock.generateHash() newBlock.hash = newBlock.generateHash()
chain.append(newBlock) chain.append(newBlock)