Monero Usability Improvements - Beyond the GUI
Benefits of increased usability
In addition to the obvious of being a more attractive financial software to... well, anyone, increasing core usability will also prevent 3rd party developments that sacrifice privacy and security for convenience. I'm looking at you, light nodes. I'm looking at you, remote nodes. If you can turn on your computer, load monero core, and be transacting within 2-3 minutes, no one will think this so non-performant to warrant development of an entire second-tier network of light nodes, or otherwise hack together something that makes it unnecessary to run a full node, or fathom that its a good business idea to create a centralized Monero wallet service.
How its done
Headers first synchronization.
I think smooth mentioned we're currently at 80 MB for a headers first sync. That puts us well within the 5 minute range of the average broadband connection.
Reverse synchronization
Once we have the headers, we download the most recent n blocks. (variations of design include a random set of blocks for immediate mixing purposes)
Reverse wallet synchronization
Once we have the most recent n blocks, simplewallet starts scanning those blocks for the users outputs.
Ability to spend outputs from a headers-only, partly-populated blockchain.
This allows users to spend their funds after these initial sync's have occurred.
The important part is that all of these are tangible elements that can be shown in a progress bar that is within a rationale time frame. Once this short-sync is done, the software obviously continues to build the blockchain in reverse. Or hell, it can start from the beginning. It could probably go from (current block = CB) -> (CB - 10k blocks) first, and then from (genesis block) to (CB - 10k blocks) if there was any reason to do that. Or with headers first it'll just grab whatever its peers are shoving at it and it will insert accordingly.
Yes, I know
I'm just blue skying how I think software should work, and I have no clue how difficult any of this is. I'm hoping this starts the conversation for whether this is a good idea and how it can be done.
The Rant detailing why "instant-on" functionality of Core is needed
It is known that the GUI has been a major impediment for Monero usability, and now that the GUI is under development, I'm hoping to draw attention to another major impediment for Monero usability and, in general, cryptocurrency usability.
In general, I think effort should be undertaken to improve the "First Impressions" that a new Monero user experiences. Namely, this has to do with blockchain synchronizing and wallet refreshing. For even when we have the GUI, a newcomer to cryptocurrency will now download our shiny GUI and be all ready to take part in the cryptocurrency revolution... and then be forced to wait 2 - 24 hours for the blockchain to download. And then, once thats done, they'll have to wait for their wallet to refresh. So, ultimately, 3 - 30 hours after installing the software (depending on bandwidth, CPU, and storage speed), the user will be able to use the software.
This. Is. Ridiculous.
Like any good software, Monero should be usable in a reasonable amount of time. Acceptable timeframes are on the "oh, I'll go get a glass of water while this thing is doing something" (2-5 minutes) not "Oh, I'll let this go overnight". If it goes overnight, that person may or may not come back to investigate the software, and in general might think it laughable that software that takes an entire night to become usable will revolutionize how we use money.
In various fora I've brought this up and gotten some input from various community members, so it all seems doable. I just don't know how "doable" is "doable". And granted, there is still a lot of "under the hood" stuff going on (Ring CT.... auto fee adjust.... i2p integration), but if we're starting to break into the GUI-level usership, we should really push to make Monero stand out.
As it stands, Monero with a GUI will just be another cryptocurrency with a GUI. The GUI will be great for those already in cryptocurrency space, that are familiar with blockchain synchronization, wallet refreshes, and the like. But to an un-initiated, if I sat them down on their computer, and I've gotten them so rip-roaring excited to be part of the financial revolution that they download Monero and install it, and then I tell them it will take maybe a day.... I'm gonna lose them.