diff --git a/experimental/fault-proof/stage-one/bond-incentives.html b/experimental/fault-proof/stage-one/bond-incentives.html index 7d8e00f4a..051adb3bd 100644 --- a/experimental/fault-proof/stage-one/bond-incentives.html +++ b/experimental/fault-proof/stage-one/bond-incentives.html @@ -198,6 +198,7 @@
There are other costs associated with participating in the game, including operating a challenger agent and the +opportunity cost of locking up capital in the dispute game. While we do not explicitly create incentives to cover +these costs, we assume that the current bond rewards, based on this specification, are enough as a whole to cover +all other costs of participation.
FPM introduces a contract DelayedWETH
designed to hold the bonded ETH for each
Fault Dispute Game.
diff --git a/print.html b/print.html
index 03ab3306d..33e3f0535 100644
--- a/print.html
+++ b/print.html
@@ -6710,6 +6710,7 @@
There are other costs associated with participating in the game, including operating a challenger agent and the +opportunity cost of locking up capital in the dispute game. While we do not explicitly create incentives to cover +these costs, we assume that the current bond rewards, based on this specification, are enough as a whole to cover +all other costs of participation.
FPM introduces a contract DelayedWETH
designed to hold the bonded ETH for each
Fault Dispute Game.
diff --git a/searchindex.js b/searchindex.js
index b76ee7002..17a28f433 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Object.assign(window.search, {"doc_urls":["root.html#op-stack-specs","root.html#specification-contents","root.html#experimental","root.html#design-goals","introduction.html#introduction","introduction.html#foundations","introduction.html#what-is-ethereum-scalability","introduction.html#what-is-an-optimistic-rollup","introduction.html#what-is-evm-equivalence","introduction.html#-all-together-now-","introduction.html#protocol-guarantees","introduction.html#network-participants","introduction.html#users","introduction.html#sequencers","introduction.html#verifiers","introduction.html#key-interaction-diagrams","introduction.html#depositing-and-sending-transactions","introduction.html#withdrawing","introduction.html#next-steps","protocol/overview.html#optimism-overview","protocol/overview.html#architecture-design-goals","protocol/overview.html#components","protocol/overview.html#l1-components","protocol/overview.html#l2-components","protocol/overview.html#transactionblock-propagation","protocol/overview.html#key-interactions-in-depth","protocol/overview.html#deposits","protocol/overview.html#block-derivation","protocol/overview.html#engine-api","protocol/bridges.html#standard-bridges","protocol/bridges.html#overview","protocol/bridges.html#token-depositing","protocol/bridges.html#upgradability","protocol/messengers.html#cross-domain-messengers","protocol/messengers.html#overview","protocol/messengers.html#message-passing","protocol/messengers.html#upgradability","protocol/messengers.html#message-versioning","protocol/messengers.html#message-version-0","protocol/messengers.html#message-version-1","protocol/messengers.html#backwards-compatibility-notes","protocol/deposits.html#deposits","protocol/deposits.html#overview","protocol/deposits.html#the-deposited-transaction-type","protocol/deposits.html#source-hash-computation","protocol/deposits.html#kinds-of-deposited-transactions","protocol/deposits.html#validation-and-authorization-of-deposited-transactions","protocol/deposits.html#execution","protocol/deposits.html#deposit-receipt","protocol/deposits.html#l1-attributes-deposited-transaction","protocol/deposits.html#l1-attributes-deposited-transaction-calldata","protocol/deposits.html#special-accounts-on-l2","protocol/deposits.html#l1-attributes-depositor-account","protocol/deposits.html#l1-attributes-predeployed-contract","protocol/deposits.html#user-deposited-transactions","protocol/deposits.html#deposit-contract","protocol/withdrawals.html#withdrawals","protocol/withdrawals.html#overview","protocol/withdrawals.html#withdrawal-flow","protocol/withdrawals.html#on-l2","protocol/withdrawals.html#on-l1","protocol/withdrawals.html#the-l2tol1messagepasser-contract","protocol/withdrawals.html#addresses-are-not-aliased-on-withdrawals","protocol/withdrawals.html#the-optimism-portal-contract","protocol/withdrawals.html#withdrawal-verification-and-finalization","protocol/withdrawals.html#security-considerations","protocol/withdrawals.html#key-properties-of-withdrawal-verification","protocol/withdrawals.html#handling-successfully-verified-messages-that-fail-when-relayed","protocol/withdrawals.html#optimismportal-can-send-arbitrary-messages-on-l1","protocol/guaranteed-gas-market.html#guaranteed-gas-fee-market","protocol/guaranteed-gas-market.html#overview","protocol/guaranteed-gas-market.html#gas-stipend","protocol/guaranteed-gas-market.html#default-values","protocol/guaranteed-gas-market.html#limiting-guaranteed-gas","protocol/guaranteed-gas-market.html#rationale-for-burning-l1-gas","protocol/guaranteed-gas-market.html#on-preventing-griefing-attacks","protocol/proposals.html#l2-output-root-proposals-specification","protocol/proposals.html#overview","protocol/proposals.html#proposing-l2-output-commitments","protocol/proposals.html#l2outputoracle-v100","protocol/proposals.html#l2-output-commitment-construction","protocol/proposals.html#l2-output-oracle-smart-contract","protocol/proposals.html#configuration","protocol/proposals.html#security-considerations","protocol/proposals.html#l1-reorgs","protocol/exec-engine.html#l2-execution-engine","protocol/exec-engine.html#1559-parameters","protocol/exec-engine.html#deposited-transaction-processing","protocol/exec-engine.html#deposited-transaction-boundaries","protocol/exec-engine.html#fees","protocol/exec-engine.html#fee-vaults","protocol/exec-engine.html#priority-fees-sequencer-fee-vault","protocol/exec-engine.html#base-fees-base-fee-vault","protocol/exec-engine.html#l1-cost-fees-l1-fee-vault","protocol/exec-engine.html#engine-api","protocol/exec-engine.html#engine_forkchoiceupdatedv2","protocol/exec-engine.html#engine_forkchoiceupdatedv3","protocol/exec-engine.html#engine_newpayloadv2","protocol/exec-engine.html#engine_newpayloadv3","protocol/exec-engine.html#engine_getpayloadv2","protocol/exec-engine.html#engine_getpayloadv3","protocol/exec-engine.html#engine_signalsuperchainv1","protocol/exec-engine.html#networking","protocol/exec-engine.html#sync","protocol/exec-engine.html#happy-path-sync","protocol/exec-engine.html#worst-case-sync","protocol/exec-engine.html#ecotone-disable-blob-transactions","protocol/exec-engine.html#ecotone-beacon-block-root","protocol/rollup-node.html#rollup-node-specification","protocol/rollup-node.html#overview","protocol/rollup-node.html#driver","protocol/rollup-node.html#derivation","protocol/rollup-node.html#l2-output-rpc-method","protocol/rollup-node.html#structures","protocol/rollup-node.html#output-method-api","protocol/rollup-node.html#protocol-version-tracking","protocol/rollup-node-p2p.html#rollup-node-p2p-interface","protocol/rollup-node-p2p.html#overview","protocol/rollup-node-p2p.html#p2p-configuration","protocol/rollup-node-p2p.html#identification","protocol/rollup-node-p2p.html#discv5","protocol/rollup-node-p2p.html#libp2p","protocol/rollup-node-p2p.html#gossip-topics","protocol/rollup-node-p2p.html#blocksv1","protocol/rollup-node-p2p.html#blocksv2","protocol/rollup-node-p2p.html#blocksv3","protocol/rollup-node-p2p.html#block-encoding","protocol/rollup-node-p2p.html#block-signatures","protocol/rollup-node-p2p.html#block-validation","protocol/rollup-node-p2p.html#req-resp","protocol/rollup-node-p2p.html#payload_by_number","protocol/derivation.html#l2-chain-derivation-specification","protocol/derivation.html#overview","protocol/derivation.html#eager-block-derivation","protocol/derivation.html#batch-submission","protocol/derivation.html#sequencing--batch-submission-overview","protocol/derivation.html#batch-submission-wire-format","protocol/derivation.html#batcher-transaction-format","protocol/derivation.html#frame-format","protocol/derivation.html#channel-format","protocol/derivation.html#batch-format","protocol/derivation.html#architecture","protocol/derivation.html#l2-chain-derivation-pipeline","protocol/derivation.html#l1-traversal","protocol/derivation.html#l1-retrieval","protocol/derivation.html#frame-queue","protocol/derivation.html#channel-bank","protocol/derivation.html#channel-reader-batch-decoding","protocol/derivation.html#batch-queue","protocol/derivation.html#payload-attributes-derivation","protocol/derivation.html#engine-queue","protocol/derivation.html#resetting-the-pipeline","protocol/derivation.html#deriving-payload-attributes","protocol/derivation.html#deriving-the-transaction-list","protocol/derivation.html#network-upgrade-automation-transactions","protocol/derivation.html#building-individual-payload-attributes","protocol/span-batches.html#span-batches","protocol/span-batches.html#introduction","protocol/span-batches.html#span-batch-format","protocol/span-batches.html#max-span-batch-size","protocol/span-batches.html#future-batch-format-extension","protocol/span-batches.html#span-batch-activation-rule","protocol/span-batches.html#optimization-strategies","protocol/span-batches.html#truncating-information-and-storing-only-necessary-data","protocol/span-batches.html#tx_data_headers-removal-from-initial-specs","protocol/span-batches.html#chain-id-removal-from-initial-specs","protocol/span-batches.html#reorganization-of-constant-length-transaction-fields","protocol/span-batches.html#rlp-encoding-for-only-variable-length-fields","protocol/span-batches.html#store-y_parity-and-protected_bit-instead-of-v","protocol/span-batches.html#adjust-txs-data-layout-for-better-compression","protocol/span-batches.html#fee_recipients-encoding-scheme","protocol/span-batches.html#how-derivation-works-with-span-batch","protocol/span-batches.html#integration","protocol/span-batches.html#channel-reader-batch-decoding","protocol/span-batches.html#batch-queue","protocol/span-batches.html#batcher","protocol/batcher.html#batch-submitter","protocol/batcher.html#overview","protocol/safe-liveness-checking.html#safe-liveness-checking","protocol/safe-liveness-checking.html#liveness-checking-mechanism","protocol/safe-liveness-checking.html#liveness-checking-methodology","protocol/safe-liveness-checking.html#the-liveness-guard","protocol/safe-liveness-checking.html#the-liveness-module","protocol/safe-liveness-checking.html#owner-removal-call-flow","protocol/safe-liveness-checking.html#shutdown","protocol/safe-liveness-checking.html#security-properties","protocol/safe-liveness-checking.html#interdependency-between-the-guard-and-module","protocol/safe-liveness-checking.html#operational-considerations","protocol/safe-liveness-checking.html#manual-validation-of-new-owner-liveness","protocol/safe-liveness-checking.html#deploying-the-liveness-checking-system","protocol/safe-liveness-checking.html#modify-the-liveness-checking-system","protocol/predeploys.html#predeploys","protocol/predeploys.html#overview","protocol/predeploys.html#legacymessagepasser","protocol/predeploys.html#l2tol1messagepasser","protocol/predeploys.html#deployerwhitelist","protocol/predeploys.html#legacyerc20eth","protocol/predeploys.html#weth9","protocol/predeploys.html#l2crossdomainmessenger","protocol/predeploys.html#l2standardbridge","protocol/predeploys.html#l1blocknumber","protocol/predeploys.html#gaspriceoracle","protocol/predeploys.html#l1block","protocol/predeploys.html#proxyadmin","protocol/predeploys.html#sequencerfeevault","protocol/predeploys.html#optimismmintableerc20factory","protocol/predeploys.html#optimismmintableerc721factory","protocol/predeploys.html#basefeevault","protocol/predeploys.html#l1feevault","protocol/predeploys.html#schemaregistry","protocol/predeploys.html#eas","protocol/predeploys.html#create2deployer","protocol/preinstalls.html#preinstalls","protocol/preinstalls.html#overview","protocol/preinstalls.html#safe","protocol/preinstalls.html#safel2","protocol/preinstalls.html#multisend","protocol/preinstalls.html#multisendcallonly","protocol/preinstalls.html#safesingletonfactory","protocol/preinstalls.html#multicall3","protocol/preinstalls.html#arachnids-deterministic-deployment-proxy","protocol/preinstalls.html#permit2","protocol/preinstalls.html#erc-4337-entrypoint","protocol/preinstalls.html#erc-4337-sendercreator","protocol/superchain-configuration.html#superchain-configuration","protocol/superchain-configuration.html#overview","protocol/superchain-configuration.html#configurable-values","protocol/superchain-configuration.html#configuration-data-flow","protocol/superchain-configuration.html#pausability","protocol/superchain-upgrades.html#superchain-upgrades","protocol/superchain-upgrades.html#overview","protocol/superchain-upgrades.html#protocol-version","protocol/superchain-upgrades.html#protocol-version-format","protocol/superchain-upgrades.html#protocol-version-exposure","protocol/superchain-upgrades.html#superchain-target","protocol/superchain-upgrades.html#superchain-version-signaling","protocol/superchain-upgrades.html#protocolversions-l1-contract","protocol/superchain-upgrades.html#activation-rules","protocol/superchain-upgrades.html#l2-block-number-based-activation-deprecated","protocol/superchain-upgrades.html#l2-block-timestamp-based-activation","protocol/superchain-upgrades.html#op-stack-protocol-versions","protocol/superchain-upgrades.html#post-bedrock-network-upgrades","protocol/superchain-upgrades.html#regolith","protocol/superchain-upgrades.html#canyon","protocol/superchain-upgrades.html#delta","protocol/superchain-upgrades.html#ecotone","protocol/superchain-upgrades.html#fjord","protocol/system_config.html#system-config","protocol/system_config.html#overview","protocol/system_config.html#system-config-contents-version-0","protocol/system_config.html#batcherhash-bytes32","protocol/system_config.html#scalars","protocol/system_config.html#gaslimit-uint64","protocol/system_config.html#unsafeblocksigner-address","protocol/system_config.html#writing-the-system-config","protocol/system_config.html#reading-the-system-config","experimental/fault-proof/index.html#fault-proof","experimental/fault-proof/index.html#overview","experimental/fault-proof/index.html#pre-image-oracle","experimental/fault-proof/index.html#pre-image-key-types","experimental/fault-proof/index.html#bootstrapping","experimental/fault-proof/index.html#hinting","experimental/fault-proof/index.html#pre-image-communication","experimental/fault-proof/index.html#fault-proof-program","experimental/fault-proof/index.html#prologue","experimental/fault-proof/index.html#main-content","experimental/fault-proof/index.html#epilogue","experimental/fault-proof/index.html#pre-image-hinting-routes","experimental/fault-proof/index.html#precompile-accelerators","experimental/fault-proof/index.html#fault-proof-vm","experimental/fault-proof/index.html#fault-proof-interactive-dispute-game","experimental/fault-proof/cannon-fault-proof-vm.html#cannon-fault-proof-virtual-machine","experimental/fault-proof/cannon-fault-proof-vm.html#overview","experimental/fault-proof/cannon-fault-proof-vm.html#state","experimental/fault-proof/cannon-fault-proof-vm.html#state-hash","experimental/fault-proof/cannon-fault-proof-vm.html#memory","experimental/fault-proof/cannon-fault-proof-vm.html#heap","experimental/fault-proof/cannon-fault-proof-vm.html#delay-slots","experimental/fault-proof/cannon-fault-proof-vm.html#syscalls","experimental/fault-proof/cannon-fault-proof-vm.html#io","experimental/fault-proof/cannon-fault-proof-vm.html#standard-streams","experimental/fault-proof/cannon-fault-proof-vm.html#hint-communication","experimental/fault-proof/cannon-fault-proof-vm.html#pre-image-communication","experimental/fault-proof/cannon-fault-proof-vm.html#exceptions","experimental/fault-proof/stage-one/index.html#stage-one-decentralization","experimental/fault-proof/stage-one/dispute-game-interface.html#dispute-game-interface","experimental/fault-proof/stage-one/dispute-game-interface.html#overview","experimental/fault-proof/stage-one/dispute-game-interface.html#types","experimental/fault-proof/stage-one/dispute-game-interface.html#disputegamefactory-interface","experimental/fault-proof/stage-one/dispute-game-interface.html#disputegame-interface","experimental/fault-proof/stage-one/fault-dispute-game.html#fault-dispute-game","experimental/fault-proof/stage-one/fault-dispute-game.html#overview","experimental/fault-proof/stage-one/fault-dispute-game.html#definitions","experimental/fault-proof/stage-one/fault-dispute-game.html#virtual-machine-vm","experimental/fault-proof/stage-one/fault-dispute-game.html#preimageoracle","experimental/fault-proof/stage-one/fault-dispute-game.html#execution-trace","experimental/fault-proof/stage-one/fault-dispute-game.html#claims","experimental/fault-proof/stage-one/fault-dispute-game.html#dag","experimental/fault-proof/stage-one/fault-dispute-game.html#subgame","experimental/fault-proof/stage-one/fault-dispute-game.html#game-tree","experimental/fault-proof/stage-one/fault-dispute-game.html#position","experimental/fault-proof/stage-one/fault-dispute-game.html#game_duration","experimental/fault-proof/stage-one/fault-dispute-game.html#core-game-mechanics","experimental/fault-proof/stage-one/fault-dispute-game.html#actors","experimental/fault-proof/stage-one/fault-dispute-game.html#moves","experimental/fault-proof/stage-one/fault-dispute-game.html#step","experimental/fault-proof/stage-one/fault-dispute-game.html#step-types","experimental/fault-proof/stage-one/fault-dispute-game.html#preimageoracle-interaction","experimental/fault-proof/stage-one/fault-dispute-game.html#team-dynamics","experimental/fault-proof/stage-one/fault-dispute-game.html#game-clock","experimental/fault-proof/stage-one/fault-dispute-game.html#resolution","experimental/fault-proof/stage-one/honest-challenger-fdg.html#honest-challenger-fault-dispute-game","experimental/fault-proof/stage-one/honest-challenger-fdg.html#overview","experimental/fault-proof/stage-one/honest-challenger-fdg.html#invariants","experimental/fault-proof/stage-one/honest-challenger-fdg.html#fault-dispute-game-responses","experimental/fault-proof/stage-one/honest-challenger-fdg.html#moves","experimental/fault-proof/stage-one/honest-challenger-fdg.html#steps","experimental/fault-proof/stage-one/honest-challenger-fdg.html#timeliness","experimental/fault-proof/stage-one/honest-challenger-fdg.html#resolution","experimental/fault-proof/stage-one/bond-incentives.html#bond-incentives","experimental/fault-proof/stage-one/bond-incentives.html#overview","experimental/fault-proof/stage-one/bond-incentives.html#moves","experimental/fault-proof/stage-one/bond-incentives.html#subgame-resolution","experimental/fault-proof/stage-one/bond-incentives.html#leftmost-claim-incentives","experimental/fault-proof/stage-one/bond-incentives.html#fault-proof-mainnet-incentives","experimental/fault-proof/stage-one/bond-incentives.html#authenticated-roles","experimental/fault-proof/stage-one/bond-incentives.html#base-fee-assumption","experimental/fault-proof/stage-one/bond-incentives.html#bond-scaling","experimental/fault-proof/stage-one/bond-incentives.html#required-bond-formula","experimental/fault-proof/stage-one/bond-incentives.html#delayedweth","experimental/fault-proof/stage-one/bridge-integration.html#bridge-integration","experimental/fault-proof/stage-one/bridge-integration.html#overview","experimental/fault-proof/stage-one/bridge-integration.html#legacy-semantics","experimental/fault-proof/stage-one/bridge-integration.html#fpac-optimismportal-mods-specification","experimental/fault-proof/stage-one/bridge-integration.html#roles---optimismportal","experimental/fault-proof/stage-one/bridge-integration.html#new-deployconfig-variables","experimental/fault-proof/stage-one/bridge-integration.html#data-structures","experimental/fault-proof/stage-one/bridge-integration.html#state-layout","experimental/fault-proof/stage-one/bridge-integration.html#provewithdrawaltransaction-modifications","experimental/fault-proof/stage-one/bridge-integration.html#finalizewithdrawaltransaction-modifications","experimental/fault-proof/stage-one/bridge-integration.html#air-gap","experimental/fault-proof/stage-one/bridge-integration.html#proxy-upgrade","experimental/fault-proof/stage-one/bridge-integration.html#permissioned-faultdisputegame","experimental/fault-proof/stage-one/bridge-integration.html#roles---permissioneddisputegame","experimental/fault-proof/stage-one/bridge-integration.html#modifications","experimental/plasma.html#plasma-mode","experimental/plasma.html#overview","experimental/plasma.html#da-storage","experimental/plasma.html#input-commitment-submission","experimental/plasma.html#data-availability-challenge-contract","experimental/plasma.html#parameters","experimental/plasma.html#derivation","experimental/plasma.html#fault-proof","experimental/plasma.html#l2-input","experimental/plasma.html#l1-challenge-status","experimental/plasma.html#safety-and-finality","experimental/plasma.html#security-considerations","interop/overview.html#interop","interop/overview.html#specifications","interop/dependency_set.html#the-dependency-set","interop/dependency_set.html#chain-id","interop/dependency_set.html#updating-the-dependency-set","interop/dependency_set.html#dependency_set-updatetype","interop/dependency_set.html#security-considerations","interop/dependency_set.html#dynamic-size-of-l1-attributes-transaction","interop/dependency_set.html#maximum-size-of-the-dependency-set","interop/dependency_set.html#layer-1-as-part-of-the-dependency-set","interop/messaging.html#messaging","interop/messaging.html#message","interop/messaging.html#message-payload","interop/messaging.html#message-identifier","interop/messaging.html#messaging-ends","interop/messaging.html#initiating-messages","interop/messaging.html#executing-messages","interop/messaging.html#messaging-invariants","interop/messaging.html#timestamp-invariant","interop/messaging.html#chainid-invariant","interop/messaging.html#only-eoa-invariant","interop/messaging.html#message-expiry-invariant","interop/messaging.html#message-graph","interop/messaging.html#invalid-messages","interop/messaging.html#intra-block-messaging-cycles","interop/messaging.html#resolving-cross-chain-safety","interop/messaging.html#horizon-timestamp","interop/messaging.html#pruning-the-graph","interop/messaging.html#bounding-the-graph","interop/messaging.html#security-considerations","interop/messaging.html#cyclic-dependencies","interop/messaging.html#transitive-dependencies","interop/predeploys.html#predeploys","interop/predeploys.html#crossl2inbox","interop/predeploys.html#message-execution-arguments","interop/predeploys.html#reference-implementation","interop/predeploys.html#identifier-getters","interop/predeploys.html#l2tol2crossdomainmessenger","interop/predeploys.html#relaymessage-invariants","interop/predeploys.html#message-versioning","interop/predeploys.html#no-native-support-for-cross-chain-ether-sends","interop/predeploys.html#interfaces","interop/predeploys.html#l1block","interop/predeploys.html#l1attributes","interop/predeploys.html#security-considerations","interop/execution.html#execution","interop/execution.html#overview","interop/execution.html#security-considerations","interop/sequencer.html#sequencer","interop/sequencer.html#sequencer-policy","interop/sequencer.html#block-building","interop/sequencer.html#static-analysis","interop/sequencer.html#dependency-confirmations","interop/sequencer.html#sponsorship","interop/sequencer.html#security-considerations","interop/sequencer.html#cross-chain-message-latency","interop/verifier.html#verifier","interop/verifier.html#derivation-pipeline","interop/verifier.html#depositing-an-executing-message","interop/verifier.html#safety","interop/verifier.html#honest-verifier","interop/verifier.html#security-considerations","interop/verifier.html#forced-inclusion-of-cross-chain-messages","interop/verifier.html#reliance-on-history","interop/rollup_node_p2p.html#p2p-networking","interop/rollup_node_p2p.html#security-considerations","interop/fault_proof.html#fault-proof","interop/fault_proof.html#security-considerations","interop/fault_proof.html#cascading-dependencies","interop/upgrade.html#interop-network-upgrade","interop/upgrade.html#security-considerations","glossary.html#glossary","glossary.html#general-terms","glossary.html#layer-1-l1","glossary.html#layer-2-l2","glossary.html#block","glossary.html#eoa","glossary.html#merkle-patricia-trie","glossary.html#chain-re-organization","glossary.html#predeployed-contract-predeploy","glossary.html#preinstalled-contract-preinstall","glossary.html#receipt","glossary.html#transaction-type","glossary.html#fork-choice-rule","glossary.html#priority-gas-auction","glossary.html#sequencing","glossary.html#sequencer","glossary.html#sequencing-window","glossary.html#sequencing-epoch","glossary.html#l1-origin","glossary.html#deposits","glossary.html#deposited-transaction","glossary.html#l1-attributes-deposited-transaction","glossary.html#user-deposited-transaction","glossary.html#depositing-call","glossary.html#depositing-transaction","glossary.html#depositor","glossary.html#deposited-transaction-type","glossary.html#deposit-contract","glossary.html#withdrawals","glossary.html#relayer","glossary.html#finalization-period","glossary.html#batch-submission","glossary.html#data-availability","glossary.html#data-availability-provider","glossary.html#sequencer-batch","glossary.html#channel","glossary.html#channel-frame","glossary.html#batcher","glossary.html#batcher-transaction","glossary.html#channel-timeout","glossary.html#l2-output-root-proposals","glossary.html#proposer","glossary.html#l2-chain-derivation","glossary.html#l2-derivation-inputs","glossary.html#system-configuration","glossary.html#payload-attributes","glossary.html#l2-genesis-block","glossary.html#l2-chain-inception","glossary.html#safe-l2-block","glossary.html#safe-l2-head","glossary.html#unsafe-l2-block","glossary.html#unsafe-l2-head","glossary.html#unsafe-block-consolidation","glossary.html#finalized-l2-head","glossary.html#other-l2-chain-concepts","glossary.html#address-aliasing","glossary.html#rollup-node","glossary.html#rollup-driver","glossary.html#l1-attributes-predeployed-contract","glossary.html#l2-output-root","glossary.html#l2-output-oracle-contract","glossary.html#validator","glossary.html#fault-proof","glossary.html#time-slot","glossary.html#block-time","glossary.html#unsafe-sync","glossary.html#execution-engine-concepts","glossary.html#execution-engine"],"index":{"documentStore":{"docInfo":{"0":{"body":21,"breadcrumbs":4,"title":3},"1":{"body":31,"breadcrumbs":3,"title":2},"10":{"body":140,"breadcrumbs":3,"title":2},"100":{"body":36,"breadcrumbs":7,"title":1},"101":{"body":72,"breadcrumbs":7,"title":1},"102":{"body":99,"breadcrumbs":7,"title":1},"103":{"body":53,"breadcrumbs":7,"title":1},"104":{"body":99,"breadcrumbs":9,"title":3},"105":{"body":47,"breadcrumbs":9,"title":3},"106":{"body":97,"breadcrumbs":10,"title":4},"107":{"body":80,"breadcrumbs":10,"title":4},"108":{"body":20,"breadcrumbs":9,"title":3},"109":{"body":26,"breadcrumbs":7,"title":1},"11":{"body":8,"breadcrumbs":3,"title":2},"110":{"body":26,"breadcrumbs":7,"title":1},"111":{"body":85,"breadcrumbs":7,"title":1},"112":{"body":13,"breadcrumbs":10,"title":4},"113":{"body":112,"breadcrumbs":7,"title":1},"114":{"body":57,"breadcrumbs":9,"title":3},"115":{"body":61,"breadcrumbs":9,"title":3},"116":{"body":58,"breadcrumbs":13,"title":4},"117":{"body":143,"breadcrumbs":10,"title":1},"118":{"body":0,"breadcrumbs":11,"title":2},"119":{"body":69,"breadcrumbs":10,"title":1},"12":{"body":32,"breadcrumbs":2,"title":1},"120":{"body":147,"breadcrumbs":10,"title":1},"121":{"body":576,"breadcrumbs":10,"title":1},"122":{"body":9,"breadcrumbs":11,"title":2},"123":{"body":5,"breadcrumbs":10,"title":1},"124":{"body":4,"breadcrumbs":10,"title":1},"125":{"body":4,"breadcrumbs":10,"title":1},"126":{"body":71,"breadcrumbs":11,"title":2},"127":{"body":39,"breadcrumbs":11,"title":2},"128":{"body":233,"breadcrumbs":11,"title":2},"129":{"body":167,"breadcrumbs":11,"title":2},"13":{"body":97,"breadcrumbs":2,"title":1},"130":{"body":255,"breadcrumbs":10,"title":1},"131":{"body":133,"breadcrumbs":11,"title":4},"132":{"body":420,"breadcrumbs":8,"title":1},"133":{"body":59,"breadcrumbs":10,"title":3},"134":{"body":0,"breadcrumbs":9,"title":2},"135":{"body":147,"breadcrumbs":11,"title":4},"136":{"body":516,"breadcrumbs":11,"title":4},"137":{"body":58,"breadcrumbs":10,"title":3},"138":{"body":115,"breadcrumbs":9,"title":2},"139":{"body":124,"breadcrumbs":9,"title":2},"14":{"body":29,"breadcrumbs":2,"title":1},"140":{"body":103,"breadcrumbs":9,"title":2},"141":{"body":33,"breadcrumbs":8,"title":1},"142":{"body":143,"breadcrumbs":11,"title":4},"143":{"body":47,"breadcrumbs":9,"title":2},"144":{"body":446,"breadcrumbs":9,"title":2},"145":{"body":20,"breadcrumbs":9,"title":2},"146":{"body":309,"breadcrumbs":9,"title":2},"147":{"body":17,"breadcrumbs":11,"title":4},"148":{"body":480,"breadcrumbs":9,"title":2},"149":{"body":57,"breadcrumbs":10,"title":3},"15":{"body":17,"breadcrumbs":4,"title":3},"150":{"body":874,"breadcrumbs":9,"title":2},"151":{"body":581,"breadcrumbs":9,"title":2},"152":{"body":43,"breadcrumbs":10,"title":3},"153":{"body":140,"breadcrumbs":10,"title":3},"154":{"body":700,"breadcrumbs":11,"title":4},"155":{"body":65,"breadcrumbs":11,"title":4},"156":{"body":70,"breadcrumbs":10,"title":2},"157":{"body":150,"breadcrumbs":9,"title":1},"158":{"body":314,"breadcrumbs":11,"title":3},"159":{"body":77,"breadcrumbs":12,"title":4},"16":{"body":42,"breadcrumbs":4,"title":3},"160":{"body":74,"breadcrumbs":12,"title":4},"161":{"body":41,"breadcrumbs":12,"title":4},"162":{"body":0,"breadcrumbs":10,"title":2},"163":{"body":27,"breadcrumbs":13,"title":5},"164":{"body":19,"breadcrumbs":12,"title":4},"165":{"body":20,"breadcrumbs":13,"title":5},"166":{"body":24,"breadcrumbs":13,"title":5},"167":{"body":44,"breadcrumbs":13,"title":5},"168":{"body":64,"breadcrumbs":13,"title":5},"169":{"body":38,"breadcrumbs":14,"title":6},"17":{"body":27,"breadcrumbs":2,"title":1},"170":{"body":75,"breadcrumbs":11,"title":3},"171":{"body":141,"breadcrumbs":12,"title":4},"172":{"body":0,"breadcrumbs":9,"title":1},"173":{"body":18,"breadcrumbs":12,"title":4},"174":{"body":482,"breadcrumbs":10,"title":2},"175":{"body":101,"breadcrumbs":9,"title":1},"176":{"body":3,"breadcrumbs":8,"title":2},"177":{"body":116,"breadcrumbs":7,"title":1},"178":{"body":44,"breadcrumbs":9,"title":3},"179":{"body":50,"breadcrumbs":9,"title":3},"18":{"body":28,"breadcrumbs":3,"title":2},"180":{"body":35,"breadcrumbs":9,"title":3},"181":{"body":94,"breadcrumbs":8,"title":2},"182":{"body":52,"breadcrumbs":8,"title":2},"183":{"body":51,"breadcrumbs":10,"title":4},"184":{"body":23,"breadcrumbs":7,"title":1},"185":{"body":120,"breadcrumbs":8,"title":2},"186":{"body":29,"breadcrumbs":10,"title":4},"187":{"body":0,"breadcrumbs":8,"title":2},"188":{"body":22,"breadcrumbs":11,"title":5},"189":{"body":63,"breadcrumbs":10,"title":4},"19":{"body":51,"breadcrumbs":5,"title":2},"190":{"body":74,"breadcrumbs":10,"title":4},"191":{"body":22,"breadcrumbs":5,"title":1},"192":{"body":168,"breadcrumbs":5,"title":1},"193":{"body":71,"breadcrumbs":5,"title":1},"194":{"body":33,"breadcrumbs":5,"title":1},"195":{"body":48,"breadcrumbs":5,"title":1},"196":{"body":41,"breadcrumbs":5,"title":1},"197":{"body":19,"breadcrumbs":5,"title":1},"198":{"body":59,"breadcrumbs":5,"title":1},"199":{"body":84,"breadcrumbs":5,"title":1},"2":{"body":25,"breadcrumbs":2,"title":1},"20":{"body":98,"breadcrumbs":6,"title":3},"200":{"body":30,"breadcrumbs":5,"title":1},"201":{"body":141,"breadcrumbs":5,"title":1},"202":{"body":16,"breadcrumbs":5,"title":1},"203":{"body":18,"breadcrumbs":5,"title":1},"204":{"body":29,"breadcrumbs":5,"title":1},"205":{"body":43,"breadcrumbs":5,"title":1},"206":{"body":14,"breadcrumbs":5,"title":1},"207":{"body":25,"breadcrumbs":5,"title":1},"208":{"body":21,"breadcrumbs":5,"title":1},"209":{"body":13,"breadcrumbs":5,"title":1},"21":{"body":1,"breadcrumbs":4,"title":1},"210":{"body":10,"breadcrumbs":5,"title":1},"211":{"body":127,"breadcrumbs":5,"title":1},"212":{"body":20,"breadcrumbs":5,"title":1},"213":{"body":80,"breadcrumbs":5,"title":1},"214":{"body":18,"breadcrumbs":5,"title":1},"215":{"body":16,"breadcrumbs":5,"title":1},"216":{"body":8,"breadcrumbs":5,"title":1},"217":{"body":9,"breadcrumbs":5,"title":1},"218":{"body":51,"breadcrumbs":5,"title":1},"219":{"body":24,"breadcrumbs":5,"title":1},"22":{"body":88,"breadcrumbs":5,"title":2},"220":{"body":88,"breadcrumbs":8,"title":4},"221":{"body":22,"breadcrumbs":5,"title":1},"222":{"body":11,"breadcrumbs":7,"title":3},"223":{"body":13,"breadcrumbs":7,"title":3},"224":{"body":13,"breadcrumbs":8,"title":2},"225":{"body":14,"breadcrumbs":7,"title":1},"226":{"body":25,"breadcrumbs":8,"title":2},"227":{"body":29,"breadcrumbs":9,"title":3},"228":{"body":70,"breadcrumbs":7,"title":1},"229":{"body":55,"breadcrumbs":8,"title":2},"23":{"body":80,"breadcrumbs":5,"title":2},"230":{"body":57,"breadcrumbs":7,"title":1},"231":{"body":123,"breadcrumbs":8,"title":2},"232":{"body":326,"breadcrumbs":9,"title":3},"233":{"body":36,"breadcrumbs":9,"title":3},"234":{"body":42,"breadcrumbs":8,"title":2},"235":{"body":88,"breadcrumbs":9,"title":3},"236":{"body":47,"breadcrumbs":9,"title":3},"237":{"body":58,"breadcrumbs":8,"title":2},"238":{"body":72,"breadcrumbs":12,"title":6},"239":{"body":100,"breadcrumbs":11,"title":5},"24":{"body":56,"breadcrumbs":5,"title":2},"240":{"body":102,"breadcrumbs":10,"title":4},"241":{"body":0,"breadcrumbs":10,"title":4},"242":{"body":158,"breadcrumbs":7,"title":1},"243":{"body":88,"breadcrumbs":7,"title":1},"244":{"body":21,"breadcrumbs":7,"title":1},"245":{"body":128,"breadcrumbs":7,"title":1},"246":{"body":7,"breadcrumbs":7,"title":1},"247":{"body":31,"breadcrumbs":7,"title":2},"248":{"body":19,"breadcrumbs":6,"title":1},"249":{"body":8,"breadcrumbs":10,"title":5},"25":{"body":0,"breadcrumbs":6,"title":3},"250":{"body":43,"breadcrumbs":7,"title":2},"251":{"body":287,"breadcrumbs":6,"title":1},"252":{"body":31,"breadcrumbs":7,"title":2},"253":{"body":51,"breadcrumbs":7,"title":2},"254":{"body":33,"breadcrumbs":8,"title":3},"255":{"body":219,"breadcrumbs":8,"title":3},"256":{"body":114,"breadcrumbs":5,"title":2},"257":{"body":77,"breadcrumbs":4,"title":1},"258":{"body":52,"breadcrumbs":6,"title":3},"259":{"body":548,"breadcrumbs":7,"title":4},"26":{"body":69,"breadcrumbs":4,"title":1},"260":{"body":51,"breadcrumbs":4,"title":1},"261":{"body":215,"breadcrumbs":4,"title":1},"262":{"body":128,"breadcrumbs":6,"title":3},"263":{"body":55,"breadcrumbs":6,"title":3},"264":{"body":146,"breadcrumbs":4,"title":1},"265":{"body":252,"breadcrumbs":5,"title":2},"266":{"body":142,"breadcrumbs":4,"title":1},"267":{"body":190,"breadcrumbs":7,"title":4},"268":{"body":55,"breadcrumbs":5,"title":2},"269":{"body":104,"breadcrumbs":6,"title":3},"27":{"body":326,"breadcrumbs":5,"title":2},"270":{"body":88,"breadcrumbs":8,"title":5},"271":{"body":24,"breadcrumbs":12,"title":5},"272":{"body":75,"breadcrumbs":8,"title":1},"273":{"body":116,"breadcrumbs":8,"title":1},"274":{"body":51,"breadcrumbs":9,"title":2},"275":{"body":59,"breadcrumbs":8,"title":1},"276":{"body":82,"breadcrumbs":8,"title":1},"277":{"body":63,"breadcrumbs":9,"title":2},"278":{"body":165,"breadcrumbs":8,"title":1},"279":{"body":126,"breadcrumbs":8,"title":1},"28":{"body":139,"breadcrumbs":5,"title":2},"280":{"body":26,"breadcrumbs":9,"title":2},"281":{"body":22,"breadcrumbs":9,"title":2},"282":{"body":162,"breadcrumbs":10,"title":3},"283":{"body":68,"breadcrumbs":8,"title":1},"284":{"body":19,"breadcrumbs":9,"title":3},"285":{"body":8,"breadcrumbs":12,"title":3},"286":{"body":74,"breadcrumbs":10,"title":1},"287":{"body":145,"breadcrumbs":10,"title":1},"288":{"body":546,"breadcrumbs":11,"title":2},"289":{"body":275,"breadcrumbs":11,"title":2},"29":{"body":6,"breadcrumbs":6,"title":2},"290":{"body":34,"breadcrumbs":12,"title":3},"291":{"body":79,"breadcrumbs":10,"title":1},"292":{"body":0,"breadcrumbs":10,"title":1},"293":{"body":44,"breadcrumbs":12,"title":3},"294":{"body":31,"breadcrumbs":10,"title":1},"295":{"body":25,"breadcrumbs":11,"title":2},"296":{"body":63,"breadcrumbs":10,"title":1},"297":{"body":34,"breadcrumbs":10,"title":1},"298":{"body":80,"breadcrumbs":10,"title":1},"299":{"body":68,"breadcrumbs":11,"title":2},"3":{"body":172,"breadcrumbs":3,"title":2},"30":{"body":186,"breadcrumbs":5,"title":1},"300":{"body":110,"breadcrumbs":10,"title":1},"301":{"body":17,"breadcrumbs":10,"title":1},"302":{"body":22,"breadcrumbs":12,"title":3},"303":{"body":32,"breadcrumbs":10,"title":1},"304":{"body":214,"breadcrumbs":10,"title":1},"305":{"body":122,"breadcrumbs":10,"title":1},"306":{"body":123,"breadcrumbs":11,"title":2},"307":{"body":427,"breadcrumbs":11,"title":2},"308":{"body":58,"breadcrumbs":11,"title":2},"309":{"body":51,"breadcrumbs":11,"title":2},"31":{"body":24,"breadcrumbs":6,"title":2},"310":{"body":162,"breadcrumbs":10,"title":1},"311":{"body":12,"breadcrumbs":16,"title":5},"312":{"body":90,"breadcrumbs":12,"title":1},"313":{"body":39,"breadcrumbs":12,"title":1},"314":{"body":89,"breadcrumbs":15,"title":4},"315":{"body":53,"breadcrumbs":12,"title":1},"316":{"body":64,"breadcrumbs":12,"title":1},"317":{"body":11,"breadcrumbs":12,"title":1},"318":{"body":64,"breadcrumbs":12,"title":1},"319":{"body":30,"breadcrumbs":13,"title":2},"32":{"body":8,"breadcrumbs":5,"title":1},"320":{"body":65,"breadcrumbs":12,"title":1},"321":{"body":60,"breadcrumbs":12,"title":1},"322":{"body":42,"breadcrumbs":13,"title":2},"323":{"body":53,"breadcrumbs":14,"title":3},"324":{"body":15,"breadcrumbs":15,"title":4},"325":{"body":27,"breadcrumbs":13,"title":2},"326":{"body":37,"breadcrumbs":14,"title":3},"327":{"body":90,"breadcrumbs":13,"title":2},"328":{"body":23,"breadcrumbs":14,"title":3},"329":{"body":371,"breadcrumbs":12,"title":1},"33":{"body":17,"breadcrumbs":8,"title":3},"330":{"body":54,"breadcrumbs":10,"title":2},"331":{"body":27,"breadcrumbs":9,"title":1},"332":{"body":151,"breadcrumbs":10,"title":2},"333":{"body":0,"breadcrumbs":12,"title":4},"334":{"body":10,"breadcrumbs":10,"title":2},"335":{"body":39,"breadcrumbs":11,"title":3},"336":{"body":42,"breadcrumbs":10,"title":2},"337":{"body":96,"breadcrumbs":10,"title":2},"338":{"body":178,"breadcrumbs":10,"title":2},"339":{"body":122,"breadcrumbs":10,"title":2},"34":{"body":186,"breadcrumbs":6,"title":1},"340":{"body":168,"breadcrumbs":10,"title":2},"341":{"body":23,"breadcrumbs":10,"title":2},"342":{"body":43,"breadcrumbs":10,"title":2},"343":{"body":12,"breadcrumbs":10,"title":2},"344":{"body":43,"breadcrumbs":9,"title":1},"345":{"body":28,"breadcrumbs":4,"title":2},"346":{"body":72,"breadcrumbs":3,"title":1},"347":{"body":68,"breadcrumbs":4,"title":2},"348":{"body":105,"breadcrumbs":5,"title":3},"349":{"body":0,"breadcrumbs":6,"title":4},"35":{"body":75,"breadcrumbs":7,"title":2},"350":{"body":277,"breadcrumbs":3,"title":1},"351":{"body":351,"breadcrumbs":3,"title":1},"352":{"body":21,"breadcrumbs":4,"title":2},"353":{"body":7,"breadcrumbs":5,"title":3},"354":{"body":9,"breadcrumbs":7,"title":5},"355":{"body":106,"breadcrumbs":4,"title":2},"356":{"body":63,"breadcrumbs":4,"title":2},"357":{"body":134,"breadcrumbs":3,"title":1},"358":{"body":59,"breadcrumbs":3,"title":1},"359":{"body":124,"breadcrumbs":6,"title":2},"36":{"body":13,"breadcrumbs":6,"title":1},"360":{"body":69,"breadcrumbs":6,"title":2},"361":{"body":32,"breadcrumbs":7,"title":3},"362":{"body":17,"breadcrumbs":6,"title":2},"363":{"body":0,"breadcrumbs":6,"title":2},"364":{"body":45,"breadcrumbs":9,"title":5},"365":{"body":31,"breadcrumbs":8,"title":4},"366":{"body":46,"breadcrumbs":9,"title":5},"367":{"body":52,"breadcrumbs":4,"title":1},"368":{"body":6,"breadcrumbs":4,"title":1},"369":{"body":37,"breadcrumbs":5,"title":2},"37":{"body":36,"breadcrumbs":7,"title":2},"370":{"body":120,"breadcrumbs":5,"title":2},"371":{"body":0,"breadcrumbs":5,"title":2},"372":{"body":44,"breadcrumbs":5,"title":2},"373":{"body":32,"breadcrumbs":5,"title":2},"374":{"body":51,"breadcrumbs":5,"title":2},"375":{"body":22,"breadcrumbs":5,"title":2},"376":{"body":21,"breadcrumbs":5,"title":2},"377":{"body":101,"breadcrumbs":5,"title":2},"378":{"body":59,"breadcrumbs":6,"title":3},"379":{"body":25,"breadcrumbs":5,"title":2},"38":{"body":6,"breadcrumbs":8,"title":3},"380":{"body":84,"breadcrumbs":5,"title":2},"381":{"body":28,"breadcrumbs":7,"title":4},"382":{"body":64,"breadcrumbs":7,"title":4},"383":{"body":15,"breadcrumbs":5,"title":2},"384":{"body":62,"breadcrumbs":5,"title":2},"385":{"body":70,"breadcrumbs":5,"title":2},"386":{"body":0,"breadcrumbs":5,"title":2},"387":{"body":27,"breadcrumbs":5,"title":2},"388":{"body":20,"breadcrumbs":5,"title":2},"389":{"body":49,"breadcrumbs":4,"title":1},"39":{"body":8,"breadcrumbs":8,"title":3},"390":{"body":25,"breadcrumbs":4,"title":1},"391":{"body":136,"breadcrumbs":6,"title":3},"392":{"body":53,"breadcrumbs":5,"title":2},"393":{"body":11,"breadcrumbs":5,"title":2},"394":{"body":41,"breadcrumbs":4,"title":1},"395":{"body":12,"breadcrumbs":5,"title":2},"396":{"body":17,"breadcrumbs":5,"title":2},"397":{"body":22,"breadcrumbs":9,"title":6},"398":{"body":177,"breadcrumbs":4,"title":1},"399":{"body":52,"breadcrumbs":4,"title":1},"4":{"body":50,"breadcrumbs":2,"title":1},"40":{"body":45,"breadcrumbs":8,"title":3},"400":{"body":85,"breadcrumbs":4,"title":1},"401":{"body":1,"breadcrumbs":5,"title":2},"402":{"body":5,"breadcrumbs":4,"title":1},"403":{"body":98,"breadcrumbs":4,"title":1},"404":{"body":1,"breadcrumbs":5,"title":2},"405":{"body":29,"breadcrumbs":4,"title":1},"406":{"body":39,"breadcrumbs":5,"title":2},"407":{"body":14,"breadcrumbs":5,"title":2},"408":{"body":35,"breadcrumbs":5,"title":2},"409":{"body":315,"breadcrumbs":5,"title":2},"41":{"body":70,"breadcrumbs":6,"title":1},"410":{"body":25,"breadcrumbs":4,"title":1},"411":{"body":0,"breadcrumbs":5,"title":2},"412":{"body":33,"breadcrumbs":7,"title":4},"413":{"body":31,"breadcrumbs":4,"title":1},"414":{"body":106,"breadcrumbs":5,"title":2},"415":{"body":78,"breadcrumbs":6,"title":3},"416":{"body":326,"breadcrumbs":4,"title":1},"417":{"body":26,"breadcrumbs":5,"title":2},"418":{"body":0,"breadcrumbs":5,"title":2},"419":{"body":113,"breadcrumbs":8,"title":5},"42":{"body":40,"breadcrumbs":6,"title":1},"420":{"body":38,"breadcrumbs":5,"title":2},"421":{"body":58,"breadcrumbs":7,"title":2},"422":{"body":1,"breadcrumbs":7,"title":2},"423":{"body":26,"breadcrumbs":6,"title":2},"424":{"body":1,"breadcrumbs":6,"title":2},"425":{"body":17,"breadcrumbs":6,"title":2},"426":{"body":85,"breadcrumbs":6,"title":3},"427":{"body":1,"breadcrumbs":5,"title":2},"428":{"body":155,"breadcrumbs":2,"title":1},"429":{"body":0,"breadcrumbs":3,"title":2},"43":{"body":206,"breadcrumbs":8,"title":3},"430":{"body":9,"breadcrumbs":4,"title":3},"431":{"body":12,"breadcrumbs":4,"title":3},"432":{"body":62,"breadcrumbs":2,"title":1},"433":{"body":12,"breadcrumbs":2,"title":1},"434":{"body":34,"breadcrumbs":4,"title":3},"435":{"body":38,"breadcrumbs":4,"title":3},"436":{"body":13,"breadcrumbs":4,"title":3},"437":{"body":27,"breadcrumbs":4,"title":3},"438":{"body":45,"breadcrumbs":2,"title":1},"439":{"body":19,"breadcrumbs":3,"title":2},"44":{"body":114,"breadcrumbs":8,"title":3},"440":{"body":34,"breadcrumbs":4,"title":3},"441":{"body":57,"breadcrumbs":4,"title":3},"442":{"body":33,"breadcrumbs":2,"title":1},"443":{"body":31,"breadcrumbs":2,"title":1},"444":{"body":50,"breadcrumbs":3,"title":2},"445":{"body":36,"breadcrumbs":3,"title":2},"446":{"body":9,"breadcrumbs":3,"title":2},"447":{"body":80,"breadcrumbs":2,"title":1},"448":{"body":34,"breadcrumbs":3,"title":2},"449":{"body":41,"breadcrumbs":5,"title":4},"45":{"body":57,"breadcrumbs":8,"title":3},"450":{"body":21,"breadcrumbs":4,"title":3},"451":{"body":20,"breadcrumbs":3,"title":2},"452":{"body":9,"breadcrumbs":3,"title":2},"453":{"body":15,"breadcrumbs":2,"title":1},"454":{"body":21,"breadcrumbs":4,"title":3},"455":{"body":46,"breadcrumbs":3,"title":2},"456":{"body":53,"breadcrumbs":2,"title":1},"457":{"body":10,"breadcrumbs":2,"title":1},"458":{"body":30,"breadcrumbs":3,"title":2},"459":{"body":0,"breadcrumbs":3,"title":2},"46":{"body":24,"breadcrumbs":9,"title":4},"460":{"body":48,"breadcrumbs":3,"title":2},"461":{"body":39,"breadcrumbs":4,"title":3},"462":{"body":54,"breadcrumbs":3,"title":2},"463":{"body":77,"breadcrumbs":2,"title":1},"464":{"body":22,"breadcrumbs":3,"title":2},"465":{"body":40,"breadcrumbs":2,"title":1},"466":{"body":50,"breadcrumbs":3,"title":2},"467":{"body":97,"breadcrumbs":3,"title":2},"468":{"body":0,"breadcrumbs":5,"title":4},"469":{"body":36,"breadcrumbs":2,"title":1},"47":{"body":370,"breadcrumbs":6,"title":1},"470":{"body":20,"breadcrumbs":4,"title":3},"471":{"body":38,"breadcrumbs":4,"title":3},"472":{"body":29,"breadcrumbs":3,"title":2},"473":{"body":45,"breadcrumbs":3,"title":2},"474":{"body":121,"breadcrumbs":4,"title":3},"475":{"body":21,"breadcrumbs":4,"title":3},"476":{"body":18,"breadcrumbs":4,"title":3},"477":{"body":10,"breadcrumbs":4,"title":3},"478":{"body":25,"breadcrumbs":4,"title":3},"479":{"body":10,"breadcrumbs":4,"title":3},"48":{"body":146,"breadcrumbs":7,"title":2},"480":{"body":49,"breadcrumbs":4,"title":3},"481":{"body":21,"breadcrumbs":4,"title":3},"482":{"body":0,"breadcrumbs":4,"title":3},"483":{"body":17,"breadcrumbs":3,"title":2},"484":{"body":91,"breadcrumbs":3,"title":2},"485":{"body":26,"breadcrumbs":3,"title":2},"486":{"body":22,"breadcrumbs":5,"title":4},"487":{"body":14,"breadcrumbs":4,"title":3},"488":{"body":7,"breadcrumbs":5,"title":4},"489":{"body":46,"breadcrumbs":2,"title":1},"49":{"body":70,"breadcrumbs":9,"title":4},"490":{"body":14,"breadcrumbs":3,"title":2},"491":{"body":32,"breadcrumbs":3,"title":2},"492":{"body":36,"breadcrumbs":3,"title":2},"493":{"body":21,"breadcrumbs":3,"title":2},"494":{"body":0,"breadcrumbs":4,"title":3},"495":{"body":71,"breadcrumbs":3,"title":2},"5":{"body":0,"breadcrumbs":2,"title":1},"50":{"body":231,"breadcrumbs":10,"title":5},"51":{"body":17,"breadcrumbs":8,"title":3},"52":{"body":19,"breadcrumbs":9,"title":4},"53":{"body":315,"breadcrumbs":9,"title":4},"54":{"body":92,"breadcrumbs":8,"title":3},"55":{"body":121,"breadcrumbs":7,"title":2},"56":{"body":35,"breadcrumbs":6,"title":1},"57":{"body":132,"breadcrumbs":6,"title":1},"58":{"body":8,"breadcrumbs":7,"title":2},"59":{"body":17,"breadcrumbs":6,"title":1},"6":{"body":47,"breadcrumbs":3,"title":2},"60":{"body":133,"breadcrumbs":6,"title":1},"61":{"body":81,"breadcrumbs":7,"title":2},"62":{"body":60,"breadcrumbs":8,"title":3},"63":{"body":54,"breadcrumbs":8,"title":3},"64":{"body":97,"breadcrumbs":8,"title":3},"65":{"body":0,"breadcrumbs":7,"title":2},"66":{"body":79,"breadcrumbs":9,"title":4},"67":{"body":25,"breadcrumbs":11,"title":6},"68":{"body":63,"breadcrumbs":10,"title":5},"69":{"body":17,"breadcrumbs":11,"title":4},"7":{"body":46,"breadcrumbs":3,"title":2},"70":{"body":122,"breadcrumbs":8,"title":1},"71":{"body":41,"breadcrumbs":9,"title":2},"72":{"body":18,"breadcrumbs":9,"title":2},"73":{"body":294,"breadcrumbs":10,"title":3},"74":{"body":79,"breadcrumbs":11,"title":4},"75":{"body":79,"breadcrumbs":10,"title":3},"76":{"body":23,"breadcrumbs":10,"title":5},"77":{"body":74,"breadcrumbs":6,"title":1},"78":{"body":36,"breadcrumbs":9,"title":4},"79":{"body":112,"breadcrumbs":7,"title":2},"8":{"body":27,"breadcrumbs":3,"title":2},"80":{"body":128,"breadcrumbs":9,"title":4},"81":{"body":153,"breadcrumbs":10,"title":5},"82":{"body":17,"breadcrumbs":6,"title":1},"83":{"body":0,"breadcrumbs":7,"title":2},"84":{"body":36,"breadcrumbs":7,"title":2},"85":{"body":79,"breadcrumbs":9,"title":3},"86":{"body":29,"breadcrumbs":8,"title":2},"87":{"body":34,"breadcrumbs":9,"title":3},"88":{"body":54,"breadcrumbs":9,"title":3},"89":{"body":16,"breadcrumbs":7,"title":1},"9":{"body":9,"breadcrumbs":3,"title":2},"90":{"body":56,"breadcrumbs":8,"title":2},"91":{"body":22,"breadcrumbs":11,"title":5},"92":{"body":19,"breadcrumbs":11,"title":5},"93":{"body":419,"breadcrumbs":12,"title":6},"94":{"body":0,"breadcrumbs":8,"title":2},"95":{"body":260,"breadcrumbs":7,"title":1},"96":{"body":81,"breadcrumbs":7,"title":1},"97":{"body":7,"breadcrumbs":7,"title":1},"98":{"body":30,"breadcrumbs":7,"title":1},"99":{"body":9,"breadcrumbs":7,"title":1}},"docs":{"0":{"body":"This directory contains the plain english specs for Optimism, a minimal optimistic rollup protocol that maintains 1:1 compatibility with Ethereum. Table of Contents Specification Contents Experimental Design Goals","breadcrumbs":"Root » OP Stack Specs","id":"0","title":"OP Stack Specs"},"1":{"body":"Introduction Overview Deposits Withdrawals Execution Engine L2 Output Root Proposals Rollup Node Rollup Node P2p L2 Chain Derivation Superchain Upgrades System Config Batch Submitter Guaranteed Gas Market Messengers Bridges Predeploys Glossary","breadcrumbs":"Root » Specification Contents","id":"1","title":"Specification Contents"},"10":{"body":"In order to scale Ethereum without sacrificing security, we must preserve 3 critical properties of Ethereum layer 1: liveness, availability, and validity. Liveness Anyone must be able to extend the rollup chain by sending transactions at any time. There are two ways transactions can be sent to the rollup chain: 1) via the sequencer, and 2) directly on layer 1. The sequencer provides low latency & low cost transactions, while sending transactions directly to layer 1 provides censorship resistance. Availability Anyone must be able to download the rollup chain. All information required to derive the chain is embedded into layer 1 blocks. That way as long as the layer 1 chain is available, so is the rollup. Validity All transactions must be correctly executed and all withdrawals correctly processed. The rollup state and withdrawals are managed on an L1 contract called the L2OutputOracle. This oracle is guaranteed to only finalize correct (ie. valid) rollup block hashes given a single honest verifier assumption. If there is ever an invalid block hash asserted on layer 1, an honest verifier will prove it is invalid and win a bond. Footnote : There are two main ways to enforce validity of a rollup: fault proofs (optimistic rollup) and validity proofs (zkRollup). For the purposes of this spec we only focus on fault proofs but it is worth noting that validity proofs can also be plugged in once they have been made feasible.","breadcrumbs":"Introduction » Protocol Guarantees","id":"10","title":"Protocol Guarantees"},"100":{"body":"engine_getPayloadV3 retrieves a payload by ID, prepared by engine_forkchoiceUpdatedV3 when called with payloadAttributes. engine_getPayloadV3 must only be called with Ecotone payload. Extended Response The response is extended to: { executionPayload: ExecutionPayload blockValue: QUANTITY blobsBundle: BlobsBundle shouldOverrideBuilder: BOOLEAN parentBeaconBlockRoot: DATA (32 bytes)\n} In Ecotone it MUST be set to the parentBeaconBlockRoot from the L1 Origin block of the L2 block.","breadcrumbs":"OP Stack Protocol » Clients » Execution Engine » engine_getPayloadV3","id":"100","title":"engine_getPayloadV3"},"101":{"body":"Optional extension to the Engine API. Signals superchain information to the Engine: V1 signals which protocol version is recommended and required. Types: SuperchainSignal: { recommended: ProtocolVersion; required: ProtocolVersion;\n} ProtocolVersion: encoded for RPC as defined in Protocol Version format specification . Parameters: signal: SuperchainSignal, the signaled superchain information. Returns: ProtocolVersion: the latest supported OP-Stack protocol version of the execution engine. The execution engine SHOULD warn the user when the recommended version is newer than the current version supported by the execution engine. The execution engine SHOULD take safety precautions if it does not meet the required protocol version. This may include halting the engine, with consent of the execution engine operator.","breadcrumbs":"OP Stack Protocol » Clients » Execution Engine » engine_signalSuperchainV1","id":"101","title":"engine_signalSuperchainV1"},"102":{"body":"The execution engine can acquire all data through the rollup node, as derived from L1: P2P networking is strictly optional. However, to not bottleneck on L1 data retrieval speed, the P2P network functionality SHOULD be enabled, serving: Peer discovery ( Disc v5 ) eth/66 : Transaction pool (consumed by sequencer nodes) State sync (happy-path for fast trustless db replication) Historical block header and body retrieval New blocks are acquired through the consensus layer instead (rollup node) No modifications to L1 network functionality are required, except configuration: networkID : Distinguishes the L2 network from L1 and testnets. Equal to the chainID of the rollup network. Activate Merge fork: Enables Engine API and disables propagation of blocks, as block headers cannot be authenticated without consensus layer. Bootnode list: DiscV5 is a shared network, bootstrap is faster through connecting with L2 nodes first.","breadcrumbs":"OP Stack Protocol » Clients » Execution Engine » Networking","id":"102","title":"Networking"},"103":{"body":"The execution engine can operate sync in different ways: Happy-path: rollup node informs engine of the desired chain head as determined by L1, completes through engine P2P. Worst-case: rollup node detects stalled engine, completes sync purely from L1 data, no peers required. The happy-path is more suitable to bring new nodes online quickly, as the engine implementation can sync state faster through methods like snap-sync .","breadcrumbs":"OP Stack Protocol » Clients » Execution Engine » Sync","id":"103","title":"Sync"},"104":{"body":"The rollup node informs the engine of the L2 chain head, unconditionally (part of regular node operation): Bedrock / Canyon / Delta Payloads engine_newPayloadV2 is called with latest L2 block received from P2P. engine_forkchoiceUpdatedV2 is called with the current unsafe/safe/finalized L2 block hashes. Ecotone Payloads engine_newPayloadV3 is called with latest L2 block received from P2P. engine_forkchoiceUpdatedV3 is called with the current unsafe/safe/finalized L2 block hashes. The engine requests headers from peers, in reverse till the parent hash matches the local chain The engine catches up: a) A form of state sync is activated towards the finalized or head block hash b) A form of block sync pulls block bodies and processes towards head block hash The exact P2P based sync is out of scope for the L2 specification: the operation within the engine is the exact same as with L1 (although with an EVM that supports deposits).","breadcrumbs":"OP Stack Protocol » Clients » Execution Engine » Happy-path sync","id":"104","title":"Happy-path sync"},"105":{"body":"Engine is out of sync, not peered and/or stalled due other reasons. The rollup node maintains latest head from engine (poll eth_getBlockByNumber and/or maintain a header subscription) The rollup node activates sync if the engine is out of sync but not syncing through P2P (eth_syncing) The rollup node inserts blocks, derived from L1, one by one, potentially adapting to L1 reorg(s), as outlined in the rollup node spec .","breadcrumbs":"OP Stack Protocol » Clients » Execution Engine » Worst-case sync","id":"105","title":"Worst-case sync"},"106":{"body":"EIP-4844 introduces Blob transactions: featuring all the functionality of an EIP-1559 transaction, plus a list of \"blobs\": \"Binary Large Object\", i.e. a dedicated data type for serving Data-Availability as base-layer. With the Ecotone upgrade, all Cancun L1 execution features are enabled, with EIP-4844 as exception: as a L2, the OP-Stack does not serve blobs, and thus disables this new transaction type. EIP-4844 is disabled as following: Transaction network-layer announcements, announcing blob-type transactions, are ignored. Transactions of the blob-type, through the RPC or otherwise, are not allowed into the transaction pool. Block-building code does not select EIP-4844 transactions. An L2 block state-transition with EIP-4844 transactions is invalid. The BLOBBASEFEE opcode is present but its semantics are altered because there are no blobs processed by L2. The opcode will always push a value of 1 onto the stack.","breadcrumbs":"OP Stack Protocol » Clients » Execution Engine » Ecotone: disable Blob-transactions","id":"106","title":"Ecotone: disable Blob-transactions"},"107":{"body":"EIP-4788 introduces a \"beacon block root\" into the execution-layer block-header and EVM. This block root is an SSZ hash-tree-root of the consensus-layer contents of the previous consensus block. With the adoption of EIP-4399 in the Bedrock upgrade the OP-Stack already includes the PREVRANDAO of L1. And thus with EIP-4788 the L1 beacon block root is made available. For the Ecotone upgrade, this entails that: The parent_beacon_block_root of the L1 origin is now embedded in the L2 block header. The \"Beacon roots contract\" is deployed at Ecotone upgrade-time, or embedded at genesis if activated at genesis. The block state-transition process now includes the same special beacon-block-root EVM processing as L1 ethereum.","breadcrumbs":"OP Stack Protocol » Clients » Execution Engine » Ecotone: Beacon Block Root","id":"107","title":"Ecotone: Beacon Block Root"},"108":{"body":"Table of Contents Overview Driver Derivation L2 Output RPC method Structures BlockID L1BlockRef L2BlockRef SyncStatus Output Method API Protocol Version tracking","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Rollup Node Specification","id":"108","title":"Rollup Node Specification"},"109":{"body":"The rollup node is the component responsible for deriving the L2 chain from L1 blocks (and their associated receipts ). The part of the rollup node that derives the L2 chain is called the rollup driver . This document is currently only concerned with the specification of the rollup driver.","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Overview","id":"109","title":"Overview"},"11":{"body":"There are three actors in Optimism: users, sequencers, and verifiers. Network Overview","breadcrumbs":"Introduction » Network Participants","id":"11","title":"Network Participants"},"110":{"body":"The task of the driver in the rollup node is to manage the derivation process: Keep track of L1 head block Keep track of the L2 chain sync progress Iterate over the derivation steps as new inputs become available","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Driver","id":"110","title":"Driver"},"111":{"body":"This process happens in three steps: Select inputs from the L1 chain, on top of the last L2 block: a list of blocks, with transactions and associated data and receipts. Read L1 information, deposits, and sequencing batches in order to generate payload attributes (essentially a block without output properties ). Pass the payload attributes to the execution engine , so that the L2 block (including output block properties ) may be computed. While this process is conceptually a pure function from the L1 chain to the L2 chain, it is in practice incremental. The L2 chain is extended whenever new L1 blocks are added to the L1 chain. Similarly, the L2 chain re-organizes whenever the L1 chain re-organizes . For a complete specification of the L2 block derivation, refer to the L2 block derivation document .","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Derivation","id":"111","title":"Derivation"},"112":{"body":"The Rollup node has its own RPC method, optimism_outputAtBlock which returns a 32 byte hash corresponding to the L2 output root .","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » L2 Output RPC method","id":"112","title":"L2 Output RPC method"},"113":{"body":"These define the types used by rollup node API methods. The types defined here are extended from the engine API specs . BlockID hash: DATA, 32 Bytes number: QUANTITY, 64 Bits L1BlockRef hash: DATA, 32 Bytes number: QUANTITY, 64 Bits parentHash: DATA, 32 Bytes timestamp: QUANTITY, 64 Bits L2BlockRef hash: DATA, 32 Bytes number: QUANTITY, 64 Bits parentHash: DATA, 32 Bytes timestamp: QUANTITY, 64 Bits l1origin: BlockID sequenceNumber: QUANTITY, 64 Bits - distance to first block of epoch SyncStatus Represents a snapshot of the rollup driver. current_l1: Object - instance of L1BlockRef . current_l1_finalized: Object - instance of L1BlockRef . head_l1: Object - instance of L1BlockRef . safe_l1: Object - instance of L1BlockRef . finalized_l1: Object - instance of L1BlockRef . unsafe_l2: Object - instance of L2BlockRef . safe_l2: Object - instance of L2BlockRef . finalized_l2: Object - instance of L2BlockRef . pending_safe_l2: Object - instance of L2BlockRef . queued_unsafe_l2: Object - instance of L2BlockRef .","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Structures","id":"113","title":"Structures"},"114":{"body":"The input and return types here are as defined by the engine API specs . method: optimism_outputAtBlock params: blockNumber: QUANTITY, 64 bits - L2 integer block number. returns: version: DATA, 32 Bytes - the output root version number, beginning with 0. outputRoot: DATA, 32 Bytes - the output root. blockRef: Object - instance of L2BlockRef . withdrawalStorageRoot: 32 bytes - storage root of the L2toL1MessagePasser contract. stateRoot: DATA: 32 bytes - the state root. syncStatus: Object - instance of SyncStatus .","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Output Method API","id":"114","title":"Output Method API"},"115":{"body":"The rollup-node should monitor the recommended and required protocol version by monitoring the Protocol Version contract on L1, as specified in the Superchain Version Signaling specifications . This can be implemented through polling in the Driver loop. After polling the Protocol Version, the rollup node SHOULD communicate it with the execution-engine through an engine_signalSuperchainV1 call. The rollup node SHOULD warn the user when the recommended version is newer than the current version supported by the rollup node. The rollup node SHOULD take safety precautions if it does not meet the required protocol version. This may include halting the engine, with consent of the rollup node operator.","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Protocol Version tracking","id":"115","title":"Protocol Version tracking"},"116":{"body":"Table of Contents Overview P2P configuration Identification Discv5 Structure LibP2P Transport Dialing NAT Peer management Transport security Protocol negotiation Identify Ping Multiplexing GossipSub Content-based message identification Message compression and limits Message ID computation Heartbeat and parameters Topic configuration Topic validation Gossip Topics blocksv1 blocksv2 blocksv3 Block encoding Block signatures Block validation Block processing Block topic scoring parameters Req-Resp payload_by_number","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Rollup Node P2P » Rollup-node P2P interface","id":"116","title":"Rollup-node P2P interface"},"117":{"body":"The rollup node has an optional peer-to-peer (P2P) network service to improve the latency between the view of sequencers and the rest of the network by bypassing the L1 in the happy case, without relying on a single centralized endpoint. This also enables faster historical sync to be bootstrapped by providing block headers to sync towards, and only having to compare the L2 chain inputs to the L1 data as compared to processing everything one block at a time. The rollup node will always prioritize L1 and reorganize to match the canonical chain. The L2 data retrieved via the P2P interface is strictly a speculative extension, also known as the \"unsafe\" chain, to improve the happy case performance. This also means that P2P behavior is a soft-rule: nodes keep each other in check with scoring and eventual banning of malicious peers by identity or IP. Any behavior on the P2P layer does not affect the rollup security, at worst nodes rely on higher-latency data from L1 to serve. In summary, the P2P stack looks like: Discovery to find peers: Discv5 Connections, peering, transport security, multiplexing, gossip: LibP2P Application-layer publishing and validation of gossiped messages like L2 blocks. This document only specifies the composition and configuration of these network libraries. These components have their own standards, implementations in Go/Rust/Java/Nim/JS/more, and are adopted by several other blockchains, most notably the L1 consensus layer (Eth2) .","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Rollup Node P2P » Overview","id":"117","title":"Overview"},"118":{"body":"","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Rollup Node P2P » P2P configuration","id":"118","title":"P2P configuration"},"119":{"body":"Nodes have a separate network- and consensus-identity. The network identity is a secp256k1 key, used for both discovery and active LibP2P connections. Common representations of network identity: PeerID: a LibP2P specific ID derived from the pubkey (through protobuf encoding, typing and hashing) NodeID: a Discv5 specific ID derived from the pubkey (through hashing, used in the DHT) Multi-address: an unsigned address, containing: IP, TCP port, PeerID ENR: a signed record used for discovery, containing: IP, TCP port, UDP port, signature (pubkey can be derived) and L2 network identification. Generally encoded in base64.","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Rollup Node P2P » Identification","id":"119","title":"Identification"},"12":{"body":"At the heart of the network are users (us!). Users can: Deposit or withdraw arbitrary transactions on L2 by sending data to a contract on Ethereum mainnet. Use EVM smart contracts on layer 2 by sending transactions to the sequencers. View the status of transactions using block explorers provided by network verifiers.","breadcrumbs":"Introduction » Users","id":"12","title":"Users"},"120":{"body":"Structure The Ethereum Node Record (ENR) for an Optimism rollup node must contain the following values, identified by unique keys: An IPv4 address (ip field) and/or IPv6 address (ip6 field). A TCP port (tcp field) representing the local libp2p listening port. A UDP port (udp field) representing the local discv5 listening port. An OpStack (opstack field) L2 network identifier The opstack value is encoded as a single RLP bytes value, the concatenation of: chain ID (unsigned varint) fork ID (unsigned varint) Note that DiscV5 is a shared DHT (Distributed Hash Table): the L1 consensus and execution nodes, as well as testnet nodes, and even external IOT nodes, all communicate records in this large common DHT. This makes it more difficult to censor the discovery of node records. The discovery process in Optimism is a pipeline of node records: Fill the table with FINDNODES if necessary (Performed by Discv5 library) Pull additional records with searches to random Node IDs if necessary (e.g. iterate RandomNodes() in Go implementation) Pull records from the DiscV5 module when looking for peers Check if the record contains the opstack entry, verify it matches the chain ID and current or future fork number If not already connected, and not recently disconnected or put on deny-list, attempt to dial.","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Rollup Node P2P » Discv5","id":"120","title":"Discv5"},"121":{"body":"Transport TCP transport. Additional transports are supported by LibP2P, but not required. Dialing Nodes should be publicly dialable, not rely on relay extensions, and able to dial both IPv4 and IPv6. NAT The listening endpoint must be publicly facing, but may be configured behind a NAT. LibP2P will use PMP / UPNP based techniques to track the external IP of the node. It is recommended to disable the above if the external IP is static and configured manually. Peer management The default is to maintain a peer count with a tide-system based on active peer count: At \"low tide\" the node starts to actively search for additional peer connections. At \"high tide\" the node starts to prune active connections, except those that are marked as trusted or have a grace period. Peers will have a grace period for a configurable amount of time after joining. In an emergency, when memory runs low, the node should start pruning more aggressively. Peer records can be persisted to disk to quickly reconnect with known peers after restarting the rollup node. The discovery process feeds the peerstore with peer records to connect to, tagged with a time-to-live (TTL). The current P2P processes do not require selective topic-specific peer connections, other than filtering for the basic network participation requirement. Peers may be banned if their performance score is too low, or if an objectively malicious action was detected. Banned peers will be persisted to the same data-store as the peerstore records. TODO: the connection gater does currently not gate by IP address on the dial Accept-callback. Transport security Libp2p-noise , XX handshake, with the secp256k1 P2P identity, as popularized in Eth2. The TLS option is available as well, but noise should be prioritized in negotiation. Protocol negotiation Multistream-select 1.0 (/multistream/1.0.0) is an interactive protocol used to negotiate sub-protocols supported in LibP2P peers. Multistream-select 2.0 may be used in the future. Identify LibP2P offers a minimal identification module to share client version and programming language. This is optional and can be disabled for enhanced privacy. It also includes the same protocol negotiation information, which can speed up initial connections. Ping LibP2P includes a simple ping protocol to track latency between connections. This should be enabled to help provide insight into the network health. Multiplexing For async communication over different channels over the same connection, multiplexing is used. mplex (/mplex/6.7.0) is required, and yamux (/yamux/1.0.0) is recommended but optional GossipSub GossipSub 1.1 (/meshsub/1.1.0, i.e. with peer-scoring extension) is a pubsub protocol for mesh-networks, deployed on L1 consensus (Eth2) and other protocols such as Filecoin, offering lots of customization options. Content-based message identification Messages are deduplicated, and filtered through application-layer signature verification. Thus origin-stamping is disabled and published messages must only contain application data, enforced through a StrictNoSign Signature Policy This provides greater privacy, and allows sequencers (consensus identity) to maintain multiple network identities for redundancy. Message compression and limits The application contents are compressed with snappy single-block-compression (as opposed to frame-compression), and constrained to 10 MiB. Message ID computation Same as L1 , with recognition of compression: If message.data has a valid snappy decompression, set message-id to the first 20 bytes of the SHA256 hash of the concatenation of MESSAGE_DOMAIN_VALID_SNAPPY with the snappy decompressed message data, i.e. SHA256(MESSAGE_DOMAIN_VALID_SNAPPY + snappy_decompress(message.data))[:20]. Otherwise, set message-id to the first 20 bytes of the SHA256 hash of the concatenation of MESSAGE_DOMAIN_INVALID_SNAPPY with the raw message data, i.e. SHA256(MESSAGE_DOMAIN_INVALID_SNAPPY + message.data)[:20]. Heartbeat and parameters GossipSub parameters : D (topic stable mesh target count): 8 D_low (topic stable mesh low watermark): 6 D_high (topic stable mesh high watermark): 12 D_lazy (gossip target): 6 heartbeat_interval (interval of heartbeat, in seconds): 0.5 fanout_ttl (ttl for fanout maps for topics we are not subscribed to but have published to, in seconds): 24 mcache_len (number of windows to retain full messages in cache for IWANT responses): 12 mcache_gossip (number of windows to gossip about): 3 seen_ttl (number of heartbeat intervals to retain message IDs): 130 (= 65 seconds) Notable differences from L1 consensus (Eth2): seen_ttl does not need to cover a full L1 epoch (6.4 minutes), but rather just a small window covering latest blocks fanout_ttl: adjusted to lower than seen_ttl mcache_len: a larger number of heartbeats can be retained since the gossip is much less noisy. heartbeat_interval: faster interval to reduce latency, bandwidth should still be reasonable since there are far fewer messages to gossip about each interval than on L1 which uses an interval of 0.7 seconds. Topic configuration Topics have string identifiers and are communicated with messages and subscriptions. /optimism/chain_id/hardfork_version/Name chain_id: replace with decimal representation of chain ID hardfork_version: replace with decimal representation of hardfork, starting at 0 Name: topic application-name Note that the topic encoding depends on the topic, unlike L1, since there are less topics, and all are snappy-compressed. Topic validation To ensure only valid messages are relayed, and malicious peers get scored based on application behavior, an extended validator checks the message before it is relayed or processed. The extended validator emits one of the following validation signals: ACCEPT valid, relayed to other peers and passed to local topic subscriber IGNORE scored like inactivity, message is dropped and not processed REJECT score penalties, message is dropped","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Rollup Node P2P » LibP2P","id":"121","title":"LibP2P"},"122":{"body":"There are three topics for distributing blocks to other nodes faster than proxying through L1 would. These are:","breadcrumbs":"OP Stack Protocol » Clients » Rollup Node » Rollup Node P2P » Gossip Topics","id":"122","title":"Gossip Topics"},"123":{"body":"Pre-Canyon/Shanghai blocks are broadcast on /optimism/