Thomas, excellent work! I finally found some time to test everything and read (most of) the code. I really appreciate small footprint of client. There's lot of things which I like on your client, namely deterministic wallet (no need for periodic backup is awesome feature) and client-server architecture, which makes client really lightweight and very fast to use.
Few comment though.
1. Consider to switch to Qt. It's much modern gui toolkit and looks better especially on Windows. Thanks to minimalistic GUI it's still pretty easy to switch. Your client has great potential but GTK looks weird on Win and it's wrong to focus only on linux users (although I'm 100% linux user).
2. Consider better network interface and wallet format. Using 'repr' may break things in future as this isn't supposed to be platform-independent serializing method ;-). I see potential in using server side with some mobile clients, however implementing repr in java might be real hell. Although I don't recommend Json, it would be better than repr and it does not need new dependency as json parser is in stock python. Also thinking about pub/sub mechanism which can avoid server polling would be great. pubsub can make updates on client instant and yet vastly save server resources (as common client does not receive transaction all day long).
3. Consider to move to Github. I'd like to submit some fixes time to time and I finally need to learn with Git & Github :-). So migration to github would be good reason for me to go thru git manual (I'm mercurial user for years).
I can imagine that I'll install electrum to my friends instead of standard client when electrum matures a bit, because handling blockchain is simply big overhead for occasional users. Once again - really good work so far!
hi slush, thanks for the feedback!
1. Concerning Qt, I do not think we need to
switch to Qt, we can just provide both Qt and gtk :-) I will not do it myself, because I am not familiar with Qt, but I will be very happy to include an alternative GUI if someone decides to write it. Note that someone already made the same proposal:
https://bitcointalksearch.org/topic/m.618488 . Please also note that in the current GUI, I made sure that all functions can be accessed with the keyboard, with no need to reach for the mouse; if you design a Qt gui, I would love to keep the same accessibility.
2. wallet format: you are right. any patch is welcome.
2. server polling versus push: I disagree here. I decided to use polling instead of push for a reason. Many people have difficulties configuring with firewalls and opening ports. I wanted Electrum to be as easy to use as possible, and to require as little configuration as possible. I do not think that minimizing bandwidth is an issue at this point. Now, if you really want Electrum to use a push protocol, we can add it, but do not think that it should be the default.
3. the project is on gitorious. My username was already taken at github. not at gitorious :-)