Beispiel #1
0
        /// <summary>Si aggancia all'ultimo blocco disponibile e genera tutto il necessario per inserire in coda il blocco che si sta creando.</summary>
        /// <param name="blocco">Blocco della catena generato dal costruttore</param>
        #endregion
        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;

            // dopo aver inserito difficoltà posso effettuare il mining
            blocco.Mina(Difficoltà);

            // aggiunge il blocco alla catena
            Catena.Add(blocco);
        }
        public void AggiungiBlocco(Blocco blocco)
        {
            //prende i dati inerenti al blocco precedente rispetto a quello da aggiungere
            Blocco latestBlock = GetUltimoBlocco();

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

            // calcola il suo hash partendo da quello del precedente
            blocco.HashPrecedente = latestBlock.HashAttuale;

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

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

            //aggiunge il blocco alla catena
            Catena.Add(blocco);
        }
 public void AggiungiBlocco()
 {
     Catena.Add(AggiungiBLocco());
 }
        //con l'implementazione della classe transazione non è più necessario
        //public Blocco AggiungiBlocco()
        //{
        //    //aggiungo un blocco passando al costruttore (data, il valore dell'hash precedente, transazione)
        //    return new Blocco(DateTime.Now, null, "{}");
        //}

        public void AggiungiBloccoIniziale()
        {
            //Catena.Add(AggiungiBlocco());
            Catena.Add(CreaBloccoIniziale());
        }