Long posts without pictures are boring, so I think this is an appropriate one:
Ok, today is the last 100% safe day when the IPO won't be closed, so I thought I'd post a progress update for the last 12 days since the announcement.
You saw the address generator and lookup tool that I've posted here. Did some tests and settled on how account ID's will be generated.
The 3 main cryptoprimitives, which should be enough to build the system, were ready before the announcement. I found a bug in my Blake2s implementation when I did the address generator, so I wrote a unit test for it to compare to the reference implementation, and plan to do the same for Salsa and Ed25519, as well as other code.
Did some experiments with key stretching algorithms.
Converted Reed-Solomon addresses from NXT to the new format. Updated test addresses generator. Did extensive testing with 1 million corrupted test addresses.
Wrote a wrapper classes for SQLite, which will be used as our main database. The database interface code is now 90% done.
Did a lot of timing tests, both for crypto and database performance to assist me in making design decisions. Figured out protection from data corruption for the database. Wrote the code to do ledger verification on loading. Created a test ledger with 100,000 test accounts (about 10 Mb at this point). Verification takes less than 1 second, but that's without transaction history.
You've seen wiki, that took some time. I also keep documenting things in my local copy to be published later.
Console server skeleton is mostly finished, ini and log files, graceful shutdown, that kind of stuff. Ready to be filled with meat.
A lot of thinking went into trying to figure out the best encryption scheme for packets and at the same time protect from application-level DDoS attacks. I think I finally settled on how it will work.
Implemented transparent encryption/decryption in network code. Tested UDP connection between my home PC and the simcoin.info server – it worked perfectly. Also made sure that VPN indeed hides IP's for our UDP packets.
-----
"Boehm and Basili (2001) say that it is 100 times more expensive to fix errors in production than during the earliest development phases."
-- Robert L. Glass, Facts and Fallacies of Software Engineering.
So the rest of the time was eaten by lots of reading and thinking about overall system design