-
Notifications
You must be signed in to change notification settings - Fork 321
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
CIP-0079? | Implement Ouroboros Leios to increase Cardano throughput #379
Closed
Closed
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
--- | ||
CIP: 79 | ||
Title: Implement Ouroboros Leios to increase Cardano throughput | ||
Authors: Duncan Coutts <duncan.coutts@iohk.io> | ||
Status: Draft | ||
Type: Core | ||
Created: 2022-11-18 | ||
License: CC-BY-4.0 | ||
--- | ||
|
||
Included documents: [*Ouroboros Leios: design goals and concepts*](leios-design.pdf) | ||
|
||
## Abstract | ||
|
||
As Cardano evolves, there will be increasing demand for greater network | ||
capacity to support new and existing users and applications. The long term | ||
solution is to rebase Cardano on the new Ouroboros Leios protocol. | ||
Ouroboros Leios is a new member of the Ouroboros family that is designed | ||
specifically for high throughput, without compromising security. This will | ||
meet expected future demands, providing a basis for continuing Cardano growth | ||
and scalability. | ||
|
||
## Motivation | ||
|
||
Cardano's current throughput (measured both in data rate and available script | ||
execution time) is adequate for the current demand. There is also some | ||
opportunity to increase the block sizes and script execution limits to meet | ||
emerging future demands for increased network capacity. There are however | ||
fundamental limits to how far the block size and the script execution budget | ||
can be pushed, while maintaining system security. | ||
|
||
Under Ouroboros Praos, in order to ensure the security of the overall system, | ||
blocks must be distributed across the network reliably in "$\Delta$" time slots. | ||
This is set to be 5 seconds on the Cardano mainnet. The block relaying process | ||
is an essentially serial process: blocks must be relayed between consecutive | ||
block producer nodes through a series of intermediate relay nodes. The overall | ||
time that this takes is proportional to the number of network hops between one | ||
block producer and the next, and the network latency of each of those hops | ||
(which must in general span the whole globe). Given that this must always | ||
happen within 5 seconds, this puts a hard upper limit on how large each block | ||
can be and also on how much time can be spent validating transactions and | ||
scripts. | ||
|
||
In order to substantially scale beyond this requires changes to the underlying | ||
blockchain algorithm. There are significant opportunities to scale: the | ||
network and CPU resources on most nodes are almost idle much of the time. With | ||
a different algorithm, these resources can be used to increase the total chain | ||
bandwidth. | ||
|
||
## Specification | ||
|
||
Ouroboros Leios is a substantial new design. To do it justice, we do not | ||
include it in full in this README. Instead, as part of this CIP we include a | ||
larger document that describes Ouroboros Leios in much more detail: | ||
|
||
[*Ouroboros Leios: design goals and concepts*](leios-design.pdf) | ||
|
||
There may be further updates to this design document over time. The latest | ||
published version will be available in the | ||
[IOG research library](https://iohk.io/en/research/library/papers/ouroboros-leios-design-goals-and-concepts/). | ||
|
||
## Rationale | ||
|
||
The included document sets out in more detail the limitations of the existing | ||
design, the goals for the new design, and a design strategy that lead to the | ||
proposed Ouroboros Leios design. It explains how the new design relates to | ||
existing features. It sets out a very high level development strategy for how | ||
Ouroboros Leios can be developed and integrated into Cardano. | ||
|
||
## Path to Active | ||
|
||
The path to the implementation of Ouroboros Leios within Cardano will be a long | ||
one, as it will require substantial research, development and integration | ||
effort. The proposed high level development strategy is set out in the linked | ||
document. | ||
|
||
## Copyright | ||
|
||
This CIP is licensed under [CC-BY-4.0][]. | ||
|
||
[CC-BY-4.0]: https://creativecommons.org/licenses/by/4.0/legalcode | ||
[Apache-2.0]: http://www.apache.org/licenses/LICENSE-2.0 | ||
|
Binary file not shown.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(among other adjustments to the header)