Trying to build on ARM

What prevents us from putting the blockchain data available for download as well? I wonder if that could avoid the syncing time issue and requiring extra ram not needed when synced…

I thought of some companies were selling hardware running bitcoin node including the full blockchain…

Thank you so much for this! ( And for telling nooby ole me to use wget! )

Yeh Casa node (and probably others) do this https://store.casa/lightning-node/. It’s about trust vs. verifying the data yourself, see their entry here: Casa Node Update — January 24, 2019

We’ve now added the option to resync from Casa, which downloads the chain from Casa’s Bitcoin node. This is much faster than syncing from scratch (it takes about half a day), but it does require trusting Casa’s blockchain data. It’s the same level of trust you put in Casa when we presync the node before sending it to you. As always, there is the option to sync from scratch for users who want to verify the entire chain themselves.

There’s also the more practical issue of the cost of hosting something like that as the chain is over 20GB so that soon adds up.

There are also a few topics mentioned in this AMA see Technical AMA w/ Zcash team December 14, 2018 noon PST - #25 by adityapk00 and Technical AMA w/ Zcash team December 14, 2018 noon PST - #30 by adityapk00.

I think best interim step is syncing on a more powerful machine then simply copying the data over.

2 Likes

Updated for the Nvidia Jetson Nano. I managed to sync from scratch with this but it wasn’t great. It runs a custom spin of Ubuntu 18.04. Syncing was slow and I had one out of memory error. I didn’t configure any swap but due to low memory, it was swapping out to the SD card which was obviously terribly slow. I tweaked the swappiness value via sudo sysctl vm.swappiness=0 which helped complete the sync.

Unless you have specific needs for the Nvidia, I’d probably recommend the Odroid N2 or Pine64 RockPro (4GB) for the best out of box experience for a zcashd node with the Odroid the slight performance winner.

ARM Board Sapling Spend Sapling Output
Odroid C2 12.25 1.79
Raspberry Pi 3B 15.64 2.29
Raspberry Pi 3B+ 14.71 1.99
Odroid N2 6.46 0.98
Nvidia Jetson Nano 9.73 1.43
Pine64 RockPro64 (4GB) 7.93 1.13
1 Like

Gonna need to update that benchmark table :sweat_smile:

4 Likes

This is awesome. Just ordered the 4GB version :laughing:

2 Likes

2x 4K output? x3 the cpu performance and up to 4gb of ram? 35$?! Gigabit ethernet?

Holy

1 Like

The version with 4GB of ram is $55.00, but still VERY inexpensive for the product you are getting.

1 Like

Wasn’t completly sure but sounded like an absolute steal

My Pi4 just arrived but it looks like there aren’t any 64-bit OS for it yet so will have to wait - it seems a few are “coming soon” like Kali Linux and Ubuntu Mate but I couldn’t find any currently available.

Looks like a few 64-bit OSes are now available. I tried with Manjaro and managed to complete a full sync on the Raspberry Pi4.

Sapling spends took 8.99 seconds and Sapling outputs 1.33 seconds with this combination. So in line with the other 4GB boards.

5 Likes

I used to play a bit with Arch. :slight_smile: I’ll might get tempted with an RPi 4 too :slight_smile:

1 Like

Trying to install on a Raspberry 3B+ with Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-1049-raspi2 aarch64), but can’t get the complier to install.

sudo apt-get install g+±aarch64-linux-gnu

returns:

“Package g+±aarch64-linux-gnu is not available, but is referred to by another package”

1 Like

you need to build the packages on a x64 machine for your raspberry pi. You’ll see you’ll be able to install that package on an x64 installation.

When the packages are build, transfer them on your raspberry pi.

1 Like

@garethtdavies with ZecWallet full node now having ARM support, is that the easiest way to get a full node running on ARM?

1 Like

@Shawn is that a recent thing - I don’t see anything here: Releases · ZcashFoundation/zecwallet · GitHub. If there are binaries available that save the cross-compilation step then yes that’s going to be simpler. I’m not sure what impact that has if a user doesn’t want the GUI and just the daemon i.e. are there extra dependencies required?

1 Like

I was going off this tweet, I thought there was a full node version too :thinking:

1 Like

Wait, Pine64 made a smartphone!?

Have I been living under a rock for 6 months?

1 Like

Ok, so as a side project during quarantine I decided I would try to build and run a full Zcash node on an older Android smartphone I had laying around. I thought it would be cool the have the little device with a full node :zcash: :heart: plugged in and always running.

LGV20, Snapdragon 802, 4GB RAM, 64GB+SD ROM. It has enough RAM for a full build.

The cool thing is using a app called userLAnd you can install a Linux distribution like Ubuntu or Debian without rooting the Android device. https://userland.tech/ available on the app store. This guy covers a Kali Linux install, but it works for Ubuntu and Debian the same: Run the Kali Linux Hacking OS on an Unrooted Android Phone [Tutorial] - YouTube

It’s super simple to install the app, choose the Linux distribution you want, and ssh into the instance, update/upgrade, start using it.

I was able to install all the dependencies (according to the docs) required for the compile except for g++-multilib because for some reason it gives a not found error with the -multilib so I just installed g++ instead.

Using the HOST=aarch64-linux-gnu ./zcutil/build.sh I was able to get really far with the compile until I hit:

And that’s where I’m stuck. I believe it’s an error with the stripped down version of Ubuntu that userLAnd deploys. Anyone have any ideas how to move forward?

2 Likes

Can you natively compile on ARM, I thought you had to cross-compile to get an ARM build? Was that updated? Either way, you should be able to able to run the cross-compiled binaries.