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

bump geth to v1.14.0 #6236

Merged
merged 1 commit into from
Apr 26, 2024
Merged

bump geth to v1.14.0 #6236

merged 1 commit into from
Apr 26, 2024

Conversation

etan-status
Copy link
Contributor

@etan-status
Copy link
Contributor Author

@jakubgs

Geth v1.14.0 switches over the default state trie representation from hash mode to path mode (i.e. --state.scheme flipped form hash to path) (ethereum/go-ethereum#29108). This change does not affect Geth instances with pre-existing databases, in the case of which Geth continues to use whatever the existing database's format is. If no previous database exists however, for full nodes, Geth will now default to pathdb. The main advantage is built-in, online historical state pruning; no more runaway state growth.

  • If you want to force the old behaviour, you can run Geth with --state.scheme=hash for now. That said, we will be dropping hash mode sooner rather than later, so we advise everyone running full nodes to gradually switch, if they haven't yet.
  • Archive mode support is not yet finalised for path mode, so archive nodes will still run in hash mode. Naturally, hash mode will not be dropped until a full path archive lands and people have enough time to switch to it.

if we still have hash scheme based EL instances, may need to resync them eventually. for now, no action needed though, just a headsup.

@etan-status
Copy link
Contributor Author

@tersec

Geth v1.14.0 switched to using Go v1.22 by default (ethereum/go-ethereum#28946), which means we've dropped support for Go v1.20. Geth also started using of new features from Go v1.21 in our codebase, so building with Go v1.20 will probably error from now on. Just a heads up.

Does this increase the minimum OS that is realistically needed to run a full node?

@etan-status etan-status enabled auto-merge (squash) April 25, 2024 21:22
@etan-status etan-status merged commit 23116ba into unstable Apr 26, 2024
12 checks passed
@etan-status etan-status deleted the dev/etan/bd-geth branch April 26, 2024 00:07
@tersec
Copy link
Contributor

tersec commented Apr 26, 2024

@tersec

Geth v1.14.0 switched to using Go v1.22 by default (ethereum/go-ethereum#28946), which means we've dropped support for Go v1.20. Geth also started using of new features from Go v1.21 in our codebase, so building with Go v1.20 will probably error from now on. Just a heads up.

Does this increase the minimum OS that is realistically needed to run a full node?

Run, no, but build Geth, yes.

Debian and Ubuntu, for example, have limited support for Go v1.21 with current stable versions. For Debian stable, the backports repo contains v1.21, but that's not always installed or enabled by default, and some people using Debian stable versions might have specific reason not to want to introduce backports -- they chose a stable snapshot of package versions for a reason, potentially.

Ubuntu doesn't even offer that. The next Ubuntu LTS (24.04) will be out by end of month, and will support v1.22 by default, the previous LTS (22.04, supported for years yet) appears to be stuck on v1.18. There are ways of getting newer Go versions onto it, but if someone wants to customize/recompile Geth on their Nimbus node running older distros (which also don't support v1.21 or v1.22 unless they're a rolling distro or very new, it'd be easier for them to cross-compile Geth from a Docker image of a current distro and use the resulting binary. Fortunately for this purpose, Go on Linux does not use libc unless the application specifically requests/requires it, so probably for Geth, which likely does not, one can use a compiled artifact of Geth, whether from the Geth binary release distribution or from any other source, regardless of distro version.

So, run, no, build, yes.

@jakubgs
Copy link
Member

jakubgs commented May 6, 2024

Yes, some nodes probably still use the old schema. Is there a simple way to figure out which ones are those?

Also, commits titles - or bodies - are not markdown, so please stop putting markdown syntax in commit titles. Just because GitHub renders them doesn't mean it's a good practice.

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

Successfully merging this pull request may close these issues.

3 participants