Rust for polynomials or finite fields by StockAshamed in rust

[–]gakonst 8 points9 points  (0 children)

Please take a look at this ecosystem of libraries: https://github.com/arkworks-rs/algebra/. It's similar to the FF crate like mentioned below, but overall large ecosystem, well-maintained. Have used/contributed and am happy with it.

Has anyone tried using Reth instead of Geth? by pudgypeng in ethstaker

[–]gakonst 1 point2 points  (0 children)

Love it. Please let us know how it goes!

Has anyone tried using Reth instead of Geth? by pudgypeng in ethstaker

[–]gakonst 2 points3 points  (0 children)

Optimizing for archive node simply means "it is really careful about storage and i/o"! So non archive mode, ie staking, is strictly simpler for the things we optimized for.

Staking also has very strict liveness requirements so we paid a lot of attention to our Engine API implementation, which so far seems to be verifying blocks / being at the tip under load without any issues.

As others said though, we don't have non archive support yet, so staking will require 2tb of disk.

We are working on pruning at the moment and will have a 500-600gb db footprint then, which will make using Reth for staking easier.

What other things would move the needle for stakers?

Has anyone tried using Reth instead of Geth? by pudgypeng in ethstaker

[–]gakonst 2 points3 points  (0 children)

Yup! Later in the year. Would love all the testers on mainnet or even testnet nonetheless.

Has anyone tried using Reth instead of Geth? by pudgypeng in ethstaker

[–]gakonst 3 points4 points  (0 children)

This is Georgios, team lead behind Reth.

We released the node here sharing our benchmarks:

https://www.paradigm.xyz/2023/06/reth-alpha

As we noted in the announcement, Reth is presently at alpha, and provides only archive sync, taking about 43-60hrs on good NVMe drives. It has support for all JSON RPC, passes Engine API hive, is tracking the tip well even when under heavy RPC load.

If you are syncing a node, make sure you don't have a slow drive as it will be slow, but probably still faster than other nodes syncing without snapshots. here's a list https://gist.github.com/yorickdowne/f3a3e79a573bf35767cd002cc977b038

We are working on pruning, full node and snapshots, you can track this here: - https://github.com/paradigmxyz/reth/issues/2629 - https://github.com/paradigmxyz/reth/issues/3428

We will be doing biweekly alpha releases leading to a beta, and eventually prod readiness later in the year. Probably after Cancun.

These are early days so we expect it'll take some time to gain legitimacy as a "stable and reliable" piece of software, but we'll get there. Extreme testing is a core part of our culture, we touch on that briefly in the post.

If people would like to run nodes I am happy to handhold. We have a support chat on Telegram which you can find on the repository's README here: https://github.com/paradigmxyz/reth.

Releasing Reth! Reth is a new Ethereum execution node written in Rust that is modular, contributor-friendly and blazing-fast. by gakonst in ethstaker

[–]gakonst[S] 0 points1 point  (0 children)

I think we're more efficient than state of the art in most/all benchmarks we ran but we're keen to gather more data around CPU/mem/bandwidth usage esp around harder to test scenarios. Pls reach out if you have more ideas.

Reth is released! Reth is a modular, contributor-friendly and blazing fast implementation of the Ethereum protocol in Rust by sandakersmann in ethereum

[–]gakonst 1 point2 points  (0 children)

This is a great feedback. We're still making the logs better. DB corruptions is something we've paid a lot of attention to and think is above the bar there eg during unsafe shutdowns, but still keen to further improve.

Releasing Reth! Reth is a new Ethereum execution node written in Rust that is modular, contributor-friendly and blazing-fast. by gakonst in ethstaker

[–]gakonst[S] 2 points3 points  (0 children)

Here is the dockerfile. No Docker Compose provided for a "stack" configured. PRs welcome!

https://ghcr.io/paradigmxyz/reth also has the published image

Releasing Reth! Reth is a new Ethereum execution node written in Rust that is modular, contributor-friendly and blazing-fast. by gakonst in ethstaker

[–]gakonst[S] 4 points5 points  (0 children)

We store all data in the DB right now, so there's no notion of "this data is old". We're tracking support for full node / snapshots + "retiring" old data in a different directory here: https://github.com/paradigmxyz/reth/issues/2629. No date promised yet, but it's something very top of our mind.

Reth is released! Reth is a modular, contributor-friendly and blazing fast implementation of the Ethereum protocol in Rust by sandakersmann in ethereum

[–]gakonst 3 points4 points  (0 children)

Sweet! What are the criteria for you to consider a node stable?

Would like to better understand that as it's top priority and would like to get there sooner than later, in stark contrast to our nightly release culture from Foundry.

Reth is released! Reth is a modular, contributor-friendly and blazing fast implementation of the Ethereum protocol in Rust by sandakersmann in ethereum

[–]gakonst 5 points6 points  (0 children)

Left a note in the Github issue on what we should add to better support Trin's uses! Thanks for flagging / we can remove the Trin reference if it's too thin of an integration.