Ši programa simuliuoja blokų grandinės veikimą. Ji įgyvendina paprastą bloko, transakcijų ir naudotojų modelį, leidžiantį stebėti, kaip vyksta blokų kasyba ir transakcijų vykdymas.
- Pridėta transakcijų verifikacija, kuri patikrina:
- Ar naudotojas turi pakankamą balansą atlikti pervedimą (Jei turi, ta suma yra nuimama nuo balanso, jei neturi - pervedimas neįvykdomas)
- Ar tranksakcijos informacijos hash'as sutampa su transakcijos ID
- Pridėtas kasimo laiko matavimas, kuris tikrina, ar duotas laikas yra pakankamas blokui iškasti
- Blokų heneravimas: programa automatiškai generuoja blokus su atsitiktiniais naudotojais ir transakcijomis. Kiekvienas blokas turi savo unikalų identifikatorių, laikotarpį, versiją, Merkle šaknį ir kita informaciją.
- Transakcijų vykdymas: sugeneruotos transakcijos yra vykdomos kaskart iškasant naują bloką. Kiekviena transakcija turi unikalų identifikatorių, siuntėją, gavėją ir sumą.
- Naudotojų balansų atnaujinimas: po kiekvieno bloko iškėlimo naudotojų balansai yra atnaujinami pagal transakcijas.
- Blokų informacijos išvedimas: programa leidžia peržiūrėti iškastų blokų informaciją, tokią kaip ankstesnio bloko hash, laikotarpį, versiją, Merkle hash'ą ir t.t.
- Naudotojų informacijos išvedimas: galima peržiūrėti visus naudotojus ir jų dabartinius balansus.
- Blokų Stebėjimas: Iškastų blokų informaciją galima išgauti su printBlocks() funkcija.
container.printBlocks();
- Naudotojų Stebėjimas: Naudotojų informacija gali būti gauta iškviečiant printUsers() funkciją.
block.printUsers();