private Bloco CriarNovoBloco(List <Transacao> transacoes = null) { string chaveBlocoAnterior = _ultimoBloco?.Chave; Int64 provaBlocoAnterior = _ultimoBloco != null ? _ultimoBloco.Prova : _provaInicial; Bloco bloco = new Bloco { Altura = Contexto.Blocos.Count() + 1, ChaveBlocoAnterior = chaveBlocoAnterior, CriadoEm = DateTime.UtcNow, Transacoes = transacoes }; bloco.Chave = bloco.ObterChave(); bloco.Prova = CriarProva(bloco.Chave, chaveBlocoAnterior, provaBlocoAnterior); bloco.Bits = bloco.ObterBits(); AtualizarBlocoAnterior(bloco.Chave); Contexto.Blocos.Add(bloco); Contexto.SaveChanges(); return(bloco); }