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

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.