diff options
author | Yigit Sever | 2021-04-19 18:23:22 +0300 |
---|---|---|
committer | Yigit Sever | 2021-04-19 18:23:22 +0300 |
commit | 59ea3bd25b1f113168333eccdc9ffc4acd98cfe6 (patch) | |
tree | 4d76d4423f7d47755890aa98cbf0751978ef9180 /content/block_docs.md | |
download | gradecoin-site-59ea3bd25b1f113168333eccdc9ffc4acd98cfe6.tar.gz gradecoin-site-59ea3bd25b1f113168333eccdc9ffc4acd98cfe6.tar.bz2 gradecoin-site-59ea3bd25b1f113168333eccdc9ffc4acd98cfe6.zip |
Initial commit
Diffstat (limited to 'content/block_docs.md')
-rw-r--r-- | content/block_docs.md | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/content/block_docs.md b/content/block_docs.md new file mode 100644 index 0000000..92880b6 --- /dev/null +++ b/content/block_docs.md | |||
@@ -0,0 +1,43 @@ | |||
1 | +++ | ||
2 | title = "Blocks" | ||
3 | description = "Block Documentation" | ||
4 | weight = 10 | ||
5 | +++ | ||
6 | |||
7 | A block that was proposed to commit Transactions in `transaction_list` to the | ||
8 | ledger with a nonce that made `hash` valid; 6 zeroes at the left hand side of the | ||
9 | hash (24 bytes). | ||
10 | |||
11 | We are _mining_ using [blake2s](https://www.blake2.net/) algorithm, which produces 256 bit hashes. Hash/second is roughly {{ exp(num="20x10", exponent="3") }} on my machine, a new block can be mined in around 4-6 minutes. | ||
12 | |||
13 | # Requests | ||
14 | |||
15 | ## GET | ||
16 | A HTTP `GET` request to [/block](/block) endpoint will return the latest mined block. | ||
17 | |||
18 | ## POST | ||
19 | |||
20 | A HTTP `POST` request with Authorization using JWT will allow you to propose your own blocks. | ||
21 | |||
22 | # Fields | ||
23 | ``` | ||
24 | transaction_list: [array of Fingerprints] | ||
25 | nonce: unsigned 32-bit integer | ||
26 | timestamp: ISO 8601 <date>T<time> | ||
27 | hash: String | ||
28 | ``` | ||
29 | |||
30 | # Mining | ||
31 | The _mining_ process for the hash involves; | ||
32 | - Creating a temporary JSON object with `transaction_list`, `timestamp` and `nonce` values | ||
33 | - Serializing it | ||
34 | - Calculating blake2s hash of the serialized string | ||
35 | |||
36 | If the resulting hash is valid, then you can create a `Block` JSON object with the found `nonce` and `hash`. | ||
37 | |||
38 | # Hash | ||
39 | |||
40 | ```tha``` field in [jwt documentation](/jwt) in fact stands for "The Hash", in the case of a post request for a block, you need to use hash field of the block. | ||
41 | |||
42 | |||
43 | [ISO 8601 Reference](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) | ||