private void btnValidte_Click(object sender, EventArgs e) { var db = new BlockDBEntities(); bool valido = true; var registrosMinados = db.EstadoDeCuentas.Where(x => x.Hash != null).OrderBy(x => x.ID); string HashAnterior = "0000000000000000000000000000000000000000000000000000000000000000"; foreach (var item in registrosMinados) { valido = Mine.ValidateHash(item.Hash, item.ID, string.Join(item.Cuenta, item.Entrada.ToString(), item.Salida.ToString(), item.Saldo.ToString(), item.Fecha.ToString()), (long)item.Nonce, HashAnterior); if (!valido) { break; } HashAnterior = item.Hash; } string mens = valido ? "" : " no"; MessageBox.Show($"La cadena es{mens} valida."); }
private void btnMine_Click(object sender, EventArgs e) { var db = new BlockDBEntities(); var registrosSinMinar = db.EstadoDeCuentas.Where(x => x.Hash == null).ToList(); foreach (var item in registrosSinMinar) { string HashAnterior = "0000000000000000000000000000000000000000000000000000000000000000"; if (item.ID != 1) { HashAnterior = db.EstadoDeCuentas.Where(x => x.Hash != null).OrderByDescending(x => x.ID).Take(1).FirstOrDefault().Hash; } long nonce = 0; item.Hash = Mine.GetHash(item.ID, string.Join(item.Cuenta, item.Entrada.ToString(), item.Salida.ToString(), item.Saldo.ToString(), item.Fecha.ToString()), ref nonce, HashAnterior); item.Nonce = (int)nonce; db.SaveChanges(); } this.estadoDeCuentaTableAdapter.Fill(this.blockDBDataSet.EstadoDeCuenta); }