diff options
Diffstat (limited to 'content/_index.md')
-rw-r--r-- | content/_index.md | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/content/_index.md b/content/_index.md index d0be673..3522122 100644 --- a/content/_index.md +++ b/content/_index.md | |||
@@ -4,7 +4,6 @@ sort_by = "weight" | |||
4 | +++ | 4 | +++ |
5 | 5 | ||
6 | # Welcome to Gradecoin! | 6 | # Welcome to Gradecoin! |
7 | |||
8 | Blockchains are incredibly simple yet can appear very complicated, we will see how they work and practice programming _production_ cryptography code. | 7 | Blockchains are incredibly simple yet can appear very complicated, we will see how they work and practice programming _production_ cryptography code. |
9 | 8 | ||
10 | This server is the sandbox for the PA1, it's currently running the Gradecoin application. Gradecoin is the faux currency we will use to simulate a blockchain network. At the end of the simulation, the amount of Gradecoin you hold will be your PA1 grade. | 9 | This server is the sandbox for the PA1, it's currently running the Gradecoin application. Gradecoin is the faux currency we will use to simulate a blockchain network. At the end of the simulation, the amount of Gradecoin you hold will be your PA1 grade. |
@@ -17,7 +16,7 @@ Blocks need to be _mined_ beforehand using Proof-of-work, or brute force. | |||
17 | Gradecoin offers 3 endpoints at [/register](/register), [/block](/block) and [/transaction](/transaction). You can only send GET requests to /block and /transaction without authorization. | 16 | Gradecoin offers 3 endpoints at [/register](/register), [/block](/block) and [/transaction](/transaction). You can only send GET requests to /block and /transaction without authorization. |
18 | The server is programmed in [RESTful](https://www.service-architecture.com/articles/web-services/representational_state_transfer_rest.html) architecture, there are no `DELETE`, `PUT` or `UPDATE` operations, though. | 17 | The server is programmed in [RESTful](https://www.service-architecture.com/articles/web-services/representational_state_transfer_rest.html) architecture, there are no `DELETE`, `PUT` or `UPDATE` operations, though. |
19 | 18 | ||
20 | Gradecoin uses a Proof-of-work block accepting mechanism. It uses single round [Blake2s](https://www.blake2.net/) hashing which produces 256-bit (64 hexadecimal characters) output. The [target](https://wiki.bitcoinsv.io/index.php/Target) hash is _24 bits_ or _6 hexadecimal characters_ of 0. During testing, I could mine a block on average around 4-6 minutes. | 19 | Gradecoin uses a Proof-of-work block accepting mechanism. It uses single round [Blake2s](https://www.blake2.net/) hashing which produces 256-bit (64 hexadecimal characters) output. The [target](https://wiki.bitcoinsv.io/index.php/Target) hash is _24 bits_ or _6 hexadecimal characters_ of 0. |
21 | 20 | ||
22 | > We're expecting you to use existing tools and implementations. Standards are hard. [Don't roll your own crypto](https://www.reddit.com/r/crypto/comments/2coqsy/dont_roll_your_own/). Feel free to ask questions. Collaborate. | 21 | > We're expecting you to use existing tools and implementations. Standards are hard. [Don't roll your own crypto](https://www.reddit.com/r/crypto/comments/2coqsy/dont_roll_your_own/). Feel free to ask questions. Collaborate. |
23 | 22 | ||
@@ -25,7 +24,8 @@ You might ask, | |||
25 | 24 | ||
26 | > But if nobody has any Gradecoin then how do we have transactions? | 25 | > But if nobody has any Gradecoin then how do we have transactions? |
27 | 26 | ||
28 | There is a bank! Their public key is `31415926535897932384626433832795028841971693993751058209749445923` and they have some amount of Gradecoin preloaded. It's also the only account that you can send transactions requests _to_ yourself. | 27 | You get rewarded for your hard work during the authentication with some Gradecoin to start with! |
28 | Then you can earn block rewards by proposing blocks, create some Gradecoins by generating traffic on the system, or transact with our new highly trained AI bots! | ||
29 | 29 | ||
30 | # Coinbase | 30 | # Coinbase |
31 | The first transactions of a block is called the `coinbase`. They are the **author** of the block proposal and if the block is accepted then they get compensated for their efforts with some Gradecoin. | 31 | The first transactions of a block is called the `coinbase`. They are the **author** of the block proposal and if the block is accepted then they get compensated for their efforts with some Gradecoin. |
@@ -39,6 +39,7 @@ Gradecoin uses 2048 bit RSA keypairs. | |||
39 | - Download `Gradecoin`'s Public Key from [Moodle](https://odtuclass.metu.edu.tr/my/) | 39 | - Download `Gradecoin`'s Public Key from [Moodle](https://odtuclass.metu.edu.tr/my/) |
40 | - Encrypt your [JSON](https://www.json.org/json-en.html) wrapped `Public Key`, `Student ID` and one time `passwd` using Gradecoin's Public Key | 40 | - Encrypt your [JSON](https://www.json.org/json-en.html) wrapped `Public Key`, `Student ID` and one time `passwd` using Gradecoin's Public Key |
41 | - Your public key is now in our database and can be used to sign your JWT's during requests | 41 | - Your public key is now in our database and can be used to sign your JWT's during requests |
42 | - **Don't forget your Public Key** | ||
42 | - For more information, check the [register](@/register_docs.md) page | 43 | - For more information, check the [register](@/register_docs.md) page |
43 | 44 | ||
44 | ## /transaction | 45 | ## /transaction |
@@ -55,10 +56,10 @@ Gradecoin uses 2048 bit RSA keypairs. | |||
55 | - Fetch the last accepted `Block` with a GET request | 56 | - Fetch the last accepted `Block` with a GET request |
56 | - For more information, check our [block](@/block_docs.md) page | 57 | - For more information, check our [block](@/block_docs.md) page |
57 | 58 | ||
58 | `Authorization`: The request header should have Bearer JWT.Token signed with Student Public Key | 59 | > `Authorization`: The request header should have Bearer JWT.Token signed with Student Public Key |
59 | 60 | ||
60 | ## /user | 61 | ## /user |
61 | - Meant to be used in the browser, you can see the current list of users and their balance here | 62 | - Looking for people to conduct business with? Everyone is listed here! 🤖👋 are bots who are very eager to transact with you. I've trained them personally. |
62 | 63 | ||
63 | # Questions | 64 | # Questions |
64 | ## This all sound complicated! | 65 | ## This all sound complicated! |
@@ -87,12 +88,13 @@ At the end of the _simulation_, your Gradecoin balance will be your grade. I wil | |||
87 | - perl | 88 | - perl |
88 | - rust | 89 | - rust |
89 | - python | 90 | - python |
91 | - dart/typescript | ||
90 | - random assortment of bash scripts | 92 | - random assortment of bash scripts |
91 | 93 | ||
92 | If your favourite programming language is missing please let me know 🤷? | 94 | If your favourite programming language is missing please let me know 🤷? |
93 | 95 | ||
94 | ## Can my friends play? | 96 | ## Can my friends play? |
95 | Sadly, no. Student's who are enrolled to the class will receive one-time-passwords for authentication. | 97 | Probably not at this point. I've allowed a couple of people during the testnet phase but don't intend to any more. |
96 | 98 | ||
97 | ## How and or Why? | 99 | ## How and or Why? |
98 | - [Built](https://xkcd.com/2314/), [with](https://lofi.cafe/) [Rust](https://xkcd.com/2418/) | 100 | - [Built](https://xkcd.com/2314/), [with](https://lofi.cafe/) [Rust](https://xkcd.com/2418/) |