This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
how_qortal_s_consensus_works [08/06/2021 10:52] – gfactor | how_qortal_s_consensus_works [11/02/2023 14:12] (current) – crowetic | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== How Qortal’s Consensus Works ====== | ====== How Qortal’s Consensus Works ====== | ||
- | {{:qortal_official_logo.png?400|}} | + | {{:qortal_official_logo_transparent_.png?400|}} |
- | Here is an explanation from @CalDescent | + | Every node with a Level 5 (or higher) self-share " |
- | Every node with at least one Level 1 (or higher) self-share " | + | 1. **Key distance.** This is essentially a lottery for each block, where each minting account has only one ticket each time, and everyone knows the lottery numbers of the other minting accounts. To achieve this, we convert |
- | 1. Key distance. This is essentially a lottery for each block, where each minting | + | 2. **Minter level.** The number from Step 1 is then divided by the account |
- | 2. Minter level. The number from Step 1 is then divided by the account level of the block signer. So a level 5 account would end up with a number 5 times lower than a level 1 account, assuming that they both had comparable key distances. However, if a level 1 produces a key distance 10 times smaller than a level 5, its resulting number would be smaller than the level 5's number. On average, higher levels will produce smaller numbers than lower levels. | + | Lower numbers translate to a lower time delta for the next block, and higher numbers translate to higher time deltas. So some nodes could sign their blocks with a timestamp 50 seconds after the previous block, and others could sign blocks with timestamp 80 seconds after the previous block, etc etc. In practice, timestamps range from around 60-90 seconds because of the way they are weighted, with the average historical delta being around 65 seconds. |
- | + | ||
- | Lower numbers translate to a lower time delta for the next block, and higher numbers translate to higher time deltas. So some nodes could sign their blocks with a timestamp 50 seconds after the previous block, and others could sign blocks with timestamp 80 seconds after the previous block, etc etc. In practice, timestamps range from around 60-90 seconds because of the way they are weighted, with the average | + | |
Each block has a " | Each block has a " | ||
Line 19: | Line 17: | ||
Nodes sync to the most ideal block that they can find, and the process repeats. If another, better block is found by a subset of the network, this will eventually propagate through and cause nodes on a different block to " | Nodes sync to the most ideal block that they can find, and the process repeats. If another, better block is found by a subset of the network, this will eventually propagate through and cause nodes on a different block to " | ||
- | To summarize with this system: | ||
- | 1) Higher level accounts are preferred as block signers, on average. | ||
- | 2) Verifiable randomness is created, to ensure that minters on each level get a reasonably equal distribution of blocks signed, and no-one can jump the queue by minting a block with an earlier timestamp than it should have. |