Commitment - Algorand Specifications
Keyboard shortcuts
Press ← or → to navigate between chapters
Press S or / to search in the book
Press ? to show this help
Press Esc to hide this help
- Auto
- Light
- Dark
Algorand Specifications
The commitment is the final stage that updates the copy of the Ledger on the node, applying all the state deltas (e.g., account balances, application state, etc.) related to the transactions contained in the committed block proposal.
In the following pseudocode etet denotes the body (transactions) of the proposal (a.k.a. the payset).
Algorithm8: CommitAlgorithm 8: Commit
1: functionCommit(v)2: e←RetrieveProposal(v)e3: L←L||e4: ApplyDeltas(e)5: TransactionPool.Update(et)6: endfunction1: function Commit(v)2: e←RetrieveProposal(v)e3: L←L||e4: ApplyDeltas(e)5: TransactionPool.Update(et)6: end function
Important
IMPLEMENTATION:
Commit block proposal reference implementation.
The function commits to the Ledger the block corresponding to the received proposal-value.
The proposal-value must be committable, which implies both validity and availability of the full block body and seed.
The node retrieves the full block ee related to the proposal-value (Line 2), and appends it to the Ledger LL (Line 3).
Then, the node updates the Ledger state (and trackers) with all state changes (deltas) produced by the new committed block.
For further details, refer to the Ledger normative section.
The TransactionPoolTransactionPool is then purged of all transactions in the committed block.
For further details on this process, see the Ledger non-normative section.