aboutsummaryrefslogtreecommitdiffstats
path: root/content/block_docs.md
diff options
context:
space:
mode:
authorYigit Sever2021-04-19 18:23:22 +0300
committerYigit Sever2021-04-19 18:23:22 +0300
commit59ea3bd25b1f113168333eccdc9ffc4acd98cfe6 (patch)
tree4d76d4423f7d47755890aa98cbf0751978ef9180 /content/block_docs.md
downloadgradecoin-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.md43
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+++
2title = "Blocks"
3description = "Block Documentation"
4weight = 10
5+++
6
7A block that was proposed to commit Transactions in `transaction_list` to the
8ledger with a nonce that made `hash` valid; 6 zeroes at the left hand side of the
9hash (24 bytes).
10
11We 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
16A HTTP `GET` request to [/block](/block) endpoint will return the latest mined block.
17
18## POST
19
20A HTTP `POST` request with Authorization using JWT will allow you to propose your own blocks.
21
22# Fields
23```
24transaction_list: [array of Fingerprints]
25nonce: unsigned 32-bit integer
26timestamp: ISO 8601 <date>T<time>
27hash: String
28```
29
30# Mining
31The _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
36If 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)