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

[Draft] Add a maximum cap per project #325

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

timbeiko
Copy link
Contributor

@timbeiko timbeiko commented Feb 10, 2025

Based on discord conversations, here's a simple example for what adding the maximum cap per project could look like.

Importantly, it doesn't touch on how to handle people contributing to multiple projects. My proposed approach here would be that part if people work on multiple projects, we consider them "part weight" across them, meaning that each additional project is considered +0.5 and we generally don't expect people to span >2.

@timbeiko timbeiko changed the title Add a maximum cap per project [Draft] Add a maximum cap per project Feb 10, 2025
@timbeiko timbeiko closed this Feb 10, 2025
@timbeiko timbeiko reopened this Feb 10, 2025
| Description | Repos/Projects | Current Members / Max Cap |
|:--|:---|:---|
| Work on the canonical protocol specs. <br/> Should be implementation agnostic + unopinionated | - [Consensus specs](https://github.com/ethereum/consensus-specs) <br/> - [Execution specs (EELS)](https://github.com/ethereum/execution-specs) <br/> - [Execution APIs](https://github.com/ethereum/execution-apis) | 3 / 5 |
| Ethereum mainnet client implementations. <br/> Must be well-tested, technically differentiated, <br/> and production ready | - [Erigon](https://github.com/erigontech/erigon) <br/> - [EthereumJS](https://github.com/ethereumjs) <br/> - [Geth](https://github.com/ethereum/go-ethereum) <br/> - [Grandine](https://github.com/grandinetech/grandine) <br/> - [Hyperledger Besu](https://github.com/hyperledger/besu) <br/> - [Lighthouse](https://github.com/sigp/lighthouse) <br/> - [Lodestar](https://github.com/ChainSafe/lodestar) <br/> - [Nethermind](https://github.com/NethermindEth/nethermind) <br/> - [Nimbus](https://github.com/status-im/nimbus-eth2) <br/> - [Prysm](https://github.com/prysmaticlabs/prysm) <br/> - [Teku](https://github.com/ConsenSys/teku) <br/> - [Reth](https://github.com/paradigmxyz/reth) | Erigon: 13.5 / 15 <br/> EthereumJS: 4.5 / 8 <br/> Geth: 6 / 10 <br/> Grandine: 4 / 8 <br/> Besu: 12 / 15 <br/> Lighthouse: 11.5 / 15 <br/> Lodestar: 8 / 10 <br/> Nethermind: 13 / 15 <br/> Nimbus: 8 / 10 <br/> Prysm: 11 / 15 <br/> Teku: 10 / 12 <br/> Reth: 6 / 10 |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we have Teku with 10 instead of 7? Or if we are considering 2 of the occasional contributors it would still be 9. Maybe I missed something? Or are these just "placeholder" values?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we have Teku with 10 instead of 7? Or if we are considering 2 of the occasional contributors it would still be 9. Maybe I missed something? Or are these just "placeholder" values?

I tried to make sense of it but I couldn't. Most likely placeholder values.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it's a placeholder. I should have clarified, sorry! I had an LLL count how many there were by project already and add a couple more buffers for larger projects 😄

I think we should either put all clients at like +33% from what they currently have for an initial cap, or the same number.

| Description | Repos/Projects | Current Members / Max Cap |
|:--|:---|:---|
| Work on the canonical protocol specs. <br/> Should be implementation agnostic + unopinionated | - [Consensus specs](https://github.com/ethereum/consensus-specs) <br/> - [Execution specs (EELS)](https://github.com/ethereum/execution-specs) <br/> - [Execution APIs](https://github.com/ethereum/execution-apis) | 3 / 5 |
| Ethereum mainnet client implementations. <br/> Must be well-tested, technically differentiated, <br/> and production ready | - [Erigon](https://github.com/erigontech/erigon) <br/> - [EthereumJS](https://github.com/ethereumjs) <br/> - [Geth](https://github.com/ethereum/go-ethereum) <br/> - [Grandine](https://github.com/grandinetech/grandine) <br/> - [Hyperledger Besu](https://github.com/hyperledger/besu) <br/> - [Lighthouse](https://github.com/sigp/lighthouse) <br/> - [Lodestar](https://github.com/ChainSafe/lodestar) <br/> - [Nethermind](https://github.com/NethermindEth/nethermind) <br/> - [Nimbus](https://github.com/status-im/nimbus-eth2) <br/> - [Prysm](https://github.com/prysmaticlabs/prysm) <br/> - [Teku](https://github.com/ConsenSys/teku) <br/> - [Reth](https://github.com/paradigmxyz/reth) | Erigon: 13.5 / 15 <br/> EthereumJS: 4.5 / 8 <br/> Geth: 6 / 10 <br/> Grandine: 4 / 8 <br/> Besu: 12 / 15 <br/> Lighthouse: 11.5 / 15 <br/> Lodestar: 8 / 10 <br/> Nethermind: 13 / 15 <br/> Nimbus: 8 / 10 <br/> Prysm: 11 / 15 <br/> Teku: 10 / 12 <br/> Reth: 6 / 10 |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest setting the cap to at least 10 for all production grade clients. I also think that clients with a larger market share should have a higher cap than 10 (that's actually mostly reflected in the suggested caps except a few outliers).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW, my comment was a hint that Grandine prefers to have a max cap of 10 too :)

| Ethereum mainnet client implementations. <br/> Must be well-tested, technically differentiated, <br/> and production ready | - [Erigon](https://github.com/erigontech/erigon) <br/> - [EthereumJS](https://github.com/ethereumjs) <br/> - [Geth](https://github.com/ethereum/go-ethereum) <br/> - [Grandine](https://github.com/grandinetech/grandine) <br/> - [Hyperledger Besu](https://github.com/hyperledger/besu) <br/> - [Lighthouse](https://github.com/sigp/lighthouse) <br/> - [Lodestar](https://github.com/ChainSafe/lodestar) <br/> - [Nethermind](https://github.com/NethermindEth/nethermind) <br/> - [Nimbus](https://github.com/status-im/nimbus-eth2) <br/> - [Prysm](https://github.com/prysmaticlabs/prysm) <br/> - [Teku](https://github.com/ConsenSys/teku) <br/> - [Reth](https://github.com/paradigmxyz/reth) | Erigon: 13.5 / 15 <br/> EthereumJS: 4.5 / 8 <br/> Geth: 6 / 10 <br/> Grandine: 4 / 8 <br/> Besu: 12 / 15 <br/> Lighthouse: 11.5 / 15 <br/> Lodestar: 8 / 10 <br/> Nethermind: 13 / 15 <br/> Nimbus: 8 / 10 <br/> Prysm: 11 / 15 <br/> Teku: 10 / 12 <br/> Reth: 6 / 10 |
| Client testing/security/infra <br/> which supports these implementations | - [ethereum/tests](https://github.com/ethereum/tests) <br/> - [ethereum/execution-spec-tests](https://github.com/ethereum/execution-spec-tests) | 2.5 / 5 |
| Network upgrade coordination | - [ethereum/pm](https://github.com/ethereum/pm) | 2 / 3 |
| Research and implementation experiments <br/> related to potential protocol changes | - [Verkle trees](https://github.com/gballet/go-verkle) (Verge) <br/> - [Portal Network](https://github.com/ethereum/portal-network-specs) (Purge) <br/> - [Ipsilon](https://github.com/ipsilon) (EVM Improvements) <br/> - Consensus work <br/> - Cryptography <br/> - Mechanism design <br/> - Resource pricing | Verkle Trees: 3 / 5 <br/> Portal Network: 7 / 10 <br/> EVM/Ipsilon: 4 / 8 <br/> Consensus Research: 12 / 15 <br/> Cryptography: 5 / 8 <br/> Mechanism Design: 5.5 / 8 <br/> Resource Pricing: 2 / 5 |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see that Protocol Security is missing, should that also be on the list?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but probably in a different PR @fredriksvantes 😄

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.

5 participants