public Chain() { var fromPerson = new Person() { Name = "GenesisFrom", Surname = "GenesisFromSur", Password = "******", AccountNumber = "GenesisFromNumber" }; var toPerson = new Person() { Name = "GenesisTo", Surname = "GenesisToSur", Password = "******", AccountNumber = "GenesisToNumber" }; var genesisData = new BlockDataModel() { TransactionTime = DateTime.Now, FromPerson = fromPerson, ToPerson = toPerson, Amount = 0 }; var genesisBlock = new Block(0, DateTime.Now, genesisData, "816534932c2b7154836da6afc367695e6337db8a921823784c14378abed4f7d7"); blocks = new List <Block> { genesisBlock }; }
public Block(int index, DateTime timeStamp, BlockDataModel data, string previousHash) { this.index = index; this.timeStamp = timeStamp; this.previousHash = previousHash; this.data = data; using (SHA256 sha256Hash = SHA256.Create()) { hash = Hashier.GetHash(sha256Hash, data); } }
public static string GetHash(HashAlgorithm hashAlgorithm, BlockDataModel data) { byte[] byteData = hashAlgorithm.ComputeHash(Encoding.UTF8.GetBytes(data.ToString())); var sBuilder = new StringBuilder(); for (int i = 0; i < byteData.Length; i++) { sBuilder.Append(byteData[i].ToString("x2")); } return(sBuilder.ToString()); }
public string GenerateBlockdata() { var generateJson = BlockDataModel.GenerateJson(false); if (generateJson.Length == 1) { generateJson = string.Empty; } else { generateJson = generateJson.Remove(generateJson.Length - 1, 1); generateJson += "}"; } return(string.Format("/blockdata {0} {1} {2} {3}", BlockDataX, BlockDataY, BlockDataZ, generateJson)); }
public static string GetHash(HashAlgorithm hashAlgorithm, int index, DateTime timeStamp, BlockDataModel data, string previousHash, int nonce) { byte[] byteData = hashAlgorithm.ComputeHash(Encoding.UTF8.GetBytes(index.ToString() + previousHash + data.ToString() + timeStamp.ToString() + nonce.ToString())); var sBuilder = new StringBuilder(); for (int i = 0; i < byteData.Length; i++) { sBuilder.Append(byteData[i].ToString("x2")); } return(sBuilder.ToString()); }