Pages:
Author

Topic: MacWallet - another bitcoin wallet app - page 2. (Read 8710 times)

legendary
Activity: 1526
Merit: 1134
October 08, 2013, 09:17:28 AM
#17
My concerns are, that the keystore is default tied to the login credentials. What if someone want's to have "another level" of security and use another password for his bitcoin wallet.

They can create another keychain, although that's probably not very intuitive.

Using keychains has another advantage - that's usually how things like smartcards and other hardware tokens are integrated into the OS. In some cases the keychain might even be stored in hardware.

It's a neat experiment. However I think it may be less secure than the default Bitcoin encryption. Bear in mind, when you are logged in and the screen is unlocked, so is the login keychain. That means any malware on the system that can obtain root can go ahead and take the keys without any user interaction. It's not totally insecure because you still need a local root exploit, but, kernels are huge and there are surely lots of exploits remaining undiscovered.
member
Activity: 66
Merit: 16
bitcoin core contributor
October 08, 2013, 07:53:54 AM
#16
We'd like to keep BitcoinKit fairly open, supporting as many Bitcoin implementations as we can. That said, if you have made improvements to BitcoinKit that we can use, please do send us a pull request!

Keep it open to a maximum of Bitcoin implementations is a good idea!

The problems i face with pull requests are:
- Hives BitcoinKit.Framework share the same interface for multiple Bitcoin implementations (currently bitcoind and bitcoinj). I did add some features like managing multiple addresses to the bitcoinj side. I was not able to also write the implementation for the bitcoind side. A pull request would end up in having a half/half implementation (unless somebody writes the bitcoind counterpart).
- I removed the bitcoind side and renamed the framework from BitcoinKit to BitcoinjKit. Merging Pull-Requets might give some work.

As mentioned before: as long as bitcoind seams not to be end-user capable, i would recommend to not support both implementations. In my eyes, bitcoind is something for root servers (or VPS). Running bitcoind on a normal machine will end up in having around 20%-30% of your resources consumed by bitcoind. During the catch-up even much more.

I'd like to invest (work) in a wallet that can be run all the time in background without loosing your computers resources.

What if the Hive version of the framework would also drop bitcoind support as long as it makes no sense? Drop means not deleting the implementation. I think it's more about moving it to another non-master branch and take back the work as soon as SIPA has done his thin client mode in bitcoind.

sr. member
Activity: 378
Merit: 325
hivewallet.com
October 08, 2013, 05:55:32 AM
#15
We'd like to keep BitcoinKit fairly open, supporting as many Bitcoin implementations as we can. That said, if you have made improvements to BitcoinKit that we can use, please do send us a pull request!
member
Activity: 66
Merit: 16
bitcoin core contributor
October 08, 2013, 05:46:29 AM
#14
BTW for the keychain - are you sure there are no size limits on what can be stuffed into there? MultiBit uses rolling backups because there were cases where data got partially written to disk and other weirdness, so you might want to consider using the regular wallet encryption feature and then putting the encryption key into the keystore, rather than putting the entire wallet in there.

The size limit should be 2^32 - 1. Should be enough for giant wallets.
I also read that it should be written somehow atomically (as you do with bitcoinj wallet files) to ensure keychain integrity.

It's marked as "experimental" because of a lack of testing.
But it might be also a good idea to store just the AES encryption key. Then it's quasi a key in a keystore (osx) for a keystore (wallet file), which should be fine.
My concerns are, that the keystore is default tied to the login credentials. What if someone want's to have "another level" of security and use another password for his bitcoin wallet.

I need to rethink the whole keychain store when i have some free minutes in my mind. Smiley
legendary
Activity: 1526
Merit: 1134
October 08, 2013, 05:08:18 AM
#13
BTW for the keychain - are you sure there are no size limits on what can be stuffed into there? MultiBit uses rolling backups because there were cases where data got partially written to disk and other weirdness, so you might want to consider using the regular wallet encryption feature and then putting the encryption key into the keystore, rather than putting the entire wallet in there.
legendary
Activity: 1526
Merit: 1134
October 08, 2013, 05:04:39 AM
#12
OK. Good to know you found something that works for you. If you want to try switching to the cppjvm generated bindings let me know. I was able to make it spit out wrappers that looked fairly natural C++:

https://github.com/mikehearn/cppjvm/blob/master/mytest/bcj-hello-world.cpp

member
Activity: 66
Merit: 16
bitcoin core contributor
October 08, 2013, 04:54:12 AM
#11
How are you doing all this stuff? Are you hacking on a local copy of BitcoinJKit, or submitting patches to the Hive guys, or ... ? Also did you check out the cppjvm bindings or are you doing manual JNI?

