Mac OS X gui wallet with embedded zcashd BETA

After a lot of hard work by @zab and myself in adapting the Swing Gui wallet by @vaklinov for Mac OS, we've finally got a beta of a nice, shiny Mac dmg installer with an all-in-one app for testing!

It has the jvm, zcashd, everything needed to run the wallet with a local full node of zcash baked into it. If you've already got the proving key's downloaded for use with my Mac port (source or binary release), it'll use them without re-downloading. If its a fresh, untouched Mac that's never had Zcash on it, it uses a nice GUI downloader that @zab built into the App, and pulls the proving key down via Amazon CloudFront, much faster than is typical with fetch-params.sh aka zcash-fetch-params

Please test it out, and let us know here of any issues!

Download is at: https://zcash.dl.mercerweiss.com/ZCashSwingWalletUI-1.0.3.dmg

Once we get some feedback and polish off a few little bits (LICENSE file, dmg file icon, etc) we'll be releasing a dmg signed with an Apple Developer Certificate that will install without having to have "Allow apps downloaded from: anywhere" selected in "System Preferences -> Security & Privacy"

Thanks in advance, the both of us now need to go get some sleep after pulling all nighters on this one!

-David Mercer
Tucson, AZ

6 Likes

This is awesome! Thank you.

Awesome, installing it right now!

Can I manually change the wallet.dat with another one after the blockchain is downloaded ?

EDIT : I just did. No need to do anything except to quit the App, copy the wallet.dat in App Support, shutdown the daemon and relaunch the app.

The daemon should shut down automatically when you exit the wallet. If that's not the case, then there is a bug.

Only exception to that is if the daemon was already running when you started the wallet; then it will continue running.

I just tried and currently the daemon does not exist automatically.
Mac OS 10.12.1

Ok. In the next beta I'll redirect logging to a file so we can understand what the problem is. FWIW I can't reproduce this on my 10.12.1

