aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge remote-tracking branch 'origin/main'alpaylan2021-04-166-115/+238
|\ | | | | | | | | # Conflicts: # src/schema.rs
| * Load users from disk at startYigit Sever2021-04-162-27/+74
| |
| * Add Doc for UserYigit Sever2021-04-151-5/+6
| |
| * Switch over to big boy loggingYigit Sever2021-04-151-2/+1
| |
| * Cleaned up user authenticationYigit Sever2021-04-152-15/+123
| | | | | | | | Removed TODOs, unrolled unwraps
| * Listen to clippyYigit Sever2021-04-154-26/+20
| |
| * Remove lorems and inpsumsesYigit Sever2021-04-152-2/+2
| |
| * Remove unused codeYigit Sever2021-04-152-39/+0
| |
| * Merge remote-tracking branch 'origin/template' into templateYigit Sever2021-04-152-14/+8
| |\
| | * shed unused functionYigit Sever2021-04-151-11/+0
| | |
| | * Add static serving supportYigit Sever2021-04-151-3/+8
| | |
| | * [WIP] Add template supportYigit Sever2021-04-152-3/+22
| | |
| * | Add template supportYigit Sever2021-04-152-3/+22
| | | | | | | | | | | | We are now serving static HTML alongside Gradecoin REST
* | | change last block reading method.alpaylan2021-04-161-6/+25
|/ /
* | Merge remote-tracking branch 'origin/main'alpaylan2021-04-152-6/+32
|\|
| * Implement the bank accountYigit Sever2021-04-142-6/+32
| |
* | fix docs.alpaylan2021-04-151-1/+1
|/
* Transactions return as dictYigit Sever2021-04-141-3/+4
|
* Implement coinbase rewardYigit Sever2021-04-141-8/+16
|
* Accepted block transactions play out nowYigit Sever2021-04-142-39/+75
|
* Users have FingerprintsYigit Sever2021-04-141-19/+17
|
* [WIP] Rough authentication process doneYigit Sever2021-04-141-0/+11
|
* [WIP] Initial implementation of user authYigit Sever2021-04-141-2/+0
| | | | | | There is a dance involved and everything Write down specs for RSA and AES, padding scheme, ugh.
* [WIP] Fix silly bugYigit Sever2021-04-141-2/+2
|
* [WIP] Let user know their fingerprintYigit Sever2021-04-141-3/+6
|
* [WIP] Address users by their fingerprintYigit Sever2021-04-141-3/+5
|
* [WIP] Remove unnecessary importsYigit Sever2021-04-141-1/+1
|
* [WIP] Rough authentication process doneYigit Sever2021-04-142-22/+61
|
* Add auth documentationYigit Sever2021-04-141-2/+33
|
* [WIP] Initial implementation of user authYigit Sever2021-04-144-8/+83
| | | | | | There is a dance involved and everything Write down specs for RSA and AES, padding scheme, ugh.
* recover database from file.alpaylan2021-04-141-2/+45
|
* embed user passwds to the code structs.alpaylan2021-04-142-9/+34
|
* Simplify the block validation processYigit Sever2021-04-141-19/+16
| | | | 2 TODOs down!
* finished user testing.alpaylan2021-04-141-3/+3
|
* finished naked block testing.alpaylan2021-04-141-1/+1
|
* finished block testingalpaylan2021-04-141-1/+1
|
* start testing schemaalpaylan2021-04-141-1/+1
|
* remove unused part.alpaylan2021-04-141-12/+1
|
* add balance check to transactions.alpaylan2021-04-141-0/+35
|
* Add empty block testYigit Sever2021-04-143-5/+9
|
* Add verbose error messagesYigit Sever2021-04-135-61/+182
| | | | | | | | | Not happy with the solution one bit but using error.rs at https://blog.logrocket.com/create-an-async-crud-web-service-in-rust-with-warp/ was not working Basically we just handcraft every single response on the spot, there is some repetition and it's ugly but need to move on
* Fix docs againYigit Sever2021-04-131-2/+2
|
* Fix docsYigit Sever2021-04-131-1/+1
|
* Refactor authorized propose functionsYigit Sever2021-04-132-127/+192
| | | | | | | | | | | | | | They were getting spaghetti so; new function: handlers::authorize_proposer(), handles the jwt stuff, NOT async and _may_ cause trouble down the road but then again the stuff it does used to be (repeated) in the functions so how bad can it be If else chains were getting unwieldy; https://refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html so now everything is returning early, might make verbose error handling easier
* Require authorization for Block POSTYigit Sever2021-04-133-54/+97
| | | | | Not tested because it's impossible to follow without verbose error messages, failing 1 test
* HousekeepingYigit Sever2021-04-136-480/+157
| | | | | | Moved tests out of routes.rs into their own file Learned how to use lib.rs, now we have cargo doc support as well
* implement user authentication using jwtalpaylan2021-04-124-21/+189
|
* six rightmost zeros for miningalpaylan2021-04-121-2/+2
|
* Implement proof-of-workYigit Sever2021-04-126-36/+133
| | | | | | | | Using blacke2s: https://docs.rs/blake2/0.9.1/blake2/ Using this guy's hash checker https://gist.github.com/gkbrk/2e4835e3a17b3fb6e1e7 blacke2s with 5 bits 0 can mine a block between 20 seconds to 359 during my tests, hope it'll be fun
* Implement User handling and authenticationYigit Sever2021-04-125-39/+233
| | | | | | | | | | | | | | | | | | | | | | | | New struct: User, corresponds to a student Blocks and users are persistent (written to a text file) PostgreSQL would've been overkill, we have 30 students AuthRequest is the representation for incoming register requests and User is the inner representation Students who are enrolled to the class are hardcoded, only they can register new accounts There are two new tests, one checks if a priviliged (=enrolled) user can create an account and the other checks if a unpriviliged one cannot There are quick verbose error messages that I'm not married to, might move on to something better honestly There's nothing stopping a malicious user to pre-register everyone with mock public keys and effectively lock everyone out, what's a good secret we can use?