I did fork the BitcoinKit.Framework (https://github.com/jonasschnelli/BitcoinJKit). There are some improvements over the Hive version. Because i dropped the bitcoind support (only bitcoinj support) i decided not to create Pull-Requests. In my eyes, bitcoind is currently not end-user ready ("normal" end users).
I would recommend the hive guys to partial migrate some of my BitcoinJKit commits. If they also drop bitcoind support, they might pull all my commits.

For storing it into the Keychain, i use bitcoinj wallet-save-to-steam functions. The wallet will never be written to a file (when activating the keychain-wallet flag).

BitcoinJKit currently uses JNI (JNI_CreateJavaVM). Complex objects are transferred between Java/Obj-C as a JSON representation. Easy and simple.
legendary
Activity: 1526
Merit: 1134
October 08, 2013, 04:03:10 AM
#10
How are you doing all this stuff? Are you hacking on a local copy of BitcoinJKit, or submitting patches to the Hive guys, or ... ? Also did you check out the cppjvm bindings or are you doing manual JNI?
member
Activity: 66
Merit: 16
bitcoin core contributor
October 08, 2013, 01:56:02 AM
#9
Is the wallet encrypted? Where in the filesystem is it stored?

Currently the wallet-file is not encrypted.
It's stored in your ~/Library/Application Support/MacWallet

Theres a cool option which get extended soon:
You can store your wallet in the mac osx keychain.
So it's by default encrypted and protected with your login credentials.


AES encryption will be added soon.
member
Activity: 66
Merit: 16
bitcoin core contributor
October 08, 2013, 01:45:37 AM
#8

You should check out this article:

  https://code.google.com/p/bitcoinj/wiki/SpeedingUpChainSync

That way you can make it sync more or less immediately for new users. If that's hard for some reason, let me know.

Yes. I was focusing (to) much on UI. Will implement this soon.

Maybe "addAddress" should be "Add Address"?

There are some typos... and unfilled i18n fields Smiley
Thanks for that
pa
hero member
Activity: 528
Merit: 501
October 07, 2013, 08:51:48 PM
#7
Is the wallet encrypted? Where in the filesystem is it stored?
hero member
Activity: 812
Merit: 1006
October 07, 2013, 02:54:22 PM
#6
I love it!
legendary
Activity: 1526
Merit: 1134
October 07, 2013, 02:21:06 PM
#5
Very cool! I'm so happy to see this abundance of wallets. It's what I always hoped for.

You should check out this article:

  https://code.google.com/p/bitcoinj/wiki/SpeedingUpChainSync

That way you can make it sync more or less immediately for new users. If that's hard for some reason, let me know.

Maybe "addAddress" should be "Add Address"?

I guess you should make checking for updates on by default as well.
hero member
Activity: 770
Merit: 500
October 07, 2013, 01:59:39 PM
#4
Looking good.
hero member
Activity: 700
Merit: 500
October 07, 2013, 01:54:41 PM
#3
Wow, very nice little app!
Small feature request: would it be possible to get a sound signal when receiving coins?
sr. member
Activity: 378
Merit: 325
hivewallet.com
October 07, 2013, 12:01:42 PM
#2
Looking really good, Jonas! Love that fee calculator too, awesome idea!

Would be great if you could get this running on 10.6 or earlier; we felt so terrible leaving those systems out in the cold.
member
Activity: 66
Merit: 16
bitcoin core contributor
October 07, 2013, 10:54:30 AM
#1
I'd like to introduce another bitcoin wallet app.
MacWallet is a easy-to-use mac bitcoin wallet based on bitcoinj.
It's a thin client (SPV). It's in early development stage. Use it whise and at your own risk.



Thanks to the Hive developers (and bitcoinj!), i was able to write the wallet i always dreamed of:
- Mac global menu app
- Can easy run in background (low memory and cpu footprint)
- Always show my balance and/or a fiat/btc-ticker
- Nativ interface

It's under MIT license and the source code is available at www.github.com/MacWallet/MacWallet.

Download and Requirements
- MacWallet needs OSX 10.7 or higher as well as a 64bit CPU.
- Java Runtime Enviroment is also required and will be installed automaticly by your mac during the first start of MacWallet.
You can download a signed binary from http://macwallet.github.io.

Every feedback and every testing effort will help MacWallet to get more stable.
Report issues here: https://github.com/MacWallet/MacWallet/issues

Some screenhots:







Pages:
Jump to: