From 95ff6371303ac28d05b25fd9f6e436c5d0a58d4c Mon Sep 17 00:00:00 2001 From: Yigit Sever Date: Wed, 7 Apr 2021 01:42:44 +0300 Subject: Include big picture --- README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index 920d594..11e1861 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,30 @@ $ curl --location --request POST 'localhost:8080/transaction' --header 'Content- }' ``` +# how? + +## authentication +Students generate their own `keypairs` and authenticate with their METU Student IDs. +Authenticated students propose transactions, between them and another node (=public keys) or between the grader (=bank) and themselves. + +## transactions +Transactions are `signed` using the proposers private key. +(This whole public/private key + signing process will require some crypto dependency, **todo**) + +## blocks +Blocks are proposed using `N` transactions, this can be an exact number (=20) or if the last block is *some time* old then small blocks can be proposed. +Block proposal: `Block` + some `nonce` is hashed using a *simple* hash function, resulting hash should have some property that will require some computation time (~1 minute? 10 minutes?) to find (=guessing) Proof-of-work scheme. +First proposed valid block is accepted, if assertions hold. +(No consensus, we are the sole authority, there's no blockchain here, only a glorified database and busywork) + +## payment +First transaction in the block is called *Coinbase*, the block reward is paid to the *output* (Bitcoin notation, different) of this transaction. +If we do this then the rest of the transactions are just make believe playing. +So banker + block reward approach seems better. + +## then +After the new block, stale transactions are cleared? + # Big Thank List - https://github.com/blurbyte/restful-rust - https://github.com/zupzup/warp-postgres-example -- cgit v1.2.3-70-g09d2