Change "No" to "Yes" as you complete the tasks:
Task
Complete?
[ENTER YOUR NAME HERE]
.
ADMINISTRATION:
I understand that if I copy code from others and submit with my name on it,
this is plagiarism and I will fail the class
No
I understand that if I claim YES on this checklist for work that was not
actually done, this is an academic integrity violation.
No
I understand that I can use the class website Blockchain utility code Elliott
provided, but no other problem-solution code that was written by others.
No
Compiles with the correct version of Java used for this class?
No
"javac Blockchain.java" (twice, with appropriate flags) in one directory compiles all
code, without errors, from within a console window, and the command line?
No
Correct headers for all Java source files?
No
Included my BlockchainLedgerSample.json file at the bottom of my code as
java comments?
No
Included my labled input files at the bottom of my code as java comments?
No
Completed at least TWO postings to the Blockchain forum and placed at the
bottom of my code as java comments?
No
Downloaded my D2L submission to verify not corrupt (optional / recommended)
No
Did you consider simplifying the assignment?
No
Extensive comments in your code showing you know how the program works
[required in your own words—no plagiarism!]
No
System will run with supplied batch files
No
Process 2 startup triggers the running of the whole system
No
Provided clear console log file for my running processes, showing how the system runs.
No
Provided sample JSON output of my blockchain in BlockchainLedgerSample.json
No
Three processes run from single program with arg 0,1,2
No
Runs from the master grading script and sub-scripts?
No
Writes final version of the ledger to BlockchainLedger.json from process 0
No
.
I ran and understand the Blockchain utilities program
No
I ran and understand the Blockchain input utilities program with JSON
No
I ran and understand the Blockchain Work program
No
I ran and understand the Blockchain Process Coordination program
No
.
SIMPLIFICATION STRATEGY:
For less credit I have removed all JSON and used Serialized Java Objects (as in ColorServer) instead.
No
.
THE PROGRAM:
Processes produce a basic blockchain ledger
No
Processes produce a basic blockchain ledger
No
All three processes contribute blocks to the ledger
No
Blocks are verified by SHA256 hash of 3 items: previous hash, random seed, data
No
Reads prescribed data files for initial data
No
Three processes cooperate
No
Processes each serve multiple ports
No
.
Updated blockchain ledger is distributed to three nodes
No
Process 0 writes the ledger to disk after each update to it
No
Ledger is marshaled to other nodes as JSON
No
Un-verified blocks are sent to all other processes
No
Un-verified blocks are marshaled to other processes as JSON
No
.
Digital Signatures used
No
Digital Signatures are verified
No
Public Keys are kept with process IDs for all nodes
No
A verifying block checks the signature on the data hash before verification
No
Work has been implemented.
No
Work method periodically checks to see if the block has already been verified
No
Nodes compete to verify blocks
No
A priority queue was implemented
No
.
.
Blocks are fully listed after console command to do so
No
Records are listed one to a line
No
Blockchain is validated after console command
No
Credit is given to nodes for validating blocks
No
Blocks are fully verified with SHA256 and signatures
No
No
.
Multiple blockchains are queued for processing
No
Blockchain forks are all handled...
No
Same length / same blockID / different timestamp handled
No
Same length / different blockID handled
No
You have code to verify an entire blockchain
No
Different length blockchain handled
No
Did you use args 2-N for extra functionality?
No
TBD
No
No
CREATE YOUR OWN MINI-PROJECT ENTRIES HERE:
.
Standalone three-process coordination is running.
No
Standalone program creates a blockchain and writes a JSON version to disk.
No
Standalone work utilty code runs.
No
Add the rest of your mini-projects here, line by line...
No
No
BRAGGING RIGHTS BELOW THIS LINE
.
Real work has been implemented based on hash value
No
Use the dataHash field to verify local records against cache
No
Extra command line functionality documented in three places? (Console prelude,
in program, bottom checklist.)
No
For fun ran system on three different computers
No
Clear written analysis of this program's security weaknesses
No
You've written up technological updates to the tools used
No
Reconstruct entire blockchain when error detected in early block
No
Very hard! Any number of peers supported by DHT multicast group with
persistent public/private keys
No
[Fill in custom extra feature] add
multiple entries as needed
Yes
Comment two, etc.