public void blocks(DRSN.Business_Application.Block block) { Block = block.Index; String connection = ConfigurationManager.ConnectionStrings["DRSNdatabase"].ConnectionString; SqlConnection sqlcon = new SqlConnection(connection); try { sqlcon.Open(); SqlCommand sqlcmd = new SqlCommand("insertblock", sqlcon); sqlcmd.CommandType = System.Data.CommandType.StoredProcedure; sqlcmd.Parameters.AddWithValue("@Block", block.Index); sqlcmd.Parameters.AddWithValue("@Timestamp", block.TimeStamp); sqlcmd.Parameters.AddWithValue("@Previoushash", block.PreviousHash); sqlcmd.Parameters.AddWithValue("@Hash", block.Hash); sqlcmd.Parameters.AddWithValue("@Data", block.Data); sqlcmd.Parameters.AddWithValue("@Nonce", block.Nonce); sqlcmd.Parameters.AddWithValue("@Sender", "Null"); sqlcmd.Parameters.AddWithValue("@Receiver", "Null"); sqlcmd.Parameters.AddWithValue("@Difficulty", "NA"); sqlcmd.Parameters.AddWithValue("@Isvalid", "NA"); sqlcmd.Parameters.AddWithValue("@Duration", "NA"); sqlcmd.Parameters.AddWithValue("@hashe", block.Hash); sqlcmd.ExecuteNonQuery(); sqlcon.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public bool IsValid(DRSN.Business_Application.Block block) { for (int i = 1; i < block.Index; i++) { Block currentBlock = block; //need to get the whole prevhash data string validprevhash = String.Empty; string strConnString = ConfigurationManager.ConnectionStrings["DRSNdatabase"].ConnectionString; SqlCommand com; SqlConnection con = new SqlConnection(strConnString); com = new SqlCommand(); com.Connection = con; try { con.Open(); com.CommandType = CommandType.StoredProcedure; com.CommandText = "isvalidprevhash"; com.Parameters.Add("@prhash", SqlDbType.VarChar, 50); com.Parameters["@prhash"].Direction = ParameterDirection.Output; com.Dispose(); com.ExecuteScalar(); //Storing the output parameters value in 3 different variables. validprevhash = Convert.ToString(com.Parameters["@prhash"].Value); con.Close(); } catch (Exception e) { Console.WriteLine(e); } //Block previousBlock = Convert.ToInt32(block.Index - 1); if (currentBlock.Hash != currentBlock.CalculateHash()) { return(false); } if (currentBlock.PreviousHash != validprevhash) { return(false); } } bd.isvalid = "True"; return(true); }