Example #1
0
        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.");
        }
Example #2
0
        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);
        }