Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hardware requirements #264

Closed
flonussi opened this issue May 28, 2021 · 5 comments
Closed

Hardware requirements #264

flonussi opened this issue May 28, 2021 · 5 comments

Comments

@flonussi
Copy link

Since the hardware requirements on the https://docs.binance.org/smart-chain/developer/fullnode.html seem to be outdated from what I read in the issue threads, could you update them?

And could you guys post your working hardware specs?
Like, will a Samsung 970 EVO cut it, or do I need a 980 PRO and is 1TB enough or do I need 2 TB?
Is the CPU spec with 8 cores still up to date? Cause when I start my node, it doesn't seem to be CPU bound at all. Same for the memory.
I'm also a bit worried about my network stats, I got 150mbit download, but only 20mbit upload, is that enough?
Would be great to get some answers and maybe the docs could be extended with the answers.

Thanks!

@DefiDebauchery
Copy link

It's my understanding that SSDs simply won't cut it any longer and NVMe is required to handle the massive amounts of transactions and keep the node consistently in sync.

My personal node is currently 1.4 TB, so you definitely will need at least 2 TB - likely more, depending on how long you intend on running it. CPU usage is pretty intense during initial import, but my 12-core i5-10400 generally runs at 80% idle with spikes.

Unfortunately I'm not able to speak on the bandwidth requirement. Looking at my own node and in conferring with others, it does upload more data than download (which is surprising to me). Perhaps others can weigh in on that.

@zhongfu
Copy link

zhongfu commented Jun 3, 2021

  • SSD: a 970 EVO would be enough -- in fact, I've had success performing a fast sync with an (older) SATA SSD -- a Micron 5100 ECO
  • storage: 1TB should be enough -- you might need to do an offline prune every now and then though
    • a freshly synced node should take no more than ~300 GiB, but you'll find that unneeded states will accumulate and fill up your disk eventually
    • I work around this by running multiple nodes load-balanced with nginx, so I can take one of them down and geth snapshot prune-state every now and then
  • CPU: two of my nodes have only 4 cores (i7-6700HQ 4c8t, i5-6500 4c4t) and they're doing just fine
  • bandwidth: not sure about this, but I'm seeing at least 10-15Mbps upload on average. You might be able to cut it down a bit if you reduce your maxPeers or something (so you don't have to serve trie node download requests to as many peers), idunno...

as for specs:

  • CPU: i7-6700HQ, i5-6500, i5-8500
  • RAM: all with 32GiB of RAM, but you can probably get away with much less
  • Storage: all of them have at least 1TB of storage (NVMe and SATA). 512GB is probably doable, but you'll need to take them down quite often to prune states, so I wouldn't really recommend it. I have all on them on xfs

@koen84
Copy link

koen84 commented Jun 7, 2021

You NEED to run on NVMe drives. We had plenty discussion, this has been pulled into most doc places already. Especially under load a regular SSD won't cope and it won't be a future proof purchase (where network demands are rising fairly fast).

RAM : at least 32 GB, double if you can afford or at least have an upgrade path.
CPU : 4 cores (not threads) should be okay, if the access load (rpc / ws) is moderate. During initial sync or when you need to catchup, more will be better.

Bandwidth : i'm seeing over 50 Mbit up / down and yes more up.
Lower your peercount should reduce the up requirements a little (though requires others to compensate for you with upload).

@zhongfu
Copy link

zhongfu commented Jun 7, 2021

To elaborate on my previous comment:

  • you don't need a 980 Pro; a 970 Evo is more than enough (since those were the two choices originally presented by the OP)
  • especially when you consider that one of my nodes with an (older, but apparently "enterprise-grade") SATA SSD has been keeping up just fine with my NVMe nodes
    • (based on grep "Imported new chain segments" logs | grep "age" for the past two weeks' worth of logs -- possibly not a great metric, but shows that it has never been more than a minute behind)
    • no issues observed over the course of 1+ months of operation, even when BSC gets congested (e.g. completely full blocks during a recent PancakeSwap IFO, 15+ gwei 99th pct gas prices)
    • average mgasps comparable to my NVMe nodes

Yes, @koen84 you're right -- going with SATA SSDs would likely not be a future-proof choice, and I did not intend for my comment to be a recommendation for anyone to cheap out on storage if they can otherwise afford it. But it'll work in a pinch if -- for any reason -- you really can't find an NVMe SSD, and you've got a mid- to high-end SATA SSD lying around (especially if your node's only for personal use).

In any case, I reckon that having a slightly lower (but still reasonably sufficient) barrier to entry for operating a node will be beneficial to the overall health of the network. And if you've got nodes running on SATA SSDs that can keep up under load while serving RPC clients and other nodes (etc)... why not?

@j75689
Copy link
Contributor

j75689 commented Jul 30, 2021

Hi all.
Thank you for your report.
We have received many report of a sync issue.
You can try the latest version. If you have any probleums, please feedback #338.
We will pay attention to the issue #338 for a long time, and if there are any updates, we will explain it on this issue.

Thanks.

@j75689 j75689 closed this as completed Jul 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants