public Blocco CreaBloccoIniziale()
        {
            var blocco = new Blocco(DateTime.Now, null, _transazioniInAttesa);

            blocco.Mina(Difficolta);
            _transazioniInAttesa = new List <Transazione>();
            return(blocco);
        }
        public void AggiungiBlocco(Blocco blocco)
        {
            //prende i dati inerenti al blocco precedente rispetto a quello da aggiungere
            var ultimoBlocco = GetUltimoBlocco();

            //aumenta l'indice del blocco +1 rispetto a precedente
            blocco.Indice = ultimoBlocco.Indice + 1;

            // calcola il suo hash partendo da quello del precedente
            blocco.HashPrecedente = ultimoBlocco.HashBloccoCorrente;

            //istruzione non necessaria quando si introduce il concetto di MINING
            //blocco.HashBloccoCorrente = blocco.CalcolaHash();

            //dopo aver inserito difficoltà posso integrare operazioni di mining
            blocco.Mina(Difficolta);

            //aggiunge il blocco alla catena
            Catena.Add(blocco);
        }