diff --git a/_data/clients-execution.yml b/_data/clients-execution.yml index 86100be9..86727f68 100644 --- a/_data/clients-execution.yml +++ b/_data/clients-execution.yml @@ -79,12 +79,12 @@ lang: .NET donate: https://protocol-guild.readthedocs.io/en/latest/03-donate.html opensource: true -- name: Nimbus +- name: Nimbus (w/Nimbus CL) link: https://nimbus.team/ github: https://github.com/status-im/nimbus-eth1 docs: https://github.com/status-im/nimbus-eth1/tree/master/doc chat: https://discord.gg/qnjVyhatUa - status: pre-alpha + status: alpha support: lang: Nim donate: diff --git a/_data/clients-lean-consensus.yml b/_data/clients-lean-consensus.yml new file mode 100644 index 00000000..898eccf7 --- /dev/null +++ b/_data/clients-lean-consensus.yml @@ -0,0 +1,106 @@ +# - name: # client name +# link: # link to website +# github: # link to github +# docs: # link to documentation +# chat: # link to community chat +# status: # (select one) deprecated, pre-alpha, alpha, beta, stable +# support: # Linux, Win, macOS, ARM +# lang # programming language it's written in +# donate: # link to gitcoin or etherscan address +# opensource: # true/false + + +# template +# - name: +# link: +# github: +# docs: +# chat: +# # status: +# # support: +# lang: +# # donate: +# opensource: true + + +- name: Peam + link: + github: https://github.com/malik672/Peam + docs: + chat: + status: R&D + # support: + lang: Rust + # donate: + opensource: true +- name: Ream + link: https://reamlabs.com/ + github: https://github.com/ReamLabs/ream + docs: https://hackmd.io/@reamlabs + chat: https://t.me/ReamLabs + status: R&D + # support: + lang: Rust + # donate: + opensource: true +- name: Zeam + link: + github: https://github.com/blockblaz/zeam + docs: + chat: https://t.me/zeamETH + status: R&D + # support: + lang: Zig + # donate: + opensource: true +- name: Qlean-mini + link: https://qdrvm.io/ + github: https://github.com/qdrvm/qlean-mini + docs: + chat: + status: R&D + # support: + lang: C++ + # donate: + opensource: true +- name: Lantern + link: https://piertwo.com/ + github: https://github.com/Pier-Two/lantern + docs: + chat: + status: R&D + # support: + lang: C + # donate: + opensource: true +- name: Lighthouse + link: https://lighthouse.sigmaprime.io/ + github: https://github.com/hopinheimer/lighthouse + docs: https://lighthouse-book.sigmaprime.io/ + chat: https://discord.gg/cyAszAh + status: R&D + # support: + lang: Rust + # donate: + opensource: true +- name: ethlambda + link: https://lambdaclass.com/ + github: https://github.com/lambdaclass/ethlambda + docs: + chat: + status: R&D + # support: + lang: Rust + # donate: + opensource: true +- name: gean + link: https://geanlabs.com/ + github: https://github.com/geanlabs/gean + docs: + chat: + status: R&D + # support: + lang: Go + # donate: + opensource: true + diff --git a/_includes/css/base.css b/_includes/css/base.css index a48696ae..c834d4cb 100644 --- a/_includes/css/base.css +++ b/_includes/css/base.css @@ -109,4 +109,16 @@ root { } +#supermajorityDataIssue .accordion-button { + color: var(--bs-warning-text-emphasis); + background-color: var(--bs-warning-bg-subtle); + border-color: var(--bs-warning-border-subtle); + box-shadow: none; +} +#supermajorityDataIssue .accordion-item { + border-color: var(--bs-warning-border-subtle); + --bs-accordion-btn-padding-x: 1rem; + --bs-accordion-btn-padding-y: 0.55rem; +} + diff --git a/_includes/partials/content/client-resource.html b/_includes/partials/content/client-resource.html index ff115149..d199a8fb 100644 --- a/_includes/partials/content/client-resource.html +++ b/_includes/partials/content/client-resource.html @@ -5,7 +5,8 @@
Note: Donations made to Protocol Guild are distributed among Ethereum protocol contributors, including client teams. All recipients and splits can be seen here.
+Note: Donations made to Protocol Guild are distributed among Ethereum protocol contributors, including client teams. All recipients and splits can be seen here.
+Note: Donations made to Protocol Guild are distributed among Ethereum protocol contributors, including client teams. All recipients and splits can be seen here.
+ +| Client | +Github | +Docs | +Chat | +Status | + +Language | + +|||||
|---|---|---|---|---|---|---|---|---|---|---|
| + {%- if client.link -%} + + {{client.name}} + + {%- else -%} + {{client.name}} + {%- endif -%} + | + {%- if client.github -%} ++ + {{site.data.icons.github}} + + | + {%- else -%} +- | + {%- endif -%} + {%- if client.docs -%} ++ + {{site.data.icons.docs}} + + | + {%- else -%} +- | + {%- endif -%} + {%- if client.chat -%} + {%- assign chat_icon = site.data.icons.chat -%} + {%- if client.chat contains "discord" -%} + {%- assign chat_icon = site.data.icons.discord -%} + {%- endif -%} + {%- if client.chat contains "t.me" -%} + {%- assign chat_icon = site.data.icons.telegram -%} + {%- endif -%} ++ + {{chat_icon}} + + | + {%- else -%} +- | + {%- endif -%} + {%- if client.status -%} +{{client.status}} | + {%- else -%} +- | + {%- endif -%} + + {%- if client.lang -%} +{{client.lang}} | + {%- else -%} +- | + {%- endif -%} + +
| Feature / Property | ++ Vero + | ++ Vouch + | +
|---|---|---|
| Attestation Strategies | +M of N | +M of N, First, Best | +
| Signer | +Web3Signer | +Dirk | +
| Distributed Validator Keys | +No, uses whole key | +Yes, uses sharded keys | +
| Active-active Redundancy | +Vero Sponsors only | +Yes | +
| Ethereum Remote Signing API | +Yes | +No | +
| Slashing Protection | +Yes | +Yes | +
| Slashing Detection | +Yes | +No | +
| Ease of Migration | +Designed for simple adoption and rollback | +More complex setup and integration | +
| Eth Docker Support | +Yes | +Yes | +
| Open Source | +Yes | +Yes | +
| Dependency Surface | +Minimal codebase and external dependencies; single maintainer | +Large/complex codebase (~5x Vero) and external dependencies; creator retired, codebase maintained by Bitwise | +
| Typical Use Case | +Simple way to protect validators from client consensus bugs | +Highly-configurable multi-node validator setups with sharded validator keys | +
Multinode validator clients provide protection against client bugs that can cause validators to vote for an invalid fork of the chain. They do so by combining data from multiple consensus and execution clients, requiring M-of-N connected clients to agree before casting their vote.
+ +When one client diverges or behaves inconsistently, the validator client continues operating through the rest of the clients as long as M of them agree on which fork to vote for. This way a defect or downtime in any single client does not disrupt validation activity.
+ +This approach protects both the operator and the Ethereum network by reducing correlated failures, lowering risks during consensus bugs and improving overall resilience.
+ +See the Multinode Clients section to understand if Vero or Vouch is better for you. Under most situations Vero will cover 99% of usecases including institutional staking operations.
+For an automated tool (with a GUI) to switch execution clients,
see Accidental-Green's Ethereum Client Switcher