summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md24
1 files changed, 24 insertions, 0 deletions
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-
13}' 13}'
14``` 14```
15 15
16# how?
17
18## authentication
19Students generate their own `keypairs` and authenticate with their METU Student IDs.
20Authenticated students propose transactions, between them and another node (=public keys) or between the grader (=bank) and themselves.
21
22## transactions
23Transactions are `signed` using the proposers private key.
24(This whole public/private key + signing process will require some crypto dependency, **todo**)
25
26## blocks
27Blocks 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.
28Block 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.
29First proposed valid block is accepted, if assertions hold.
30(No consensus, we are the sole authority, there's no blockchain here, only a glorified database and busywork)
31
32## payment
33First transaction in the block is called *Coinbase*, the block reward is paid to the *output* (Bitcoin notation, different) of this transaction.
34If we do this then the rest of the transactions are just make believe playing.
35So banker + block reward approach seems better.
36
37## then
38After the new block, stale transactions are cleared?
39
16# Big Thank List 40# Big Thank List
17- https://github.com/blurbyte/restful-rust 41- https://github.com/blurbyte/restful-rust
18- https://github.com/zupzup/warp-postgres-example 42- https://github.com/zupzup/warp-postgres-example