Post-sapling zcashd - on a Pi?

Just wondering if zcashd will be slim enough to run on a Raspberry Pi once we’ve moved to Sapling?

I’d imagine you could compile it on debian based pi OSes even now. I’ve never tried though.

I was thinking more of memory requirements, my old laptop struggles with 4Gb RAM.

Oh that’s a very good point. Pi 3 only has 0.5GB. That probably wouldnt work :frowning:

While compiling zcashd on an RPi is most likely near impossible, aren’t the requirements for running it becoming less due to optimisation?

Pi3 B+ has a Cortex-A53 (64-bit) & 1Gb RAM.

Its not much, but wouldn’t it be nice to get a full node on something dirt cheap.

Creating shielded (Z) transactions is the memory heavy part. If you could create binaries for the target system it would probably be able to run a full node. Storage is a concern too, as the block chain is up to twenty or thrity some GB.

Probably Possibly, depending on how much memory the Pi has. Note that Sapling will also immediately reduce the memory requirements for making JoinSplit proofs involving Sprout shielded addresses [edit: from 1.5 GB to 1.2 GB, with further scope for improvement], so it wouldn’t be necessary to wait for Sprout addresses to be removed to obtain this benefit.

Someone has tried to run my port of zcash to aarch64 on one, and it does not run, probably due to differences in the specific instruction set level of my build(s) and the Cortex-A53 that’s on the Pi3 B+ (yes, “uname -a” had aarch64 in it on the user’s system that it barfed on).

The same has been true of the zcash forks I’ve ported to arm64/aarch64, there is some ISA set of options that probably need to be fed to gcc.

My latest attempt at getting zcash 1.1.x built on aarch64/arm64 ends in failure in some of the rust related bits (cargo itself won’t build), but I haven’t tried since 1.1.1 dropped and it has had a rust version tick, so if/when I get time I can give it a whirl (its WAY down the list, tho).

1 Like

oh yeah its all stuff in libsnark that barfs…it or a dependency…in my experience in porting it to different platforms/toolchains/distros, etc., if you can get libsnark to build on your platform, the rest is generally a bunch of toolchain tomfoolery.

1 Like

If someone with a Pi 3 B+ can get me the output of the command:

cat /proc/cpuinfo

that’d be SUPER helpful!

I’ll get this for you if you still need it. I’m working on porting a fork of Zcash to pi 3 b+

7 Likes

Nice

Bumping for visibility

1 Like

ya that’d still be useful for me to know!

cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 89.60
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 1
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 89.60
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 2
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 89.60
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 3
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 89.60
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

Hardware        : BCM2835
Revision        : a020d3

ah, here’s what I get on my arm64 build server (whatever the heck Scaleway uses):

 cat /proc/cpuinfo
processor       : 0
BogoMIPS        : 200.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x43
CPU architecture: 8
CPU variant     : 0x1
CPU part        : 0x0a1
CPU revision    : 1

CPU architechture: 8 is I think the minimum level you need (not that there’s a 9 yet, is there?)

Pine64 and new enough Odroid boards running Debian can pull off running zksnark coins I know

1 Like

Stil trying?

I’ve tried building in on an odroid c2 and this is where I am :roll_eyes:

I’m not sure if anyone has been successful. I think it would be an awesome project.

If someone does get a Zcash node on a Pi working please let me know. I would love to pick up a few Pi’s and have them running 24/7 for the network.

Maybe worth a zip proposal ?

2 Likes