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

Add an option for open (permissionless) multi-leader rounds. #3168

Merged
merged 1 commit into from
Jan 23, 2025

Conversation

afck
Copy link
Contributor

@afck afck commented Jan 23, 2025

Motivation

For #3162, some chains need to be "permissionless", i.e. admit any signer as a block proposer, as far as the chain manager is concerned.

Proposal

Add an open_multi_leader_rounds option. If it is true, the multi-leader rounds are not restricted to the chain owners anymore. (All other round types still are restricted as usual.)

Test Plan

A test was added.

Release Plan

  • Nothing to do / These changes follow the usual release cycle.

Links

@afck afck requested review from ma2bd, christos-h, bart-linera and deuszx and removed request for deuszx January 23, 2025 09:26
@@ -200,6 +200,7 @@ Open (i.e. activate) a new multi-owner chain deriving the UID from an existing o

If they are specified there must be exactly one weight for each owner. If no weights are given, every owner will have weight 100.
* `--multi-leader-rounds <MULTI_LEADER_ROUNDS>` — The number of rounds in which every owner can propose blocks, i.e. the first round number in which only a single designated leader is allowed to propose blocks
* `--open-multi-leader-rounds` — Whether the multi-leader rounds are unrestricted, i.e. not limited to chain owners. This should only be `true` on chains with restrictive application permissions and an application-based mechanism to select block proposers
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we add some mechanism that would disallow setting this on chains without restrictive application permissions? (Not necessarily now, but maybe a nice to have in the future?)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't think so: Even if you do set app permissions, we can't control what the app does—it might still allow anyone to propose blocks.

So I think we just need to guard against spam on the validator side, and otherwise the rule is always that your we only guarantee safety; bad chain owners or chain configs can brick a chain.

@afck afck merged commit 3674411 into linera-io:main Jan 23, 2025
21 of 22 checks passed
@afck afck deleted the open-multi-leader-rounds branch January 23, 2025 13:20
afck added a commit that referenced this pull request Jan 23, 2025
## Motivation

#3168 and #3169 were merged without rebasing on each other, breaking the
build.

## Proposal

Fix the broken line.

## Test Plan

With this and #3171 CI should work again.

## Release Plan

- Nothing to do / These changes follow the usual release cycle.

## Links

- [reviewer
checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
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.

Permissionless consensus rounds
2 participants