Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( L1WSEndpoint = &cli.StringFlag{ Name: "l1.ws", Usage: "Websocket RPC endpoint of a L1 ethereum node", Required: true, Category: commonCategory, } L2WSEndpoint = &cli.StringFlag{ Name: "l2.ws", Usage: "Websocket RPC endpoint of a L2 taiko-geth execution engine", Required: true, Category: commonCategory, } L1HTTPEndpoint = &cli.StringFlag{ Name: "l1.http", Usage: "HTTP RPC endpoint of a L1 ethereum node", Required: true, Category: commonCategory, } L2HTTPEndpoint = &cli.StringFlag{ Name: "l2.http", Usage: "HTTP RPC endpoint of a L2 taiko-geth execution engine", Required: true, Category: commonCategory, } TaikoL1Address = &cli.StringFlag{ Name: "taikoL1", Usage: "TaikoL1 contract `address`", Required: true, Category: commonCategory, } TaikoL2Address = &cli.StringFlag{ Name: "taikoL2", Usage: "TaikoL2 contract `address`", Required: true, Category: commonCategory, } TaikoTokenAddress = &cli.StringFlag{ Name: "taikoToken", Usage: "TaikoToken contract `address`", Required: true, Category: commonCategory, } // Optional flags used by all client softwares. // Logging Verbosity = &cli.IntFlag{ Name: "verbosity", Usage: "Logging verbosity: 0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail", Value: 3, Category: loggingCategory, } LogJson = &cli.BoolFlag{ Name: "log.json", Usage: "Format logs with JSON", Category: loggingCategory, } // Metrics MetricsEnabled = &cli.BoolFlag{ Name: "metrics", Usage: "Enable metrics collection and reporting", Category: metricsCategory, Value: false, } MetricsAddr = &cli.StringFlag{ Name: "metrics.addr", Usage: "Metrics reporting server listening address", Category: metricsCategory, Value: "0.0.0.0", } MetricsPort = &cli.IntFlag{ Name: "metrics.port", Usage: "Metrics reporting server listening port", Category: metricsCategory, Value: 6060, } BackOffMaxRetrys = &cli.Uint64Flag{ Name: "backoff.maxRetrys", Usage: "Max retry times when there is an error", Category: commonCategory, Value: 10, } BackOffRetryInterval = &cli.DurationFlag{ Name: "backoff.retryInterval", Usage: "Retry interval in seconds when there is an error", Category: commonCategory, Value: 12 * time.Second, } RPCTimeout = &cli.DurationFlag{ Name: "rpc.timeout", Usage: "Timeout in seconds for RPC calls", Category: commonCategory, } WaitReceiptTimeout = &cli.DurationFlag{ Name: "rpc.waitReceiptTimeout", Usage: "Timeout for waiting for receipts for RPC transactions", Category: commonCategory, Value: 1 * time.Minute, } )
Required flags used by all client softwares.
View Source
var ( L2AuthEndpoint = &cli.StringFlag{ Name: "l2.auth", Usage: "Authenticated HTTP RPC endpoint of a L2 taiko-geth execution engine", Required: true, Category: driverCategory, } JWTSecret = &cli.StringFlag{ Name: "jwtSecret", Usage: "Path to a JWT secret to use for authenticated RPC endpoints", Required: true, Category: driverCategory, } )
Flags used by driver.
View Source
var ( P2PSyncVerifiedBlocks = &cli.BoolFlag{ Name: "p2p.syncVerifiedBlocks", Usage: "Try P2P syncing verified blocks between L2 execution engines, " + "will be helpful to bring a new node online quickly", Value: false, Category: driverCategory, } P2PSyncTimeout = &cli.DurationFlag{ Name: "p2p.syncTimeout", Usage: "P2P syncing timeout, if no sync progress is made within this time span, " + "driver will stop the P2P sync and insert all remaining L2 blocks one by one", Value: 1 * time.Hour, Category: driverCategory, } CheckPointSyncUrl = &cli.StringFlag{ Name: "p2p.checkPointSyncUrl", Usage: "HTTP RPC endpoint of another synced L2 execution engine node", Category: driverCategory, } )
Optional flags used by driver.
View Source
var ( L1ProposerPrivKey = &cli.StringFlag{ Name: "l1.proposerPrivKey", Usage: "Private key of the L1 proposer, who will send TaikoL1.proposeBlock transactions", Required: true, Category: proposerCategory, } L2SuggestedFeeRecipient = &cli.StringFlag{ Name: "l2.suggestedFeeRecipient", Usage: "Address of the proposed block's suggested fee recipient", Required: true, Category: proposerCategory, } ProverEndpoints = &cli.StringFlag{ Name: "proverEndpoints", Usage: "Comma-delineated list of prover endpoints proposer should query when attempting to propose a block", Required: true, Category: proposerCategory, } )
Required flags used by proposer.
View Source
var ( // Tier fee related. OptimisticTierFee = &cli.Uint64Flag{ Name: "tierFee.optimistic", Usage: "Initial tier fee (in wei) paid to prover to generate an optimistic proofs", Category: proposerCategory, } SgxTierFee = &cli.Uint64Flag{ Name: "tierFee.sgx", Usage: "Initial tier fee (in wei) paid to prover to generate a SGX proofs", Category: proposerCategory, } PseZkevmTierFee = &cli.Uint64Flag{ Name: "tierFee.pseZKEvm", Usage: "Initial tier fee (in wei) paid to prover to generate a PSE zkEVM proofs", Category: proposerCategory, } TierFeePriceBump = &cli.Uint64Flag{ Name: "tierFee.pricebump", Usage: "Price bump percentage when no prover wants to accept the block at initial fee", Value: 10, Category: proposerCategory, } MaxTierFeePriceBumps = &cli.Uint64Flag{ Name: "tierFee.maxPriceBumps", Usage: "If nobody accepts block at initial tier fee, how many iterations to increase tier fee before giving up", Category: proposerCategory, Value: 3, } // Proposing epoch related. ProposeInterval = &cli.DurationFlag{ Name: "epoch.interval", Usage: "Time interval to propose L2 pending transactions", Category: proposerCategory, } ProposeEmptyBlocksInterval = &cli.DurationFlag{ Name: "epoch.emptyBlockInterval", Usage: "Time interval to propose empty blocks", Category: proposerCategory, } // Proposing metadata related. ExtraData = &cli.StringFlag{ Name: "extraData", Usage: "Block extra data set by the proposer (default = client version)", Value: version.VersionWithCommit(), Category: proposerCategory, } // Transactions pool related. TxPoolLocals = &cli.StringSliceFlag{ Name: "txpool.locals", Usage: "Comma separated accounts to treat as locals (priority inclusion)", Category: proposerCategory, } TxPoolLocalsOnly = &cli.BoolFlag{ Name: "txpool.localsOnly", Usage: "If set to true, proposer will only propose transactions of local accounts", Value: false, Category: proposerCategory, } MaxProposedTxListsPerEpoch = &cli.Uint64Flag{ Name: "txpool.maxTxListsPerEpoch", Usage: "Maximum number of transaction lists which will be proposed inside one proposing epoch", Value: 1, Category: proposerCategory, } // Transaction related. ProposeBlockTxGasLimit = &cli.Uint64Flag{ Name: "tx.gasLimit", Usage: "Gas limit will be used for TaikoL1.proposeBlock transactions", Category: proposerCategory, } ProposeBlockTxReplacementMultiplier = &cli.Uint64Flag{ Name: "tx.replacementMultiplier", Value: 2, Usage: "Gas tip multiplier when replacing a TaikoL1.proposeBlock transaction with same nonce", Category: proposerCategory, } ProposeBlockTxGasTipCap = &cli.Uint64Flag{ Name: "tx.gasTipCap", Usage: "Gas tip cap (in wei) for a TaikoL1.proposeBlock transaction when doing the transaction replacement", Category: proposerCategory, } )
Optional flags used by proposer.
View Source
var ( ZkEvmRpcdEndpoint = &cli.StringFlag{ Name: "zkevm.rpcdEndpoint", Usage: "RPC endpoint of a ZKEVM RPCD service", Required: true, Category: proverCategory, } ZkEvmRpcdParamsPath = &cli.StringFlag{ Name: "zkevm.rpcdParamsPath", Usage: "Path of ZKEVM parameters file to use", Required: true, Category: proverCategory, } L1ProverPrivKey = &cli.StringFlag{ Name: "l1.proverPrivKey", Usage: "Private key of L1 prover, who will send TaikoL1.proveBlock transactions", Required: true, Category: proverCategory, } ProverCapacity = &cli.Uint64Flag{ Name: "prover.capacity", Usage: "Capacity of prover", Required: true, Category: proverCategory, } )
Required flags used by prover.
View Source
var ( StartingBlockID = &cli.Uint64Flag{ Name: "prover.startingBlockID", Usage: "If set, prover will start proving blocks from the block with this ID", Category: proverCategory, } MaxConcurrentProvingJobs = &cli.UintFlag{ Name: "prover.maxConcurrentJobs", Usage: "Limits the number of concurrent proving blocks jobs", Value: 1, Category: proverCategory, } Graffiti = &cli.StringFlag{ Name: "prover.graffiti", Usage: "When string is passed, adds additional graffiti info to proof evidence", Category: proverCategory, Value: "", } // Proving strategy. ProveUnassignedBlocks = &cli.BoolFlag{ Name: "prover.proveUnassignedBlocks", Usage: "Whether you want to prove unassigned blocks, or only work on assigned proofs", Category: proverCategory, Value: false, } // Tier fee related. MinOptimisticTierFee = &cli.Uint64Flag{ Name: "minTierFee.optimistic", Usage: "Minimum accepted fee for generating an optimistic proof", Category: proverCategory, } MinSgxTierFee = &cli.Uint64Flag{ Name: "minTierFee.sgx", Usage: "Minimum accepted fee for generating a SGX proof", Category: proverCategory, } MinPseZkevmTierFee = &cli.Uint64Flag{ Name: "minTierFee.pseZKEvm", Usage: "Minimum accepted fee for generating a PSE zkEVM proof", Category: proverCategory, } // Guardian prover related. GuardianProver = &cli.BoolFlag{ Name: "guardian", Usage: "Set whether prover should use guardian prover or not", Category: proverCategory, } GuardianProverPrivateKey = &cli.StringFlag{ Name: "guardian.privateKey", Usage: "Private key of guardian prover", Category: proverCategory, } GuardianProofSubmissionDelay = &cli.DurationFlag{ Name: "guardian.submissionDelay", Usage: "Guardian proof submission delay", Value: 0 * time.Second, Category: proverCategory, } // Transaction related. ProofSubmissionMaxRetry = &cli.Uint64Flag{ Name: "tx.submissionMaxRetry", Usage: "Max retry counts for proof submission", Value: 3, Category: proverCategory, } ProveBlockTxGasLimit = &cli.Uint64Flag{ Name: "tx.gasLimit", Usage: "Gas limit will be used for TaikoL1.proveBlock transactions", Category: proverCategory, } ProveBlockMaxTxGasTipCap = &cli.Uint64Flag{ Name: "tx.maxGasTipCap", Usage: "Gas tip cap (in wei) for a TaikoL1.proveBlock transaction when doing the transaction replacement", Category: proverCategory, } ProveBlockTxReplacementMultiplier = &cli.Uint64Flag{ Name: "tx.replacementMultiplier", Value: 2, Usage: "Gas tip multiplier when replacing a TaikoL1.proveBlock transaction with same nonce", Category: proverCategory, } // Running mode ContesterMode = &cli.BoolFlag{ Name: "mode.contester", Usage: "Whether you want to contest wrong transitions with higher tier proofs", Category: proverCategory, Value: false, } // HTTP server related. ProverHTTPServerPort = &cli.Uint64Flag{ Name: "http.port", Usage: "Port to expose for http server", Category: proverCategory, Value: 9876, } MaxExpiry = &cli.DurationFlag{ Name: "http.maxExpiry", Usage: "Maximum accepted expiry in seconds for accepting proving a block", Value: 1 * time.Hour, Category: proverCategory, } // Special flags for testing. Dummy = &cli.BoolFlag{ Name: "prover.dummy", Usage: "Produce dummy proofs, testing purposes only", Value: false, Category: proverCategory, } )
Optional flags used by prover.
View Source
var CommonFlags = []cli.Flag{ L1WSEndpoint, TaikoL1Address, TaikoL2Address, Verbosity, LogJson, MetricsEnabled, MetricsAddr, MetricsPort, BackOffMaxRetrys, BackOffRetryInterval, RPCTimeout, WaitReceiptTimeout, }
All common flags.
View Source
var DriverFlags = MergeFlags(CommonFlags, []cli.Flag{ L2WSEndpoint, L2AuthEndpoint, JWTSecret, P2PSyncVerifiedBlocks, P2PSyncTimeout, CheckPointSyncUrl, })
All driver flags.
View Source
var ProposerFlags = MergeFlags(CommonFlags, []cli.Flag{ L2HTTPEndpoint, TaikoTokenAddress, L1ProposerPrivKey, L2SuggestedFeeRecipient, ProposeInterval, TxPoolLocals, TxPoolLocalsOnly, ExtraData, ProposeEmptyBlocksInterval, MaxProposedTxListsPerEpoch, ProposeBlockTxGasLimit, ProposeBlockTxReplacementMultiplier, ProposeBlockTxGasTipCap, ProverEndpoints, OptimisticTierFee, SgxTierFee, PseZkevmTierFee, TierFeePriceBump, MaxTierFeePriceBumps, })
All proposer flags.
View Source
var ProverFlags = MergeFlags(CommonFlags, []cli.Flag{ L1HTTPEndpoint, L2WSEndpoint, L2HTTPEndpoint, ZkEvmRpcdEndpoint, ZkEvmRpcdParamsPath, L1ProverPrivKey, MinOptimisticTierFee, MinSgxTierFee, MinPseZkevmTierFee, StartingBlockID, MaxConcurrentProvingJobs, Dummy, GuardianProver, GuardianProverPrivateKey, GuardianProofSubmissionDelay, ProofSubmissionMaxRetry, ProveBlockTxReplacementMultiplier, ProveBlockMaxTxGasTipCap, Graffiti, ProveUnassignedBlocks, ContesterMode, ProveBlockTxGasLimit, ProverHTTPServerPort, ProverCapacity, MaxExpiry, TaikoTokenAddress, })
All prover flags.
Functions ¶
func MergeFlags ¶
func MergeFlags(groups ...[]cli.Flag) []cli.Flag
MergeFlags merges the given flag slices.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.