diff options
| author | Yigit Sever | 2021-04-07 01:42:44 +0300 |
|---|---|---|
| committer | Yigit Sever | 2021-04-07 01:42:44 +0300 |
| commit | 95ff6371303ac28d05b25fd9f6e436c5d0a58d4c (patch) | |
| tree | f2e1c4b9f1ae46b6ad3513cdd88c8ba1392e6879 | |
| parent | 69bd37d5d96184d54b540f0aad2b26d8aa78c412 (diff) | |
| download | gradecoin-95ff6371303ac28d05b25fd9f6e436c5d0a58d4c.tar.gz gradecoin-95ff6371303ac28d05b25fd9f6e436c5d0a58d4c.tar.bz2 gradecoin-95ff6371303ac28d05b25fd9f6e436c5d0a58d4c.zip | |
Include big picture
| -rw-r--r-- | README.md | 24 |
1 files changed, 24 insertions, 0 deletions
| @@ -13,6 +13,30 @@ $ curl --location --request POST 'localhost:8080/transaction' --header 'Content- | |||
| 13 | }' | 13 | }' |
| 14 | ``` | 14 | ``` |
| 15 | 15 | ||
| 16 | # how? | ||
| 17 | |||
| 18 | ## authentication | ||
| 19 | Students generate their own `keypairs` and authenticate with their METU Student IDs. | ||
| 20 | Authenticated students propose transactions, between them and another node (=public keys) or between the grader (=bank) and themselves. | ||
| 21 | |||
| 22 | ## transactions | ||
| 23 | Transactions are `signed` using the proposers private key. | ||
| 24 | (This whole public/private key + signing process will require some crypto dependency, **todo**) | ||
| 25 | |||
| 26 | ## blocks | ||
| 27 | 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. | ||
| 28 | 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. | ||
| 29 | First 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 | ||
| 33 | First transaction in the block is called *Coinbase*, the block reward is paid to the *output* (Bitcoin notation, different) of this transaction. | ||
| 34 | If we do this then the rest of the transactions are just make believe playing. | ||
| 35 | So banker + block reward approach seems better. | ||
| 36 | |||
| 37 | ## then | ||
| 38 | After 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 |
