In addition to the construction of the notes, it also needs some sort of key management so that you do not use the keys that you have 'printed out' for something else and effectively double spend them. Have not thought that through yet.

But yes, will put it on the list (which is getting longer everyday!). :-)

In addition to the construction of the notes, it also needs some sort of key management so that you do not use the keys that you have 'printed out' for something else and effectively double spend them. Have not thought that through yet.

An 'automatic' key management like 'printout of note and immediately remove the key' might be difficult, because in case of printer malfunction one could loose money. But you also want to prevent accidental double spending, and everything should be simple.

Here is my suggestion:I think printing out a note should be handled similar to spending a cashier cheque:-After printing, the address should be marked as 'printed' or 'in transfer' or 'cashier cheque obligo'-This key should not be used for spending anymore.-When Multibit notices that the address is used on the blockchain, the key should be marked as 'spent'-If after a defined time the address has not been redeemed on the blockchain (=expiry date of the note), Multibit should transfer the amount from the address automatically to a new address in the same wallet by doing a regular transfer from the address to a new adress on the blockchain.-This way, it can be ensured that printer malfunctions do not lead to loss of bitcoins or private keys and everything is still simple from a users perspective: No need to recover the key from a backup copy, no need to worry about double spending, etc.-On the note, an expiry date should be printed, like :"Bitcoins to be redeemed on the blockchain until <date>, otherwise the note becomes invalid".-The expiry date should be choosable by the user.

By marking it as "printed" and then "spent" in your wallet you would not accidentally double spend it.By having an expiryDate it's state is less ambiguous as time goes on.

It would have to be clear on the note that you have to check the BTC is on the address even if it is before the expiry date.

By their very nature a printed note of a key is a one time use so I imagine they will either have a very short life (print them off just before you need them) or be 'perpetual' in that you are printing them off to save "somewhere safe". In the latter case you would probably want to delete the key out the wallet entirely for more security (once you have checked it has printed ok, obviously).

Previously in MultiBit there have been three sorts of testing done:1) Unit tests. This is low level code testing.2) Functional tests to check things like replaying from the genesis block. You do everything for real i.e. connect to the network and actually download blocks.3) Manual testing on my Mac plus virtual machines (Windows, Linux) against a checklist for each release.

For the encrypted wallet testing I have added a new layer of testing (UI robot testing if you are familiar with it). This is testing at the level of:

The google zebra-crossing library (zxing) is very good for reading QR codes. (I use it already). The problem with a general scan solution is camera support. There are too many different sorts of camera on various platforms.

You can imagine:'I have a OEM Logitech 933 scanner hooked up via wifi to a Windows Vista machine and your software does not work.'That's a semi-infinite task I would not want to do if being paid, nevermind for free.

The google zebra-crossing library (zxing) is very good for reading QR codes. (I use it already). The problem with a general scan solution is camera support. There are too many different sorts of camera on various platforms.

You can imagine:'I have a OEM Logitech 933 scanner hooked up via wifi to a Windows Vista machine and your software does not work.'That's a semi-infinite task I would not want to do if being paid, nevermind for free.

:-)

Jim

Good point.

I had assumed that the library would abstract the camera out (like any supported windows imaging supported camera)

Then I used multibit to send 0.1xxx btc to another address. Now, I cannot send another tx,the client tells me there are not enough funds. This is confusing because there are at least 0.8xxxx btc in the wallet.

The message (translated) contains 'Important: you can only spend confirmed bitcoins'.

(This was written when the last block was 189983 which was created 45 minutes ago)

I have been investigating the long time it takes to get from "Connecting..." to "Online" in the last couple of versions.

This is due to a couple of the default hosts used in the initial DNS lookup being offline.I have changed how it does the lookup so that it tries the 'good' hosts first and then only tries the 'possible' hosts if it is desperate.On my machine that cuts the connect time down to around 15 seconds (which is about what it used to be).

The fix will go into the next production release (v0.4.5) which will probably be on Monday.