Did you do a fresh install or did you have previous deployment (like from @anon47418038 's previous binary/source releases) ?

Edit: please open an issue on github https://github.com/zlatinb/zcash-swing-wallet-ui

It doesn't look like it shuts down zcashd on exit on my system either, running 10.11 (El Cap)...and here's a weird thing, when I launched it just now, it started zcashd that was in /usr/local/bin, not the embedded one! (I actually turned my laptop OFF last night, so this was my first run on a cold boot).

That's a known issue, it goes through a hardcoded list of locations before checking the environment variable that points to the embedded zcashd. I'll fix it asap on master.

great! ugh, 20 characters :slight_smile:

Fresh install. I cannot open an issue on github since it's a fork?

@Quent17 The latest version has the logging that @zab mentioned enabled (same download URL), but still has the bug where it doesn't stop zcashd when you exit the App. We're rethinking our options for how to handle this. Also, I enabled issue tracking in my forks repo at:

New beta released, contains logging and start/stop fixes, same download url as above:

https://zcash.dl.mercerweiss.com/ZCashSwingWalletUI-1.0.3.dmg

The blockchain sync percentage will get to 99.95% and get stuck there? Over the past 10 min it's dropped to 99.91%. I've seen it sync to 100% using the wallet. Sometimes it will drop back down to 99.95% and then back to 100%.

In the 1st version, I was able to send cli commands in my previously installed zcash folder. When I send cli commands now there is no response. No error but no response.

Tried to quit the app but it wasn't responding. Force Quit and restarted. Blockchain up to 100% now. I have seen it drop out of 100% while running. CLI is working now. :slight_smile:

If it gets to a state where you need to force-quit it, can you attach or paste the contents of ~/Library/Application Support/ZCashSwingWalletUI/ZCashSwingWalletUI.log ?

Regarding the blockchain sync issue, maybe @vaklinov can help?

Regarding the CLI not working, this is a zcash issue, but it would explain why the wallet wouldn't exit because the last thing it does is issue a "zcash-cli stop" command.

Stalled on me again.

In the debug log I see this:
2016-12-09 13:32:59 UpdateTip: new best=00000000141a791a72bcb7caf6bcaf5c425723c3e3053a4082ced544afc45b7c height=24567 log2_work=46.363737 tx=155217 date=2016-12-09 13:33:07 progress=1.000003 cache=2.5MiB(128tx)

Does that mean I mined a coin? :slight_smile:
I'm not holding my breath on that one.

Here's the wallet log. Replaced my username in the log with
Fri Dec 09 06:30:24 MST 2016 com.vaklinov.zcashui.ZCashUI main INFO: Starting ZCash Swing Wallet ...
Fri Dec 09 06:30:24 MST 2016 com.vaklinov.zcashui.ZCashUI main INFO: OS: Mac OS X = MAC_OS
Fri Dec 09 06:30:24 MST 2016 com.vaklinov.zcashui.ZCashUI main INFO: Current directory: /Users/
Fri Dec 09 06:30:24 MST 2016 com.vaklinov.zcashui.ZCashUI main INFO: Class path: /Applications/ZCashSwingWalletUI.app/Contents/Java/Classes:/Applications/ZCashSwingWalletUI.app/Contents/Java/commons-logging-1.2.jar:/Applications/ZCashSwingWalletUI.app/Contents/Java/httpclient-4.5.2.jar:/Applications/ZCashSwingWalletUI.app/Contents/Java/httpcore-4.4.4.jar:/Applications/ZCashSwingWalletUI.app/Contents/Java/ZCashSwingWalletUI.jar
Fri Dec 09 06:30:24 MST 2016 com.vaklinov.zcashui.ZCashUI main INFO: Environment PATH: /usr/bin:/bin:/usr/sbin:/sbin
Fri Dec 09 06:30:34 MST 2016 com.vaklinov.zcashui.ProvingKeyFetcher fetchIfMissing INFO: no need to fetch proving key file
Fri Dec 09 06:30:34 MST 2016 com.vaklinov.zcashui.StartupProgressDialog performOSXBundleLaunch INFO: performing OSX Bundle-specific launch
Fri Dec 09 06:30:34 MST 2016 com.vaklinov.zcashui.StartupProgressDialog waitForStartup INFO: checking if zcashd is already running...
Fri Dec 09 06:30:34 MST 2016 com.vaklinov.zcashui.ZCashClientCaller getInfo WARNING: getInfo failed
com.eclipsesource.json.ParseException: Expected value at 1:1
at com.eclipsesource.json.JsonParser.error(JsonParser.java:490)
at com.eclipsesource.json.JsonParser.expected(JsonParser.java:486)
at com.eclipsesource.json.JsonParser.readValue(JsonParser.java:193)
at com.eclipsesource.json.JsonParser.parse(JsonParser.java:152)
at com.eclipsesource.json.JsonParser.parse(JsonParser.java:91)
at com.eclipsesource.json.Json.parse(Json.java:295)
at com.vaklinov.zcashui.ZCashClientCaller.getInfo(ZCashClientCaller.java:147)
at com.vaklinov.zcashui.StartupProgressDialog.waitForStartup(StartupProgressDialog.java:76)
at com.vaklinov.zcashui.ZCashUI.main(ZCashUI.java:345)

Fri Dec 09 06:30:34 MST 2016 com.vaklinov.zcashui.StartupProgressDialog waitForStartup INFO: trying to start zcashd
Fri Dec 09 06:30:56 MST 2016 com.vaklinov.zcashui.StartupProgressDialog waitForStartup INFO: zcashd started
Fri Dec 09 06:30:56 MST 2016 com.vaklinov.zcashui.ZCashInstallationObserver INFO: Using ZCash utilities: zcashd: /Applications/ZCashSwingWalletUI.app/Contents/MacOS/zcashd, zcash-cli: /Applications/ZCashSwingWalletUI.app/Contents/MacOS/zcash-cli

Nothing obviously wrong from the log (the ParseException is to be expected).

Question: while the wallet is frozen, does zcash-cli work?

The wallet is working while the zcash-cli is frozen.
When I try to quit the wallet, the wallet will become unresponsive.
Then I force quit.

The previous version of the wallet didn't 'seem' to have this issue. Hard to say because I didn't run it very long before the latest version.

Right now I'm testing running the zcashd 1st, then opening the wallet.

That's because there was a bug in the wallet - it was calling "zcash-cli --stop" whereas it should be calling "zcash-cli stop" (no --)

Thank you for testing, it's very helpful! I'm no expert on Mac apps but should zcash-cli freeze again, try to get a sample of the zcashd and zcash-cli process from the "Activity Monitor" app.