Equivalent / related terms occupy the same row
| Paper | Contracts |
|---|---|
| Node | edge |
| Edge | No direct notion of edges. The code instead refers to children |
| Proof Node | No such thing. Instead, small step edges of length one are directly confirmed via one-step proof (OSP), setting their timer cache to uint64.max |
| Regular Node | All edges are regular, since there is no notion of a proof node in the contracts |
| Root Node | Block Level Layer Zero Edge |
| Refinement Node | Layer Zero Edge (Non Block Level) |
| Nonterminal Node | No term directly describes this |
| Terminal Node | One Step (Fork/Proof) Edge |
| Position | See “History Commitments and Node Form” section below |
| Context | mutualId |
| Rival | edges that share a mutualId |
| root creation move | EdgeChallengeManager.createLayerZeroEdge |
| (where level is block) | |
| refinement move | EdgeChallengeManager.createLayerZeroEdge |
| (where level is not block) | |
| bisection move | EdgeChallengeManager.bisectEdge |
| one-step proof move | EdgeChallengeManager.confirmEdgeByOneStepProof |
| update move | EdgeChallengeManager.updateTimerCacheByChildren and EdgeChallengeManager.updateTimerCacheByClaim |
(does not take the beta star parameter mentioned in the paper) |
| creation time | ChallengeEdge.createdAtBlock |
| rival time | there is a mapping(bytes32 => bytes32) firstRivals in EdgeStore. It maps a mutual id to an edge id.
this keeps track of the rival time of an edge |
| local timer | EdgeChallengeManagerLib.timeUnrivaled |
| bottom-up timer | ChallengeEdge.totalTimeUnrivaledCache
bottom-up timers in the contracts rely on ChallengeEdge.totalTimeUnrivaledCache being updated via calls to EdgeChallengeManager.updateTimerCacheByChildren and EdgeChallengeManager.updateTimerCacheByClaim |
| confirmation threshold | EdgeChallengeManager.challengePeriodBlocks |
| level | ChallengeEdge.level |
| *L* (number of levels) | NUM_BIGSTEP_LEVEL+2 |
| l = L (level equals L) | Block Level (ChallengeEdge.level = 0) |
| l = 1 | Small Step Level (ChallengeEdge.level = NUM_BIGSTEP_LEVEL + 1) |
| 1 < l < L | Big Step Level |
| l = 0 | N/A |
| n_1 **(see section 5.1) | LAYERZERO_SMALLSTEPEDGE_HEIGHT |
| n_l where 1 < l < L | LAYERZERO_BIGSTEPEDGE_HEIGHT |
| n_L | LAYERZERO_BLOCKEDGE_HEIGHT |
The contracts use the history commitment scheme described in the old BoLD paper, which can be found here