Announcing Zcash 1.0.2 for arm64 we

I’m pleased to announce that I’ve successfully ported Zcash to the arm64 processor running Debian GNU/linux. No, it doesn’t run on the Raspberry Pi, but it should run fine on $30 boards such as the Pine64 as a full node for embedded/IoT applications. Source code and links to binaries (including non-Debian tarballs) at are:
https://github.com/radix42/zcash/blob/v1.0.2-arm/README-arm.md

Announcement thread on Twitter:

My website has donation info, and like my Mac port this is a volunteer effort and I’m not a ZcashCo employee, nor do I have a day job. The more donations/funding I get, the more time I can spend porting Zcash to more platforms. More platforms means more 3rd party developers writing Zcash applications. More applications equals more users, which equals more demand and a higher price for ZEC, expanding and enriching the entire Zcash ecosystem.
BTC to 1L33E8M1LdXmAtgWaSgAVr4TEyDrLWk69B
ZEC to t1WeYg7Vwe1E2N5sxY6MQ335x4i12KZwSMu
other currency info at [redacted]

Thanks again,

[redacted]
Tucson, AZ

8 Likes

Is it lack of memory that prevents Zcash working on a Pi3? What if the object was a full-node wallet without mining and zk-snark generation?

No, its that the Raspberry Pi doesn’t use an arm64 architecture processor, its armhf (a variant of the ARMv7 architecture, while arm64/aarch64 is ARMv8 based).

But there are plenty of embedded boards under $50 that have use an arm64 chip, so a Zcash full node in your pocket is just a matter of time.

The Pi3 is ARMv8 but I’m guessing its 64/32 bit classification means that, while it can natively process 64bit integers, it only has a 32bit memory bus. Are you familiar enough with the Zcash source to comment on how integral 64bit memory pointers are to it?

The only thing keeping Zcash from running on 32 bit architectures is libsnark. There has been a little bit of talk about re-architecting its internals to be able to run on non-64 bit systems, but no real effort in that direction is being made, and there aren’t that many people in the world that I’d trust to mess about in its internals safely. Plus it’s really brittle code that was originally written in an academic setting by grad students. Ugh.

I’ve got a Raspberry Pi 3, I’ll have to login to it and see if this will run on it!

1 Like

thats cool. will zcash work on android soon?

If I get enough donations to be able to work on ports full time, yes. I’d think that some of the Zcash investors or the large mining pools would recognize that more platforms = more users = more demand for ZEC = higher prices for it, but so far nobody has kicked down with a sizable donation or grant. So I’m juggling working on Zcash integration contracts. If you want to see a full blown zcashd full node on Android soon, help get this message in front of those with deep pockets!

@Voluntary I tried to install Zcash on a Pi3 just now, and its a no go, it is indeed an armhf chip (albeit a 64 bit one) rather than an aarch64 one :frowning:

yeah donations are hard to get so far ive only gotten 0.01 ZEC :slight_smile:
and gve out a few mining donations too, not sure of the balance
but generally miners don’t tend to donate very much from what ive noticed… which is too bad,

The RPI3 ships with an ARMv8/A53 CPU. But its using an armhf image and A-32 instruction set. Its not even Aarch32. For all intents and purposes, its effectively ARMv7a.

Attempting to to use Aarch32 to unlock some of the A53 features, like PMULL or PMULL2, results in obscure crashes due to things like incompatible PCSs. A good place to start for the differences is ARM’s Differences between ARMv7 to ARMv8?.

If you want ARMv8/Aarch64, then you would be better served by another board, like HiKey, Pine64 or ODROID-C2. RPI3 is the one you want to avoid until it gets a first class ARMv8 image.

1 Like

I’m probably going to get a Pine64 as soon as I can for testing, its a shame it doesn’t have enough RAM to do builds on, though. Although perhaps with adding a large enough swapfile as you suggested in email, @noloader, would do the trick on the 2 gig RAM Pine64. We’ll see!

2 Likes

iOS? 20 chars. …

Right now Apple won’t let most cryptocurrency wallets into the App Store…if they ever relaxed their stance on that, as would be indicated by letting in, say, the Jaxx wallet with Zcash, then I’ll look into an iOS port. But that’s way down my list right now, which has a nicely packaged macOS binary installer and the Windows port near the top. Android full node is after all that.

All of which would be here faster if I got any donations!!!

You can always sideload. And there are enough wallets in the store. You can always contact direct with them and discuss.

I’m not putting the effort into an iOS full node unless is can be legit loaded into an iPhone through the app store, I’ve got too much else on my plate that doesn’t have those sorts of obstacles. Besides, I think there is much more use for a full node on Windows for developers to embed into desktop applications.

As the other poster indicated, the Raspbian OS is 32-bit not 64-bit, so zcash won’t succesfully compile. Use this 64-bit OS and let us know: GitHub - bamarni/pi64: A 64-bit OS for the Raspberry Pi 3

It’s not just the OS, it’s the chip, which is not fully 64 bit