Reading few methods of offline transaction (
https://bitcoinarmory.com/using-offline-wallets-in-armory/), it seems that there is still no easy way to do that at the moment (
https://bitcointalk.org/index.php?topic=167312.0). There are many details to take care in BOTH online and offline clients. The less thing to do, the less the risk. So could the whole process be easier if the whole blockchain is copied to the offline computer? Is there any problem in following procedure?
(1) Copy the whole folder ~/.bitcoin/blocks to the offline computer
(2) [offline]: ./bitcoind sendtoaddress <address> <amount>
(3) [offline]: ./bitcoind getrawtransaction <txid>
(4) Copy the hexstring transaction back to the online machine
(5) [online]: ./bitcoind sendrawtransaction <hexstring>
---------- Alternative ----------
(4) Display QR code of hexstring transaction in offline computer
(5) Scan QR code and paste the transaction at
https://blockchain.info/pushtx(6) Erase everthing on USB to prevent any information leaking back to online computer
I have couples of concerns about the Satoshi client:
* Is the ~/.bitcoin/blocks folder contains all the necessary information of blockchain? Is it enough to only copy the newest part of database?
* I dont want to backup wallet every time. So to prevent the keypoolrefill(), is that the only way is to sendmany to send back to the original wallet? Do I need to calculate the exact amount in the sendmany to prevent it to send remainder to new address?
* Is the fee determined from the offline computer accurate? Even if the blockchain is not the newest one?
* If there is any errors found about the transaction before submitting, how to remove it and make a new one?