Progress reportGood progress this week, but mostly on small things, which hardly seem worth mentioning.
Here's about 2 days worth of to-do items, to give you an example. Not sure if anybody reads these, but anyway
+ Split SQLite into 2 classes to make setting exposed API and some additional checks more clean.
+ Comm keys stuff moved into its own independent sub-task.
+ self.accounts, set from the ledger check task.
+ Realized that there will probably be some modified versions of nodes running, so added a "branch" field into both Pong response and status. It will also help to distinguish bugs between platforms (Windows/Linux, etc.). Wiki updated.
+ task_died.is() to compare by name.
+ Added "update keys" command.
+ Added confirmation support into node's console.
+ Beep on console.confirm(). Also tested flashing the window - not good.
+ Nasty bug found and fixed: starting tasks inside incoming() or outgoing() sometimes caused indexes to shift, so had to rewrite the whole event dispatcher loop to allow this.
+ Writing some draft code for task subscription for commands...
+ Finalized how the vault records are enumerated via commands.
+ Reject vault passwords shorter than 6 chars on nodes.
+ Added "status" command to get a bunch of aggregate info about the core.
+ Rewriting and simplifying T_Startup to manage _all_ the tasks startup sequence in one place.
+ BUG FIXED: didn't catch if there's no keys in the vault in T_LedgerComms.
+ Improved SimExplorer a bit and added public keys display. Took some time to figure out how to do it because of SQLite's stupidity.
+ Removed sim.out_packet and sim.out_raw_packet - they are almost always "out". Only Net and Triage send them as "in" and they can do it manually.
+ Consistency changes:
+ "cfg" => "cfg / set cfg"
+ "vault pass" => "set vault pass"
+ "vault info" => "get vault info / vault info"
+ "vault data" => "vault data / set vault data"
+ New vaults for all test nodes generated (the stretching algorithm changed).
+ "cfg loaded" event.
+ Set node name from INI by Supervisor on "cfg loaded". Enforce allowed characters only.
+ Moved "time" and "ts_adjust" into status. Renamed to "net_time" and "time_diff". Fill net_time by Supervisor from self.time() for "status" command. Wiki updated.
+ Replace "type" and "reason" with arrays in sim_cmd.
+ Also use cmd_type() instead of "type" to allow "type" to be used by other commands, like sim_packet and sim_vault_data.
+ Unicon switched from node indexes to account ID's to help with decoupling.
Also started drawing a startup diagram, because things are getting a bit complicated:
The good news is: the end of the refactoring is in sight. I won't give you any time estimates because when you refactor, you constantly get new ideas about how the code should be written and organized, and that's hard to predict, but at least most of it is finished.