Pages:
Author

Topic: [VanillaWallet v0.5] The friendly Bitcoin wallet. - page 2. (Read 5371 times)

full member
Activity: 216
Merit: 100
Thank you for your initial comments, everyone!

Regarding open-source, I understand your concerns. This may be open source some day, but at least not during this initial early development. I promise there is no intentional malicious code, but I _do not_ promise that there aren't any bugs that could lose your bitcoins at this point!

As a counterpoint, how many of us download, review, then compile the open source software we run, or do we just assume there's nothing slipped into the binary or any of its dependencies? Just making a point here - I agree that security-sensitive software (or all software for that matter) should be open source, but even so, it would be trivial for any wallet author to swipe your coins.

I appreciate Jim's argument for more accountability, which I will address later in development. For now, just consider this a preview for experienced users (not quite ready for the end-user market).

Regarding the file locations, my initial design was to create a $HOME/.vanillawallet/ directory to store the chain and wallets. The reason I changed my mind was that I considered it to be simpler for users to see the files alongside VanillaWallet.jar. However, the whole notion of the current working directory is fraught with pitfalls. I'm considering file placement for the future (and even a command-line switch for the path, for better script support). I could also check both a default HOME path plus the current path to look for the files. I'm considering some other ideas, as well, so thanks for your input.

Regarding the block chain, I'm not piggybacking the Satoshi blockchain file, because (a) I want VanillaWallet to be independent of any other client, (b) VanillaWallet is based on BitCoinJ, which uses its own format (and only stores the headers it needs for the local wallet, making the chain file somewhat bound to the wallet). I'm considering including a blockchain checkpoint in the software (but the software does _not_ include any blocks at this time). At this point, functionality wins out over optimization.

Ultimately, if you're the type of Bitcoin user who will not download a client that you cannot compile yourself, or includes a blockchain snapshot, then VanillaWallet probably isn't for you! I'm _not_ (by design) attempting to make a wallet that caters to everyone. There are plenty general-purpose clients for that. I want to focus on very tight design constraints, centered on simplicity.

Thanks for catching my typographical error, John! I'm glad you like my text, Jim (and a big thank you to those who actually read the instructions).

Regarding the user interface, making it physically bigger is counter to my intended design. I want it to be small and compact. That said, I could allow you to resize the window, but that just leads to a bunch of dead space in the UI.

Regarding Jim's suggestion to use the Font Metrics... I simply hate how Java handles fonts. In all my years developing Java applications, I've never ever had a good experience dealing with fonts. Here's what I do for VanillaWallet: Create main frame with the wallet GUI elements and pack(). Then, I set the (single and only) pop-up info dialog to the width of that frame, and make the initial position look pretty. Notice that the Transactions are actually in the same dialog, which I do not resize. I'm probably trying to be too compact. I should probably separate the Transactions into their own independent dialog. Thanks for your input.

For simplicity, I turned off logging in this release build. If it encounters an uncaught exception, it should cleanly save/close (with a friendly but useless error message in the GUI), and dump the exception to standard err. This doesn't help end-users much, but then again, neither do stack traces. For these initial releases, I should definitely improve logging so the experts here can report if anything goes wrong. (BTW, I once had a NullPointerException after initial block chain download, but it was fine after restarting. Not sure what actually caused it... due to lack of logging!)

I'm pleased to have so many comments already. Here are some potential future features/enhancements:
  • Encrypted wallet file (see Encrypted Wallet caveat in Instructions)
  • Better command-line options (and document them)
  • Blockchain snapshot (to speed up first init)
  • Better logging
  • Various UI visual and behavioral improvements
  • Task tray integration

On a final note (for today), Jim mentioned monetization. I'm not looking to get rich, but I'm currently not in the position to spend much (any) time on this unless I can earn some coin. Suggestions? Sell copies? Require payment to unlock features? Stick with donations? Your support is greatly appreciated. (For that matter, is anyone looking to hire a Bitcoin-savvy Java developer??)
legendary
Activity: 1708
Merit: 1066
Hi Nyhm,

I have been playing around with VanillaWallet this afternoon.

Have a look at the screen shot below:



As the VanillaWallet file is in the bitcoinj protobuf format it can also be read by MultiBit.
Whether this is to be recommended is a different matter though !

I made some notes and first impressions and thought I would list them:

+ I like the help text - good introduction for the target you are going for.
+ You should mention that the blockchain download is only 20 MB (as blockchain equates to "gigs" in a lot of people's minds). (TBH I just copied in a multibit.blockchain and renamed it as they are compatible).
+ You don't create a log file which will make it harder for you to track down users' problems. Just use logback to put a log file in your working directory with your debug etc.
+ In your dialogs you can get the system default font and font metrics so that you can tweak the dialog size to be wide enough/ tall enough.
+ I notice that you do not give any personal identification on your website and the whois maps to dreamhost.com. As you are asking people to trust you/ your software with their bitcoin you might want to make yourself a bit more visible.

On a similar vein, you will probably get a lot more downloads if you open source your code so that people can have a look through it. It depends on if you are trying to monetise it of course but it is something to think about.

Regards,

Jim
sr. member
Activity: 336
Merit: 250
I'm also never going to download a bitcoin-related blockchain Smiley
hero member
Activity: 784
Merit: 1000
0xFB0D8D1534241423
I'm never downloading any bitcoin-related program that isn't open source.
+1. Given that it has the blockchain, bitcoinj etc, it's trivial to implement code which empties all users' wallets at once to your own.
sr. member
Activity: 336
Merit: 250
I'm never downloading any bitcoin-related program that isn't open source.
hero member
Activity: 784
Merit: 1000
0xFB0D8D1534241423
legendary
Activity: 1288
Merit: 1227
Away on an extended break
A spelling mistake in your FAQ :

Quote
When VanillaWallet runs, it will look for these files in tehcurrent working directory and create them if needed.

Other than that, great work!  Grin
Is the vanilla.wallet file encoded?
hero member
Activity: 784
Merit: 1000
0xFB0D8D1534241423
I don't know if this is possible but if I could point to a bitcoin folder and it could just piggy back off the blockchain there that would be cool but i guess that would have to be a BitcoinJ feature really.
Have you heard of NTFS hardlinks?
sr. member
Activity: 448
Merit: 254
Looks nice!  One complaint: it's not open-source, so I would be afraid to use it.  May be acceptable to beginner target audience, though.
sr. member
Activity: 336
Merit: 250
Very cool! The world needs more bitcoin clients, especially simple ones like this.
full member
Activity: 216
Merit: 100
VanillaWallet: The friendly Bitcoin wallet.

  • Non-intimidating for New Users
  • Refreshing for Experienced Users
  • VanillaWallet aims to provide just what you need, and not much more

vanillawallet.com



Built with bitcoinj. Community feedback is most welcome.

UPDATE: VanillaWallet v0.5 (Beta) released Dec 4, 2012
Pages:
Jump to: