Zcash node hardware guide, anybody?

Hi,

TLDR; is there a guide to a cheap, reliable Zcash node build? Or can someone guide me in the right direction hardware wise? Much appreciated!

Long story:

After reading about Zcash, I really want to supprt the network however I can. And I want to start by building my own node. It should be simple and cheap, but ideally it should also be capable of some mining (CPU). I do not care if it isn`t as profitable (or even profitable at all) as GPU (or whatever else) mining, as priority no. 1 is to just be able to acquire some ZEC totally independently of third parties (not considering mining pools etc.). And the mining should not produce excessive noise and/or heat in my small apartment. I should be able to stow away the node/miner in a small closet or similar. Anyway, we can discuss the miner part at a later stage in the correct category.

Let`s focus on the node itself. I came across this article a while back:

And thought to myself: “I have to build this!” I have gotten as far as purchasing all the hardware, but I have not had time to start building the Thundroid yet. I should mention that I have no experience with building things like these, programming, or using other OSs than Windows, and I generally lack computer skills. But I am a zealous (if that is the correct use of that word, English is not my first language) worker. And to be honest, all I want now is to build a Zcash node instead of the bitcoin node. But I figure the bitcoin node will be good practice, so I will start with that one. Nothing wrong with being early in the planning of the Zcash node, though.

I couldn`t find any similar guides to a full Zcash node. Can anybody help here?

What I have learned is that Zcash requires at least 4 GB memory in order to handle shielded transactions? And this is of course a must. The Odroid HC2 in the bitcoin guide has only 2 GB. So I have been looking at the Odroid MC1 cluster:

http://www.hardkernel.com/main/products/prdt_info.php?g_code=G150152508314

But this is lacking a hard drive / SATA 3 port. Can I use an external hard drive (USB connection) for storing of the blockchain? Also, this cluster is basically 4 identical small computers. Each with a quad processor and 2 GB of ram. Doeas that equal 1 computer with 32 core PCUs and 8 GB of ram? I know you can set the number of cores in the mining software, but how does it know or “see” all the cores? Probably a dumb question.

Maybe a better choice is to stack 4 Odroid HC1 or HC2s? And If this is a viable option, does it suffice to just install a hard drive on one of the HC1/2s, and the rest of them can use/communicate with that somehow?

Will a build like the Odroids mentioned (if they at can be used as a node at all) have any chance of mining?

I will probably have a lot more questions, but this is a good start!

And if anybody would want to make a giude like the bitcoin node guide, that would be awesome! But they shouldn`t call it “perfect” unless it runs via Tor etc, right? “The pretty good Zcash node guide” would suffice until then :slight_smile:

Thanks!

You can run a full node on a desktop or laptop just fine, things like that would be further down the road
Im sure theres a ToR guide on github

I don’t have a desktop (and I’m not gonna buy one any time soon), and I don’t want to leave my gaming laptop running 24h (nor do I have a place where I can leave it standing without it being in the way).

For me, a small build just for this purpose (full node) is the way to go.

What do you mean by this?

Yeah, I found the Tor guide :slight_smile:

I think you should consider doing what I do. Have one cheap old machine that runs as a full node to keep the blockchain synced all the time (and secures the network) and then have a VM or otherwise offline storage of your keys. Use rsync or similar to update your offline blockchain from your live node when you need to spend coins. There may be better methods than this but it’s what I’ve been doing.

Do not quite understand the part about the VM, but regarding the “cheap old machine” part, that is basically what I am going to do. Except I do not own any cheap old machines. I am going to buy or build one. A Single Board Computer (SBC) or something just good enough to be a full node. And then call it something cool similar to the btc ln Thundroid thingie, except something Zcash related :slight_smile: Problem is my computer knowledge is limited. I could never have built a “perfect bitcoin lighnting node” without that guide above. And now I am looking for a similar small, cheap computer for my Zcash node, but it needs to have more than 4 GB of RAM. Can I stack 4 Odroid HC2s or HC1s for that purpose?

My initial post is quite long and maybe somewhat unclear. I made a post on another forum, the BleepingComputer, which is more down to the point if anyone want to have a read:

First issue is does zcashd even run on ARM?

Memory requirements for sending sheilded txs will be dramatically reduced come Sapling (which is expected late September) where it’ll be ~40MB. Also, it’s currently 1.7GB of RAM required for a shielded tx currently, albeit a lot more will be eaten up by system processes. I wouldn’t go down the 4 Odroid HC1 path as a setup similar to the Lightning node would be long-term preferable assuming it can run on ARM.

I would just buy an old SBC that’s based on an intel processsor or buy an old workstation like the HP z400 or Dell t3500. you can get the x55** series ones for practically nothing, or the X56** for marginally more.

Can you elaborate?

Oh, I was not aware. This is great!

@Kahooli: I need to emphasize the “simple” part in my description, and add “small” and “low impact”. Does not have to be the cheapest, but it should not be big and consist of uneccessary hardware that draws extra power, and makes lots of noise and heat. Something like, as you mention, a SBC that is compatible with zcashd should be perfect.

The best solution for this use case is probably a low end NUC running Ubuntu.

You don’t have to worry about finding ARM binaries, you can follow the official documentation, and it’s more compact than almost any SBC build. RAM and a hard drive take maybe 5 minutes to install and you’re done.

I definitely recommend at least 4GB of RAM since zcashd can get a little resource hungry and you’d probably want to run that alongside zcash-cli.

In regards to mining, it may not be worth it. A NUC would be much more powerful than almost any SBC, and you’re still looking at ~0.05 ZEC/year max assuming 100% uptime. Difficulty is also increasing dramatically, so that number is going to get much smaller.

Thank you very much for this reply. I will look into the NUC.

Oh, we are talking that low numbers regarding mining. Then I will not bother considering mining when building my node.

I’d like to revive this thread to ask for hardware advice.

I’m thinking of buying a single board computer. It should be able to run Tor, synch a zcashd full node from scratch, keep it synched, run zcash-cli and send fully shielded transactions. I want to avoid Intel NUCs if possible.

What board would you recommend?

And how would you change that recommendation if I also want to run a Monero full node in addition all of the above?

I was thinking of a Raspberry Pi but I’m not sure if it has enough RAM or if the lack of AES hardware support is a problem. I also saw people having issues building Zcash software for ARM and I’m not sure how to navigate those issues.

2 Likes

Pi4 has 8Gb so should be enough, build issues are basically that you have to x-compile which some find awkward.

2 Likes

FWIW, @ChileBob’s recommendation is likely the most stable 64bit ARM SBC available in the field ATM. Until Pine64 or Odroid come out with new 4GB+ SBCs, there isnt any other board with more than 4GB RAM on the market unfortunately. To be fair, you can run a full mainnet node on 4GB RAM 64bit ARM SBC, but it will not be stable. The only other hurdle, also mentioned in this thread, is syncing the node. There are several ways to mitigate this hurdle depending on your network setup, but we often find using IPFS or other network storage solutions the best way to overcome this.

2 Likes

I got a full node running on an ODroid C2 for months without issue until the old USB HDD I used to store the full node gave up.

More details here, including other ARM based boards:

4 Likes

According to this post that’s no longer necessary and you can build natively Trying to build on ARM - #102 by str4d

I’d also opt for the Pi4 with 8GB of RAM.

3 Likes

There’s a lot of fun avenues in the ARM Zcash eco system. Depending on local chain storage hardware, you can get fairly inexpensive solutions that do operate gracefully with tweaks mentioned above.

UPDATE: Finally found the RPi4 8GB model in stock, so once it arrives I’ll check out how it performs. If all goes well, I’ll update the docs with a tutorial and some tips and tricks.

4 Likes

That’s neat! Isn’t it a problem though that most build attempts fail or have warnings?

And are there plans to provide official ARM builds?

I’m confident there will be support for Apple’s new ARM computers when they are released and that will definitely help fix some of the underlying issues along the way.

1 Like

I haven’t actually tried a native build and the CI errors are probably one for @mdr0id.

Seems a sensible idea to offer ARM (and Windows for that matter) binaries.

1 Like