It is made up of three basic components:
- A Memory Pool
- A Miner
- 'The Blockchain' (an overview of the blocks mined)
- 32-bit string noncing
- Adjustable hash rate (with a clock-multiplier boost)
- Difficulty adjustment
- Auto-replenishing Memory Pool (generates random transactions to prevent running dry, unless paused)
- Actual individual transactions (represented as SHA256 hashes)
- Miner and Memory Pool are individually pausable (or both at once, using the master control)
Everything is 'to scale', in that I have chosen a block target time of 10 seconds, as opposed to 10 minutes*. Furthermore, difficulty adjustment occurs every 5 blocks, and blocks only contain 9 transactions + 1 coinbase transaction. All this is done to benefit the comprehension (obviously no one is going to wait 10 minutes for a block to complete).
*Still working on/experimenting with these values, as hashing seems to be too erratic to reach a good constant 10 seconds.
What I'm looking for
I am looking for any feedback on its basic workings, mainly to see if/where I made mistakes, and what I can do to make it even easier to understand. Besides that, I'm very curious as to what you think!
If this is not the place to ask for feedback, I do apologize and will remove asap.