datalogiforalle / blockchain-sim Goto Github PK
View Code? Open in Web Editor NEWDjango-app that allows students to simulate a blockchain.
Home Page: https://blockchain-sim.dataekspeditioner.dk/
Django-app that allows students to simulate a blockchain.
Home Page: https://blockchain-sim.dataekspeditioner.dk/
Både i den nuværende Django-implementering og i den oprindelige Flask-app, kan forskellige blokke tilhørende samme blokkæde få samme blok-ID. Dette kan sker, hvis to brugere tilføjer blokke i forlængelse af samme blok.
Er det meningen, eller er det noget, som skal fikses?
Eventuelt flere sværhedsgrader
Nemt: starter med 0, 1 eller 2
Middel: starter med 0
Svær: starter med 00
Skal hash af genesis-blokken altid være '0' uanset sværhedsgrad?
Prev_hash af block #1 lever pr kontruktion ikke op til kravene til blokkæden... er dette et problem?
What to do?
This view function is too long and hard to understand. Consider:
I givet fald: Hvad er det præcis for et tidspunkt, der menes?
I den oprindelige flask-applikation er det tvetydigt, hvad der menes med en bloks skabelsestidspunkt. I formen, som hashet beregnes på baggrund er, er created_at et tidspunkt, hvor brugerens session data senest er blevet opdateres. Men hvis brugeren gemmer en blok på databasen, så er created_at = 'current timestamp'. Dette betyder, at der gemmes blokke med ugyldige hashes i databasen.
I den oprindelige flask-app ville alle blok-elementer med blok-id=0 (altså start-blokken i hver kæde) have præcis samme hash, hvis skabelsestidspunktet ikke indgik i beregningen af hash-værdien. I den nuværende Django-app indgår skabelsestidspunktet ikke. I stedet har jeg tilføjet bruger-id'et for den, der skaber den nye blokkæde, til beregningen af hash-værdien for blok-0. På den måde får man forskellige start-hashes for hver ny kæde, selvom tidspunktet ikke indgår.
Vi bruger farver som kendetegn for minearbejdere. Det kan derfor forstyrre lidt, at vi også bruger bootstrap-farver til knapper og meddelelser (orange for" warning", fx). Overvej at minimere brugen af farver til at signalere andet end minearbejder-identitet. Lav knapper grå. Skriv meddelelser i sort/hvid? Det skal nok lige afprøves, hvordan dette fungerer i praksis.
Using the same form-object several times is a bad idea.
Hver deltager i blokken har sin egen farve - deltagernavn og blokke lavet af denne deltager skal vises i denne farve.
Værdien af disse konstanter betyder ret meget for spiloplevelsen. Det vil dog kræve afprøvning på større grupper elever, før man kan finde gode værdier, tror jeg:
MINER_REWARD = 100
BANK_TOKEN_PRICE = 150
NUM_INITIAL_TRANSACTIONS_PR_MINER = 2
NUM_TOKENS_FOR_SALE_IN_BANK_AT_ALL_TIMES = 3
ADD_TO_CHAIN_TIME_DELAY_IN_SECONDS = 2
Derudover bør der måske være flere hash-sværhedsgrader. Og så bør der måske være en vejledning med anbefalet sværhedsgrad givet et bestemt antal minearbejdere.
Sørg for at alle farver er relativt lyse?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.