From 002fbce98168f33a09967fa92b13fff33797d076 Mon Sep 17 00:00:00 2001 From: nflaig Date: Fri, 6 Dec 2024 14:53:39 +0000 Subject: [PATCH] deploy: f87eb0b2c74e42ea72324392380f28c5047477a1 --- 404.html | 2 +- assets/js/0916e813.bc796161.js | 1 + assets/js/0916e813.f48d5292.js | 1 - assets/js/0e49db30.537d3c32.js | 1 - assets/js/0e49db30.d5d8c1f1.js | 1 + assets/js/4c9cac69.88aca9b4.js | 1 + assets/js/4c9cac69.f0f7bb38.js | 1 - assets/js/88b8b4fa.54549ce2.js | 1 - assets/js/88b8b4fa.6ef49da5.js | 1 + assets/js/c4496819.6816b8b7.js | 1 + assets/js/c4496819.bc14a881.js | 1 - assets/js/ffc70006.dbe23771.js | 1 - assets/js/ffc70006.e3699ab8.js | 1 + ...n.514c634b.js => runtime~main.484d5972.js} | 2 +- .../block-exploration/index.html | 2 +- .../doppelganger-detection/index.html | 2 +- .../migrating-from-other-clients/index.html | 2 +- .../setting-up-a-testnet/index.html | 2 +- .../slashing-protection/index.html | 2 +- contribution/bug-reports/index.html | 2 +- contribution/depgraph/index.html | 2 +- contribution/dev-cli/index.html | 16 +++- contribution/getting-started/index.html | 2 +- contribution/pr-submission/index.html | 2 +- contribution/repo/index.html | 2 +- .../testing/end-to-end-tests/index.html | 2 +- contribution/testing/index.html | 2 +- .../testing/integration-tests/index.html | 2 +- .../testing/performance-tests/index.html | 2 +- .../testing/simulation-tests/index.html | 2 +- contribution/testing/spec-tests/index.html | 2 +- contribution/testing/unit-tests/index.html | 2 +- contribution/tools/core-dumps/index.html | 2 +- contribution/tools/debugging/index.html | 2 +- contribution/tools/flamegraphs/index.html | 2 +- contribution/tools/heap-dumps/index.html | 2 +- contribution/tools/perf/index.html | 2 +- faqs/index.html | 2 +- index.html | 2 +- install | 91 +++++++++++++++++++ introduction/index.html | 2 +- libraries/api/using-the-api/index.html | 2 +- .../lightclient-cli/index.html | 7 +- .../lightclient-prover/lightclient/index.html | 2 +- .../lightclient-prover/prover/index.html | 2 +- reference/cli/index.html | 2 +- run/beacon-management/beacon-cli/index.html | 16 +++- .../data-retention/index.html | 2 +- .../mev-and-builder-integration/index.html | 2 +- run/beacon-management/networking/index.html | 2 +- .../starting-a-node/index.html | 2 +- run/beacon-management/syncing/index.html | 2 +- run/bootnode/bootnode-cli/index.html | 7 +- run/getting-started/installation/index.html | 4 +- .../quick-start-custom-guide/index.html | 2 +- run/getting-started/quick-start/index.html | 2 +- .../client-monitoring/index.html | 2 +- .../prometheus-grafana/index.html | 2 +- .../external-signer/index.html | 2 +- .../key-management/index.html | 2 +- .../index.html | 2 +- .../proposer-config/index.html | 2 +- .../validator-cli/index.html | 7 +- .../vc-configuration/index.html | 2 +- .../withdrawals/index.html | 2 +- search-index.json | 2 +- search/index.html | 2 +- security/index.html | 2 +- supporting-libraries/index.html | 2 +- supporting-libraries/libraries/index.html | 2 +- 70 files changed, 194 insertions(+), 68 deletions(-) create mode 100644 assets/js/0916e813.bc796161.js delete mode 100644 assets/js/0916e813.f48d5292.js delete mode 100644 assets/js/0e49db30.537d3c32.js create mode 100644 assets/js/0e49db30.d5d8c1f1.js create mode 100644 assets/js/4c9cac69.88aca9b4.js delete mode 100644 assets/js/4c9cac69.f0f7bb38.js delete mode 100644 assets/js/88b8b4fa.54549ce2.js create mode 100644 assets/js/88b8b4fa.6ef49da5.js create mode 100644 assets/js/c4496819.6816b8b7.js delete mode 100644 assets/js/c4496819.bc14a881.js delete mode 100644 assets/js/ffc70006.dbe23771.js create mode 100644 assets/js/ffc70006.e3699ab8.js rename assets/js/{runtime~main.514c634b.js => runtime~main.484d5972.js} (93%) create mode 100644 install diff --git a/404.html b/404.html index ec808aa6db8..40ee1e65187 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/assets/js/0916e813.bc796161.js b/assets/js/0916e813.bc796161.js new file mode 100644 index 00000000000..7dfc7846f51 --- /dev/null +++ b/assets/js/0916e813.bc796161.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_lodestar_docs=self.webpackChunk_lodestar_docs||[]).push([[3632],{3870:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>a,frontMatter:()=>r,metadata:()=>l,toc:()=>t});var d=i(4848),s=i(8453);const r={title:"CLI Reference"},c="dev CLI Command",l={id:"contribution/dev-cli",title:"CLI Reference",description:"Quickly bootstrap a beacon node and multiple validators. Use for development and testing",source:"@site/pages/contribution/dev-cli.md",sourceDirName:"contribution",slug:"/contribution/dev-cli",permalink:"/lodestar/contribution/dev-cli",draft:!1,unlisted:!1,editUrl:"https://github.com/ChainSafe/lodestar/tree/unstable/docs/pages/contribution/dev-cli.md",tags:[],version:"current",frontMatter:{title:"CLI Reference"},sidebar:"tutorialSidebar",previous:{title:"Dependency Graph",permalink:"/lodestar/contribution/depgraph"},next:{title:"Debugging",permalink:"/lodestar/contribution/tools/debugging"}},o={},t=[{value:"Examples",id:"examples",level:2},{value:"dev Options",id:"dev-options",level:2},{value:"--dataDir",id:"--datadir",level:4},{value:"--network",id:"--network",level:4},{value:"--paramsFile",id:"--paramsfile",level:4},{value:"--rcConfig",id:"--rcconfig",level:4},{value:"--terminal-total-difficulty-override",id:"--terminal-total-difficulty-override",level:4},{value:"--terminal-block-hash-override",id:"--terminal-block-hash-override",level:4},{value:"--terminal-block-hash-epoch-override",id:"--terminal-block-hash-epoch-override",level:4},{value:"--genesisStateFile",id:"--genesisstatefile",level:4},{value:"--checkpointSyncUrl",id:"--checkpointsyncurl",level:4},{value:"--checkpointState",id:"--checkpointstate",level:4},{value:"--wssCheckpoint",id:"--wsscheckpoint",level:4},{value:"--forceCheckpointSync",id:"--forcecheckpointsync",level:4},{value:"--ignoreWeakSubjectivityCheck",id:"--ignoreweaksubjectivitycheck",level:4},{value:"--persistNetworkIdentity",id:"--persistnetworkidentity",level:4},{value:"--private",id:"--private",level:4},{value:"--validatorMonitorLogs",id:"--validatormonitorlogs",level:4},{value:"--disableLightClientServer",id:"--disablelightclientserver",level:4},{value:"--logLevel",id:"--loglevel",level:4},{value:"--logFile",id:"--logfile",level:4},{value:"--logFileLevel",id:"--logfilelevel",level:4},{value:"--logFileDailyRotate",id:"--logfiledailyrotate",level:4},{value:"--rest",id:"--rest",level:4},{value:"--rest.namespace",id:"--restnamespace",level:4},{value:"--rest.cors",id:"--restcors",level:4},{value:"--rest.address",id:"--restaddress",level:4},{value:"--rest.port",id:"--restport",level:4},{value:"--rest.swaggerUI",id:"--restswaggerui",level:4},{value:"--suggestedFeeRecipient",id:"--suggestedfeerecipient",level:4},{value:"--emitPayloadAttributes",id:"--emitpayloadattributes",level:4},{value:"--chain.archiveBlobEpochs",id:"--chainarchiveblobepochs",level:4},{value:"--eth1",id:"--eth1",level:4},{value:"--eth1.providerUrls",id:"--eth1providerurls",level:4},{value:"--execution.urls",id:"--executionurls",level:4},{value:"--execution.timeout",id:"--executiontimeout",level:4},{value:"--execution.retries",id:"--executionretries",level:4},{value:"--execution.retryDelay",id:"--executionretrydelay",level:4},{value:"--execution.engineMock",id:"--executionenginemock",level:4},{value:"--jwtSecret",id:"--jwtsecret",level:4},{value:"--jwtId",id:"--jwtid",level:4},{value:"--builder",id:"--builder",level:4},{value:"--builder.url",id:"--builderurl",level:4},{value:"--builder.timeout",id:"--buildertimeout",level:4},{value:"--builder.faultInspectionWindow",id:"--builderfaultinspectionwindow",level:4},{value:"--builder.allowedFaults",id:"--builderallowedfaults",level:4},{value:"--metrics",id:"--metrics",level:4},{value:"--metrics.port",id:"--metricsport",level:4},{value:"--metrics.address",id:"--metricsaddress",level:4},{value:"--monitoring.endpoint",id:"--monitoringendpoint",level:4},{value:"--monitoring.interval",id:"--monitoringinterval",level:4},{value:"--discv5",id:"--discv5",level:4},{value:"--listenAddress",id:"--listenaddress",level:4},{value:"--port",id:"--port",level:4},{value:"--discoveryPort",id:"--discoveryport",level:4},{value:"--listenAddress6",id:"--listenaddress6",level:4},{value:"--port6",id:"--port6",level:4},{value:"--discoveryPort6",id:"--discoveryport6",level:4},{value:"--bootnodes",id:"--bootnodes",level:4},{value:"--targetPeers",id:"--targetpeers",level:4},{value:"--subscribeAllSubnets",id:"--subscribeallsubnets",level:4},{value:"--disablePeerScoring",id:"--disablepeerscoring",level:4},{value:"--mdns",id:"--mdns",level:4},{value:"--enr.ip",id:"--enrip",level:4},{value:"--enr.tcp",id:"--enrtcp",level:4},{value:"--enr.udp",id:"--enrudp",level:4},{value:"--enr.ip6",id:"--enrip6",level:4},{value:"--enr.tcp6",id:"--enrtcp6",level:4},{value:"--enr.udp6",id:"--enrudp6",level:4},{value:"--nat",id:"--nat",level:4},{value:"--keymanager",id:"--keymanager",level:4},{value:"--keymanager.auth",id:"--keymanagerauth",level:4},{value:"--keymanager.tokenFile",id:"--keymanagertokenfile",level:4},{value:"--keymanager.port",id:"--keymanagerport",level:4},{value:"--keymanager.address",id:"--keymanageraddress",level:4},{value:"--keymanager.cors",id:"--keymanagercors",level:4},{value:"--beaconNodes",id:"--beaconnodes",level:4},{value:"--force",id:"--force",level:4},{value:"--graffiti",id:"--graffiti",level:4},{value:"--proposerSettingsFile",id:"--proposersettingsfile",level:4},{value:"--strictFeeRecipientCheck",id:"--strictfeerecipientcheck",level:4},{value:"--defaultGasLimit",id:"--defaultgaslimit",level:4},{value:"--builder.selection",id:"--builderselection",level:4},{value:"--builder.boostFactor",id:"--builderboostfactor",level:4},{value:"--useProduceBlockV3",id:"--useproduceblockv3",level:4},{value:"--broadcastValidation",id:"--broadcastvalidation",level:4},{value:"--blindedLocal",id:"--blindedlocal",level:4},{value:"--importKeystores",id:"--importkeystores",level:4},{value:"--importKeystoresPassword",id:"--importkeystorespassword",level:4},{value:"--doppelgangerProtection",id:"--doppelgangerprotection",level:4},{value:"--http.requestWireFormat",id:"--httprequestwireformat",level:4},{value:"--http.responseWireFormat",id:"--httpresponsewireformat",level:4},{value:"--externalSigner.url",id:"--externalsignerurl",level:4},{value:"--externalSigner.pubkeys",id:"--externalsignerpubkeys",level:4},{value:"--externalSigner.fetch",id:"--externalsignerfetch",level:4},{value:"--externalSigner.fetchInterval",id:"--externalsignerfetchinterval",level:4},{value:"--distributed",id:"--distributed",level:4},{value:"--genesisEth1Hash",id:"--genesiseth1hash",level:4},{value:"--genesisValidators",id:"--genesisvalidators",level:4},{value:"--startValidators",id:"--startvalidators",level:4},{value:"--genesisTime",id:"--genesistime",level:4},{value:"--reset",id:"--reset",level:4},{value:"--dumpTestnetFiles",id:"--dumptestnetfiles",level:4}];function h(e){const n={code:"code",h1:"h1",h2:"h2",h4:"h4",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(n.h1,{id:"dev-cli-command",children:[(0,d.jsx)(n.code,{children:"dev"})," CLI Command"]}),"\n",(0,d.jsx)(n.p,{children:"Quickly bootstrap a beacon node and multiple validators. Use for development and testing"}),"\n",(0,d.jsx)(n.h2,{id:"examples",children:"Examples"}),"\n",(0,d.jsx)(n.p,{children:"Start a single beacon node with 8 interop validators"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-sh",children:"./lodestar dev --genesisValidators 8 --reset\n"})}),"\n",(0,d.jsxs)(n.h2,{id:"dev-options",children:[(0,d.jsx)(n.code,{children:"dev"})," Options"]}),"\n",(0,d.jsx)(n.h4,{id:"--datadir",children:(0,d.jsx)(n.code,{children:"--dataDir"})}),"\n",(0,d.jsx)(n.p,{children:"Lodestar root data directory"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--network",children:(0,d.jsx)(n.code,{children:"--network"})}),"\n",(0,d.jsx)(n.p,{children:"Name of the Ethereum Consensus chain network to join"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.p,{children:'choices: "mainnet", "gnosis", "sepolia", "holesky", "chiado", "ephemery", "mekong", "dev"'}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"mainnet"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--paramsfile",children:(0,d.jsx)(n.code,{children:"--paramsFile"})}),"\n",(0,d.jsx)(n.p,{children:"Network configuration file"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--rcconfig",children:(0,d.jsx)(n.code,{children:"--rcConfig"})}),"\n",(0,d.jsx)(n.p,{children:"RC file to supplement command line args, accepted formats: .yml, .yaml, .json"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--terminal-total-difficulty-override",children:(0,d.jsx)(n.code,{children:"--terminal-total-difficulty-override"})}),"\n",(0,d.jsx)(n.p,{children:"Terminal PoW block TTD override"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--terminal-block-hash-override",children:(0,d.jsx)(n.code,{children:"--terminal-block-hash-override"})}),"\n",(0,d.jsx)(n.p,{children:"Terminal PoW block hash override"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--terminal-block-hash-epoch-override",children:(0,d.jsx)(n.code,{children:"--terminal-block-hash-epoch-override"})}),"\n",(0,d.jsx)(n.p,{children:"Terminal PoW block hash override activation epoch"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--genesisstatefile",children:(0,d.jsx)(n.code,{children:"--genesisStateFile"})}),"\n",(0,d.jsx)(n.p,{children:"Path or URL to download a genesis state file in ssz-encoded format"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--checkpointsyncurl",children:(0,d.jsx)(n.code,{children:"--checkpointSyncUrl"})}),"\n",(0,d.jsx)(n.p,{children:"Server url hosting Beacon Node APIs to fetch weak subjectivity state. Fetch latest finalized by default, else set --wssCheckpoint"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--checkpointstate",children:(0,d.jsx)(n.code,{children:"--checkpointState"})}),"\n",(0,d.jsx)(n.p,{children:"Set a checkpoint state to start syncing from"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--wsscheckpoint",children:(0,d.jsx)(n.code,{children:"--wssCheckpoint"})}),"\n",(0,d.jsx)(n.p,{children:"Start beacon node off a state at the provided weak subjectivity checkpoint, to be supplied in : format. For example, 0x1234:100 will sync and start off from the weak subjectivity state at checkpoint of epoch 100 with block root 0x1234."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--forcecheckpointsync",children:(0,d.jsx)(n.code,{children:"--forceCheckpointSync"})}),"\n",(0,d.jsx)(n.p,{children:"Force syncing from checkpoint state even if db state is within weak subjectivity period. This helps to avoid long sync times after node has been offline for a while."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--ignoreweaksubjectivitycheck",children:(0,d.jsx)(n.code,{children:"--ignoreWeakSubjectivityCheck"})}),"\n",(0,d.jsx)(n.p,{children:"Ignore the checkpoint sync state failing the weak subjectivity check. This is relevant in testnets where the weak subjectivity period is too small for even few epochs of non finalization causing last finalized to be out of range. This flag is not recommended for mainnet use."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--persistnetworkidentity",children:(0,d.jsx)(n.code,{children:"--persistNetworkIdentity"})}),"\n",(0,d.jsx)(n.p,{children:"Whether to reuse the same peer-id across restarts"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--private",children:(0,d.jsx)(n.code,{children:"--private"})}),"\n",(0,d.jsx)(n.p,{children:"Do not send implementation details over p2p identify protocol and in builder, execution engine and eth1 requests"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--validatormonitorlogs",children:(0,d.jsx)(n.code,{children:"--validatorMonitorLogs"})}),"\n",(0,d.jsx)(n.p,{children:"Log validator monitor events as info. This requires metrics to be enabled."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--disablelightclientserver",children:(0,d.jsx)(n.code,{children:"--disableLightClientServer"})}),"\n",(0,d.jsx)(n.p,{children:"Disable light client server."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--loglevel",children:(0,d.jsx)(n.code,{children:"--logLevel"})}),"\n",(0,d.jsx)(n.p,{children:"Logging verbosity level for emitting logs to terminal"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"info"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--logfile",children:(0,d.jsx)(n.code,{children:"--logFile"})}),"\n",(0,d.jsx)(n.p,{children:"Path to output all logs to a persistent log file, use 'none' to disable"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--logfilelevel",children:(0,d.jsx)(n.code,{children:"--logFileLevel"})}),"\n",(0,d.jsx)(n.p,{children:"Logging verbosity level for emitting logs to file"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"debug"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--logfiledailyrotate",children:(0,d.jsx)(n.code,{children:"--logFileDailyRotate"})}),"\n",(0,d.jsx)(n.p,{children:"Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"5"})]}),"\n",(0,d.jsx)(n.h4,{id:"--rest",children:(0,d.jsx)(n.code,{children:"--rest"})}),"\n",(0,d.jsx)(n.p,{children:"Enable/disable HTTP API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"true"})]}),"\n",(0,d.jsx)(n.h4,{id:"--restnamespace",children:(0,d.jsx)(n.code,{children:"--rest.namespace"})}),"\n",(0,d.jsx)(n.p,{children:"Pick namespaces to expose for HTTP API. Set to '*' to enable all namespaces"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string[]"})]}),"\n",(0,d.jsx)(n.p,{children:'choices: "beacon", "config", "debug", "events", "lightclient", "lodestar", "node", "proof", "validator", "*"'}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'["beacon","config","debug","events","node","validator","lightclient"]'})]}),"\n",(0,d.jsx)(n.h4,{id:"--restcors",children:(0,d.jsx)(n.code,{children:"--rest.cors"})}),"\n",(0,d.jsx)(n.p,{children:"Configures the Access-Control-Allow-Origin CORS header for HTTP API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"*"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--restaddress",children:(0,d.jsx)(n.code,{children:"--rest.address"})}),"\n",(0,d.jsx)(n.p,{children:"Set host for HTTP API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"127.0.0.1"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--restport",children:(0,d.jsx)(n.code,{children:"--rest.port"})}),"\n",(0,d.jsx)(n.p,{children:"Set port for HTTP API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"9596"})]}),"\n",(0,d.jsx)(n.h4,{id:"--restswaggerui",children:(0,d.jsx)(n.code,{children:"--rest.swaggerUI"})}),"\n",(0,d.jsx)(n.p,{children:"Enable Swagger UI for API exploration at http://{address}:{port}/documentation"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"true"})]}),"\n",(0,d.jsx)(n.h4,{id:"--suggestedfeerecipient",children:(0,d.jsx)(n.code,{children:"--suggestedFeeRecipient"})}),"\n",(0,d.jsx)(n.p,{children:"Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$). It would be possible (WIP) to override this per validator key using config or key manager API. Only used post merge."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"0x0000000000000000000000000000000000000000"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--emitpayloadattributes",children:(0,d.jsx)(n.code,{children:"--emitPayloadAttributes"})}),"\n",(0,d.jsxs)(n.p,{children:["Flag to SSE emit execution ",(0,d.jsx)(n.code,{children:"payloadAttributes"})," before every slot"]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"false"})]}),"\n",(0,d.jsx)(n.h4,{id:"--chainarchiveblobepochs",children:(0,d.jsx)(n.code,{children:"--chain.archiveBlobEpochs"})}),"\n",(0,d.jsx)(n.p,{children:"Number of epochs to retain finalized blobs (minimum of MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS)"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--eth1",children:(0,d.jsx)(n.code,{children:"--eth1"})}),"\n",(0,d.jsx)(n.p,{children:"Whether to follow the eth1 chain"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--eth1providerurls",children:(0,d.jsx)(n.code,{children:"--eth1.providerUrls"})}),"\n",(0,d.jsx)(n.p,{children:"Urls to Eth1 node with enabled rpc. If not explicitly provided and execution endpoint provided via execution.urls, it will use execution.urls. Otherwise will try connecting on the specified default(s)"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'[ "http://localhost:8545" ]'})]}),"\n",(0,d.jsx)(n.h4,{id:"--executionurls",children:(0,d.jsx)(n.code,{children:"--execution.urls"})}),"\n",(0,d.jsx)(n.p,{children:"Urls to execution client engine API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'[ "http://localhost:8551" ]'})]}),"\n",(0,d.jsx)(n.h4,{id:"--executiontimeout",children:(0,d.jsx)(n.code,{children:"--execution.timeout"})}),"\n",(0,d.jsx)(n.p,{children:"Timeout in milliseconds for execution engine API HTTP client"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"12000"})]}),"\n",(0,d.jsx)(n.h4,{id:"--executionretries",children:(0,d.jsx)(n.code,{children:"--execution.retries"})}),"\n",(0,d.jsx)(n.p,{children:"Number of retries when calling execution engine API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"2"})]}),"\n",(0,d.jsx)(n.h4,{id:"--executionretrydelay",children:(0,d.jsx)(n.code,{children:"--execution.retryDelay"})}),"\n",(0,d.jsx)(n.p,{children:"Delay time in milliseconds between retries when retrying calls to the execution engine API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"2000"})]}),"\n",(0,d.jsx)(n.h4,{id:"--executionenginemock",children:(0,d.jsx)(n.code,{children:"--execution.engineMock"})}),"\n",(0,d.jsx)(n.p,{children:"Set the execution engine to mock mode (development only)"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--jwtsecret",children:(0,d.jsx)(n.code,{children:"--jwtSecret"})}),"\n",(0,d.jsx)(n.p,{children:"File path to a shared hex-encoded jwt secret which will be used to generate and bundle HS256 encoded jwt tokens for authentication with the EL client's rpc server hosting engine apis. Secret to be exactly same as the one used by the corresponding EL client."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--jwtid",children:(0,d.jsx)(n.code,{children:"--jwtId"})}),"\n",(0,d.jsx)(n.p,{children:"An optional identifier to be set in the id field of the claims included in jwt tokens used for authentication with EL client's rpc server hosting engine apis"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--builder",children:(0,d.jsx)(n.code,{children:"--builder"})}),"\n",(0,d.jsxs)(n.p,{children:["An alias for ",(0,d.jsx)(n.code,{children:"--builder.selection default"})," for the builder flow, ignored if ",(0,d.jsx)(n.code,{children:"--builder.selection"})," is explicitly provided"]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--builderurl",children:(0,d.jsx)(n.code,{children:"--builder.url"})}),"\n",(0,d.jsx)(n.p,{children:"Url hosting the builder API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"http://localhost:8661"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--buildertimeout",children:(0,d.jsx)(n.code,{children:"--builder.timeout"})}),"\n",(0,d.jsx)(n.p,{children:"Timeout in milliseconds for builder API HTTP client"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"12000"})]}),"\n",(0,d.jsx)(n.h4,{id:"--builderfaultinspectionwindow",children:(0,d.jsx)(n.code,{children:"--builder.faultInspectionWindow"})}),"\n",(0,d.jsx)(n.p,{children:"Window to inspect missed slots for enabling/disabling builder circuit breaker"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--builderallowedfaults",children:(0,d.jsx)(n.code,{children:"--builder.allowedFaults"})}),"\n",(0,d.jsxs)(n.p,{children:["Number of missed slots allowed in the ",(0,d.jsx)(n.code,{children:"faultInspectionWindow"})," for builder circuit"]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--metrics",children:(0,d.jsx)(n.code,{children:"--metrics"})}),"\n",(0,d.jsx)(n.p,{children:"Enable the Prometheus metrics HTTP server"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"false"})]}),"\n",(0,d.jsx)(n.h4,{id:"--metricsport",children:(0,d.jsx)(n.code,{children:"--metrics.port"})}),"\n",(0,d.jsx)(n.p,{children:"Listen TCP port for the Prometheus metrics HTTP server"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"5064"})]}),"\n",(0,d.jsx)(n.h4,{id:"--metricsaddress",children:(0,d.jsx)(n.code,{children:"--metrics.address"})}),"\n",(0,d.jsx)(n.p,{children:"Listen address for the Prometheus metrics HTTP server"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"127.0.0.1"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--monitoringendpoint",children:(0,d.jsx)(n.code,{children:"--monitoring.endpoint"})}),"\n",(0,d.jsx)(n.p,{children:"Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in)"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--monitoringinterval",children:(0,d.jsx)(n.code,{children:"--monitoring.interval"})}),"\n",(0,d.jsx)(n.p,{children:"Interval in milliseconds between sending client stats to the remote service"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"60000"})]}),"\n",(0,d.jsx)(n.h4,{id:"--discv5",children:(0,d.jsx)(n.code,{children:"--discv5"})}),"\n",(0,d.jsx)(n.p,{children:"Enable discv5"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"true"})]}),"\n",(0,d.jsx)(n.h4,{id:"--listenaddress",children:(0,d.jsx)(n.code,{children:"--listenAddress"})}),"\n",(0,d.jsx)(n.p,{children:"The IPv4 address to listen for p2p UDP and TCP connections"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"0.0.0.0"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--port",children:(0,d.jsx)(n.code,{children:"--port"})}),"\n",(0,d.jsx)(n.p,{children:"The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort flag."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"9000"})]}),"\n",(0,d.jsx)(n.h4,{id:"--discoveryport",children:(0,d.jsx)(n.code,{children:"--discoveryPort"})}),"\n",(0,d.jsxs)(n.p,{children:["The UDP port that discovery will listen on. Defaults to ",(0,d.jsx)(n.code,{children:"port"})]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"port"})]}),"\n",(0,d.jsx)(n.h4,{id:"--listenaddress6",children:(0,d.jsx)(n.code,{children:"--listenAddress6"})}),"\n",(0,d.jsx)(n.p,{children:"The IPv6 address to listen for p2p UDP and TCP connections"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--port6",children:(0,d.jsx)(n.code,{children:"--port6"})}),"\n",(0,d.jsx)(n.p,{children:"The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort6 flag."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"9090"})]}),"\n",(0,d.jsx)(n.h4,{id:"--discoveryport6",children:(0,d.jsx)(n.code,{children:"--discoveryPort6"})}),"\n",(0,d.jsxs)(n.p,{children:["The UDP port that discovery will listen on. Defaults to ",(0,d.jsx)(n.code,{children:"port6"})]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"port6"})]}),"\n",(0,d.jsx)(n.h4,{id:"--bootnodes",children:(0,d.jsx)(n.code,{children:"--bootnodes"})}),"\n",(0,d.jsx)(n.p,{children:"Bootnodes for discv5 discovery"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'[ "[]" ]'})]}),"\n",(0,d.jsx)(n.h4,{id:"--targetpeers",children:(0,d.jsx)(n.code,{children:"--targetPeers"})}),"\n",(0,d.jsx)(n.p,{children:"The target connected peers. Above this number peers will be disconnected"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"100"})]}),"\n",(0,d.jsx)(n.h4,{id:"--subscribeallsubnets",children:(0,d.jsx)(n.code,{children:"--subscribeAllSubnets"})}),"\n",(0,d.jsx)(n.p,{children:"Subscribe to all subnets regardless of validator count"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"false"})]}),"\n",(0,d.jsx)(n.h4,{id:"--disablepeerscoring",children:(0,d.jsx)(n.code,{children:"--disablePeerScoring"})}),"\n",(0,d.jsx)(n.p,{children:"Disable peer scoring, used for testing on devnets"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"false"})]}),"\n",(0,d.jsx)(n.h4,{id:"--mdns",children:(0,d.jsx)(n.code,{children:"--mdns"})}),"\n",(0,d.jsx)(n.p,{children:"Enable mdns local peer discovery"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"false"})]}),"\n",(0,d.jsx)(n.h4,{id:"--enrip",children:(0,d.jsx)(n.code,{children:"--enr.ip"})}),"\n",(0,d.jsx)(n.p,{children:"Override ENR IP entry"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--enrtcp",children:(0,d.jsx)(n.code,{children:"--enr.tcp"})}),"\n",(0,d.jsx)(n.p,{children:"Override ENR TCP entry"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--enrudp",children:(0,d.jsx)(n.code,{children:"--enr.udp"})}),"\n",(0,d.jsx)(n.p,{children:"Override ENR UDP entry"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--enrip6",children:(0,d.jsx)(n.code,{children:"--enr.ip6"})}),"\n",(0,d.jsx)(n.p,{children:"Override ENR IPv6 entry"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--enrtcp6",children:(0,d.jsx)(n.code,{children:"--enr.tcp6"})}),"\n",(0,d.jsx)(n.p,{children:"Override ENR (IPv6-specific) TCP entry"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--enrudp6",children:(0,d.jsx)(n.code,{children:"--enr.udp6"})}),"\n",(0,d.jsx)(n.p,{children:"Override ENR (IPv6-specific) UDP entry"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--nat",children:(0,d.jsx)(n.code,{children:"--nat"})}),"\n",(0,d.jsx)(n.p,{children:"Allow configuration of non-local addresses"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--keymanager",children:(0,d.jsx)(n.code,{children:"--keymanager"})}),"\n",(0,d.jsx)(n.p,{children:"Enable key manager API server"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--keymanagerauth",children:(0,d.jsx)(n.code,{children:"--keymanager.auth"})}),"\n",(0,d.jsx)(n.p,{children:"Enable token bearer authentication for key manager API server"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"true"})]}),"\n",(0,d.jsx)(n.h4,{id:"--keymanagertokenfile",children:(0,d.jsx)(n.code,{children:"--keymanager.tokenFile"})}),"\n",(0,d.jsx)(n.p,{children:"Path to file containing bearer token used for key manager API authentication"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--keymanagerport",children:(0,d.jsx)(n.code,{children:"--keymanager.port"})}),"\n",(0,d.jsx)(n.p,{children:"Set port for key manager API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"5062"})]}),"\n",(0,d.jsx)(n.h4,{id:"--keymanageraddress",children:(0,d.jsx)(n.code,{children:"--keymanager.address"})}),"\n",(0,d.jsx)(n.p,{children:"Set host for key manager API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"127.0.0.1"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--keymanagercors",children:(0,d.jsx)(n.code,{children:"--keymanager.cors"})}),"\n",(0,d.jsx)(n.p,{children:"Configures the Access-Control-Allow-Origin CORS header for key manager API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"*"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--beaconnodes",children:(0,d.jsx)(n.code,{children:"--beaconNodes"})}),"\n",(0,d.jsx)(n.p,{children:"Addresses to connect to BeaconNode"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'[ "http://127.0.0.1:9596" ]'})]}),"\n",(0,d.jsx)(n.h4,{id:"--force",children:(0,d.jsx)(n.code,{children:"--force"})}),"\n",(0,d.jsx)(n.p,{children:"Open validators even if there's a lockfile. Use with caution"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--graffiti",children:(0,d.jsx)(n.code,{children:"--graffiti"})}),"\n",(0,d.jsx)(n.p,{children:"Specify your custom graffiti to be included in blocks (plain UTF8 text, 32 characters max)"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--proposersettingsfile",children:(0,d.jsx)(n.code,{children:"--proposerSettingsFile"})}),"\n",(0,d.jsx)(n.p,{children:"A yaml file to specify detailed default and per validator public key customized proposer configs. PS: This feature and its format is in alpha and subject to change"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--strictfeerecipientcheck",children:(0,d.jsx)(n.code,{children:"--strictFeeRecipientCheck"})}),"\n",(0,d.jsxs)(n.p,{children:["Enable strict checking of the validator's ",(0,d.jsx)(n.code,{children:"feeRecipient"})," with the one returned by engine"]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--defaultgaslimit",children:(0,d.jsx)(n.code,{children:"--defaultGasLimit"})}),"\n",(0,d.jsx)(n.p,{children:"Suggested gas limit to the engine/builder for building execution payloads. Only used post merge."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"30000000"})]}),"\n",(0,d.jsx)(n.h4,{id:"--builderselection",children:(0,d.jsx)(n.code,{children:"--builder.selection"})}),"\n",(0,d.jsxs)(n.p,{children:["Builder block selection strategy ",(0,d.jsx)(n.code,{children:"default"}),", ",(0,d.jsx)(n.code,{children:"maxprofit"}),", ",(0,d.jsx)(n.code,{children:"builderalways"}),", ",(0,d.jsx)(n.code,{children:"builderonly"}),", ",(0,d.jsx)(n.code,{children:"executionalways"}),", or ",(0,d.jsx)(n.code,{children:"executiononly"})]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"executiononly"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--builderboostfactor",children:(0,d.jsx)(n.code,{children:"--builder.boostFactor"})}),"\n",(0,d.jsxs)(n.p,{children:["Percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if ",(0,d.jsx)(n.code,{children:"--builder.selection"})," is set to anything other than ",(0,d.jsx)(n.code,{children:"maxprofit"})]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"100"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--useproduceblockv3",children:(0,d.jsx)(n.code,{children:"--useProduceBlockV3"})}),"\n",(0,d.jsx)(n.p,{children:"Enable/disable usage of produceBlockV3 for block production, is auto enabled on deneb+ blocks"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--broadcastvalidation",children:(0,d.jsx)(n.code,{children:"--broadcastValidation"})}),"\n",(0,d.jsx)(n.p,{children:"Validations to be run by beacon node for the signed block prior to publishing"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"gossip"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--blindedlocal",children:(0,d.jsx)(n.code,{children:"--blindedLocal"})}),"\n",(0,d.jsx)(n.p,{children:"Request fetching local block in blinded format for produceBlockV3"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"false"})]}),"\n",(0,d.jsx)(n.h4,{id:"--importkeystores",children:(0,d.jsx)(n.code,{children:"--importKeystores"})}),"\n",(0,d.jsx)(n.p,{children:"Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'[ "./keystores/*.json" ]'})]}),"\n",(0,d.jsx)(n.h4,{id:"--importkeystorespassword",children:(0,d.jsx)(n.code,{children:"--importKeystoresPassword"})}),"\n",(0,d.jsxs)(n.p,{children:["Path to a file with password to decrypt all keystores from ",(0,d.jsx)(n.code,{children:"importKeystores"})," option"]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"./password.txt"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--doppelgangerprotection",children:(0,d.jsx)(n.code,{children:"--doppelgangerProtection"})}),"\n",(0,d.jsx)(n.p,{children:"Enables Doppelganger protection"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--httprequestwireformat",children:(0,d.jsx)(n.code,{children:"--http.requestWireFormat"})}),"\n",(0,d.jsxs)(n.p,{children:["Wire format to use in HTTP requests to beacon node. Can be one of ",(0,d.jsx)(n.code,{children:"json"})," or ",(0,d.jsx)(n.code,{children:"ssz"})]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"json"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--httpresponsewireformat",children:(0,d.jsx)(n.code,{children:"--http.responseWireFormat"})}),"\n",(0,d.jsxs)(n.p,{children:["Preferred wire format for HTTP responses from beacon node. Can be one of ",(0,d.jsx)(n.code,{children:"json"})," or ",(0,d.jsx)(n.code,{children:"ssz"})]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"ssz"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--externalsignerurl",children:(0,d.jsx)(n.code,{children:"--externalSigner.url"})}),"\n",(0,d.jsx)(n.p,{children:"URL to connect to an external signing server"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--externalsignerpubkeys",children:(0,d.jsx)(n.code,{children:"--externalSigner.pubkeys"})}),"\n",(0,d.jsx)(n.p,{children:"List of validator public keys used by an external signer. May also provide a single string of comma-separated public keys"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string[]"})]}),"\n",(0,d.jsx)(n.h4,{id:"--externalsignerfetch",children:(0,d.jsx)(n.code,{children:"--externalSigner.fetch"})}),"\n",(0,d.jsxs)(n.p,{children:["Fetch the list of public keys to validate from an external signer. Cannot be used in combination with ",(0,d.jsx)(n.code,{children:"--externalSigner.pubkeys"})]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--externalsignerfetchinterval",children:(0,d.jsx)(n.code,{children:"--externalSigner.fetchInterval"})}),"\n",(0,d.jsx)(n.p,{children:"Interval in milliseconds between fetching the list of public keys from external signer, once per epoch by default"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--distributed",children:(0,d.jsx)(n.code,{children:"--distributed"})}),"\n",(0,d.jsx)(n.p,{children:"Enables specific features required to run as part of a distributed validator cluster"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--genesiseth1hash",children:(0,d.jsx)(n.code,{children:"--genesisEth1Hash"})}),"\n",(0,d.jsx)(n.p,{children:"If present it will create genesis with this eth1 hash."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--genesisvalidators",children:(0,d.jsx)(n.code,{children:"--genesisValidators"})}),"\n",(0,d.jsx)(n.p,{children:"If present it will create genesis with interop validators and start chain."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"8"})]}),"\n",(0,d.jsx)(n.h4,{id:"--startvalidators",children:(0,d.jsx)(n.code,{children:"--startValidators"})}),"\n",(0,d.jsx)(n.p,{children:"Start interop validators in inclusive range with notation '0..7'"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--genesistime",children:(0,d.jsx)(n.code,{children:"--genesisTime"})}),"\n",(0,d.jsx)(n.p,{children:"genesis_time to initialize interop genesis state"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"now"})]}),"\n",(0,d.jsx)(n.h4,{id:"--reset",children:(0,d.jsx)(n.code,{children:"--reset"})}),"\n",(0,d.jsx)(n.p,{children:"To delete chain and validator directories"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--dumptestnetfiles",children:(0,d.jsx)(n.code,{children:"--dumpTestnetFiles"})}),"\n",(0,d.jsx)(n.p,{children:"Dump testnet files and exit"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]})]})}function a(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>c,x:()=>l});var d=i(6540);const s={},r=d.createContext(s);function c(e){const n=d.useContext(r);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),d.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0916e813.f48d5292.js b/assets/js/0916e813.f48d5292.js deleted file mode 100644 index f424e36675b..00000000000 --- a/assets/js/0916e813.f48d5292.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_lodestar_docs=self.webpackChunk_lodestar_docs||[]).push([[3632],{3870:(e,n,d)=>{d.r(n),d.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>a,frontMatter:()=>s,metadata:()=>c,toc:()=>t});var i=d(4848),r=d(8453);const s={title:"CLI Reference"},l="dev CLI Command",c={id:"contribution/dev-cli",title:"CLI Reference",description:"Quickly bootstrap a beacon node and multiple validators. Use for development and testing",source:"@site/pages/contribution/dev-cli.md",sourceDirName:"contribution",slug:"/contribution/dev-cli",permalink:"/lodestar/contribution/dev-cli",draft:!1,unlisted:!1,editUrl:"https://github.com/ChainSafe/lodestar/tree/unstable/docs/pages/contribution/dev-cli.md",tags:[],version:"current",frontMatter:{title:"CLI Reference"},sidebar:"tutorialSidebar",previous:{title:"Dependency Graph",permalink:"/lodestar/contribution/depgraph"},next:{title:"Debugging",permalink:"/lodestar/contribution/tools/debugging"}},o={},t=[{value:"Examples",id:"examples",level:2},{value:"dev Options",id:"dev-options",level:2},{value:"--dataDir",id:"--datadir",level:4},{value:"--network",id:"--network",level:4},{value:"--paramsFile",id:"--paramsfile",level:4},{value:"--terminal-total-difficulty-override",id:"--terminal-total-difficulty-override",level:4},{value:"--terminal-block-hash-override",id:"--terminal-block-hash-override",level:4},{value:"--terminal-block-hash-epoch-override",id:"--terminal-block-hash-epoch-override",level:4},{value:"--checkpointSyncUrl",id:"--checkpointsyncurl",level:4},{value:"--checkpointState",id:"--checkpointstate",level:4},{value:"--wssCheckpoint",id:"--wsscheckpoint",level:4},{value:"--forceCheckpointSync",id:"--forcecheckpointsync",level:4},{value:"--private",id:"--private",level:4},{value:"--validatorMonitorLogs",id:"--validatormonitorlogs",level:4},{value:"--disableLightClientServer",id:"--disablelightclientserver",level:4},{value:"--logLevel",id:"--loglevel",level:4},{value:"--logFile",id:"--logfile",level:4},{value:"--logFileLevel",id:"--logfilelevel",level:4},{value:"--logFileDailyRotate",id:"--logfiledailyrotate",level:4},{value:"--rest",id:"--rest",level:4},{value:"--rest.namespace",id:"--restnamespace",level:4},{value:"--rest.cors",id:"--restcors",level:4},{value:"--rest.address",id:"--restaddress",level:4},{value:"--rest.port",id:"--restport",level:4},{value:"--rest.swaggerUI",id:"--restswaggerui",level:4},{value:"--suggestedFeeRecipient",id:"--suggestedfeerecipient",level:4},{value:"--emitPayloadAttributes",id:"--emitpayloadattributes",level:4},{value:"--chain.archiveBlobEpochs",id:"--chainarchiveblobepochs",level:4},{value:"--eth1",id:"--eth1",level:4},{value:"--eth1.providerUrls",id:"--eth1providerurls",level:4},{value:"--execution.urls",id:"--executionurls",level:4},{value:"--execution.timeout",id:"--executiontimeout",level:4},{value:"--execution.retries",id:"--executionretries",level:4},{value:"--execution.retryDelay",id:"--executionretrydelay",level:4},{value:"--execution.engineMock",id:"--executionenginemock",level:4},{value:"--jwtSecret",id:"--jwtsecret",level:4},{value:"--jwtId",id:"--jwtid",level:4},{value:"--builder",id:"--builder",level:4},{value:"--builder.url",id:"--builderurl",level:4},{value:"--builder.timeout",id:"--buildertimeout",level:4},{value:"--builder.faultInspectionWindow",id:"--builderfaultinspectionwindow",level:4},{value:"--builder.allowedFaults",id:"--builderallowedfaults",level:4},{value:"--metrics",id:"--metrics",level:4},{value:"--metrics.port",id:"--metricsport",level:4},{value:"--metrics.address",id:"--metricsaddress",level:4},{value:"--monitoring.endpoint",id:"--monitoringendpoint",level:4},{value:"--monitoring.interval",id:"--monitoringinterval",level:4},{value:"--discv5",id:"--discv5",level:4},{value:"--listenAddress",id:"--listenaddress",level:4},{value:"--port",id:"--port",level:4},{value:"--discoveryPort",id:"--discoveryport",level:4},{value:"--listenAddress6",id:"--listenaddress6",level:4},{value:"--port6",id:"--port6",level:4},{value:"--discoveryPort6",id:"--discoveryport6",level:4},{value:"--bootnodes",id:"--bootnodes",level:4},{value:"--targetPeers",id:"--targetpeers",level:4},{value:"--subscribeAllSubnets",id:"--subscribeallsubnets",level:4},{value:"--disablePeerScoring",id:"--disablepeerscoring",level:4},{value:"--mdns",id:"--mdns",level:4},{value:"--enr.ip",id:"--enrip",level:4},{value:"--enr.tcp",id:"--enrtcp",level:4},{value:"--enr.udp",id:"--enrudp",level:4},{value:"--enr.ip6",id:"--enrip6",level:4},{value:"--enr.tcp6",id:"--enrtcp6",level:4},{value:"--enr.udp6",id:"--enrudp6",level:4},{value:"--nat",id:"--nat",level:4},{value:"--keymanager",id:"--keymanager",level:4},{value:"--keymanager.auth",id:"--keymanagerauth",level:4},{value:"--keymanager.tokenFile",id:"--keymanagertokenfile",level:4},{value:"--keymanager.port",id:"--keymanagerport",level:4},{value:"--keymanager.address",id:"--keymanageraddress",level:4},{value:"--keymanager.cors",id:"--keymanagercors",level:4},{value:"--beaconNodes",id:"--beaconnodes",level:4},{value:"--force",id:"--force",level:4},{value:"--graffiti",id:"--graffiti",level:4},{value:"--proposerSettingsFile",id:"--proposersettingsfile",level:4},{value:"--strictFeeRecipientCheck",id:"--strictfeerecipientcheck",level:4},{value:"--defaultGasLimit",id:"--defaultgaslimit",level:4},{value:"--builder.selection",id:"--builderselection",level:4},{value:"--builder.boostFactor",id:"--builderboostfactor",level:4},{value:"--useProduceBlockV3",id:"--useproduceblockv3",level:4},{value:"--broadcastValidation",id:"--broadcastvalidation",level:4},{value:"--blindedLocal",id:"--blindedlocal",level:4},{value:"--importKeystores",id:"--importkeystores",level:4},{value:"--importKeystoresPassword",id:"--importkeystorespassword",level:4},{value:"--doppelgangerProtection",id:"--doppelgangerprotection",level:4},{value:"--http.requestWireFormat",id:"--httprequestwireformat",level:4},{value:"--http.responseWireFormat",id:"--httpresponsewireformat",level:4},{value:"--externalSigner.url",id:"--externalsignerurl",level:4},{value:"--externalSigner.pubkeys",id:"--externalsignerpubkeys",level:4},{value:"--externalSigner.fetch",id:"--externalsignerfetch",level:4},{value:"--externalSigner.fetchInterval",id:"--externalsignerfetchinterval",level:4},{value:"--distributed",id:"--distributed",level:4},{value:"--genesisEth1Hash",id:"--genesiseth1hash",level:4},{value:"--genesisValidators",id:"--genesisvalidators",level:4},{value:"--startValidators",id:"--startvalidators",level:4},{value:"--genesisTime",id:"--genesistime",level:4},{value:"--reset",id:"--reset",level:4},{value:"--dumpTestnetFiles",id:"--dumptestnetfiles",level:4}];function h(e){const n={code:"code",h1:"h1",h2:"h2",h4:"h4",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.h1,{id:"dev-cli-command",children:[(0,i.jsx)(n.code,{children:"dev"})," CLI Command"]}),"\n",(0,i.jsx)(n.p,{children:"Quickly bootstrap a beacon node and multiple validators. Use for development and testing"}),"\n",(0,i.jsx)(n.h2,{id:"examples",children:"Examples"}),"\n",(0,i.jsx)(n.p,{children:"Start a single beacon node with 8 interop validators"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-sh",children:"./lodestar dev --genesisValidators 8 --reset\n"})}),"\n",(0,i.jsxs)(n.h2,{id:"dev-options",children:[(0,i.jsx)(n.code,{children:"dev"})," Options"]}),"\n",(0,i.jsx)(n.h4,{id:"--datadir",children:(0,i.jsx)(n.code,{children:"--dataDir"})}),"\n",(0,i.jsx)(n.p,{children:"Lodestar root data directory"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--network",children:(0,i.jsx)(n.code,{children:"--network"})}),"\n",(0,i.jsx)(n.p,{children:"Name of the Ethereum Consensus chain network to join"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "mainnet", "gnosis", "sepolia", "holesky", "chiado", "ephemery", "mekong", "dev"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"mainnet"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--paramsfile",children:(0,i.jsx)(n.code,{children:"--paramsFile"})}),"\n",(0,i.jsx)(n.p,{children:"Network configuration file"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--terminal-total-difficulty-override",children:(0,i.jsx)(n.code,{children:"--terminal-total-difficulty-override"})}),"\n",(0,i.jsx)(n.p,{children:"Terminal PoW block TTD override"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--terminal-block-hash-override",children:(0,i.jsx)(n.code,{children:"--terminal-block-hash-override"})}),"\n",(0,i.jsx)(n.p,{children:"Terminal PoW block hash override"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--terminal-block-hash-epoch-override",children:(0,i.jsx)(n.code,{children:"--terminal-block-hash-epoch-override"})}),"\n",(0,i.jsx)(n.p,{children:"Terminal PoW block hash override activation epoch"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--checkpointsyncurl",children:(0,i.jsx)(n.code,{children:"--checkpointSyncUrl"})}),"\n",(0,i.jsx)(n.p,{children:"Server url hosting Beacon Node APIs to fetch weak subjectivity state. Fetch latest finalized by default, else set --wssCheckpoint"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--checkpointstate",children:(0,i.jsx)(n.code,{children:"--checkpointState"})}),"\n",(0,i.jsx)(n.p,{children:"Set a checkpoint state to start syncing from"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--wsscheckpoint",children:(0,i.jsx)(n.code,{children:"--wssCheckpoint"})}),"\n",(0,i.jsx)(n.p,{children:"Start beacon node off a state at the provided weak subjectivity checkpoint, to be supplied in : format. For example, 0x1234:100 will sync and start off from the weak subjectivity state at checkpoint of epoch 100 with block root 0x1234."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--forcecheckpointsync",children:(0,i.jsx)(n.code,{children:"--forceCheckpointSync"})}),"\n",(0,i.jsx)(n.p,{children:"Force syncing from checkpoint state even if db state is within weak subjectivity period. This helps to avoid long sync times after node has been offline for a while."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--private",children:(0,i.jsx)(n.code,{children:"--private"})}),"\n",(0,i.jsx)(n.p,{children:"Do not send implementation details over p2p identify protocol and in builder, execution engine and eth1 requests"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--validatormonitorlogs",children:(0,i.jsx)(n.code,{children:"--validatorMonitorLogs"})}),"\n",(0,i.jsx)(n.p,{children:"Log validator monitor events as info. This requires metrics to be enabled."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--disablelightclientserver",children:(0,i.jsx)(n.code,{children:"--disableLightClientServer"})}),"\n",(0,i.jsx)(n.p,{children:"Disable light client server."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--loglevel",children:(0,i.jsx)(n.code,{children:"--logLevel"})}),"\n",(0,i.jsx)(n.p,{children:"Logging verbosity level for emitting logs to terminal"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"info"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--logfile",children:(0,i.jsx)(n.code,{children:"--logFile"})}),"\n",(0,i.jsx)(n.p,{children:"Path to output all logs to a persistent log file, use 'none' to disable"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--logfilelevel",children:(0,i.jsx)(n.code,{children:"--logFileLevel"})}),"\n",(0,i.jsx)(n.p,{children:"Logging verbosity level for emitting logs to file"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"debug"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--logfiledailyrotate",children:(0,i.jsx)(n.code,{children:"--logFileDailyRotate"})}),"\n",(0,i.jsx)(n.p,{children:"Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"5"})]}),"\n",(0,i.jsx)(n.h4,{id:"--rest",children:(0,i.jsx)(n.code,{children:"--rest"})}),"\n",(0,i.jsx)(n.p,{children:"Enable/disable HTTP API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"true"})]}),"\n",(0,i.jsx)(n.h4,{id:"--restnamespace",children:(0,i.jsx)(n.code,{children:"--rest.namespace"})}),"\n",(0,i.jsx)(n.p,{children:"Pick namespaces to expose for HTTP API. Set to '*' to enable all namespaces"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "beacon", "config", "debug", "events", "lightclient", "lodestar", "node", "proof", "validator", "*"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'["beacon","config","debug","events","node","validator","lightclient"]'})]}),"\n",(0,i.jsx)(n.h4,{id:"--restcors",children:(0,i.jsx)(n.code,{children:"--rest.cors"})}),"\n",(0,i.jsx)(n.p,{children:"Configures the Access-Control-Allow-Origin CORS header for HTTP API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"*"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--restaddress",children:(0,i.jsx)(n.code,{children:"--rest.address"})}),"\n",(0,i.jsx)(n.p,{children:"Set host for HTTP API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"127.0.0.1"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--restport",children:(0,i.jsx)(n.code,{children:"--rest.port"})}),"\n",(0,i.jsx)(n.p,{children:"Set port for HTTP API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"9596"})]}),"\n",(0,i.jsx)(n.h4,{id:"--restswaggerui",children:(0,i.jsx)(n.code,{children:"--rest.swaggerUI"})}),"\n",(0,i.jsx)(n.p,{children:"Enable Swagger UI for API exploration at http://{address}:{port}/documentation"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"true"})]}),"\n",(0,i.jsx)(n.h4,{id:"--suggestedfeerecipient",children:(0,i.jsx)(n.code,{children:"--suggestedFeeRecipient"})}),"\n",(0,i.jsx)(n.p,{children:"Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$). It would be possible (WIP) to override this per validator key using config or key manager API. Only used post merge."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"0x0000000000000000000000000000000000000000"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--emitpayloadattributes",children:(0,i.jsx)(n.code,{children:"--emitPayloadAttributes"})}),"\n",(0,i.jsxs)(n.p,{children:["Flag to SSE emit execution ",(0,i.jsx)(n.code,{children:"payloadAttributes"})," before every slot"]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"false"})]}),"\n",(0,i.jsx)(n.h4,{id:"--chainarchiveblobepochs",children:(0,i.jsx)(n.code,{children:"--chain.archiveBlobEpochs"})}),"\n",(0,i.jsx)(n.p,{children:"Number of epochs to retain finalized blobs (minimum of MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS)"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--eth1",children:(0,i.jsx)(n.code,{children:"--eth1"})}),"\n",(0,i.jsx)(n.p,{children:"Whether to follow the eth1 chain"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--eth1providerurls",children:(0,i.jsx)(n.code,{children:"--eth1.providerUrls"})}),"\n",(0,i.jsx)(n.p,{children:"Urls to Eth1 node with enabled rpc. If not explicitly provided and execution endpoint provided via execution.urls, it will use execution.urls. Otherwise will try connecting on the specified default(s)"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'[ "http://localhost:8545" ]'})]}),"\n",(0,i.jsx)(n.h4,{id:"--executionurls",children:(0,i.jsx)(n.code,{children:"--execution.urls"})}),"\n",(0,i.jsx)(n.p,{children:"Urls to execution client engine API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'[ "http://localhost:8551" ]'})]}),"\n",(0,i.jsx)(n.h4,{id:"--executiontimeout",children:(0,i.jsx)(n.code,{children:"--execution.timeout"})}),"\n",(0,i.jsx)(n.p,{children:"Timeout in milliseconds for execution engine API HTTP client"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"12000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--executionretries",children:(0,i.jsx)(n.code,{children:"--execution.retries"})}),"\n",(0,i.jsx)(n.p,{children:"Number of retries when calling execution engine API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"2"})]}),"\n",(0,i.jsx)(n.h4,{id:"--executionretrydelay",children:(0,i.jsx)(n.code,{children:"--execution.retryDelay"})}),"\n",(0,i.jsx)(n.p,{children:"Delay time in milliseconds between retries when retrying calls to the execution engine API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"2000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--executionenginemock",children:(0,i.jsx)(n.code,{children:"--execution.engineMock"})}),"\n",(0,i.jsx)(n.p,{children:"Set the execution engine to mock mode (development only)"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--jwtsecret",children:(0,i.jsx)(n.code,{children:"--jwtSecret"})}),"\n",(0,i.jsx)(n.p,{children:"File path to a shared hex-encoded jwt secret which will be used to generate and bundle HS256 encoded jwt tokens for authentication with the EL client's rpc server hosting engine apis. Secret to be exactly same as the one used by the corresponding EL client."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--jwtid",children:(0,i.jsx)(n.code,{children:"--jwtId"})}),"\n",(0,i.jsx)(n.p,{children:"An optional identifier to be set in the id field of the claims included in jwt tokens used for authentication with EL client's rpc server hosting engine apis"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--builder",children:(0,i.jsx)(n.code,{children:"--builder"})}),"\n",(0,i.jsxs)(n.p,{children:["An alias for ",(0,i.jsx)(n.code,{children:"--builder.selection default"})," for the builder flow, ignored if ",(0,i.jsx)(n.code,{children:"--builder.selection"})," is explicitly provided"]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--builderurl",children:(0,i.jsx)(n.code,{children:"--builder.url"})}),"\n",(0,i.jsx)(n.p,{children:"Url hosting the builder API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"http://localhost:8661"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--buildertimeout",children:(0,i.jsx)(n.code,{children:"--builder.timeout"})}),"\n",(0,i.jsx)(n.p,{children:"Timeout in milliseconds for builder API HTTP client"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"12000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--builderfaultinspectionwindow",children:(0,i.jsx)(n.code,{children:"--builder.faultInspectionWindow"})}),"\n",(0,i.jsx)(n.p,{children:"Window to inspect missed slots for enabling/disabling builder circuit breaker"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--builderallowedfaults",children:(0,i.jsx)(n.code,{children:"--builder.allowedFaults"})}),"\n",(0,i.jsxs)(n.p,{children:["Number of missed slots allowed in the ",(0,i.jsx)(n.code,{children:"faultInspectionWindow"})," for builder circuit"]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--metrics",children:(0,i.jsx)(n.code,{children:"--metrics"})}),"\n",(0,i.jsx)(n.p,{children:"Enable the Prometheus metrics HTTP server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"false"})]}),"\n",(0,i.jsx)(n.h4,{id:"--metricsport",children:(0,i.jsx)(n.code,{children:"--metrics.port"})}),"\n",(0,i.jsx)(n.p,{children:"Listen TCP port for the Prometheus metrics HTTP server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"5064"})]}),"\n",(0,i.jsx)(n.h4,{id:"--metricsaddress",children:(0,i.jsx)(n.code,{children:"--metrics.address"})}),"\n",(0,i.jsx)(n.p,{children:"Listen address for the Prometheus metrics HTTP server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"127.0.0.1"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--monitoringendpoint",children:(0,i.jsx)(n.code,{children:"--monitoring.endpoint"})}),"\n",(0,i.jsx)(n.p,{children:"Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in)"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--monitoringinterval",children:(0,i.jsx)(n.code,{children:"--monitoring.interval"})}),"\n",(0,i.jsx)(n.p,{children:"Interval in milliseconds between sending client stats to the remote service"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"60000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--discv5",children:(0,i.jsx)(n.code,{children:"--discv5"})}),"\n",(0,i.jsx)(n.p,{children:"Enable discv5"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"true"})]}),"\n",(0,i.jsx)(n.h4,{id:"--listenaddress",children:(0,i.jsx)(n.code,{children:"--listenAddress"})}),"\n",(0,i.jsx)(n.p,{children:"The IPv4 address to listen for p2p UDP and TCP connections"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"0.0.0.0"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--port",children:(0,i.jsx)(n.code,{children:"--port"})}),"\n",(0,i.jsx)(n.p,{children:"The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort flag."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"9000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--discoveryport",children:(0,i.jsx)(n.code,{children:"--discoveryPort"})}),"\n",(0,i.jsxs)(n.p,{children:["The UDP port that discovery will listen on. Defaults to ",(0,i.jsx)(n.code,{children:"port"})]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"port"})]}),"\n",(0,i.jsx)(n.h4,{id:"--listenaddress6",children:(0,i.jsx)(n.code,{children:"--listenAddress6"})}),"\n",(0,i.jsx)(n.p,{children:"The IPv6 address to listen for p2p UDP and TCP connections"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--port6",children:(0,i.jsx)(n.code,{children:"--port6"})}),"\n",(0,i.jsx)(n.p,{children:"The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort6 flag."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"9090"})]}),"\n",(0,i.jsx)(n.h4,{id:"--discoveryport6",children:(0,i.jsx)(n.code,{children:"--discoveryPort6"})}),"\n",(0,i.jsxs)(n.p,{children:["The UDP port that discovery will listen on. Defaults to ",(0,i.jsx)(n.code,{children:"port6"})]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"port6"})]}),"\n",(0,i.jsx)(n.h4,{id:"--bootnodes",children:(0,i.jsx)(n.code,{children:"--bootnodes"})}),"\n",(0,i.jsx)(n.p,{children:"Bootnodes for discv5 discovery"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'[ "[]" ]'})]}),"\n",(0,i.jsx)(n.h4,{id:"--targetpeers",children:(0,i.jsx)(n.code,{children:"--targetPeers"})}),"\n",(0,i.jsx)(n.p,{children:"The target connected peers. Above this number peers will be disconnected"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"100"})]}),"\n",(0,i.jsx)(n.h4,{id:"--subscribeallsubnets",children:(0,i.jsx)(n.code,{children:"--subscribeAllSubnets"})}),"\n",(0,i.jsx)(n.p,{children:"Subscribe to all subnets regardless of validator count"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"false"})]}),"\n",(0,i.jsx)(n.h4,{id:"--disablepeerscoring",children:(0,i.jsx)(n.code,{children:"--disablePeerScoring"})}),"\n",(0,i.jsx)(n.p,{children:"Disable peer scoring, used for testing on devnets"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"false"})]}),"\n",(0,i.jsx)(n.h4,{id:"--mdns",children:(0,i.jsx)(n.code,{children:"--mdns"})}),"\n",(0,i.jsx)(n.p,{children:"Enable mdns local peer discovery"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"false"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrip",children:(0,i.jsx)(n.code,{children:"--enr.ip"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR IP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrtcp",children:(0,i.jsx)(n.code,{children:"--enr.tcp"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR TCP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrudp",children:(0,i.jsx)(n.code,{children:"--enr.udp"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR UDP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrip6",children:(0,i.jsx)(n.code,{children:"--enr.ip6"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR IPv6 entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrtcp6",children:(0,i.jsx)(n.code,{children:"--enr.tcp6"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR (IPv6-specific) TCP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrudp6",children:(0,i.jsx)(n.code,{children:"--enr.udp6"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR (IPv6-specific) UDP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--nat",children:(0,i.jsx)(n.code,{children:"--nat"})}),"\n",(0,i.jsx)(n.p,{children:"Allow configuration of non-local addresses"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--keymanager",children:(0,i.jsx)(n.code,{children:"--keymanager"})}),"\n",(0,i.jsx)(n.p,{children:"Enable key manager API server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--keymanagerauth",children:(0,i.jsx)(n.code,{children:"--keymanager.auth"})}),"\n",(0,i.jsx)(n.p,{children:"Enable token bearer authentication for key manager API server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"true"})]}),"\n",(0,i.jsx)(n.h4,{id:"--keymanagertokenfile",children:(0,i.jsx)(n.code,{children:"--keymanager.tokenFile"})}),"\n",(0,i.jsx)(n.p,{children:"Path to file containing bearer token used for key manager API authentication"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--keymanagerport",children:(0,i.jsx)(n.code,{children:"--keymanager.port"})}),"\n",(0,i.jsx)(n.p,{children:"Set port for key manager API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"5062"})]}),"\n",(0,i.jsx)(n.h4,{id:"--keymanageraddress",children:(0,i.jsx)(n.code,{children:"--keymanager.address"})}),"\n",(0,i.jsx)(n.p,{children:"Set host for key manager API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"127.0.0.1"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--keymanagercors",children:(0,i.jsx)(n.code,{children:"--keymanager.cors"})}),"\n",(0,i.jsx)(n.p,{children:"Configures the Access-Control-Allow-Origin CORS header for key manager API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"*"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--beaconnodes",children:(0,i.jsx)(n.code,{children:"--beaconNodes"})}),"\n",(0,i.jsx)(n.p,{children:"Addresses to connect to BeaconNode"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'[ "http://127.0.0.1:9596" ]'})]}),"\n",(0,i.jsx)(n.h4,{id:"--force",children:(0,i.jsx)(n.code,{children:"--force"})}),"\n",(0,i.jsx)(n.p,{children:"Open validators even if there's a lockfile. Use with caution"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--graffiti",children:(0,i.jsx)(n.code,{children:"--graffiti"})}),"\n",(0,i.jsx)(n.p,{children:"Specify your custom graffiti to be included in blocks (plain UTF8 text, 32 characters max)"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--proposersettingsfile",children:(0,i.jsx)(n.code,{children:"--proposerSettingsFile"})}),"\n",(0,i.jsx)(n.p,{children:"A yaml file to specify detailed default and per validator public key customized proposer configs. PS: This feature and its format is in alpha and subject to change"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--strictfeerecipientcheck",children:(0,i.jsx)(n.code,{children:"--strictFeeRecipientCheck"})}),"\n",(0,i.jsxs)(n.p,{children:["Enable strict checking of the validator's ",(0,i.jsx)(n.code,{children:"feeRecipient"})," with the one returned by engine"]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--defaultgaslimit",children:(0,i.jsx)(n.code,{children:"--defaultGasLimit"})}),"\n",(0,i.jsx)(n.p,{children:"Suggested gas limit to the engine/builder for building execution payloads. Only used post merge."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"30000000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--builderselection",children:(0,i.jsx)(n.code,{children:"--builder.selection"})}),"\n",(0,i.jsxs)(n.p,{children:["Builder block selection strategy ",(0,i.jsx)(n.code,{children:"default"}),", ",(0,i.jsx)(n.code,{children:"maxprofit"}),", ",(0,i.jsx)(n.code,{children:"builderalways"}),", ",(0,i.jsx)(n.code,{children:"builderonly"}),", ",(0,i.jsx)(n.code,{children:"executionalways"}),", or ",(0,i.jsx)(n.code,{children:"executiononly"})]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"executiononly"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--builderboostfactor",children:(0,i.jsx)(n.code,{children:"--builder.boostFactor"})}),"\n",(0,i.jsxs)(n.p,{children:["Percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if ",(0,i.jsx)(n.code,{children:"--builder.selection"})," is set to anything other than ",(0,i.jsx)(n.code,{children:"maxprofit"})]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"100"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--useproduceblockv3",children:(0,i.jsx)(n.code,{children:"--useProduceBlockV3"})}),"\n",(0,i.jsx)(n.p,{children:"Enable/disable usage of produceBlockV3 for block production, is auto enabled on deneb+ blocks"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--broadcastvalidation",children:(0,i.jsx)(n.code,{children:"--broadcastValidation"})}),"\n",(0,i.jsx)(n.p,{children:"Validations to be run by beacon node for the signed block prior to publishing"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"gossip"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--blindedlocal",children:(0,i.jsx)(n.code,{children:"--blindedLocal"})}),"\n",(0,i.jsx)(n.p,{children:"Request fetching local block in blinded format for produceBlockV3"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"false"})]}),"\n",(0,i.jsx)(n.h4,{id:"--importkeystores",children:(0,i.jsx)(n.code,{children:"--importKeystores"})}),"\n",(0,i.jsx)(n.p,{children:"Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'[ "./keystores/*.json" ]'})]}),"\n",(0,i.jsx)(n.h4,{id:"--importkeystorespassword",children:(0,i.jsx)(n.code,{children:"--importKeystoresPassword"})}),"\n",(0,i.jsxs)(n.p,{children:["Path to a file with password to decrypt all keystores from ",(0,i.jsx)(n.code,{children:"importKeystores"})," option"]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"./password.txt"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--doppelgangerprotection",children:(0,i.jsx)(n.code,{children:"--doppelgangerProtection"})}),"\n",(0,i.jsx)(n.p,{children:"Enables Doppelganger protection"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--httprequestwireformat",children:(0,i.jsx)(n.code,{children:"--http.requestWireFormat"})}),"\n",(0,i.jsxs)(n.p,{children:["Wire format to use in HTTP requests to beacon node. Can be one of ",(0,i.jsx)(n.code,{children:"json"})," or ",(0,i.jsx)(n.code,{children:"ssz"})]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"json"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--httpresponsewireformat",children:(0,i.jsx)(n.code,{children:"--http.responseWireFormat"})}),"\n",(0,i.jsxs)(n.p,{children:["Preferred wire format for HTTP responses from beacon node. Can be one of ",(0,i.jsx)(n.code,{children:"json"})," or ",(0,i.jsx)(n.code,{children:"ssz"})]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"ssz"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--externalsignerurl",children:(0,i.jsx)(n.code,{children:"--externalSigner.url"})}),"\n",(0,i.jsx)(n.p,{children:"URL to connect to an external signing server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--externalsignerpubkeys",children:(0,i.jsx)(n.code,{children:"--externalSigner.pubkeys"})}),"\n",(0,i.jsx)(n.p,{children:"List of validator public keys used by an external signer. May also provide a single string of comma-separated public keys"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsx)(n.h4,{id:"--externalsignerfetch",children:(0,i.jsx)(n.code,{children:"--externalSigner.fetch"})}),"\n",(0,i.jsxs)(n.p,{children:["Fetch the list of public keys to validate from an external signer. Cannot be used in combination with ",(0,i.jsx)(n.code,{children:"--externalSigner.pubkeys"})]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--externalsignerfetchinterval",children:(0,i.jsx)(n.code,{children:"--externalSigner.fetchInterval"})}),"\n",(0,i.jsx)(n.p,{children:"Interval in milliseconds between fetching the list of public keys from external signer, once per epoch by default"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--distributed",children:(0,i.jsx)(n.code,{children:"--distributed"})}),"\n",(0,i.jsx)(n.p,{children:"Enables specific features required to run as part of a distributed validator cluster"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--genesiseth1hash",children:(0,i.jsx)(n.code,{children:"--genesisEth1Hash"})}),"\n",(0,i.jsx)(n.p,{children:"If present it will create genesis with this eth1 hash."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--genesisvalidators",children:(0,i.jsx)(n.code,{children:"--genesisValidators"})}),"\n",(0,i.jsx)(n.p,{children:"If present it will create genesis with interop validators and start chain."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"8"})]}),"\n",(0,i.jsx)(n.h4,{id:"--startvalidators",children:(0,i.jsx)(n.code,{children:"--startValidators"})}),"\n",(0,i.jsx)(n.p,{children:"Start interop validators in inclusive range with notation '0..7'"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--genesistime",children:(0,i.jsx)(n.code,{children:"--genesisTime"})}),"\n",(0,i.jsx)(n.p,{children:"genesis_time to initialize interop genesis state"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"now"})]}),"\n",(0,i.jsx)(n.h4,{id:"--reset",children:(0,i.jsx)(n.code,{children:"--reset"})}),"\n",(0,i.jsx)(n.p,{children:"To delete chain and validator directories"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--dumptestnetfiles",children:(0,i.jsx)(n.code,{children:"--dumpTestnetFiles"})}),"\n",(0,i.jsx)(n.p,{children:"Dump testnet files and exit"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]})]})}function a(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,n,d)=>{d.d(n,{R:()=>l,x:()=>c});var i=d(6540);const r={},s=i.createContext(r);function l(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0e49db30.537d3c32.js b/assets/js/0e49db30.537d3c32.js deleted file mode 100644 index 61a1896758b..00000000000 --- a/assets/js/0e49db30.537d3c32.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_lodestar_docs=self.webpackChunk_lodestar_docs||[]).push([[4e3],{9672:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var r=s(4848),t=s(8453);const o={},i="Install Options",a={id:"run/getting-started/installation",title:"Install Options",description:"Binaries",source:"@site/pages/run/getting-started/installation.md",sourceDirName:"run/getting-started",slug:"/run/getting-started/installation",permalink:"/lodestar/run/getting-started/installation",draft:!1,unlisted:!1,editUrl:"https://github.com/ChainSafe/lodestar/tree/unstable/docs/pages/run/getting-started/installation.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Security Policy",permalink:"/lodestar/security"},next:{title:"Lodestar Quick Start Scripts",permalink:"/lodestar/run/getting-started/quick-start"}},l={},d=[{value:"Binaries",id:"binaries",level:2},{value:"Docker Installation",id:"docker-installation",level:2},{value:"Build from Source",id:"build-from-source",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Clone repository",id:"clone-repository",level:3},{value:"Install packages",id:"install-packages",level:3},{value:"Build source code",id:"build-source-code",level:3},{value:"Lodestar CLI",id:"lodestar-cli",level:3},{value:"Known Issues",id:"known-issues",level:3},{value:"Install from NPM [not recommended]",id:"install-from-npm-not-recommended",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"install-options",children:"Install Options"}),"\n",(0,r.jsx)(n.h2,{id:"binaries",children:"Binaries"}),"\n",(0,r.jsxs)(n.p,{children:["Binaries can be downloaded from the Lodestar ",(0,r.jsx)(n.a,{href:"https://github.com/ChainSafe/lodestar/releases/latest",children:"release page"})," under the ",(0,r.jsx)(n.code,{children:"Assets"})," section."]}),"\n",(0,r.jsx)(n.h2,{id:"docker-installation",children:"Docker Installation"}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.a,{href:"https://hub.docker.com/r/chainsafe/lodestar",children:(0,r.jsx)(n.code,{children:"chainsafe/lodestar"})})," Docker Hub repository is maintained actively. It contains the ",(0,r.jsx)(n.code,{children:"lodestar"})," CLI preinstalled."]}),"\n",(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsxs)(n.p,{children:["The Docker Hub image tagged as ",(0,r.jsx)(n.code,{children:"chainsafe/lodestar:next"})," is run on CI every commit on our ",(0,r.jsx)(n.code,{children:"unstable"})," branch.\nFor ",(0,r.jsx)(n.code,{children:"stable"})," releases, the image is tagged as ",(0,r.jsx)(n.code,{children:"chainsafe/lodestar:latest"}),"."]})}),"\n",(0,r.jsx)(n.p,{children:"Ensure you have Docker installed by issuing the command:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"docker -v\n"})}),"\n",(0,r.jsxs)(n.p,{children:["It should return a non error message such as ",(0,r.jsx)(n.code,{children:"Docker version xxxx, build xxxx"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"Pull, run the image and Lodestar should now be ready to use"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"docker pull chainsafe/lodestar\ndocker run chainsafe/lodestar --help\n"})}),"\n",(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsxs)(n.p,{children:["Docker is the recommended setup for Lodestar. Use our ",(0,r.jsx)(n.a,{href:"https://github.com/ChainSafe/lodestar-quickstart",children:"Lodestar Quickstart scripts"})," with Docker for detailed instructions."]})}),"\n",(0,r.jsx)(n.h2,{id:"build-from-source",children:"Build from Source"}),"\n",(0,r.jsx)(n.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,r.jsxs)(n.p,{children:["Make sure to have ",(0,r.jsx)(n.a,{href:"https://classic.yarnpkg.com/en/docs/install",children:"Yarn installed"}),". It is also recommended to ",(0,r.jsx)(n.a,{href:"https://github.com/nvm-sh/nvm",children:"install NVM (Node Version Manager)"})," and use the LTS version (currently v22) of ",(0,r.jsx)(n.a,{href:"https://nodejs.org/en/",children:"NodeJS"}),"."]}),"\n",(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsxs)(n.p,{children:["NodeJS versions older than the current LTS are not supported by Lodestar. We recommend running the latest Node LTS.\nIt is important to make sure the NodeJS version is not changed after reboot by setting a default ",(0,r.jsx)(n.code,{children:"nvm alias default && nvm use default"}),"."]})}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["Node Version Manager (NVM) will only install NodeJS for use with the active user. If you intend on setting up Lodestar to run under another user, we recommend using ",(0,r.jsx)(n.a,{href:"https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions",children:"NodeSource's source for NodeJS"})," so you can install NodeJS globally."]})}),"\n",(0,r.jsx)(n.h3,{id:"clone-repository",children:"Clone repository"}),"\n",(0,r.jsx)(n.p,{children:"Clone the repository locally and build from the stable release branch."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"git clone -b stable https://github.com/chainsafe/lodestar.git\n"})}),"\n",(0,r.jsx)(n.p,{children:"Switch to created directory."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"cd lodestar\n"})}),"\n",(0,r.jsx)(n.h3,{id:"install-packages",children:"Install packages"}),"\n",(0,r.jsxs)(n.p,{children:["Install across all packages. Lodestar follows a ",(0,r.jsx)(n.a,{href:"https://github.com/lerna/lerna",children:"monorepo"})," structure, so all commands below must be run in the project root."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn install\n"})}),"\n",(0,r.jsx)(n.h3,{id:"build-source-code",children:"Build source code"}),"\n",(0,r.jsx)(n.p,{children:"Build across all packages."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn run build\n"})}),"\n",(0,r.jsx)(n.h3,{id:"lodestar-cli",children:"Lodestar CLI"}),"\n",(0,r.jsx)(n.p,{children:"Lodestar should now be ready for use."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"./lodestar --help\n"})}),"\n",(0,r.jsxs)(n.p,{children:["See ",(0,r.jsx)(n.a,{href:"/lodestar/run/beacon-management/beacon-cli",children:"Command Line Reference"})," for further information."]}),"\n",(0,r.jsx)(n.h3,{id:"known-issues",children:"Known Issues"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"ModuleNotFoundError: No module named 'distutils'"})}),"\n",(0,r.jsxs)(n.p,{children:["If you stump upon this issue while running Yarn, it's because Python 3.12 had removed ",(0,r.jsx)(n.code,{children:"distutils"})," package. That package is required for node build tool. You can install it with following command."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"pip3 install setuptools --force-reinstall --user\n"})}),"\n",(0,r.jsx)(n.h2,{id:"install-from-npm-not-recommended",children:"Install from NPM [not recommended]"}),"\n",(0,r.jsx)(n.admonition,{type:"danger",children:(0,r.jsxs)(n.p,{children:["For mainnet (production) usage, we only recommend installing with Docker, using binaries or building from source due to ",(0,r.jsx)(n.a,{href:"https://hackaday.com/2021/10/22/supply-chain-attack-npm-library-used-by-facebook-and-others-was-compromised/",children:"NPM supply chain attacks"}),". Until a ",(0,r.jsx)(n.a,{href:"https://github.com/ChainSafe/lodestar/issues/3596",children:"safer installation method has been found"}),", do not use this install method except for experimental purposes only."]})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>a});var r=s(6540);const t={},o=r.createContext(t);function i(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0e49db30.d5d8c1f1.js b/assets/js/0e49db30.d5d8c1f1.js new file mode 100644 index 00000000000..bf51d97e664 --- /dev/null +++ b/assets/js/0e49db30.d5d8c1f1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_lodestar_docs=self.webpackChunk_lodestar_docs||[]).push([[4e3],{9672:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var t=s(4848),r=s(8453);const o={},a="Install Options",i={id:"run/getting-started/installation",title:"Install Options",description:"Binaries",source:"@site/pages/run/getting-started/installation.md",sourceDirName:"run/getting-started",slug:"/run/getting-started/installation",permalink:"/lodestar/run/getting-started/installation",draft:!1,unlisted:!1,editUrl:"https://github.com/ChainSafe/lodestar/tree/unstable/docs/pages/run/getting-started/installation.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Security Policy",permalink:"/lodestar/security"},next:{title:"Lodestar Quick Start Scripts",permalink:"/lodestar/run/getting-started/quick-start"}},l={},d=[{value:"Binaries",id:"binaries",level:2},{value:"Docker Installation",id:"docker-installation",level:2},{value:"Build from Source",id:"build-from-source",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Clone repository",id:"clone-repository",level:3},{value:"Install packages",id:"install-packages",level:3},{value:"Build source code",id:"build-source-code",level:3},{value:"Lodestar CLI",id:"lodestar-cli",level:3},{value:"Known Issues",id:"known-issues",level:3},{value:"Install from NPM [not recommended]",id:"install-from-npm-not-recommended",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"install-options",children:"Install Options"}),"\n",(0,t.jsx)(n.h2,{id:"binaries",children:"Binaries"}),"\n",(0,t.jsxs)(n.p,{children:["Binaries can be downloaded from the Lodestar ",(0,t.jsx)(n.a,{href:"https://github.com/ChainSafe/lodestar/releases/latest",children:"release page"})," under the ",(0,t.jsx)(n.code,{children:"Assets"})," section."]}),"\n",(0,t.jsx)(n.p,{children:"Run the following command to install the latest version"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"curl -fsSL https://chainsafe.github.io/lodestar/install | bash\n"})}),"\n",(0,t.jsx)(n.h2,{id:"docker-installation",children:"Docker Installation"}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/chainsafe/lodestar",children:(0,t.jsx)(n.code,{children:"chainsafe/lodestar"})})," Docker Hub repository is maintained actively. It contains the ",(0,t.jsx)(n.code,{children:"lodestar"})," CLI preinstalled."]}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsxs)(n.p,{children:["The Docker Hub image tagged as ",(0,t.jsx)(n.code,{children:"chainsafe/lodestar:next"})," is run on CI every commit on our ",(0,t.jsx)(n.code,{children:"unstable"})," branch.\nFor ",(0,t.jsx)(n.code,{children:"stable"})," releases, the image is tagged as ",(0,t.jsx)(n.code,{children:"chainsafe/lodestar:latest"}),"."]})}),"\n",(0,t.jsx)(n.p,{children:"Ensure you have Docker installed by issuing the command:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"docker -v\n"})}),"\n",(0,t.jsxs)(n.p,{children:["It should return a non error message such as ",(0,t.jsx)(n.code,{children:"Docker version xxxx, build xxxx"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"Pull, run the image and Lodestar should now be ready to use"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"docker pull chainsafe/lodestar\ndocker run chainsafe/lodestar --help\n"})}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsxs)(n.p,{children:["Docker is the recommended setup for Lodestar. Use our ",(0,t.jsx)(n.a,{href:"https://github.com/ChainSafe/lodestar-quickstart",children:"Lodestar Quickstart scripts"})," with Docker for detailed instructions."]})}),"\n",(0,t.jsx)(n.h2,{id:"build-from-source",children:"Build from Source"}),"\n",(0,t.jsx)(n.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsxs)(n.p,{children:["Make sure to have ",(0,t.jsx)(n.a,{href:"https://classic.yarnpkg.com/en/docs/install",children:"Yarn installed"}),". It is also recommended to ",(0,t.jsx)(n.a,{href:"https://github.com/nvm-sh/nvm",children:"install NVM (Node Version Manager)"})," and use the LTS version (currently v22) of ",(0,t.jsx)(n.a,{href:"https://nodejs.org/en/",children:"NodeJS"}),"."]}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsxs)(n.p,{children:["NodeJS versions older than the current LTS are not supported by Lodestar. We recommend running the latest Node LTS.\nIt is important to make sure the NodeJS version is not changed after reboot by setting a default ",(0,t.jsx)(n.code,{children:"nvm alias default && nvm use default"}),"."]})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["Node Version Manager (NVM) will only install NodeJS for use with the active user. If you intend on setting up Lodestar to run under another user, we recommend using ",(0,t.jsx)(n.a,{href:"https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions",children:"NodeSource's source for NodeJS"})," so you can install NodeJS globally."]})}),"\n",(0,t.jsx)(n.h3,{id:"clone-repository",children:"Clone repository"}),"\n",(0,t.jsx)(n.p,{children:"Clone the repository locally and build from the stable release branch."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"git clone -b stable https://github.com/chainsafe/lodestar.git\n"})}),"\n",(0,t.jsx)(n.p,{children:"Switch to created directory."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd lodestar\n"})}),"\n",(0,t.jsx)(n.h3,{id:"install-packages",children:"Install packages"}),"\n",(0,t.jsxs)(n.p,{children:["Install across all packages. Lodestar follows a ",(0,t.jsx)(n.a,{href:"https://github.com/lerna/lerna",children:"monorepo"})," structure, so all commands below must be run in the project root."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn install\n"})}),"\n",(0,t.jsx)(n.h3,{id:"build-source-code",children:"Build source code"}),"\n",(0,t.jsx)(n.p,{children:"Build across all packages."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn run build\n"})}),"\n",(0,t.jsx)(n.h3,{id:"lodestar-cli",children:"Lodestar CLI"}),"\n",(0,t.jsx)(n.p,{children:"Lodestar should now be ready for use."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"./lodestar --help\n"})}),"\n",(0,t.jsxs)(n.p,{children:["See ",(0,t.jsx)(n.a,{href:"/lodestar/run/beacon-management/beacon-cli",children:"Command Line Reference"})," for further information."]}),"\n",(0,t.jsx)(n.h3,{id:"known-issues",children:"Known Issues"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"ModuleNotFoundError: No module named 'distutils'"})}),"\n",(0,t.jsxs)(n.p,{children:["If you stump upon this issue while running Yarn, it's because Python 3.12 had removed ",(0,t.jsx)(n.code,{children:"distutils"})," package. That package is required for node build tool. You can install it with following command."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pip3 install setuptools --force-reinstall --user\n"})}),"\n",(0,t.jsx)(n.h2,{id:"install-from-npm-not-recommended",children:"Install from NPM [not recommended]"}),"\n",(0,t.jsx)(n.admonition,{type:"danger",children:(0,t.jsxs)(n.p,{children:["For mainnet (production) usage, we only recommend installing with Docker, using binaries or building from source due to ",(0,t.jsx)(n.a,{href:"https://hackaday.com/2021/10/22/supply-chain-attack-npm-library-used-by-facebook-and-others-was-compromised/",children:"NPM supply chain attacks"}),". Until a ",(0,t.jsx)(n.a,{href:"https://github.com/ChainSafe/lodestar/issues/3596",children:"safer installation method has been found"}),", do not use this install method except for experimental purposes only."]})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>a,x:()=>i});var t=s(6540);const r={},o=t.createContext(r);function a(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4c9cac69.88aca9b4.js b/assets/js/4c9cac69.88aca9b4.js new file mode 100644 index 00000000000..7849099d07e --- /dev/null +++ b/assets/js/4c9cac69.88aca9b4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_lodestar_docs=self.webpackChunk_lodestar_docs||[]).push([[2539],{4369:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>t});var d=n(4848),r=n(8453);const l={title:"CLI Reference"},o="validator CLI Command",s={id:"run/validator-management/validator-cli",title:"CLI Reference",description:"Run one or multiple validator clients",source:"@site/pages/run/validator-management/validator-cli.md",sourceDirName:"run/validator-management",slug:"/run/validator-management/validator-cli",permalink:"/lodestar/run/validator-management/validator-cli",draft:!1,unlisted:!1,editUrl:"https://github.com/ChainSafe/lodestar/tree/unstable/docs/pages/run/validator-management/validator-cli.md",tags:[],version:"current",frontMatter:{title:"CLI Reference"},sidebar:"tutorialSidebar",previous:{title:"Starting a Validator Client",permalink:"/lodestar/run/validator-management/vc-configuration"},next:{title:"External Signer",permalink:"/lodestar/run/validator-management/external-signer"}},c={},t=[{value:"Available Sub-Commands",id:"available-sub-commands",level:2},{value:"Examples",id:"examples",level:2},{value:"Base validator command",id:"base-validator-command",level:3},{value:"validator Options",id:"validator-options",level:2},{value:"--dataDir",id:"--datadir",level:4},{value:"--network",id:"--network",level:4},{value:"--paramsFile",id:"--paramsfile",level:4},{value:"--rcConfig",id:"--rcconfig",level:4},{value:"--terminal-total-difficulty-override",id:"--terminal-total-difficulty-override",level:4},{value:"--terminal-block-hash-override",id:"--terminal-block-hash-override",level:4},{value:"--terminal-block-hash-epoch-override",id:"--terminal-block-hash-epoch-override",level:4},{value:"--logLevel",id:"--loglevel",level:4},{value:"--logFile",id:"--logfile",level:4},{value:"--logFileLevel",id:"--logfilelevel",level:4},{value:"--logFileDailyRotate",id:"--logfiledailyrotate",level:4},{value:"--keymanager",id:"--keymanager",level:4},{value:"--keymanager.auth",id:"--keymanagerauth",level:4},{value:"--keymanager.tokenFile",id:"--keymanagertokenfile",level:4},{value:"--keymanager.port",id:"--keymanagerport",level:4},{value:"--keymanager.address",id:"--keymanageraddress",level:4},{value:"--keymanager.cors",id:"--keymanagercors",level:4},{value:"--beaconNodes",id:"--beaconnodes",level:4},{value:"--force",id:"--force",level:4},{value:"--graffiti",id:"--graffiti",level:4},{value:"--proposerSettingsFile",id:"--proposersettingsfile",level:4},{value:"--suggestedFeeRecipient",id:"--suggestedfeerecipient",level:4},{value:"--strictFeeRecipientCheck",id:"--strictfeerecipientcheck",level:4},{value:"--defaultGasLimit",id:"--defaultgaslimit",level:4},{value:"--builder",id:"--builder",level:4},{value:"--builder.selection",id:"--builderselection",level:4},{value:"--builder.boostFactor",id:"--builderboostfactor",level:4},{value:"--useProduceBlockV3",id:"--useproduceblockv3",level:4},{value:"--broadcastValidation",id:"--broadcastvalidation",level:4},{value:"--blindedLocal",id:"--blindedlocal",level:4},{value:"--importKeystores",id:"--importkeystores",level:4},{value:"--importKeystoresPassword",id:"--importkeystorespassword",level:4},{value:"--doppelgangerProtection",id:"--doppelgangerprotection",level:4},{value:"--http.requestWireFormat",id:"--httprequestwireformat",level:4},{value:"--http.responseWireFormat",id:"--httpresponsewireformat",level:4},{value:"--externalSigner.url",id:"--externalsignerurl",level:4},{value:"--externalSigner.pubkeys",id:"--externalsignerpubkeys",level:4},{value:"--externalSigner.fetch",id:"--externalsignerfetch",level:4},{value:"--externalSigner.fetchInterval",id:"--externalsignerfetchinterval",level:4},{value:"--distributed",id:"--distributed",level:4},{value:"--metrics",id:"--metrics",level:4},{value:"--metrics.port",id:"--metricsport",level:4},{value:"--metrics.address",id:"--metricsaddress",level:4},{value:"--monitoring.endpoint",id:"--monitoringendpoint",level:4},{value:"--monitoring.interval",id:"--monitoringinterval",level:4},{value:"validator slashing-protection import",id:"validator-slashing-protection-import",level:2},{value:"validator slashing-protection import Options",id:"validator-slashing-protection-import-options",level:3},{value:"--beaconNodes",id:"--beaconnodes-1",level:4},{value:"--force",id:"--force-1",level:4},{value:"--file",id:"--file",level:4},{value:"validator slashing-protection export",id:"validator-slashing-protection-export",level:2},{value:"validator slashing-protection export Options",id:"validator-slashing-protection-export-options",level:3},{value:"--beaconNodes",id:"--beaconnodes-2",level:4},{value:"--force",id:"--force-2",level:4},{value:"--file",id:"--file-1",level:4},{value:"--pubkeys",id:"--pubkeys",level:4},{value:"validator import",id:"validator-import",level:2},{value:"validator import Examples",id:"validator-import-examples",level:3},{value:"validator import Options",id:"validator-import-options",level:3},{value:"--importKeystores",id:"--importkeystores-1",level:4},{value:"--importKeystoresPassword",id:"--importkeystorespassword-1",level:4},{value:"validator list",id:"validator-list",level:2},{value:"validator list Examples",id:"validator-list-examples",level:3},{value:"validator voluntary-exit",id:"validator-voluntary-exit",level:2},{value:"validator voluntary-exit Examples",id:"validator-voluntary-exit-examples",level:3},{value:"validator voluntary-exit Options",id:"validator-voluntary-exit-options",level:3},{value:"--exitEpoch",id:"--exitepoch",level:4},{value:"--pubkeys",id:"--pubkeys-1",level:4},{value:"--yes",id:"--yes",level:4},{value:"validator bls-to-execution-change",id:"validator-bls-to-execution-change",level:2},{value:"validator bls-to-execution-change Examples",id:"validator-bls-to-execution-change-examples",level:3},{value:"validator bls-to-execution-change Options",id:"validator-bls-to-execution-change-options",level:3},{value:"--publicKey",id:"--publickey",level:4},{value:"--fromBlsPrivkey",id:"--fromblsprivkey",level:4},{value:"--toExecutionAddress",id:"--toexecutionaddress",level:4}];function a(e){const i={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(i.h1,{id:"validator-cli-command",children:[(0,d.jsx)(i.code,{children:"validator"})," CLI Command"]}),"\n",(0,d.jsx)(i.p,{children:"Run one or multiple validator clients"}),"\n",(0,d.jsx)(i.h2,{id:"available-sub-commands",children:"Available Sub-Commands"}),"\n",(0,d.jsxs)(i.p,{children:["The following sub-commands are available with the ",(0,d.jsx)(i.code,{children:"validator"})," command:"]}),"\n",(0,d.jsxs)(i.ul,{children:["\n",(0,d.jsxs)(i.li,{children:["\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.a,{href:"#validator-slashing-protection-import",children:"validator slashing-protection import"})}),"\n"]}),"\n",(0,d.jsxs)(i.li,{children:["\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.a,{href:"#validator-slashing-protection-export",children:"validator slashing-protection export"})}),"\n"]}),"\n",(0,d.jsxs)(i.li,{children:["\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.a,{href:"#validator-import",children:"validator import"})}),"\n"]}),"\n",(0,d.jsxs)(i.li,{children:["\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.a,{href:"#validator-list",children:"validator list"})}),"\n"]}),"\n",(0,d.jsxs)(i.li,{children:["\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.a,{href:"#validator-voluntary-exit",children:"validator voluntary-exit"})}),"\n"]}),"\n",(0,d.jsxs)(i.li,{children:["\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.a,{href:"#validator-bls-to-execution-change",children:"validator bls-to-execution-change"})}),"\n"]}),"\n"]}),"\n",(0,d.jsx)(i.h2,{id:"examples",children:"Examples"}),"\n",(0,d.jsxs)(i.h3,{id:"base-validator-command",children:["Base ",(0,d.jsx)(i.code,{children:"validator"})," command"]}),"\n",(0,d.jsx)(i.p,{children:"Run one validator client with all the keystores available in the directory .holesky/keystores"}),"\n",(0,d.jsx)(i.pre,{children:(0,d.jsx)(i.code,{className:"language-sh",children:"./lodestar validator --network holesky\n"})}),"\n",(0,d.jsxs)(i.h2,{id:"validator-options",children:[(0,d.jsx)(i.code,{children:"validator"})," Options"]}),"\n",(0,d.jsx)(i.h4,{id:"--datadir",children:(0,d.jsx)(i.code,{children:"--dataDir"})}),"\n",(0,d.jsx)(i.p,{children:"Lodestar root data directory"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--network",children:(0,d.jsx)(i.code,{children:"--network"})}),"\n",(0,d.jsx)(i.p,{children:"Name of the Ethereum Consensus chain network to join"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.p,{children:'choices: "mainnet", "gnosis", "sepolia", "holesky", "chiado", "ephemery", "mekong", "dev"'}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"mainnet"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--paramsfile",children:(0,d.jsx)(i.code,{children:"--paramsFile"})}),"\n",(0,d.jsx)(i.p,{children:"Network configuration file"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--rcconfig",children:(0,d.jsx)(i.code,{children:"--rcConfig"})}),"\n",(0,d.jsx)(i.p,{children:"RC file to supplement command line args, accepted formats: .yml, .yaml, .json"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--terminal-total-difficulty-override",children:(0,d.jsx)(i.code,{children:"--terminal-total-difficulty-override"})}),"\n",(0,d.jsx)(i.p,{children:"Terminal PoW block TTD override"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--terminal-block-hash-override",children:(0,d.jsx)(i.code,{children:"--terminal-block-hash-override"})}),"\n",(0,d.jsx)(i.p,{children:"Terminal PoW block hash override"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--terminal-block-hash-epoch-override",children:(0,d.jsx)(i.code,{children:"--terminal-block-hash-epoch-override"})}),"\n",(0,d.jsx)(i.p,{children:"Terminal PoW block hash override activation epoch"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--loglevel",children:(0,d.jsx)(i.code,{children:"--logLevel"})}),"\n",(0,d.jsx)(i.p,{children:"Logging verbosity level for emitting logs to terminal"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"info"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--logfile",children:(0,d.jsx)(i.code,{children:"--logFile"})}),"\n",(0,d.jsx)(i.p,{children:"Path to output all logs to a persistent log file, use 'none' to disable"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--logfilelevel",children:(0,d.jsx)(i.code,{children:"--logFileLevel"})}),"\n",(0,d.jsx)(i.p,{children:"Logging verbosity level for emitting logs to file"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"debug"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--logfiledailyrotate",children:(0,d.jsx)(i.code,{children:"--logFileDailyRotate"})}),"\n",(0,d.jsx)(i.p,{children:"Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"5"})]}),"\n",(0,d.jsx)(i.h4,{id:"--keymanager",children:(0,d.jsx)(i.code,{children:"--keymanager"})}),"\n",(0,d.jsx)(i.p,{children:"Enable key manager API server"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--keymanagerauth",children:(0,d.jsx)(i.code,{children:"--keymanager.auth"})}),"\n",(0,d.jsx)(i.p,{children:"Enable token bearer authentication for key manager API server"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"true"})]}),"\n",(0,d.jsx)(i.h4,{id:"--keymanagertokenfile",children:(0,d.jsx)(i.code,{children:"--keymanager.tokenFile"})}),"\n",(0,d.jsx)(i.p,{children:"Path to file containing bearer token used for key manager API authentication"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--keymanagerport",children:(0,d.jsx)(i.code,{children:"--keymanager.port"})}),"\n",(0,d.jsx)(i.p,{children:"Set port for key manager API"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"5062"})]}),"\n",(0,d.jsx)(i.h4,{id:"--keymanageraddress",children:(0,d.jsx)(i.code,{children:"--keymanager.address"})}),"\n",(0,d.jsx)(i.p,{children:"Set host for key manager API"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"127.0.0.1"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--keymanagercors",children:(0,d.jsx)(i.code,{children:"--keymanager.cors"})}),"\n",(0,d.jsx)(i.p,{children:"Configures the Access-Control-Allow-Origin CORS header for key manager API"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"*"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--beaconnodes",children:(0,d.jsx)(i.code,{children:"--beaconNodes"})}),"\n",(0,d.jsx)(i.p,{children:"Addresses to connect to BeaconNode"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'[ "http://127.0.0.1:9596" ]'})]}),"\n",(0,d.jsx)(i.h4,{id:"--force",children:(0,d.jsx)(i.code,{children:"--force"})}),"\n",(0,d.jsx)(i.p,{children:"Open validators even if there's a lockfile. Use with caution"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--graffiti",children:(0,d.jsx)(i.code,{children:"--graffiti"})}),"\n",(0,d.jsx)(i.p,{children:"Specify your custom graffiti to be included in blocks (plain UTF8 text, 32 characters max)"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--proposersettingsfile",children:(0,d.jsx)(i.code,{children:"--proposerSettingsFile"})}),"\n",(0,d.jsx)(i.p,{children:"A yaml file to specify detailed default and per validator public key customized proposer configs. PS: This feature and its format is in alpha and subject to change"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--suggestedfeerecipient",children:(0,d.jsx)(i.code,{children:"--suggestedFeeRecipient"})}),"\n",(0,d.jsx)(i.p,{children:"Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$). It would be possible (WIP) to override this per validator key using config or key manager API. Only used post merge."}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"0x0000000000000000000000000000000000000000"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--strictfeerecipientcheck",children:(0,d.jsx)(i.code,{children:"--strictFeeRecipientCheck"})}),"\n",(0,d.jsxs)(i.p,{children:["Enable strict checking of the validator's ",(0,d.jsx)(i.code,{children:"feeRecipient"})," with the one returned by engine"]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--defaultgaslimit",children:(0,d.jsx)(i.code,{children:"--defaultGasLimit"})}),"\n",(0,d.jsx)(i.p,{children:"Suggested gas limit to the engine/builder for building execution payloads. Only used post merge."}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"30000000"})]}),"\n",(0,d.jsx)(i.h4,{id:"--builder",children:(0,d.jsx)(i.code,{children:"--builder"})}),"\n",(0,d.jsxs)(i.p,{children:["An alias for ",(0,d.jsx)(i.code,{children:"--builder.selection default"})," for the builder flow, ignored if ",(0,d.jsx)(i.code,{children:"--builder.selection"})," is explicitly provided"]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--builderselection",children:(0,d.jsx)(i.code,{children:"--builder.selection"})}),"\n",(0,d.jsxs)(i.p,{children:["Builder block selection strategy ",(0,d.jsx)(i.code,{children:"default"}),", ",(0,d.jsx)(i.code,{children:"maxprofit"}),", ",(0,d.jsx)(i.code,{children:"builderalways"}),", ",(0,d.jsx)(i.code,{children:"builderonly"}),", ",(0,d.jsx)(i.code,{children:"executionalways"}),", or ",(0,d.jsx)(i.code,{children:"executiononly"})]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"executiononly"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--builderboostfactor",children:(0,d.jsx)(i.code,{children:"--builder.boostFactor"})}),"\n",(0,d.jsxs)(i.p,{children:["Percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if ",(0,d.jsx)(i.code,{children:"--builder.selection"})," is set to anything other than ",(0,d.jsx)(i.code,{children:"maxprofit"})]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"100"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--useproduceblockv3",children:(0,d.jsx)(i.code,{children:"--useProduceBlockV3"})}),"\n",(0,d.jsx)(i.p,{children:"Enable/disable usage of produceBlockV3 for block production, is auto enabled on deneb+ blocks"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--broadcastvalidation",children:(0,d.jsx)(i.code,{children:"--broadcastValidation"})}),"\n",(0,d.jsx)(i.p,{children:"Validations to be run by beacon node for the signed block prior to publishing"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"gossip"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--blindedlocal",children:(0,d.jsx)(i.code,{children:"--blindedLocal"})}),"\n",(0,d.jsx)(i.p,{children:"Request fetching local block in blinded format for produceBlockV3"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"false"})]}),"\n",(0,d.jsx)(i.h4,{id:"--importkeystores",children:(0,d.jsx)(i.code,{children:"--importKeystores"})}),"\n",(0,d.jsx)(i.p,{children:"Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'[ "./keystores/*.json" ]'})]}),"\n",(0,d.jsx)(i.h4,{id:"--importkeystorespassword",children:(0,d.jsx)(i.code,{children:"--importKeystoresPassword"})}),"\n",(0,d.jsxs)(i.p,{children:["Path to a file with password to decrypt all keystores from ",(0,d.jsx)(i.code,{children:"importKeystores"})," option"]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"./password.txt"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--doppelgangerprotection",children:(0,d.jsx)(i.code,{children:"--doppelgangerProtection"})}),"\n",(0,d.jsx)(i.p,{children:"Enables Doppelganger protection"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--httprequestwireformat",children:(0,d.jsx)(i.code,{children:"--http.requestWireFormat"})}),"\n",(0,d.jsxs)(i.p,{children:["Wire format to use in HTTP requests to beacon node. Can be one of ",(0,d.jsx)(i.code,{children:"json"})," or ",(0,d.jsx)(i.code,{children:"ssz"})]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"json"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--httpresponsewireformat",children:(0,d.jsx)(i.code,{children:"--http.responseWireFormat"})}),"\n",(0,d.jsxs)(i.p,{children:["Preferred wire format for HTTP responses from beacon node. Can be one of ",(0,d.jsx)(i.code,{children:"json"})," or ",(0,d.jsx)(i.code,{children:"ssz"})]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"ssz"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--externalsignerurl",children:(0,d.jsx)(i.code,{children:"--externalSigner.url"})}),"\n",(0,d.jsx)(i.p,{children:"URL to connect to an external signing server"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--externalsignerpubkeys",children:(0,d.jsx)(i.code,{children:"--externalSigner.pubkeys"})}),"\n",(0,d.jsx)(i.p,{children:"List of validator public keys used by an external signer. May also provide a single string of comma-separated public keys"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsx)(i.h4,{id:"--externalsignerfetch",children:(0,d.jsx)(i.code,{children:"--externalSigner.fetch"})}),"\n",(0,d.jsxs)(i.p,{children:["Fetch the list of public keys to validate from an external signer. Cannot be used in combination with ",(0,d.jsx)(i.code,{children:"--externalSigner.pubkeys"})]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--externalsignerfetchinterval",children:(0,d.jsx)(i.code,{children:"--externalSigner.fetchInterval"})}),"\n",(0,d.jsx)(i.p,{children:"Interval in milliseconds between fetching the list of public keys from external signer, once per epoch by default"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsx)(i.h4,{id:"--distributed",children:(0,d.jsx)(i.code,{children:"--distributed"})}),"\n",(0,d.jsx)(i.p,{children:"Enables specific features required to run as part of a distributed validator cluster"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--metrics",children:(0,d.jsx)(i.code,{children:"--metrics"})}),"\n",(0,d.jsx)(i.p,{children:"Enable the Prometheus metrics HTTP server"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"false"})]}),"\n",(0,d.jsx)(i.h4,{id:"--metricsport",children:(0,d.jsx)(i.code,{children:"--metrics.port"})}),"\n",(0,d.jsx)(i.p,{children:"Listen TCP port for the Prometheus metrics HTTP server"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"5064"})]}),"\n",(0,d.jsx)(i.h4,{id:"--metricsaddress",children:(0,d.jsx)(i.code,{children:"--metrics.address"})}),"\n",(0,d.jsx)(i.p,{children:"Listen address for the Prometheus metrics HTTP server"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"127.0.0.1"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--monitoringendpoint",children:(0,d.jsx)(i.code,{children:"--monitoring.endpoint"})}),"\n",(0,d.jsx)(i.p,{children:"Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in)"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--monitoringinterval",children:(0,d.jsx)(i.code,{children:"--monitoring.interval"})}),"\n",(0,d.jsx)(i.p,{children:"Interval in milliseconds between sending client stats to the remote service"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"60000"})]}),"\n",(0,d.jsx)(i.h2,{id:"validator-slashing-protection-import",children:(0,d.jsx)(i.code,{children:"validator slashing-protection import"})}),"\n",(0,d.jsx)(i.p,{children:"Import an interchange file."}),"\n",(0,d.jsxs)(i.h3,{id:"validator-slashing-protection-import-options",children:[(0,d.jsx)(i.code,{children:"validator slashing-protection import"})," Options"]}),"\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.em,{children:"Supports all parent command options plus the following:"})}),"\n",(0,d.jsx)(i.h4,{id:"--beaconnodes-1",children:(0,d.jsx)(i.code,{children:"--beaconNodes"})}),"\n",(0,d.jsx)(i.p,{children:"Addresses to connect to BeaconNode"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'[ "http://127.0.0.1:9596" ]'})]}),"\n",(0,d.jsx)(i.h4,{id:"--force-1",children:(0,d.jsx)(i.code,{children:"--force"})}),"\n",(0,d.jsxs)(i.p,{children:["If ",(0,d.jsx)(i.code,{children:"genesisValidatorsRoot"})," can't be fetched from the Beacon node, use a zero hash"]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--file",children:(0,d.jsx)(i.code,{children:"--file"})}),"\n",(0,d.jsx)(i.p,{children:"The slashing protection interchange file to import (.json)."}),"\n",(0,d.jsx)(i.p,{children:"required: true"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h2,{id:"validator-slashing-protection-export",children:(0,d.jsx)(i.code,{children:"validator slashing-protection export"})}),"\n",(0,d.jsx)(i.p,{children:"Export an interchange file."}),"\n",(0,d.jsxs)(i.h3,{id:"validator-slashing-protection-export-options",children:[(0,d.jsx)(i.code,{children:"validator slashing-protection export"})," Options"]}),"\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.em,{children:"Supports all parent command options plus the following:"})}),"\n",(0,d.jsx)(i.h4,{id:"--beaconnodes-2",children:(0,d.jsx)(i.code,{children:"--beaconNodes"})}),"\n",(0,d.jsx)(i.p,{children:"Addresses to connect to BeaconNode"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'[ "http://127.0.0.1:9596" ]'})]}),"\n",(0,d.jsx)(i.h4,{id:"--force-2",children:(0,d.jsx)(i.code,{children:"--force"})}),"\n",(0,d.jsxs)(i.p,{children:["If ",(0,d.jsx)(i.code,{children:"genesisValidatorsRoot"})," can't be fetched from the Beacon node, use a zero hash"]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--file-1",children:(0,d.jsx)(i.code,{children:"--file"})}),"\n",(0,d.jsx)(i.p,{children:"The slashing protection interchange file to export to (.json)."}),"\n",(0,d.jsx)(i.p,{children:"required: true"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--pubkeys",children:(0,d.jsx)(i.code,{children:"--pubkeys"})}),"\n",(0,d.jsx)(i.p,{children:"Export slashing protection data only for a given subset of public keys"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsx)(i.h2,{id:"validator-import",children:(0,d.jsx)(i.code,{children:"validator import"})}),"\n",(0,d.jsx)(i.p,{children:"Imports one or more EIP-2335 keystores into a Lodestar validator client directory, requesting passwords interactively. The directory flag provides a convenient method for importing a directory of keys generated by the eth2-deposit-cli Ethereum Foundation utility."}),"\n",(0,d.jsxs)(i.h3,{id:"validator-import-examples",children:[(0,d.jsx)(i.code,{children:"validator import"})," Examples"]}),"\n",(0,d.jsx)(i.p,{children:"Import validator keystores generated with the Ethereum Foundation Staking Launchpad"}),"\n",(0,d.jsx)(i.pre,{children:(0,d.jsx)(i.code,{className:"language-sh",children:"./lodestar validator import --network holesky --importKeystores $HOME/staking-deposit-cli/validator_keys\n"})}),"\n",(0,d.jsxs)(i.h3,{id:"validator-import-options",children:[(0,d.jsx)(i.code,{children:"validator import"})," Options"]}),"\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.em,{children:"Supports all parent command options plus the following:"})}),"\n",(0,d.jsx)(i.h4,{id:"--importkeystores-1",children:(0,d.jsx)(i.code,{children:"--importKeystores"})}),"\n",(0,d.jsx)(i.p,{children:"Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'[ "./keystores/*.json" ]'})]}),"\n",(0,d.jsx)(i.h4,{id:"--importkeystorespassword-1",children:(0,d.jsx)(i.code,{children:"--importKeystoresPassword"})}),"\n",(0,d.jsxs)(i.p,{children:["Path to a file with password to decrypt all keystores from ",(0,d.jsx)(i.code,{children:"importKeystores"})," option"]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"./password.txt"'})]}),"\n",(0,d.jsx)(i.h2,{id:"validator-list",children:(0,d.jsx)(i.code,{children:"validator list"})}),"\n",(0,d.jsx)(i.p,{children:"Lists the public keys of all validators"}),"\n",(0,d.jsxs)(i.h3,{id:"validator-list-examples",children:[(0,d.jsx)(i.code,{children:"validator list"})," Examples"]}),"\n",(0,d.jsx)(i.p,{children:"List all validator public keys previously imported"}),"\n",(0,d.jsx)(i.pre,{children:(0,d.jsx)(i.code,{className:"language-sh",children:"./lodestar validator list\n"})}),"\n",(0,d.jsx)(i.h2,{id:"validator-voluntary-exit",children:(0,d.jsx)(i.code,{children:"validator voluntary-exit"})}),"\n",(0,d.jsxs)(i.p,{children:["Performs a voluntary exit for a given set of validators as identified via ",(0,d.jsx)(i.code,{children:"pubkeys"}),". If no ",(0,d.jsx)(i.code,{children:"pubkeys"})," are provided, it will exit all validators that have been imported."]}),"\n",(0,d.jsxs)(i.h3,{id:"validator-voluntary-exit-examples",children:[(0,d.jsx)(i.code,{children:"validator voluntary-exit"})," Examples"]}),"\n",(0,d.jsx)(i.p,{children:"Perform a voluntary exit for the validator who has a public key 0xF00"}),"\n",(0,d.jsx)(i.pre,{children:(0,d.jsx)(i.code,{className:"language-sh",children:"./lodestar validator voluntary-exit --network holesky --pubkeys 0xF00\n"})}),"\n",(0,d.jsx)(i.p,{children:"Perform a voluntary exit for the validator who has a public key 0xF00 and its secret key is on an external signer"}),"\n",(0,d.jsx)(i.pre,{children:(0,d.jsx)(i.code,{className:"language-sh",children:"./lodestar validator voluntary-exit --network holesky --externalSigner.url http://signer:9000 --externalSigner.fetch --pubkeys 0xF00\n"})}),"\n",(0,d.jsxs)(i.h3,{id:"validator-voluntary-exit-options",children:[(0,d.jsx)(i.code,{children:"validator voluntary-exit"})," Options"]}),"\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.em,{children:"Supports all parent command options plus the following:"})}),"\n",(0,d.jsx)(i.h4,{id:"--exitepoch",children:(0,d.jsx)(i.code,{children:"--exitEpoch"})}),"\n",(0,d.jsx)(i.p,{children:"The epoch upon which to submit the voluntary exit. If no value is provided, then we default to the current epoch."}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsx)(i.h4,{id:"--pubkeys-1",children:(0,d.jsx)(i.code,{children:"--pubkeys"})}),"\n",(0,d.jsx)(i.p,{children:"Public keys to exit"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsx)(i.h4,{id:"--yes",children:(0,d.jsx)(i.code,{children:"--yes"})}),"\n",(0,d.jsx)(i.p,{children:"Skip confirmation prompt"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h2,{id:"validator-bls-to-execution-change",children:(0,d.jsx)(i.code,{children:"validator bls-to-execution-change"})}),"\n",(0,d.jsxs)(i.p,{children:["Performs BLS To Execution Change for a given validator (as identified via ",(0,d.jsx)(i.code,{children:"publicKey"}),". If no ",(0,d.jsx)(i.code,{children:"publicKey"})," is provided, a prompt will ask the user which validator they would like to choose for BLS To Execution Change."]}),"\n",(0,d.jsxs)(i.h3,{id:"validator-bls-to-execution-change-examples",children:[(0,d.jsx)(i.code,{children:"validator bls-to-execution-change"})," Examples"]}),"\n",(0,d.jsx)(i.p,{children:"Perform BLS To Execution Change for the validator who has a public key 0xF00"}),"\n",(0,d.jsx)(i.pre,{children:(0,d.jsx)(i.code,{className:"language-sh",children:"./lodestar validator bls-to-execution-change --publicKey 0xF00 --fromBlsPrivkey ... --toExecutionAddress ...\n"})}),"\n",(0,d.jsxs)(i.h3,{id:"validator-bls-to-execution-change-options",children:[(0,d.jsx)(i.code,{children:"validator bls-to-execution-change"})," Options"]}),"\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.em,{children:"Supports all parent command options plus the following:"})}),"\n",(0,d.jsx)(i.h4,{id:"--publickey",children:(0,d.jsx)(i.code,{children:"--publicKey"})}),"\n",(0,d.jsx)(i.p,{children:"Validator public key for which to set withdrawal address hence enabling withdrawals"}),"\n",(0,d.jsx)(i.p,{children:"required: true"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--fromblsprivkey",children:(0,d.jsx)(i.code,{children:"--fromBlsPrivkey"})}),"\n",(0,d.jsx)(i.p,{children:"Bls withdrawals private key to sign the message"}),"\n",(0,d.jsx)(i.p,{children:"required: true"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--toexecutionaddress",children:(0,d.jsx)(i.code,{children:"--toExecutionAddress"})}),"\n",(0,d.jsx)(i.p,{children:"Address to which the validator's balances will be set to be withdrawn."}),"\n",(0,d.jsx)(i.p,{children:"required: true"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]})]})}function h(e={}){const{wrapper:i}={...(0,r.R)(),...e.components};return i?(0,d.jsx)(i,{...e,children:(0,d.jsx)(a,{...e})}):a(e)}},8453:(e,i,n)=>{n.d(i,{R:()=>o,x:()=>s});var d=n(6540);const r={},l=d.createContext(r);function o(e){const i=d.useContext(l);return d.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),d.createElement(l.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4c9cac69.f0f7bb38.js b/assets/js/4c9cac69.f0f7bb38.js deleted file mode 100644 index 5360e1e4955..00000000000 --- a/assets/js/4c9cac69.f0f7bb38.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_lodestar_docs=self.webpackChunk_lodestar_docs||[]).push([[2539],{4369:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>t});var d=n(4848),r=n(8453);const l={title:"CLI Reference"},o="validator CLI Command",s={id:"run/validator-management/validator-cli",title:"CLI Reference",description:"Run one or multiple validator clients",source:"@site/pages/run/validator-management/validator-cli.md",sourceDirName:"run/validator-management",slug:"/run/validator-management/validator-cli",permalink:"/lodestar/run/validator-management/validator-cli",draft:!1,unlisted:!1,editUrl:"https://github.com/ChainSafe/lodestar/tree/unstable/docs/pages/run/validator-management/validator-cli.md",tags:[],version:"current",frontMatter:{title:"CLI Reference"},sidebar:"tutorialSidebar",previous:{title:"Starting a Validator Client",permalink:"/lodestar/run/validator-management/vc-configuration"},next:{title:"External Signer",permalink:"/lodestar/run/validator-management/external-signer"}},c={},t=[{value:"Available Sub-Commands",id:"available-sub-commands",level:2},{value:"Examples",id:"examples",level:2},{value:"Base validator command",id:"base-validator-command",level:3},{value:"validator Options",id:"validator-options",level:2},{value:"--dataDir",id:"--datadir",level:4},{value:"--network",id:"--network",level:4},{value:"--paramsFile",id:"--paramsfile",level:4},{value:"--terminal-total-difficulty-override",id:"--terminal-total-difficulty-override",level:4},{value:"--terminal-block-hash-override",id:"--terminal-block-hash-override",level:4},{value:"--terminal-block-hash-epoch-override",id:"--terminal-block-hash-epoch-override",level:4},{value:"--logLevel",id:"--loglevel",level:4},{value:"--logFile",id:"--logfile",level:4},{value:"--logFileLevel",id:"--logfilelevel",level:4},{value:"--logFileDailyRotate",id:"--logfiledailyrotate",level:4},{value:"--keymanager",id:"--keymanager",level:4},{value:"--keymanager.auth",id:"--keymanagerauth",level:4},{value:"--keymanager.tokenFile",id:"--keymanagertokenfile",level:4},{value:"--keymanager.port",id:"--keymanagerport",level:4},{value:"--keymanager.address",id:"--keymanageraddress",level:4},{value:"--keymanager.cors",id:"--keymanagercors",level:4},{value:"--beaconNodes",id:"--beaconnodes",level:4},{value:"--force",id:"--force",level:4},{value:"--graffiti",id:"--graffiti",level:4},{value:"--proposerSettingsFile",id:"--proposersettingsfile",level:4},{value:"--suggestedFeeRecipient",id:"--suggestedfeerecipient",level:4},{value:"--strictFeeRecipientCheck",id:"--strictfeerecipientcheck",level:4},{value:"--defaultGasLimit",id:"--defaultgaslimit",level:4},{value:"--builder",id:"--builder",level:4},{value:"--builder.selection",id:"--builderselection",level:4},{value:"--builder.boostFactor",id:"--builderboostfactor",level:4},{value:"--useProduceBlockV3",id:"--useproduceblockv3",level:4},{value:"--broadcastValidation",id:"--broadcastvalidation",level:4},{value:"--blindedLocal",id:"--blindedlocal",level:4},{value:"--importKeystores",id:"--importkeystores",level:4},{value:"--importKeystoresPassword",id:"--importkeystorespassword",level:4},{value:"--doppelgangerProtection",id:"--doppelgangerprotection",level:4},{value:"--http.requestWireFormat",id:"--httprequestwireformat",level:4},{value:"--http.responseWireFormat",id:"--httpresponsewireformat",level:4},{value:"--externalSigner.url",id:"--externalsignerurl",level:4},{value:"--externalSigner.pubkeys",id:"--externalsignerpubkeys",level:4},{value:"--externalSigner.fetch",id:"--externalsignerfetch",level:4},{value:"--externalSigner.fetchInterval",id:"--externalsignerfetchinterval",level:4},{value:"--distributed",id:"--distributed",level:4},{value:"--metrics",id:"--metrics",level:4},{value:"--metrics.port",id:"--metricsport",level:4},{value:"--metrics.address",id:"--metricsaddress",level:4},{value:"--monitoring.endpoint",id:"--monitoringendpoint",level:4},{value:"--monitoring.interval",id:"--monitoringinterval",level:4},{value:"validator slashing-protection import",id:"validator-slashing-protection-import",level:2},{value:"validator slashing-protection import Options",id:"validator-slashing-protection-import-options",level:3},{value:"--beaconNodes",id:"--beaconnodes-1",level:4},{value:"--force",id:"--force-1",level:4},{value:"--file",id:"--file",level:4},{value:"validator slashing-protection export",id:"validator-slashing-protection-export",level:2},{value:"validator slashing-protection export Options",id:"validator-slashing-protection-export-options",level:3},{value:"--beaconNodes",id:"--beaconnodes-2",level:4},{value:"--force",id:"--force-2",level:4},{value:"--file",id:"--file-1",level:4},{value:"--pubkeys",id:"--pubkeys",level:4},{value:"validator import",id:"validator-import",level:2},{value:"validator import Examples",id:"validator-import-examples",level:3},{value:"validator import Options",id:"validator-import-options",level:3},{value:"--importKeystores",id:"--importkeystores-1",level:4},{value:"--importKeystoresPassword",id:"--importkeystorespassword-1",level:4},{value:"validator list",id:"validator-list",level:2},{value:"validator list Examples",id:"validator-list-examples",level:3},{value:"validator voluntary-exit",id:"validator-voluntary-exit",level:2},{value:"validator voluntary-exit Examples",id:"validator-voluntary-exit-examples",level:3},{value:"validator voluntary-exit Options",id:"validator-voluntary-exit-options",level:3},{value:"--exitEpoch",id:"--exitepoch",level:4},{value:"--pubkeys",id:"--pubkeys-1",level:4},{value:"--yes",id:"--yes",level:4},{value:"validator bls-to-execution-change",id:"validator-bls-to-execution-change",level:2},{value:"validator bls-to-execution-change Examples",id:"validator-bls-to-execution-change-examples",level:3},{value:"validator bls-to-execution-change Options",id:"validator-bls-to-execution-change-options",level:3},{value:"--publicKey",id:"--publickey",level:4},{value:"--fromBlsPrivkey",id:"--fromblsprivkey",level:4},{value:"--toExecutionAddress",id:"--toexecutionaddress",level:4}];function a(e){const i={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(i.h1,{id:"validator-cli-command",children:[(0,d.jsx)(i.code,{children:"validator"})," CLI Command"]}),"\n",(0,d.jsx)(i.p,{children:"Run one or multiple validator clients"}),"\n",(0,d.jsx)(i.h2,{id:"available-sub-commands",children:"Available Sub-Commands"}),"\n",(0,d.jsxs)(i.p,{children:["The following sub-commands are available with the ",(0,d.jsx)(i.code,{children:"validator"})," command:"]}),"\n",(0,d.jsxs)(i.ul,{children:["\n",(0,d.jsxs)(i.li,{children:["\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.a,{href:"#validator-slashing-protection-import",children:"validator slashing-protection import"})}),"\n"]}),"\n",(0,d.jsxs)(i.li,{children:["\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.a,{href:"#validator-slashing-protection-export",children:"validator slashing-protection export"})}),"\n"]}),"\n",(0,d.jsxs)(i.li,{children:["\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.a,{href:"#validator-import",children:"validator import"})}),"\n"]}),"\n",(0,d.jsxs)(i.li,{children:["\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.a,{href:"#validator-list",children:"validator list"})}),"\n"]}),"\n",(0,d.jsxs)(i.li,{children:["\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.a,{href:"#validator-voluntary-exit",children:"validator voluntary-exit"})}),"\n"]}),"\n",(0,d.jsxs)(i.li,{children:["\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.a,{href:"#validator-bls-to-execution-change",children:"validator bls-to-execution-change"})}),"\n"]}),"\n"]}),"\n",(0,d.jsx)(i.h2,{id:"examples",children:"Examples"}),"\n",(0,d.jsxs)(i.h3,{id:"base-validator-command",children:["Base ",(0,d.jsx)(i.code,{children:"validator"})," command"]}),"\n",(0,d.jsx)(i.p,{children:"Run one validator client with all the keystores available in the directory .holesky/keystores"}),"\n",(0,d.jsx)(i.pre,{children:(0,d.jsx)(i.code,{className:"language-sh",children:"./lodestar validator --network holesky\n"})}),"\n",(0,d.jsxs)(i.h2,{id:"validator-options",children:[(0,d.jsx)(i.code,{children:"validator"})," Options"]}),"\n",(0,d.jsx)(i.h4,{id:"--datadir",children:(0,d.jsx)(i.code,{children:"--dataDir"})}),"\n",(0,d.jsx)(i.p,{children:"Lodestar root data directory"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--network",children:(0,d.jsx)(i.code,{children:"--network"})}),"\n",(0,d.jsx)(i.p,{children:"Name of the Ethereum Consensus chain network to join"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.p,{children:'choices: "mainnet", "gnosis", "sepolia", "holesky", "chiado", "ephemery", "mekong", "dev"'}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"mainnet"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--paramsfile",children:(0,d.jsx)(i.code,{children:"--paramsFile"})}),"\n",(0,d.jsx)(i.p,{children:"Network configuration file"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--terminal-total-difficulty-override",children:(0,d.jsx)(i.code,{children:"--terminal-total-difficulty-override"})}),"\n",(0,d.jsx)(i.p,{children:"Terminal PoW block TTD override"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--terminal-block-hash-override",children:(0,d.jsx)(i.code,{children:"--terminal-block-hash-override"})}),"\n",(0,d.jsx)(i.p,{children:"Terminal PoW block hash override"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--terminal-block-hash-epoch-override",children:(0,d.jsx)(i.code,{children:"--terminal-block-hash-epoch-override"})}),"\n",(0,d.jsx)(i.p,{children:"Terminal PoW block hash override activation epoch"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--loglevel",children:(0,d.jsx)(i.code,{children:"--logLevel"})}),"\n",(0,d.jsx)(i.p,{children:"Logging verbosity level for emitting logs to terminal"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"info"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--logfile",children:(0,d.jsx)(i.code,{children:"--logFile"})}),"\n",(0,d.jsx)(i.p,{children:"Path to output all logs to a persistent log file, use 'none' to disable"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--logfilelevel",children:(0,d.jsx)(i.code,{children:"--logFileLevel"})}),"\n",(0,d.jsx)(i.p,{children:"Logging verbosity level for emitting logs to file"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"debug"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--logfiledailyrotate",children:(0,d.jsx)(i.code,{children:"--logFileDailyRotate"})}),"\n",(0,d.jsx)(i.p,{children:"Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"5"})]}),"\n",(0,d.jsx)(i.h4,{id:"--keymanager",children:(0,d.jsx)(i.code,{children:"--keymanager"})}),"\n",(0,d.jsx)(i.p,{children:"Enable key manager API server"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--keymanagerauth",children:(0,d.jsx)(i.code,{children:"--keymanager.auth"})}),"\n",(0,d.jsx)(i.p,{children:"Enable token bearer authentication for key manager API server"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"true"})]}),"\n",(0,d.jsx)(i.h4,{id:"--keymanagertokenfile",children:(0,d.jsx)(i.code,{children:"--keymanager.tokenFile"})}),"\n",(0,d.jsx)(i.p,{children:"Path to file containing bearer token used for key manager API authentication"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--keymanagerport",children:(0,d.jsx)(i.code,{children:"--keymanager.port"})}),"\n",(0,d.jsx)(i.p,{children:"Set port for key manager API"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"5062"})]}),"\n",(0,d.jsx)(i.h4,{id:"--keymanageraddress",children:(0,d.jsx)(i.code,{children:"--keymanager.address"})}),"\n",(0,d.jsx)(i.p,{children:"Set host for key manager API"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"127.0.0.1"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--keymanagercors",children:(0,d.jsx)(i.code,{children:"--keymanager.cors"})}),"\n",(0,d.jsx)(i.p,{children:"Configures the Access-Control-Allow-Origin CORS header for key manager API"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"*"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--beaconnodes",children:(0,d.jsx)(i.code,{children:"--beaconNodes"})}),"\n",(0,d.jsx)(i.p,{children:"Addresses to connect to BeaconNode"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'[ "http://127.0.0.1:9596" ]'})]}),"\n",(0,d.jsx)(i.h4,{id:"--force",children:(0,d.jsx)(i.code,{children:"--force"})}),"\n",(0,d.jsx)(i.p,{children:"Open validators even if there's a lockfile. Use with caution"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--graffiti",children:(0,d.jsx)(i.code,{children:"--graffiti"})}),"\n",(0,d.jsx)(i.p,{children:"Specify your custom graffiti to be included in blocks (plain UTF8 text, 32 characters max)"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--proposersettingsfile",children:(0,d.jsx)(i.code,{children:"--proposerSettingsFile"})}),"\n",(0,d.jsx)(i.p,{children:"A yaml file to specify detailed default and per validator public key customized proposer configs. PS: This feature and its format is in alpha and subject to change"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--suggestedfeerecipient",children:(0,d.jsx)(i.code,{children:"--suggestedFeeRecipient"})}),"\n",(0,d.jsx)(i.p,{children:"Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$). It would be possible (WIP) to override this per validator key using config or key manager API. Only used post merge."}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"0x0000000000000000000000000000000000000000"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--strictfeerecipientcheck",children:(0,d.jsx)(i.code,{children:"--strictFeeRecipientCheck"})}),"\n",(0,d.jsxs)(i.p,{children:["Enable strict checking of the validator's ",(0,d.jsx)(i.code,{children:"feeRecipient"})," with the one returned by engine"]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--defaultgaslimit",children:(0,d.jsx)(i.code,{children:"--defaultGasLimit"})}),"\n",(0,d.jsx)(i.p,{children:"Suggested gas limit to the engine/builder for building execution payloads. Only used post merge."}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"30000000"})]}),"\n",(0,d.jsx)(i.h4,{id:"--builder",children:(0,d.jsx)(i.code,{children:"--builder"})}),"\n",(0,d.jsxs)(i.p,{children:["An alias for ",(0,d.jsx)(i.code,{children:"--builder.selection default"})," for the builder flow, ignored if ",(0,d.jsx)(i.code,{children:"--builder.selection"})," is explicitly provided"]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--builderselection",children:(0,d.jsx)(i.code,{children:"--builder.selection"})}),"\n",(0,d.jsxs)(i.p,{children:["Builder block selection strategy ",(0,d.jsx)(i.code,{children:"default"}),", ",(0,d.jsx)(i.code,{children:"maxprofit"}),", ",(0,d.jsx)(i.code,{children:"builderalways"}),", ",(0,d.jsx)(i.code,{children:"builderonly"}),", ",(0,d.jsx)(i.code,{children:"executionalways"}),", or ",(0,d.jsx)(i.code,{children:"executiononly"})]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"executiononly"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--builderboostfactor",children:(0,d.jsx)(i.code,{children:"--builder.boostFactor"})}),"\n",(0,d.jsxs)(i.p,{children:["Percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if ",(0,d.jsx)(i.code,{children:"--builder.selection"})," is set to anything other than ",(0,d.jsx)(i.code,{children:"maxprofit"})]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"100"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--useproduceblockv3",children:(0,d.jsx)(i.code,{children:"--useProduceBlockV3"})}),"\n",(0,d.jsx)(i.p,{children:"Enable/disable usage of produceBlockV3 for block production, is auto enabled on deneb+ blocks"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--broadcastvalidation",children:(0,d.jsx)(i.code,{children:"--broadcastValidation"})}),"\n",(0,d.jsx)(i.p,{children:"Validations to be run by beacon node for the signed block prior to publishing"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"gossip"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--blindedlocal",children:(0,d.jsx)(i.code,{children:"--blindedLocal"})}),"\n",(0,d.jsx)(i.p,{children:"Request fetching local block in blinded format for produceBlockV3"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"false"})]}),"\n",(0,d.jsx)(i.h4,{id:"--importkeystores",children:(0,d.jsx)(i.code,{children:"--importKeystores"})}),"\n",(0,d.jsx)(i.p,{children:"Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'[ "./keystores/*.json" ]'})]}),"\n",(0,d.jsx)(i.h4,{id:"--importkeystorespassword",children:(0,d.jsx)(i.code,{children:"--importKeystoresPassword"})}),"\n",(0,d.jsxs)(i.p,{children:["Path to a file with password to decrypt all keystores from ",(0,d.jsx)(i.code,{children:"importKeystores"})," option"]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"./password.txt"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--doppelgangerprotection",children:(0,d.jsx)(i.code,{children:"--doppelgangerProtection"})}),"\n",(0,d.jsx)(i.p,{children:"Enables Doppelganger protection"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--httprequestwireformat",children:(0,d.jsx)(i.code,{children:"--http.requestWireFormat"})}),"\n",(0,d.jsxs)(i.p,{children:["Wire format to use in HTTP requests to beacon node. Can be one of ",(0,d.jsx)(i.code,{children:"json"})," or ",(0,d.jsx)(i.code,{children:"ssz"})]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"json"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--httpresponsewireformat",children:(0,d.jsx)(i.code,{children:"--http.responseWireFormat"})}),"\n",(0,d.jsxs)(i.p,{children:["Preferred wire format for HTTP responses from beacon node. Can be one of ",(0,d.jsx)(i.code,{children:"json"})," or ",(0,d.jsx)(i.code,{children:"ssz"})]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"ssz"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--externalsignerurl",children:(0,d.jsx)(i.code,{children:"--externalSigner.url"})}),"\n",(0,d.jsx)(i.p,{children:"URL to connect to an external signing server"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--externalsignerpubkeys",children:(0,d.jsx)(i.code,{children:"--externalSigner.pubkeys"})}),"\n",(0,d.jsx)(i.p,{children:"List of validator public keys used by an external signer. May also provide a single string of comma-separated public keys"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsx)(i.h4,{id:"--externalsignerfetch",children:(0,d.jsx)(i.code,{children:"--externalSigner.fetch"})}),"\n",(0,d.jsxs)(i.p,{children:["Fetch the list of public keys to validate from an external signer. Cannot be used in combination with ",(0,d.jsx)(i.code,{children:"--externalSigner.pubkeys"})]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--externalsignerfetchinterval",children:(0,d.jsx)(i.code,{children:"--externalSigner.fetchInterval"})}),"\n",(0,d.jsx)(i.p,{children:"Interval in milliseconds between fetching the list of public keys from external signer, once per epoch by default"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsx)(i.h4,{id:"--distributed",children:(0,d.jsx)(i.code,{children:"--distributed"})}),"\n",(0,d.jsx)(i.p,{children:"Enables specific features required to run as part of a distributed validator cluster"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--metrics",children:(0,d.jsx)(i.code,{children:"--metrics"})}),"\n",(0,d.jsx)(i.p,{children:"Enable the Prometheus metrics HTTP server"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"false"})]}),"\n",(0,d.jsx)(i.h4,{id:"--metricsport",children:(0,d.jsx)(i.code,{children:"--metrics.port"})}),"\n",(0,d.jsx)(i.p,{children:"Listen TCP port for the Prometheus metrics HTTP server"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"5064"})]}),"\n",(0,d.jsx)(i.h4,{id:"--metricsaddress",children:(0,d.jsx)(i.code,{children:"--metrics.address"})}),"\n",(0,d.jsx)(i.p,{children:"Listen address for the Prometheus metrics HTTP server"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"127.0.0.1"'})]}),"\n",(0,d.jsx)(i.h4,{id:"--monitoringendpoint",children:(0,d.jsx)(i.code,{children:"--monitoring.endpoint"})}),"\n",(0,d.jsx)(i.p,{children:"Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in)"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--monitoringinterval",children:(0,d.jsx)(i.code,{children:"--monitoring.interval"})}),"\n",(0,d.jsx)(i.p,{children:"Interval in milliseconds between sending client stats to the remote service"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:"60000"})]}),"\n",(0,d.jsx)(i.h2,{id:"validator-slashing-protection-import",children:(0,d.jsx)(i.code,{children:"validator slashing-protection import"})}),"\n",(0,d.jsx)(i.p,{children:"Import an interchange file."}),"\n",(0,d.jsxs)(i.h3,{id:"validator-slashing-protection-import-options",children:[(0,d.jsx)(i.code,{children:"validator slashing-protection import"})," Options"]}),"\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.em,{children:"Supports all parent command options plus the following:"})}),"\n",(0,d.jsx)(i.h4,{id:"--beaconnodes-1",children:(0,d.jsx)(i.code,{children:"--beaconNodes"})}),"\n",(0,d.jsx)(i.p,{children:"Addresses to connect to BeaconNode"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'[ "http://127.0.0.1:9596" ]'})]}),"\n",(0,d.jsx)(i.h4,{id:"--force-1",children:(0,d.jsx)(i.code,{children:"--force"})}),"\n",(0,d.jsxs)(i.p,{children:["If ",(0,d.jsx)(i.code,{children:"genesisValidatorsRoot"})," can't be fetched from the Beacon node, use a zero hash"]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--file",children:(0,d.jsx)(i.code,{children:"--file"})}),"\n",(0,d.jsx)(i.p,{children:"The slashing protection interchange file to import (.json)."}),"\n",(0,d.jsx)(i.p,{children:"required: true"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h2,{id:"validator-slashing-protection-export",children:(0,d.jsx)(i.code,{children:"validator slashing-protection export"})}),"\n",(0,d.jsx)(i.p,{children:"Export an interchange file."}),"\n",(0,d.jsxs)(i.h3,{id:"validator-slashing-protection-export-options",children:[(0,d.jsx)(i.code,{children:"validator slashing-protection export"})," Options"]}),"\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.em,{children:"Supports all parent command options plus the following:"})}),"\n",(0,d.jsx)(i.h4,{id:"--beaconnodes-2",children:(0,d.jsx)(i.code,{children:"--beaconNodes"})}),"\n",(0,d.jsx)(i.p,{children:"Addresses to connect to BeaconNode"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'[ "http://127.0.0.1:9596" ]'})]}),"\n",(0,d.jsx)(i.h4,{id:"--force-2",children:(0,d.jsx)(i.code,{children:"--force"})}),"\n",(0,d.jsxs)(i.p,{children:["If ",(0,d.jsx)(i.code,{children:"genesisValidatorsRoot"})," can't be fetched from the Beacon node, use a zero hash"]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h4,{id:"--file-1",children:(0,d.jsx)(i.code,{children:"--file"})}),"\n",(0,d.jsx)(i.p,{children:"The slashing protection interchange file to export to (.json)."}),"\n",(0,d.jsx)(i.p,{children:"required: true"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--pubkeys",children:(0,d.jsx)(i.code,{children:"--pubkeys"})}),"\n",(0,d.jsx)(i.p,{children:"Export slashing protection data only for a given subset of public keys"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsx)(i.h2,{id:"validator-import",children:(0,d.jsx)(i.code,{children:"validator import"})}),"\n",(0,d.jsx)(i.p,{children:"Imports one or more EIP-2335 keystores into a Lodestar validator client directory, requesting passwords interactively. The directory flag provides a convenient method for importing a directory of keys generated by the eth2-deposit-cli Ethereum Foundation utility."}),"\n",(0,d.jsxs)(i.h3,{id:"validator-import-examples",children:[(0,d.jsx)(i.code,{children:"validator import"})," Examples"]}),"\n",(0,d.jsx)(i.p,{children:"Import validator keystores generated with the Ethereum Foundation Staking Launchpad"}),"\n",(0,d.jsx)(i.pre,{children:(0,d.jsx)(i.code,{className:"language-sh",children:"./lodestar validator import --network holesky --importKeystores $HOME/staking-deposit-cli/validator_keys\n"})}),"\n",(0,d.jsxs)(i.h3,{id:"validator-import-options",children:[(0,d.jsx)(i.code,{children:"validator import"})," Options"]}),"\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.em,{children:"Supports all parent command options plus the following:"})}),"\n",(0,d.jsx)(i.h4,{id:"--importkeystores-1",children:(0,d.jsx)(i.code,{children:"--importKeystores"})}),"\n",(0,d.jsx)(i.p,{children:"Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'[ "./keystores/*.json" ]'})]}),"\n",(0,d.jsx)(i.h4,{id:"--importkeystorespassword-1",children:(0,d.jsx)(i.code,{children:"--importKeystoresPassword"})}),"\n",(0,d.jsxs)(i.p,{children:["Path to a file with password to decrypt all keystores from ",(0,d.jsx)(i.code,{children:"importKeystores"})," option"]}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsxs)(i.p,{children:["default: ",(0,d.jsx)(i.code,{children:'"./password.txt"'})]}),"\n",(0,d.jsx)(i.h2,{id:"validator-list",children:(0,d.jsx)(i.code,{children:"validator list"})}),"\n",(0,d.jsx)(i.p,{children:"Lists the public keys of all validators"}),"\n",(0,d.jsxs)(i.h3,{id:"validator-list-examples",children:[(0,d.jsx)(i.code,{children:"validator list"})," Examples"]}),"\n",(0,d.jsx)(i.p,{children:"List all validator public keys previously imported"}),"\n",(0,d.jsx)(i.pre,{children:(0,d.jsx)(i.code,{className:"language-sh",children:"./lodestar validator list\n"})}),"\n",(0,d.jsx)(i.h2,{id:"validator-voluntary-exit",children:(0,d.jsx)(i.code,{children:"validator voluntary-exit"})}),"\n",(0,d.jsxs)(i.p,{children:["Performs a voluntary exit for a given set of validators as identified via ",(0,d.jsx)(i.code,{children:"pubkeys"}),". If no ",(0,d.jsx)(i.code,{children:"pubkeys"})," are provided, it will exit all validators that have been imported."]}),"\n",(0,d.jsxs)(i.h3,{id:"validator-voluntary-exit-examples",children:[(0,d.jsx)(i.code,{children:"validator voluntary-exit"})," Examples"]}),"\n",(0,d.jsx)(i.p,{children:"Perform a voluntary exit for the validator who has a public key 0xF00"}),"\n",(0,d.jsx)(i.pre,{children:(0,d.jsx)(i.code,{className:"language-sh",children:"./lodestar validator voluntary-exit --network holesky --pubkeys 0xF00\n"})}),"\n",(0,d.jsx)(i.p,{children:"Perform a voluntary exit for the validator who has a public key 0xF00 and its secret key is on an external signer"}),"\n",(0,d.jsx)(i.pre,{children:(0,d.jsx)(i.code,{className:"language-sh",children:"./lodestar validator voluntary-exit --network holesky --externalSigner.url http://signer:9000 --externalSigner.fetch --pubkeys 0xF00\n"})}),"\n",(0,d.jsxs)(i.h3,{id:"validator-voluntary-exit-options",children:[(0,d.jsx)(i.code,{children:"validator voluntary-exit"})," Options"]}),"\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.em,{children:"Supports all parent command options plus the following:"})}),"\n",(0,d.jsx)(i.h4,{id:"--exitepoch",children:(0,d.jsx)(i.code,{children:"--exitEpoch"})}),"\n",(0,d.jsx)(i.p,{children:"The epoch upon which to submit the voluntary exit. If no value is provided, then we default to the current epoch."}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"number"})]}),"\n",(0,d.jsx)(i.h4,{id:"--pubkeys-1",children:(0,d.jsx)(i.code,{children:"--pubkeys"})}),"\n",(0,d.jsx)(i.p,{children:"Public keys to exit"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string[]"})]}),"\n",(0,d.jsx)(i.h4,{id:"--yes",children:(0,d.jsx)(i.code,{children:"--yes"})}),"\n",(0,d.jsx)(i.p,{children:"Skip confirmation prompt"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"boolean"})]}),"\n",(0,d.jsx)(i.h2,{id:"validator-bls-to-execution-change",children:(0,d.jsx)(i.code,{children:"validator bls-to-execution-change"})}),"\n",(0,d.jsxs)(i.p,{children:["Performs BLS To Execution Change for a given validator (as identified via ",(0,d.jsx)(i.code,{children:"publicKey"}),". If no ",(0,d.jsx)(i.code,{children:"publicKey"})," is provided, a prompt will ask the user which validator they would like to choose for BLS To Execution Change."]}),"\n",(0,d.jsxs)(i.h3,{id:"validator-bls-to-execution-change-examples",children:[(0,d.jsx)(i.code,{children:"validator bls-to-execution-change"})," Examples"]}),"\n",(0,d.jsx)(i.p,{children:"Perform BLS To Execution Change for the validator who has a public key 0xF00"}),"\n",(0,d.jsx)(i.pre,{children:(0,d.jsx)(i.code,{className:"language-sh",children:"./lodestar validator bls-to-execution-change --publicKey 0xF00 --fromBlsPrivkey ... --toExecutionAddress ...\n"})}),"\n",(0,d.jsxs)(i.h3,{id:"validator-bls-to-execution-change-options",children:[(0,d.jsx)(i.code,{children:"validator bls-to-execution-change"})," Options"]}),"\n",(0,d.jsx)(i.p,{children:(0,d.jsx)(i.em,{children:"Supports all parent command options plus the following:"})}),"\n",(0,d.jsx)(i.h4,{id:"--publickey",children:(0,d.jsx)(i.code,{children:"--publicKey"})}),"\n",(0,d.jsx)(i.p,{children:"Validator public key for which to set withdrawal address hence enabling withdrawals"}),"\n",(0,d.jsx)(i.p,{children:"required: true"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--fromblsprivkey",children:(0,d.jsx)(i.code,{children:"--fromBlsPrivkey"})}),"\n",(0,d.jsx)(i.p,{children:"Bls withdrawals private key to sign the message"}),"\n",(0,d.jsx)(i.p,{children:"required: true"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]}),"\n",(0,d.jsx)(i.h4,{id:"--toexecutionaddress",children:(0,d.jsx)(i.code,{children:"--toExecutionAddress"})}),"\n",(0,d.jsx)(i.p,{children:"Address to which the validator's balances will be set to be withdrawn."}),"\n",(0,d.jsx)(i.p,{children:"required: true"}),"\n",(0,d.jsxs)(i.p,{children:["type: ",(0,d.jsx)(i.code,{children:"string"})]})]})}function h(e={}){const{wrapper:i}={...(0,r.R)(),...e.components};return i?(0,d.jsx)(i,{...e,children:(0,d.jsx)(a,{...e})}):a(e)}},8453:(e,i,n)=>{n.d(i,{R:()=>o,x:()=>s});var d=n(6540);const r={},l=d.createContext(r);function o(e){const i=d.useContext(l);return d.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),d.createElement(l.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/88b8b4fa.54549ce2.js b/assets/js/88b8b4fa.54549ce2.js deleted file mode 100644 index 1b21b73751e..00000000000 --- a/assets/js/88b8b4fa.54549ce2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_lodestar_docs=self.webpackChunk_lodestar_docs||[]).push([[8492],{2151:(e,n,d)=>{d.r(n),d.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>a,frontMatter:()=>l,metadata:()=>s,toc:()=>t});var i=d(4848),c=d(8453);const l={title:"CLI Reference"},r="beacon CLI Command",s={id:"run/beacon-management/beacon-cli",title:"CLI Reference",description:"Run a beacon chain node",source:"@site/pages/run/beacon-management/beacon-cli.md",sourceDirName:"run/beacon-management",slug:"/run/beacon-management/beacon-cli",permalink:"/lodestar/run/beacon-management/beacon-cli",draft:!1,unlisted:!1,editUrl:"https://github.com/ChainSafe/lodestar/tree/unstable/docs/pages/run/beacon-management/beacon-cli.md",tags:[],version:"current",frontMatter:{title:"CLI Reference"},sidebar:"tutorialSidebar",previous:{title:"Starting a Node",permalink:"/lodestar/run/beacon-management/starting-a-node"},next:{title:"Data Retention",permalink:"/lodestar/run/beacon-management/data-retention"}},o={},t=[{value:"Examples",id:"examples",level:2},{value:"beacon Options",id:"beacon-options",level:2},{value:"--dataDir",id:"--datadir",level:4},{value:"--network",id:"--network",level:4},{value:"--paramsFile",id:"--paramsfile",level:4},{value:"--terminal-total-difficulty-override",id:"--terminal-total-difficulty-override",level:4},{value:"--terminal-block-hash-override",id:"--terminal-block-hash-override",level:4},{value:"--terminal-block-hash-epoch-override",id:"--terminal-block-hash-epoch-override",level:4},{value:"--checkpointSyncUrl",id:"--checkpointsyncurl",level:4},{value:"--checkpointState",id:"--checkpointstate",level:4},{value:"--wssCheckpoint",id:"--wsscheckpoint",level:4},{value:"--forceCheckpointSync",id:"--forcecheckpointsync",level:4},{value:"--private",id:"--private",level:4},{value:"--validatorMonitorLogs",id:"--validatormonitorlogs",level:4},{value:"--disableLightClientServer",id:"--disablelightclientserver",level:4},{value:"--logLevel",id:"--loglevel",level:4},{value:"--logFile",id:"--logfile",level:4},{value:"--logFileLevel",id:"--logfilelevel",level:4},{value:"--logFileDailyRotate",id:"--logfiledailyrotate",level:4},{value:"--rest",id:"--rest",level:4},{value:"--rest.namespace",id:"--restnamespace",level:4},{value:"--rest.cors",id:"--restcors",level:4},{value:"--rest.address",id:"--restaddress",level:4},{value:"--rest.port",id:"--restport",level:4},{value:"--rest.swaggerUI",id:"--restswaggerui",level:4},{value:"--suggestedFeeRecipient",id:"--suggestedfeerecipient",level:4},{value:"--emitPayloadAttributes",id:"--emitpayloadattributes",level:4},{value:"--chain.archiveBlobEpochs",id:"--chainarchiveblobepochs",level:4},{value:"--eth1",id:"--eth1",level:4},{value:"--eth1.providerUrls",id:"--eth1providerurls",level:4},{value:"--execution.urls",id:"--executionurls",level:4},{value:"--execution.timeout",id:"--executiontimeout",level:4},{value:"--execution.retries",id:"--executionretries",level:4},{value:"--execution.retryDelay",id:"--executionretrydelay",level:4},{value:"--execution.engineMock",id:"--executionenginemock",level:4},{value:"--jwtSecret",id:"--jwtsecret",level:4},{value:"--jwtId",id:"--jwtid",level:4},{value:"--builder",id:"--builder",level:4},{value:"--builder.url",id:"--builderurl",level:4},{value:"--builder.timeout",id:"--buildertimeout",level:4},{value:"--builder.faultInspectionWindow",id:"--builderfaultinspectionwindow",level:4},{value:"--builder.allowedFaults",id:"--builderallowedfaults",level:4},{value:"--metrics",id:"--metrics",level:4},{value:"--metrics.port",id:"--metricsport",level:4},{value:"--metrics.address",id:"--metricsaddress",level:4},{value:"--monitoring.endpoint",id:"--monitoringendpoint",level:4},{value:"--monitoring.interval",id:"--monitoringinterval",level:4},{value:"--discv5",id:"--discv5",level:4},{value:"--listenAddress",id:"--listenaddress",level:4},{value:"--port",id:"--port",level:4},{value:"--discoveryPort",id:"--discoveryport",level:4},{value:"--listenAddress6",id:"--listenaddress6",level:4},{value:"--port6",id:"--port6",level:4},{value:"--discoveryPort6",id:"--discoveryport6",level:4},{value:"--bootnodes",id:"--bootnodes",level:4},{value:"--targetPeers",id:"--targetpeers",level:4},{value:"--subscribeAllSubnets",id:"--subscribeallsubnets",level:4},{value:"--disablePeerScoring",id:"--disablepeerscoring",level:4},{value:"--mdns",id:"--mdns",level:4},{value:"--enr.ip",id:"--enrip",level:4},{value:"--enr.tcp",id:"--enrtcp",level:4},{value:"--enr.udp",id:"--enrudp",level:4},{value:"--enr.ip6",id:"--enrip6",level:4},{value:"--enr.tcp6",id:"--enrtcp6",level:4},{value:"--enr.udp6",id:"--enrudp6",level:4},{value:"--nat",id:"--nat",level:4}];function h(e){const n={code:"code",h1:"h1",h2:"h2",h4:"h4",p:"p",pre:"pre",...(0,c.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.h1,{id:"beacon-cli-command",children:[(0,i.jsx)(n.code,{children:"beacon"})," CLI Command"]}),"\n",(0,i.jsx)(n.p,{children:"Run a beacon chain node"}),"\n",(0,i.jsx)(n.h2,{id:"examples",children:"Examples"}),"\n",(0,i.jsx)(n.p,{children:"Run a beacon chain node and connect to the holesky testnet"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-sh",children:"./lodestar beacon --network holesky\n"})}),"\n",(0,i.jsxs)(n.h2,{id:"beacon-options",children:[(0,i.jsx)(n.code,{children:"beacon"})," Options"]}),"\n",(0,i.jsx)(n.h4,{id:"--datadir",children:(0,i.jsx)(n.code,{children:"--dataDir"})}),"\n",(0,i.jsx)(n.p,{children:"Lodestar root data directory"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--network",children:(0,i.jsx)(n.code,{children:"--network"})}),"\n",(0,i.jsx)(n.p,{children:"Name of the Ethereum Consensus chain network to join"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "mainnet", "gnosis", "sepolia", "holesky", "chiado", "ephemery", "mekong", "dev"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"mainnet"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--paramsfile",children:(0,i.jsx)(n.code,{children:"--paramsFile"})}),"\n",(0,i.jsx)(n.p,{children:"Network configuration file"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--terminal-total-difficulty-override",children:(0,i.jsx)(n.code,{children:"--terminal-total-difficulty-override"})}),"\n",(0,i.jsx)(n.p,{children:"Terminal PoW block TTD override"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--terminal-block-hash-override",children:(0,i.jsx)(n.code,{children:"--terminal-block-hash-override"})}),"\n",(0,i.jsx)(n.p,{children:"Terminal PoW block hash override"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--terminal-block-hash-epoch-override",children:(0,i.jsx)(n.code,{children:"--terminal-block-hash-epoch-override"})}),"\n",(0,i.jsx)(n.p,{children:"Terminal PoW block hash override activation epoch"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--checkpointsyncurl",children:(0,i.jsx)(n.code,{children:"--checkpointSyncUrl"})}),"\n",(0,i.jsx)(n.p,{children:"Server url hosting Beacon Node APIs to fetch weak subjectivity state. Fetch latest finalized by default, else set --wssCheckpoint"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--checkpointstate",children:(0,i.jsx)(n.code,{children:"--checkpointState"})}),"\n",(0,i.jsx)(n.p,{children:"Set a checkpoint state to start syncing from"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--wsscheckpoint",children:(0,i.jsx)(n.code,{children:"--wssCheckpoint"})}),"\n",(0,i.jsx)(n.p,{children:"Start beacon node off a state at the provided weak subjectivity checkpoint, to be supplied in : format. For example, 0x1234:100 will sync and start off from the weak subjectivity state at checkpoint of epoch 100 with block root 0x1234."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--forcecheckpointsync",children:(0,i.jsx)(n.code,{children:"--forceCheckpointSync"})}),"\n",(0,i.jsx)(n.p,{children:"Force syncing from checkpoint state even if db state is within weak subjectivity period. This helps to avoid long sync times after node has been offline for a while."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--private",children:(0,i.jsx)(n.code,{children:"--private"})}),"\n",(0,i.jsx)(n.p,{children:"Do not send implementation details over p2p identify protocol and in builder, execution engine and eth1 requests"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--validatormonitorlogs",children:(0,i.jsx)(n.code,{children:"--validatorMonitorLogs"})}),"\n",(0,i.jsx)(n.p,{children:"Log validator monitor events as info. This requires metrics to be enabled."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--disablelightclientserver",children:(0,i.jsx)(n.code,{children:"--disableLightClientServer"})}),"\n",(0,i.jsx)(n.p,{children:"Disable light client server."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--loglevel",children:(0,i.jsx)(n.code,{children:"--logLevel"})}),"\n",(0,i.jsx)(n.p,{children:"Logging verbosity level for emitting logs to terminal"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"info"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--logfile",children:(0,i.jsx)(n.code,{children:"--logFile"})}),"\n",(0,i.jsx)(n.p,{children:"Path to output all logs to a persistent log file, use 'none' to disable"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--logfilelevel",children:(0,i.jsx)(n.code,{children:"--logFileLevel"})}),"\n",(0,i.jsx)(n.p,{children:"Logging verbosity level for emitting logs to file"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"debug"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--logfiledailyrotate",children:(0,i.jsx)(n.code,{children:"--logFileDailyRotate"})}),"\n",(0,i.jsx)(n.p,{children:"Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"5"})]}),"\n",(0,i.jsx)(n.h4,{id:"--rest",children:(0,i.jsx)(n.code,{children:"--rest"})}),"\n",(0,i.jsx)(n.p,{children:"Enable/disable HTTP API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"true"})]}),"\n",(0,i.jsx)(n.h4,{id:"--restnamespace",children:(0,i.jsx)(n.code,{children:"--rest.namespace"})}),"\n",(0,i.jsx)(n.p,{children:"Pick namespaces to expose for HTTP API. Set to '*' to enable all namespaces"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "beacon", "config", "debug", "events", "lightclient", "lodestar", "node", "proof", "validator", "*"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'["beacon","config","debug","events","node","validator","lightclient"]'})]}),"\n",(0,i.jsx)(n.h4,{id:"--restcors",children:(0,i.jsx)(n.code,{children:"--rest.cors"})}),"\n",(0,i.jsx)(n.p,{children:"Configures the Access-Control-Allow-Origin CORS header for HTTP API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"*"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--restaddress",children:(0,i.jsx)(n.code,{children:"--rest.address"})}),"\n",(0,i.jsx)(n.p,{children:"Set host for HTTP API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"127.0.0.1"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--restport",children:(0,i.jsx)(n.code,{children:"--rest.port"})}),"\n",(0,i.jsx)(n.p,{children:"Set port for HTTP API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"9596"})]}),"\n",(0,i.jsx)(n.h4,{id:"--restswaggerui",children:(0,i.jsx)(n.code,{children:"--rest.swaggerUI"})}),"\n",(0,i.jsx)(n.p,{children:"Enable Swagger UI for API exploration at http://{address}:{port}/documentation"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--suggestedfeerecipient",children:(0,i.jsx)(n.code,{children:"--suggestedFeeRecipient"})}),"\n",(0,i.jsxs)(n.p,{children:["Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$) in case validator fails to update for a validator index before calling ",(0,i.jsx)(n.code,{children:"produceBlock"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"0x0000000000000000000000000000000000000000"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--emitpayloadattributes",children:(0,i.jsx)(n.code,{children:"--emitPayloadAttributes"})}),"\n",(0,i.jsxs)(n.p,{children:["Flag to SSE emit execution ",(0,i.jsx)(n.code,{children:"payloadAttributes"})," before every slot"]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"false"})]}),"\n",(0,i.jsx)(n.h4,{id:"--chainarchiveblobepochs",children:(0,i.jsx)(n.code,{children:"--chain.archiveBlobEpochs"})}),"\n",(0,i.jsx)(n.p,{children:"Number of epochs to retain finalized blobs (minimum of MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS)"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--eth1",children:(0,i.jsx)(n.code,{children:"--eth1"})}),"\n",(0,i.jsx)(n.p,{children:"Whether to follow the eth1 chain"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"true"})]}),"\n",(0,i.jsx)(n.h4,{id:"--eth1providerurls",children:(0,i.jsx)(n.code,{children:"--eth1.providerUrls"})}),"\n",(0,i.jsx)(n.p,{children:"Urls to Eth1 node with enabled rpc. If not explicitly provided and execution endpoint provided via execution.urls, it will use execution.urls. Otherwise will try connecting on the specified default(s)"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'[ "http://localhost:8545" ]'})]}),"\n",(0,i.jsx)(n.h4,{id:"--executionurls",children:(0,i.jsx)(n.code,{children:"--execution.urls"})}),"\n",(0,i.jsx)(n.p,{children:"Urls to execution client engine API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'[ "http://localhost:8551" ]'})]}),"\n",(0,i.jsx)(n.h4,{id:"--executiontimeout",children:(0,i.jsx)(n.code,{children:"--execution.timeout"})}),"\n",(0,i.jsx)(n.p,{children:"Timeout in milliseconds for execution engine API HTTP client"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"12000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--executionretries",children:(0,i.jsx)(n.code,{children:"--execution.retries"})}),"\n",(0,i.jsx)(n.p,{children:"Number of retries when calling execution engine API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"2"})]}),"\n",(0,i.jsx)(n.h4,{id:"--executionretrydelay",children:(0,i.jsx)(n.code,{children:"--execution.retryDelay"})}),"\n",(0,i.jsx)(n.p,{children:"Delay time in milliseconds between retries when retrying calls to the execution engine API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"2000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--executionenginemock",children:(0,i.jsx)(n.code,{children:"--execution.engineMock"})}),"\n",(0,i.jsx)(n.p,{children:"Set the execution engine to mock mode (development only)"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--jwtsecret",children:(0,i.jsx)(n.code,{children:"--jwtSecret"})}),"\n",(0,i.jsx)(n.p,{children:"File path to a shared hex-encoded jwt secret which will be used to generate and bundle HS256 encoded jwt tokens for authentication with the EL client's rpc server hosting engine apis. Secret to be exactly same as the one used by the corresponding EL client."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--jwtid",children:(0,i.jsx)(n.code,{children:"--jwtId"})}),"\n",(0,i.jsx)(n.p,{children:"An optional identifier to be set in the id field of the claims included in jwt tokens used for authentication with EL client's rpc server hosting engine apis"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--builder",children:(0,i.jsx)(n.code,{children:"--builder"})}),"\n",(0,i.jsx)(n.p,{children:"Enable builder interface"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--builderurl",children:(0,i.jsx)(n.code,{children:"--builder.url"})}),"\n",(0,i.jsx)(n.p,{children:"Url hosting the builder API"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"http://localhost:8661"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--buildertimeout",children:(0,i.jsx)(n.code,{children:"--builder.timeout"})}),"\n",(0,i.jsx)(n.p,{children:"Timeout in milliseconds for builder API HTTP client"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"12000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--builderfaultinspectionwindow",children:(0,i.jsx)(n.code,{children:"--builder.faultInspectionWindow"})}),"\n",(0,i.jsx)(n.p,{children:"Window to inspect missed slots for enabling/disabling builder circuit breaker"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--builderallowedfaults",children:(0,i.jsx)(n.code,{children:"--builder.allowedFaults"})}),"\n",(0,i.jsxs)(n.p,{children:["Number of missed slots allowed in the ",(0,i.jsx)(n.code,{children:"faultInspectionWindow"})," for builder circuit"]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--metrics",children:(0,i.jsx)(n.code,{children:"--metrics"})}),"\n",(0,i.jsx)(n.p,{children:"Enable the Prometheus metrics HTTP server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--metricsport",children:(0,i.jsx)(n.code,{children:"--metrics.port"})}),"\n",(0,i.jsx)(n.p,{children:"Listen TCP port for the Prometheus metrics HTTP server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"8008"})]}),"\n",(0,i.jsx)(n.h4,{id:"--metricsaddress",children:(0,i.jsx)(n.code,{children:"--metrics.address"})}),"\n",(0,i.jsx)(n.p,{children:"Listen address for the Prometheus metrics HTTP server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"127.0.0.1"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--monitoringendpoint",children:(0,i.jsx)(n.code,{children:"--monitoring.endpoint"})}),"\n",(0,i.jsx)(n.p,{children:"Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in)"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--monitoringinterval",children:(0,i.jsx)(n.code,{children:"--monitoring.interval"})}),"\n",(0,i.jsx)(n.p,{children:"Interval in milliseconds between sending client stats to the remote service"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"60000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--discv5",children:(0,i.jsx)(n.code,{children:"--discv5"})}),"\n",(0,i.jsx)(n.p,{children:"Enable discv5"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"true"})]}),"\n",(0,i.jsx)(n.h4,{id:"--listenaddress",children:(0,i.jsx)(n.code,{children:"--listenAddress"})}),"\n",(0,i.jsx)(n.p,{children:"The IPv4 address to listen for p2p UDP and TCP connections"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"0.0.0.0"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--port",children:(0,i.jsx)(n.code,{children:"--port"})}),"\n",(0,i.jsx)(n.p,{children:"The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort flag."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"9000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--discoveryport",children:(0,i.jsx)(n.code,{children:"--discoveryPort"})}),"\n",(0,i.jsxs)(n.p,{children:["The UDP port that discovery will listen on. Defaults to ",(0,i.jsx)(n.code,{children:"port"})]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"port"})]}),"\n",(0,i.jsx)(n.h4,{id:"--listenaddress6",children:(0,i.jsx)(n.code,{children:"--listenAddress6"})}),"\n",(0,i.jsx)(n.p,{children:"The IPv6 address to listen for p2p UDP and TCP connections"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--port6",children:(0,i.jsx)(n.code,{children:"--port6"})}),"\n",(0,i.jsx)(n.p,{children:"The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort6 flag."}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"9090"})]}),"\n",(0,i.jsx)(n.h4,{id:"--discoveryport6",children:(0,i.jsx)(n.code,{children:"--discoveryPort6"})}),"\n",(0,i.jsxs)(n.p,{children:["The UDP port that discovery will listen on. Defaults to ",(0,i.jsx)(n.code,{children:"port6"})]}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"port6"})]}),"\n",(0,i.jsx)(n.h4,{id:"--bootnodes",children:(0,i.jsx)(n.code,{children:"--bootnodes"})}),"\n",(0,i.jsx)(n.p,{children:"Bootnodes for discv5 discovery"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'[ "[]" ]'})]}),"\n",(0,i.jsx)(n.h4,{id:"--targetpeers",children:(0,i.jsx)(n.code,{children:"--targetPeers"})}),"\n",(0,i.jsx)(n.p,{children:"The target connected peers. Above this number peers will be disconnected"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"100"})]}),"\n",(0,i.jsx)(n.h4,{id:"--subscribeallsubnets",children:(0,i.jsx)(n.code,{children:"--subscribeAllSubnets"})}),"\n",(0,i.jsx)(n.p,{children:"Subscribe to all subnets regardless of validator count"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"false"})]}),"\n",(0,i.jsx)(n.h4,{id:"--disablepeerscoring",children:(0,i.jsx)(n.code,{children:"--disablePeerScoring"})}),"\n",(0,i.jsx)(n.p,{children:"Disable peer scoring, used for testing on devnets"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"false"})]}),"\n",(0,i.jsx)(n.h4,{id:"--mdns",children:(0,i.jsx)(n.code,{children:"--mdns"})}),"\n",(0,i.jsx)(n.p,{children:"Enable mdns local peer discovery"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"false"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrip",children:(0,i.jsx)(n.code,{children:"--enr.ip"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR IP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrtcp",children:(0,i.jsx)(n.code,{children:"--enr.tcp"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR TCP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrudp",children:(0,i.jsx)(n.code,{children:"--enr.udp"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR UDP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrip6",children:(0,i.jsx)(n.code,{children:"--enr.ip6"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR IPv6 entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrtcp6",children:(0,i.jsx)(n.code,{children:"--enr.tcp6"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR (IPv6-specific) TCP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrudp6",children:(0,i.jsx)(n.code,{children:"--enr.udp6"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR (IPv6-specific) UDP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--nat",children:(0,i.jsx)(n.code,{children:"--nat"})}),"\n",(0,i.jsx)(n.p,{children:"Allow configuration of non-local addresses"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]})]})}function a(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,n,d)=>{d.d(n,{R:()=>r,x:()=>s});var i=d(6540);const c={},l=i.createContext(c);function r(e){const n=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:r(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/88b8b4fa.6ef49da5.js b/assets/js/88b8b4fa.6ef49da5.js new file mode 100644 index 00000000000..8a077d4a791 --- /dev/null +++ b/assets/js/88b8b4fa.6ef49da5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_lodestar_docs=self.webpackChunk_lodestar_docs||[]).push([[8492],{2151:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>a,frontMatter:()=>l,metadata:()=>s,toc:()=>t});var d=i(4848),c=i(8453);const l={title:"CLI Reference"},r="beacon CLI Command",s={id:"run/beacon-management/beacon-cli",title:"CLI Reference",description:"Run a beacon chain node",source:"@site/pages/run/beacon-management/beacon-cli.md",sourceDirName:"run/beacon-management",slug:"/run/beacon-management/beacon-cli",permalink:"/lodestar/run/beacon-management/beacon-cli",draft:!1,unlisted:!1,editUrl:"https://github.com/ChainSafe/lodestar/tree/unstable/docs/pages/run/beacon-management/beacon-cli.md",tags:[],version:"current",frontMatter:{title:"CLI Reference"},sidebar:"tutorialSidebar",previous:{title:"Starting a Node",permalink:"/lodestar/run/beacon-management/starting-a-node"},next:{title:"Data Retention",permalink:"/lodestar/run/beacon-management/data-retention"}},o={},t=[{value:"Examples",id:"examples",level:2},{value:"beacon Options",id:"beacon-options",level:2},{value:"--dataDir",id:"--datadir",level:4},{value:"--network",id:"--network",level:4},{value:"--paramsFile",id:"--paramsfile",level:4},{value:"--rcConfig",id:"--rcconfig",level:4},{value:"--terminal-total-difficulty-override",id:"--terminal-total-difficulty-override",level:4},{value:"--terminal-block-hash-override",id:"--terminal-block-hash-override",level:4},{value:"--terminal-block-hash-epoch-override",id:"--terminal-block-hash-epoch-override",level:4},{value:"--genesisStateFile",id:"--genesisstatefile",level:4},{value:"--checkpointSyncUrl",id:"--checkpointsyncurl",level:4},{value:"--checkpointState",id:"--checkpointstate",level:4},{value:"--wssCheckpoint",id:"--wsscheckpoint",level:4},{value:"--forceCheckpointSync",id:"--forcecheckpointsync",level:4},{value:"--ignoreWeakSubjectivityCheck",id:"--ignoreweaksubjectivitycheck",level:4},{value:"--persistNetworkIdentity",id:"--persistnetworkidentity",level:4},{value:"--private",id:"--private",level:4},{value:"--validatorMonitorLogs",id:"--validatormonitorlogs",level:4},{value:"--disableLightClientServer",id:"--disablelightclientserver",level:4},{value:"--logLevel",id:"--loglevel",level:4},{value:"--logFile",id:"--logfile",level:4},{value:"--logFileLevel",id:"--logfilelevel",level:4},{value:"--logFileDailyRotate",id:"--logfiledailyrotate",level:4},{value:"--rest",id:"--rest",level:4},{value:"--rest.namespace",id:"--restnamespace",level:4},{value:"--rest.cors",id:"--restcors",level:4},{value:"--rest.address",id:"--restaddress",level:4},{value:"--rest.port",id:"--restport",level:4},{value:"--rest.swaggerUI",id:"--restswaggerui",level:4},{value:"--suggestedFeeRecipient",id:"--suggestedfeerecipient",level:4},{value:"--emitPayloadAttributes",id:"--emitpayloadattributes",level:4},{value:"--chain.archiveBlobEpochs",id:"--chainarchiveblobepochs",level:4},{value:"--eth1",id:"--eth1",level:4},{value:"--eth1.providerUrls",id:"--eth1providerurls",level:4},{value:"--execution.urls",id:"--executionurls",level:4},{value:"--execution.timeout",id:"--executiontimeout",level:4},{value:"--execution.retries",id:"--executionretries",level:4},{value:"--execution.retryDelay",id:"--executionretrydelay",level:4},{value:"--execution.engineMock",id:"--executionenginemock",level:4},{value:"--jwtSecret",id:"--jwtsecret",level:4},{value:"--jwtId",id:"--jwtid",level:4},{value:"--builder",id:"--builder",level:4},{value:"--builder.url",id:"--builderurl",level:4},{value:"--builder.timeout",id:"--buildertimeout",level:4},{value:"--builder.faultInspectionWindow",id:"--builderfaultinspectionwindow",level:4},{value:"--builder.allowedFaults",id:"--builderallowedfaults",level:4},{value:"--metrics",id:"--metrics",level:4},{value:"--metrics.port",id:"--metricsport",level:4},{value:"--metrics.address",id:"--metricsaddress",level:4},{value:"--monitoring.endpoint",id:"--monitoringendpoint",level:4},{value:"--monitoring.interval",id:"--monitoringinterval",level:4},{value:"--discv5",id:"--discv5",level:4},{value:"--listenAddress",id:"--listenaddress",level:4},{value:"--port",id:"--port",level:4},{value:"--discoveryPort",id:"--discoveryport",level:4},{value:"--listenAddress6",id:"--listenaddress6",level:4},{value:"--port6",id:"--port6",level:4},{value:"--discoveryPort6",id:"--discoveryport6",level:4},{value:"--bootnodes",id:"--bootnodes",level:4},{value:"--targetPeers",id:"--targetpeers",level:4},{value:"--subscribeAllSubnets",id:"--subscribeallsubnets",level:4},{value:"--disablePeerScoring",id:"--disablepeerscoring",level:4},{value:"--mdns",id:"--mdns",level:4},{value:"--enr.ip",id:"--enrip",level:4},{value:"--enr.tcp",id:"--enrtcp",level:4},{value:"--enr.udp",id:"--enrudp",level:4},{value:"--enr.ip6",id:"--enrip6",level:4},{value:"--enr.tcp6",id:"--enrtcp6",level:4},{value:"--enr.udp6",id:"--enrudp6",level:4},{value:"--nat",id:"--nat",level:4}];function h(e){const n={code:"code",h1:"h1",h2:"h2",h4:"h4",p:"p",pre:"pre",...(0,c.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(n.h1,{id:"beacon-cli-command",children:[(0,d.jsx)(n.code,{children:"beacon"})," CLI Command"]}),"\n",(0,d.jsx)(n.p,{children:"Run a beacon chain node"}),"\n",(0,d.jsx)(n.h2,{id:"examples",children:"Examples"}),"\n",(0,d.jsx)(n.p,{children:"Run a beacon chain node and connect to the holesky testnet"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-sh",children:"./lodestar beacon --network holesky\n"})}),"\n",(0,d.jsxs)(n.h2,{id:"beacon-options",children:[(0,d.jsx)(n.code,{children:"beacon"})," Options"]}),"\n",(0,d.jsx)(n.h4,{id:"--datadir",children:(0,d.jsx)(n.code,{children:"--dataDir"})}),"\n",(0,d.jsx)(n.p,{children:"Lodestar root data directory"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--network",children:(0,d.jsx)(n.code,{children:"--network"})}),"\n",(0,d.jsx)(n.p,{children:"Name of the Ethereum Consensus chain network to join"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.p,{children:'choices: "mainnet", "gnosis", "sepolia", "holesky", "chiado", "ephemery", "mekong", "dev"'}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"mainnet"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--paramsfile",children:(0,d.jsx)(n.code,{children:"--paramsFile"})}),"\n",(0,d.jsx)(n.p,{children:"Network configuration file"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--rcconfig",children:(0,d.jsx)(n.code,{children:"--rcConfig"})}),"\n",(0,d.jsx)(n.p,{children:"RC file to supplement command line args, accepted formats: .yml, .yaml, .json"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--terminal-total-difficulty-override",children:(0,d.jsx)(n.code,{children:"--terminal-total-difficulty-override"})}),"\n",(0,d.jsx)(n.p,{children:"Terminal PoW block TTD override"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--terminal-block-hash-override",children:(0,d.jsx)(n.code,{children:"--terminal-block-hash-override"})}),"\n",(0,d.jsx)(n.p,{children:"Terminal PoW block hash override"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--terminal-block-hash-epoch-override",children:(0,d.jsx)(n.code,{children:"--terminal-block-hash-epoch-override"})}),"\n",(0,d.jsx)(n.p,{children:"Terminal PoW block hash override activation epoch"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--genesisstatefile",children:(0,d.jsx)(n.code,{children:"--genesisStateFile"})}),"\n",(0,d.jsx)(n.p,{children:"Path or URL to download a genesis state file in ssz-encoded format"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--checkpointsyncurl",children:(0,d.jsx)(n.code,{children:"--checkpointSyncUrl"})}),"\n",(0,d.jsx)(n.p,{children:"Server url hosting Beacon Node APIs to fetch weak subjectivity state. Fetch latest finalized by default, else set --wssCheckpoint"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--checkpointstate",children:(0,d.jsx)(n.code,{children:"--checkpointState"})}),"\n",(0,d.jsx)(n.p,{children:"Set a checkpoint state to start syncing from"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--wsscheckpoint",children:(0,d.jsx)(n.code,{children:"--wssCheckpoint"})}),"\n",(0,d.jsx)(n.p,{children:"Start beacon node off a state at the provided weak subjectivity checkpoint, to be supplied in : format. For example, 0x1234:100 will sync and start off from the weak subjectivity state at checkpoint of epoch 100 with block root 0x1234."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--forcecheckpointsync",children:(0,d.jsx)(n.code,{children:"--forceCheckpointSync"})}),"\n",(0,d.jsx)(n.p,{children:"Force syncing from checkpoint state even if db state is within weak subjectivity period. This helps to avoid long sync times after node has been offline for a while."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--ignoreweaksubjectivitycheck",children:(0,d.jsx)(n.code,{children:"--ignoreWeakSubjectivityCheck"})}),"\n",(0,d.jsx)(n.p,{children:"Ignore the checkpoint sync state failing the weak subjectivity check. This is relevant in testnets where the weak subjectivity period is too small for even few epochs of non finalization causing last finalized to be out of range. This flag is not recommended for mainnet use."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--persistnetworkidentity",children:(0,d.jsx)(n.code,{children:"--persistNetworkIdentity"})}),"\n",(0,d.jsx)(n.p,{children:"Whether to reuse the same peer-id across restarts"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--private",children:(0,d.jsx)(n.code,{children:"--private"})}),"\n",(0,d.jsx)(n.p,{children:"Do not send implementation details over p2p identify protocol and in builder, execution engine and eth1 requests"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--validatormonitorlogs",children:(0,d.jsx)(n.code,{children:"--validatorMonitorLogs"})}),"\n",(0,d.jsx)(n.p,{children:"Log validator monitor events as info. This requires metrics to be enabled."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--disablelightclientserver",children:(0,d.jsx)(n.code,{children:"--disableLightClientServer"})}),"\n",(0,d.jsx)(n.p,{children:"Disable light client server."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--loglevel",children:(0,d.jsx)(n.code,{children:"--logLevel"})}),"\n",(0,d.jsx)(n.p,{children:"Logging verbosity level for emitting logs to terminal"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"info"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--logfile",children:(0,d.jsx)(n.code,{children:"--logFile"})}),"\n",(0,d.jsx)(n.p,{children:"Path to output all logs to a persistent log file, use 'none' to disable"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--logfilelevel",children:(0,d.jsx)(n.code,{children:"--logFileLevel"})}),"\n",(0,d.jsx)(n.p,{children:"Logging verbosity level for emitting logs to file"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"debug"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--logfiledailyrotate",children:(0,d.jsx)(n.code,{children:"--logFileDailyRotate"})}),"\n",(0,d.jsx)(n.p,{children:"Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"5"})]}),"\n",(0,d.jsx)(n.h4,{id:"--rest",children:(0,d.jsx)(n.code,{children:"--rest"})}),"\n",(0,d.jsx)(n.p,{children:"Enable/disable HTTP API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"true"})]}),"\n",(0,d.jsx)(n.h4,{id:"--restnamespace",children:(0,d.jsx)(n.code,{children:"--rest.namespace"})}),"\n",(0,d.jsx)(n.p,{children:"Pick namespaces to expose for HTTP API. Set to '*' to enable all namespaces"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string[]"})]}),"\n",(0,d.jsx)(n.p,{children:'choices: "beacon", "config", "debug", "events", "lightclient", "lodestar", "node", "proof", "validator", "*"'}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'["beacon","config","debug","events","node","validator","lightclient"]'})]}),"\n",(0,d.jsx)(n.h4,{id:"--restcors",children:(0,d.jsx)(n.code,{children:"--rest.cors"})}),"\n",(0,d.jsx)(n.p,{children:"Configures the Access-Control-Allow-Origin CORS header for HTTP API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"*"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--restaddress",children:(0,d.jsx)(n.code,{children:"--rest.address"})}),"\n",(0,d.jsx)(n.p,{children:"Set host for HTTP API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"127.0.0.1"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--restport",children:(0,d.jsx)(n.code,{children:"--rest.port"})}),"\n",(0,d.jsx)(n.p,{children:"Set port for HTTP API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"9596"})]}),"\n",(0,d.jsx)(n.h4,{id:"--restswaggerui",children:(0,d.jsx)(n.code,{children:"--rest.swaggerUI"})}),"\n",(0,d.jsx)(n.p,{children:"Enable Swagger UI for API exploration at http://{address}:{port}/documentation"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--suggestedfeerecipient",children:(0,d.jsx)(n.code,{children:"--suggestedFeeRecipient"})}),"\n",(0,d.jsxs)(n.p,{children:["Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$) in case validator fails to update for a validator index before calling ",(0,d.jsx)(n.code,{children:"produceBlock"}),"."]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"0x0000000000000000000000000000000000000000"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--emitpayloadattributes",children:(0,d.jsx)(n.code,{children:"--emitPayloadAttributes"})}),"\n",(0,d.jsxs)(n.p,{children:["Flag to SSE emit execution ",(0,d.jsx)(n.code,{children:"payloadAttributes"})," before every slot"]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"false"})]}),"\n",(0,d.jsx)(n.h4,{id:"--chainarchiveblobepochs",children:(0,d.jsx)(n.code,{children:"--chain.archiveBlobEpochs"})}),"\n",(0,d.jsx)(n.p,{children:"Number of epochs to retain finalized blobs (minimum of MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS)"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--eth1",children:(0,d.jsx)(n.code,{children:"--eth1"})}),"\n",(0,d.jsx)(n.p,{children:"Whether to follow the eth1 chain"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"true"})]}),"\n",(0,d.jsx)(n.h4,{id:"--eth1providerurls",children:(0,d.jsx)(n.code,{children:"--eth1.providerUrls"})}),"\n",(0,d.jsx)(n.p,{children:"Urls to Eth1 node with enabled rpc. If not explicitly provided and execution endpoint provided via execution.urls, it will use execution.urls. Otherwise will try connecting on the specified default(s)"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'[ "http://localhost:8545" ]'})]}),"\n",(0,d.jsx)(n.h4,{id:"--executionurls",children:(0,d.jsx)(n.code,{children:"--execution.urls"})}),"\n",(0,d.jsx)(n.p,{children:"Urls to execution client engine API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'[ "http://localhost:8551" ]'})]}),"\n",(0,d.jsx)(n.h4,{id:"--executiontimeout",children:(0,d.jsx)(n.code,{children:"--execution.timeout"})}),"\n",(0,d.jsx)(n.p,{children:"Timeout in milliseconds for execution engine API HTTP client"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"12000"})]}),"\n",(0,d.jsx)(n.h4,{id:"--executionretries",children:(0,d.jsx)(n.code,{children:"--execution.retries"})}),"\n",(0,d.jsx)(n.p,{children:"Number of retries when calling execution engine API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"2"})]}),"\n",(0,d.jsx)(n.h4,{id:"--executionretrydelay",children:(0,d.jsx)(n.code,{children:"--execution.retryDelay"})}),"\n",(0,d.jsx)(n.p,{children:"Delay time in milliseconds between retries when retrying calls to the execution engine API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"2000"})]}),"\n",(0,d.jsx)(n.h4,{id:"--executionenginemock",children:(0,d.jsx)(n.code,{children:"--execution.engineMock"})}),"\n",(0,d.jsx)(n.p,{children:"Set the execution engine to mock mode (development only)"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--jwtsecret",children:(0,d.jsx)(n.code,{children:"--jwtSecret"})}),"\n",(0,d.jsx)(n.p,{children:"File path to a shared hex-encoded jwt secret which will be used to generate and bundle HS256 encoded jwt tokens for authentication with the EL client's rpc server hosting engine apis. Secret to be exactly same as the one used by the corresponding EL client."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--jwtid",children:(0,d.jsx)(n.code,{children:"--jwtId"})}),"\n",(0,d.jsx)(n.p,{children:"An optional identifier to be set in the id field of the claims included in jwt tokens used for authentication with EL client's rpc server hosting engine apis"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--builder",children:(0,d.jsx)(n.code,{children:"--builder"})}),"\n",(0,d.jsx)(n.p,{children:"Enable builder interface"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--builderurl",children:(0,d.jsx)(n.code,{children:"--builder.url"})}),"\n",(0,d.jsx)(n.p,{children:"Url hosting the builder API"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"http://localhost:8661"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--buildertimeout",children:(0,d.jsx)(n.code,{children:"--builder.timeout"})}),"\n",(0,d.jsx)(n.p,{children:"Timeout in milliseconds for builder API HTTP client"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"12000"})]}),"\n",(0,d.jsx)(n.h4,{id:"--builderfaultinspectionwindow",children:(0,d.jsx)(n.code,{children:"--builder.faultInspectionWindow"})}),"\n",(0,d.jsx)(n.p,{children:"Window to inspect missed slots for enabling/disabling builder circuit breaker"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--builderallowedfaults",children:(0,d.jsx)(n.code,{children:"--builder.allowedFaults"})}),"\n",(0,d.jsxs)(n.p,{children:["Number of missed slots allowed in the ",(0,d.jsx)(n.code,{children:"faultInspectionWindow"})," for builder circuit"]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--metrics",children:(0,d.jsx)(n.code,{children:"--metrics"})}),"\n",(0,d.jsx)(n.p,{children:"Enable the Prometheus metrics HTTP server"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsx)(n.h4,{id:"--metricsport",children:(0,d.jsx)(n.code,{children:"--metrics.port"})}),"\n",(0,d.jsx)(n.p,{children:"Listen TCP port for the Prometheus metrics HTTP server"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"8008"})]}),"\n",(0,d.jsx)(n.h4,{id:"--metricsaddress",children:(0,d.jsx)(n.code,{children:"--metrics.address"})}),"\n",(0,d.jsx)(n.p,{children:"Listen address for the Prometheus metrics HTTP server"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"127.0.0.1"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--monitoringendpoint",children:(0,d.jsx)(n.code,{children:"--monitoring.endpoint"})}),"\n",(0,d.jsx)(n.p,{children:"Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in)"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--monitoringinterval",children:(0,d.jsx)(n.code,{children:"--monitoring.interval"})}),"\n",(0,d.jsx)(n.p,{children:"Interval in milliseconds between sending client stats to the remote service"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"60000"})]}),"\n",(0,d.jsx)(n.h4,{id:"--discv5",children:(0,d.jsx)(n.code,{children:"--discv5"})}),"\n",(0,d.jsx)(n.p,{children:"Enable discv5"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"true"})]}),"\n",(0,d.jsx)(n.h4,{id:"--listenaddress",children:(0,d.jsx)(n.code,{children:"--listenAddress"})}),"\n",(0,d.jsx)(n.p,{children:"The IPv4 address to listen for p2p UDP and TCP connections"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'"0.0.0.0"'})]}),"\n",(0,d.jsx)(n.h4,{id:"--port",children:(0,d.jsx)(n.code,{children:"--port"})}),"\n",(0,d.jsx)(n.p,{children:"The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort flag."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"9000"})]}),"\n",(0,d.jsx)(n.h4,{id:"--discoveryport",children:(0,d.jsx)(n.code,{children:"--discoveryPort"})}),"\n",(0,d.jsxs)(n.p,{children:["The UDP port that discovery will listen on. Defaults to ",(0,d.jsx)(n.code,{children:"port"})]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"port"})]}),"\n",(0,d.jsx)(n.h4,{id:"--listenaddress6",children:(0,d.jsx)(n.code,{children:"--listenAddress6"})}),"\n",(0,d.jsx)(n.p,{children:"The IPv6 address to listen for p2p UDP and TCP connections"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--port6",children:(0,d.jsx)(n.code,{children:"--port6"})}),"\n",(0,d.jsx)(n.p,{children:"The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort6 flag."}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"9090"})]}),"\n",(0,d.jsx)(n.h4,{id:"--discoveryport6",children:(0,d.jsx)(n.code,{children:"--discoveryPort6"})}),"\n",(0,d.jsxs)(n.p,{children:["The UDP port that discovery will listen on. Defaults to ",(0,d.jsx)(n.code,{children:"port6"})]}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"port6"})]}),"\n",(0,d.jsx)(n.h4,{id:"--bootnodes",children:(0,d.jsx)(n.code,{children:"--bootnodes"})}),"\n",(0,d.jsx)(n.p,{children:"Bootnodes for discv5 discovery"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string[]"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:'[ "[]" ]'})]}),"\n",(0,d.jsx)(n.h4,{id:"--targetpeers",children:(0,d.jsx)(n.code,{children:"--targetPeers"})}),"\n",(0,d.jsx)(n.p,{children:"The target connected peers. Above this number peers will be disconnected"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"100"})]}),"\n",(0,d.jsx)(n.h4,{id:"--subscribeallsubnets",children:(0,d.jsx)(n.code,{children:"--subscribeAllSubnets"})}),"\n",(0,d.jsx)(n.p,{children:"Subscribe to all subnets regardless of validator count"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"false"})]}),"\n",(0,d.jsx)(n.h4,{id:"--disablepeerscoring",children:(0,d.jsx)(n.code,{children:"--disablePeerScoring"})}),"\n",(0,d.jsx)(n.p,{children:"Disable peer scoring, used for testing on devnets"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"false"})]}),"\n",(0,d.jsx)(n.h4,{id:"--mdns",children:(0,d.jsx)(n.code,{children:"--mdns"})}),"\n",(0,d.jsx)(n.p,{children:"Enable mdns local peer discovery"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]}),"\n",(0,d.jsxs)(n.p,{children:["default: ",(0,d.jsx)(n.code,{children:"false"})]}),"\n",(0,d.jsx)(n.h4,{id:"--enrip",children:(0,d.jsx)(n.code,{children:"--enr.ip"})}),"\n",(0,d.jsx)(n.p,{children:"Override ENR IP entry"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--enrtcp",children:(0,d.jsx)(n.code,{children:"--enr.tcp"})}),"\n",(0,d.jsx)(n.p,{children:"Override ENR TCP entry"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--enrudp",children:(0,d.jsx)(n.code,{children:"--enr.udp"})}),"\n",(0,d.jsx)(n.p,{children:"Override ENR UDP entry"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--enrip6",children:(0,d.jsx)(n.code,{children:"--enr.ip6"})}),"\n",(0,d.jsx)(n.p,{children:"Override ENR IPv6 entry"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"string"})]}),"\n",(0,d.jsx)(n.h4,{id:"--enrtcp6",children:(0,d.jsx)(n.code,{children:"--enr.tcp6"})}),"\n",(0,d.jsx)(n.p,{children:"Override ENR (IPv6-specific) TCP entry"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--enrudp6",children:(0,d.jsx)(n.code,{children:"--enr.udp6"})}),"\n",(0,d.jsx)(n.p,{children:"Override ENR (IPv6-specific) UDP entry"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"number"})]}),"\n",(0,d.jsx)(n.h4,{id:"--nat",children:(0,d.jsx)(n.code,{children:"--nat"})}),"\n",(0,d.jsx)(n.p,{children:"Allow configuration of non-local addresses"}),"\n",(0,d.jsxs)(n.p,{children:["type: ",(0,d.jsx)(n.code,{children:"boolean"})]})]})}function a(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>s});var d=i(6540);const c={},l=d.createContext(c);function r(e){const n=d.useContext(l);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:r(e.components),d.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c4496819.6816b8b7.js b/assets/js/c4496819.6816b8b7.js new file mode 100644 index 00000000000..ec7a23c6de0 --- /dev/null +++ b/assets/js/c4496819.6816b8b7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_lodestar_docs=self.webpackChunk_lodestar_docs||[]).push([[707],{9654:(e,i,l)=>{l.r(i),l.d(i,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>t,metadata:()=>c,toc:()=>s});var n=l(4848),r=l(8453);const t={title:"CLI Reference"},o="lightclient CLI Command",c={id:"libraries/lightclient-prover/lightclient-cli",title:"CLI Reference",description:"Run lightclient",source:"@site/pages/libraries/lightclient-prover/lightclient-cli.md",sourceDirName:"libraries/lightclient-prover",slug:"/libraries/lightclient-prover/lightclient-cli",permalink:"/lodestar/libraries/lightclient-prover/lightclient-cli",draft:!1,unlisted:!1,editUrl:"https://github.com/ChainSafe/lodestar/tree/unstable/docs/pages/libraries/lightclient-prover/lightclient-cli.md",tags:[],version:"current",frontMatter:{title:"CLI Reference"},sidebar:"tutorialSidebar",previous:{title:"Lodestar Light Client",permalink:"/lodestar/libraries/lightclient-prover/lightclient"},next:{title:"Lodestar Prover",permalink:"/lodestar/libraries/lightclient-prover/prover"}},d={},s=[{value:"Examples",id:"examples",level:2},{value:"lightclient Options",id:"lightclient-options",level:2},{value:"--dataDir",id:"--datadir",level:4},{value:"--network",id:"--network",level:4},{value:"--paramsFile",id:"--paramsfile",level:4},{value:"--rcConfig",id:"--rcconfig",level:4},{value:"--terminal-total-difficulty-override",id:"--terminal-total-difficulty-override",level:4},{value:"--terminal-block-hash-override",id:"--terminal-block-hash-override",level:4},{value:"--terminal-block-hash-epoch-override",id:"--terminal-block-hash-epoch-override",level:4},{value:"--logLevel",id:"--loglevel",level:4},{value:"--logFile",id:"--logfile",level:4},{value:"--logFileLevel",id:"--logfilelevel",level:4},{value:"--logFileDailyRotate",id:"--logfiledailyrotate",level:4},{value:"--beaconApiUrl",id:"--beaconapiurl",level:4},{value:"--checkpointRoot",id:"--checkpointroot",level:4}];function h(e){const i={code:"code",h1:"h1",h2:"h2",h4:"h4",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(i.h1,{id:"lightclient-cli-command",children:[(0,n.jsx)(i.code,{children:"lightclient"})," CLI Command"]}),"\n",(0,n.jsx)(i.p,{children:"Run lightclient"}),"\n",(0,n.jsx)(i.h2,{id:"examples",children:"Examples"}),"\n",(0,n.jsx)(i.p,{children:"Run lightclient with holesky network"}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{className:"language-sh",children:"./lodestar lightclient --network holesky\n"})}),"\n",(0,n.jsxs)(i.h2,{id:"lightclient-options",children:[(0,n.jsx)(i.code,{children:"lightclient"})," Options"]}),"\n",(0,n.jsx)(i.h4,{id:"--datadir",children:(0,n.jsx)(i.code,{children:"--dataDir"})}),"\n",(0,n.jsx)(i.p,{children:"Lodestar root data directory"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--network",children:(0,n.jsx)(i.code,{children:"--network"})}),"\n",(0,n.jsx)(i.p,{children:"Name of the Ethereum Consensus chain network to join"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.p,{children:'choices: "mainnet", "gnosis", "sepolia", "holesky", "chiado", "ephemery", "mekong", "dev"'}),"\n",(0,n.jsxs)(i.p,{children:["default: ",(0,n.jsx)(i.code,{children:'"mainnet"'})]}),"\n",(0,n.jsx)(i.h4,{id:"--paramsfile",children:(0,n.jsx)(i.code,{children:"--paramsFile"})}),"\n",(0,n.jsx)(i.p,{children:"Network configuration file"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--rcconfig",children:(0,n.jsx)(i.code,{children:"--rcConfig"})}),"\n",(0,n.jsx)(i.p,{children:"RC file to supplement command line args, accepted formats: .yml, .yaml, .json"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--terminal-total-difficulty-override",children:(0,n.jsx)(i.code,{children:"--terminal-total-difficulty-override"})}),"\n",(0,n.jsx)(i.p,{children:"Terminal PoW block TTD override"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--terminal-block-hash-override",children:(0,n.jsx)(i.code,{children:"--terminal-block-hash-override"})}),"\n",(0,n.jsx)(i.p,{children:"Terminal PoW block hash override"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--terminal-block-hash-epoch-override",children:(0,n.jsx)(i.code,{children:"--terminal-block-hash-epoch-override"})}),"\n",(0,n.jsx)(i.p,{children:"Terminal PoW block hash override activation epoch"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--loglevel",children:(0,n.jsx)(i.code,{children:"--logLevel"})}),"\n",(0,n.jsx)(i.p,{children:"Logging verbosity level for emitting logs to terminal"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,n.jsxs)(i.p,{children:["default: ",(0,n.jsx)(i.code,{children:'"info"'})]}),"\n",(0,n.jsx)(i.h4,{id:"--logfile",children:(0,n.jsx)(i.code,{children:"--logFile"})}),"\n",(0,n.jsx)(i.p,{children:"Path to output all logs to a persistent log file, use 'none' to disable"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--logfilelevel",children:(0,n.jsx)(i.code,{children:"--logFileLevel"})}),"\n",(0,n.jsx)(i.p,{children:"Logging verbosity level for emitting logs to file"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,n.jsxs)(i.p,{children:["default: ",(0,n.jsx)(i.code,{children:'"debug"'})]}),"\n",(0,n.jsx)(i.h4,{id:"--logfiledailyrotate",children:(0,n.jsx)(i.code,{children:"--logFileDailyRotate"})}),"\n",(0,n.jsx)(i.p,{children:"Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"number"})]}),"\n",(0,n.jsxs)(i.p,{children:["default: ",(0,n.jsx)(i.code,{children:"5"})]}),"\n",(0,n.jsx)(i.h4,{id:"--beaconapiurl",children:(0,n.jsx)(i.code,{children:"--beaconApiUrl"})}),"\n",(0,n.jsx)(i.p,{children:"Url to a beacon node that support lightclient API"}),"\n",(0,n.jsx)(i.p,{children:"required: true"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--checkpointroot",children:(0,n.jsx)(i.code,{children:"--checkpointRoot"})}),"\n",(0,n.jsx)(i.p,{children:"Checkpoint root hex string to sync the lightclient from, start with 0x"}),"\n",(0,n.jsx)(i.p,{children:"required: true"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]})]})}function a(e={}){const{wrapper:i}={...(0,r.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},8453:(e,i,l)=>{l.d(i,{R:()=>o,x:()=>c});var n=l(6540);const r={},t=n.createContext(r);function o(e){const i=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function c(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(t.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c4496819.bc14a881.js b/assets/js/c4496819.bc14a881.js deleted file mode 100644 index 2093ae529d8..00000000000 --- a/assets/js/c4496819.bc14a881.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_lodestar_docs=self.webpackChunk_lodestar_docs||[]).push([[707],{9654:(e,i,l)=>{l.r(i),l.d(i,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>t,metadata:()=>c,toc:()=>s});var n=l(4848),r=l(8453);const t={title:"CLI Reference"},o="lightclient CLI Command",c={id:"libraries/lightclient-prover/lightclient-cli",title:"CLI Reference",description:"Run lightclient",source:"@site/pages/libraries/lightclient-prover/lightclient-cli.md",sourceDirName:"libraries/lightclient-prover",slug:"/libraries/lightclient-prover/lightclient-cli",permalink:"/lodestar/libraries/lightclient-prover/lightclient-cli",draft:!1,unlisted:!1,editUrl:"https://github.com/ChainSafe/lodestar/tree/unstable/docs/pages/libraries/lightclient-prover/lightclient-cli.md",tags:[],version:"current",frontMatter:{title:"CLI Reference"},sidebar:"tutorialSidebar",previous:{title:"Lodestar Light Client",permalink:"/lodestar/libraries/lightclient-prover/lightclient"},next:{title:"Lodestar Prover",permalink:"/lodestar/libraries/lightclient-prover/prover"}},d={},s=[{value:"Examples",id:"examples",level:2},{value:"lightclient Options",id:"lightclient-options",level:2},{value:"--dataDir",id:"--datadir",level:4},{value:"--network",id:"--network",level:4},{value:"--paramsFile",id:"--paramsfile",level:4},{value:"--terminal-total-difficulty-override",id:"--terminal-total-difficulty-override",level:4},{value:"--terminal-block-hash-override",id:"--terminal-block-hash-override",level:4},{value:"--terminal-block-hash-epoch-override",id:"--terminal-block-hash-epoch-override",level:4},{value:"--logLevel",id:"--loglevel",level:4},{value:"--logFile",id:"--logfile",level:4},{value:"--logFileLevel",id:"--logfilelevel",level:4},{value:"--logFileDailyRotate",id:"--logfiledailyrotate",level:4},{value:"--beaconApiUrl",id:"--beaconapiurl",level:4},{value:"--checkpointRoot",id:"--checkpointroot",level:4}];function h(e){const i={code:"code",h1:"h1",h2:"h2",h4:"h4",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(i.h1,{id:"lightclient-cli-command",children:[(0,n.jsx)(i.code,{children:"lightclient"})," CLI Command"]}),"\n",(0,n.jsx)(i.p,{children:"Run lightclient"}),"\n",(0,n.jsx)(i.h2,{id:"examples",children:"Examples"}),"\n",(0,n.jsx)(i.p,{children:"Run lightclient with holesky network"}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{className:"language-sh",children:"./lodestar lightclient --network holesky\n"})}),"\n",(0,n.jsxs)(i.h2,{id:"lightclient-options",children:[(0,n.jsx)(i.code,{children:"lightclient"})," Options"]}),"\n",(0,n.jsx)(i.h4,{id:"--datadir",children:(0,n.jsx)(i.code,{children:"--dataDir"})}),"\n",(0,n.jsx)(i.p,{children:"Lodestar root data directory"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--network",children:(0,n.jsx)(i.code,{children:"--network"})}),"\n",(0,n.jsx)(i.p,{children:"Name of the Ethereum Consensus chain network to join"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.p,{children:'choices: "mainnet", "gnosis", "sepolia", "holesky", "chiado", "ephemery", "mekong", "dev"'}),"\n",(0,n.jsxs)(i.p,{children:["default: ",(0,n.jsx)(i.code,{children:'"mainnet"'})]}),"\n",(0,n.jsx)(i.h4,{id:"--paramsfile",children:(0,n.jsx)(i.code,{children:"--paramsFile"})}),"\n",(0,n.jsx)(i.p,{children:"Network configuration file"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--terminal-total-difficulty-override",children:(0,n.jsx)(i.code,{children:"--terminal-total-difficulty-override"})}),"\n",(0,n.jsx)(i.p,{children:"Terminal PoW block TTD override"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--terminal-block-hash-override",children:(0,n.jsx)(i.code,{children:"--terminal-block-hash-override"})}),"\n",(0,n.jsx)(i.p,{children:"Terminal PoW block hash override"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--terminal-block-hash-epoch-override",children:(0,n.jsx)(i.code,{children:"--terminal-block-hash-epoch-override"})}),"\n",(0,n.jsx)(i.p,{children:"Terminal PoW block hash override activation epoch"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--loglevel",children:(0,n.jsx)(i.code,{children:"--logLevel"})}),"\n",(0,n.jsx)(i.p,{children:"Logging verbosity level for emitting logs to terminal"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,n.jsxs)(i.p,{children:["default: ",(0,n.jsx)(i.code,{children:'"info"'})]}),"\n",(0,n.jsx)(i.h4,{id:"--logfile",children:(0,n.jsx)(i.code,{children:"--logFile"})}),"\n",(0,n.jsx)(i.p,{children:"Path to output all logs to a persistent log file, use 'none' to disable"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--logfilelevel",children:(0,n.jsx)(i.code,{children:"--logFileLevel"})}),"\n",(0,n.jsx)(i.p,{children:"Logging verbosity level for emitting logs to file"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,n.jsxs)(i.p,{children:["default: ",(0,n.jsx)(i.code,{children:'"debug"'})]}),"\n",(0,n.jsx)(i.h4,{id:"--logfiledailyrotate",children:(0,n.jsx)(i.code,{children:"--logFileDailyRotate"})}),"\n",(0,n.jsx)(i.p,{children:"Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"number"})]}),"\n",(0,n.jsxs)(i.p,{children:["default: ",(0,n.jsx)(i.code,{children:"5"})]}),"\n",(0,n.jsx)(i.h4,{id:"--beaconapiurl",children:(0,n.jsx)(i.code,{children:"--beaconApiUrl"})}),"\n",(0,n.jsx)(i.p,{children:"Url to a beacon node that support lightclient API"}),"\n",(0,n.jsx)(i.p,{children:"required: true"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]}),"\n",(0,n.jsx)(i.h4,{id:"--checkpointroot",children:(0,n.jsx)(i.code,{children:"--checkpointRoot"})}),"\n",(0,n.jsx)(i.p,{children:"Checkpoint root hex string to sync the lightclient from, start with 0x"}),"\n",(0,n.jsx)(i.p,{children:"required: true"}),"\n",(0,n.jsxs)(i.p,{children:["type: ",(0,n.jsx)(i.code,{children:"string"})]})]})}function a(e={}){const{wrapper:i}={...(0,r.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},8453:(e,i,l)=>{l.d(i,{R:()=>o,x:()=>c});var n=l(6540);const r={},t=n.createContext(r);function o(e){const i=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function c(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(t.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ffc70006.dbe23771.js b/assets/js/ffc70006.dbe23771.js deleted file mode 100644 index a4263a58fdd..00000000000 --- a/assets/js/ffc70006.dbe23771.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_lodestar_docs=self.webpackChunk_lodestar_docs||[]).push([[7923],{2623:(e,n,d)=>{d.r(n),d.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>a,frontMatter:()=>r,metadata:()=>s,toc:()=>t});var i=d(4848),o=d(8453);const r={title:"CLI Reference"},l="bootnode CLI Command",s={id:"run/bootnode/bootnode-cli",title:"CLI Reference",description:"Run a discv5 bootnode. This will NOT perform any beacon node functions, rather, it will run a discv5 service that allows nodes on the network to discover one another.",source:"@site/pages/run/bootnode/bootnode-cli.md",sourceDirName:"run/bootnode",slug:"/run/bootnode/bootnode-cli",permalink:"/lodestar/run/bootnode/bootnode-cli",draft:!1,unlisted:!1,editUrl:"https://github.com/ChainSafe/lodestar/tree/unstable/docs/pages/run/bootnode/bootnode-cli.md",tags:[],version:"current",frontMatter:{title:"CLI Reference"},sidebar:"tutorialSidebar",previous:{title:"Client Monitoring",permalink:"/lodestar/run/logging-and-metrics/client-monitoring"},next:{title:"Lodestar Light Client",permalink:"/lodestar/libraries/lightclient-prover/lightclient"}},c={},t=[{value:"bootnode Options",id:"bootnode-options",level:2},{value:"--dataDir",id:"--datadir",level:4},{value:"--network",id:"--network",level:4},{value:"--paramsFile",id:"--paramsfile",level:4},{value:"--terminal-total-difficulty-override",id:"--terminal-total-difficulty-override",level:4},{value:"--terminal-block-hash-override",id:"--terminal-block-hash-override",level:4},{value:"--terminal-block-hash-epoch-override",id:"--terminal-block-hash-epoch-override",level:4},{value:"--listenAddress",id:"--listenaddress",level:4},{value:"--port",id:"--port",level:4},{value:"--listenAddress6",id:"--listenaddress6",level:4},{value:"--port6",id:"--port6",level:4},{value:"--bootnodes",id:"--bootnodes",level:4},{value:"--bootnodesFile",id:"--bootnodesfile",level:4},{value:"--persistNetworkIdentity",id:"--persistnetworkidentity",level:4},{value:"--enr.ip",id:"--enrip",level:4},{value:"--enr.udp",id:"--enrudp",level:4},{value:"--enr.ip6",id:"--enrip6",level:4},{value:"--enr.udp6",id:"--enrudp6",level:4},{value:"--nat",id:"--nat",level:4},{value:"--logLevel",id:"--loglevel",level:4},{value:"--logFile",id:"--logfile",level:4},{value:"--logFileLevel",id:"--logfilelevel",level:4},{value:"--logFileDailyRotate",id:"--logfiledailyrotate",level:4},{value:"--metrics",id:"--metrics",level:4},{value:"--metrics.port",id:"--metricsport",level:4},{value:"--metrics.address",id:"--metricsaddress",level:4}];function h(e){const n={code:"code",h1:"h1",h2:"h2",h4:"h4",p:"p",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.h1,{id:"bootnode-cli-command",children:[(0,i.jsx)(n.code,{children:"bootnode"})," CLI Command"]}),"\n",(0,i.jsx)(n.p,{children:"Run a discv5 bootnode. This will NOT perform any beacon node functions, rather, it will run a discv5 service that allows nodes on the network to discover one another."}),"\n",(0,i.jsxs)(n.h2,{id:"bootnode-options",children:[(0,i.jsx)(n.code,{children:"bootnode"})," Options"]}),"\n",(0,i.jsx)(n.h4,{id:"--datadir",children:(0,i.jsx)(n.code,{children:"--dataDir"})}),"\n",(0,i.jsx)(n.p,{children:"Lodestar root data directory"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--network",children:(0,i.jsx)(n.code,{children:"--network"})}),"\n",(0,i.jsx)(n.p,{children:"Name of the Ethereum Consensus chain network to join"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "mainnet", "gnosis", "sepolia", "holesky", "chiado", "ephemery", "mekong", "dev"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"mainnet"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--paramsfile",children:(0,i.jsx)(n.code,{children:"--paramsFile"})}),"\n",(0,i.jsx)(n.p,{children:"Network configuration file"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--terminal-total-difficulty-override",children:(0,i.jsx)(n.code,{children:"--terminal-total-difficulty-override"})}),"\n",(0,i.jsx)(n.p,{children:"Terminal PoW block TTD override"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--terminal-block-hash-override",children:(0,i.jsx)(n.code,{children:"--terminal-block-hash-override"})}),"\n",(0,i.jsx)(n.p,{children:"Terminal PoW block hash override"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--terminal-block-hash-epoch-override",children:(0,i.jsx)(n.code,{children:"--terminal-block-hash-epoch-override"})}),"\n",(0,i.jsx)(n.p,{children:"Terminal PoW block hash override activation epoch"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--listenaddress",children:(0,i.jsx)(n.code,{children:"--listenAddress"})}),"\n",(0,i.jsx)(n.p,{children:"The IPv4 address to listen for discv5 connections"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"0.0.0.0"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--port",children:(0,i.jsx)(n.code,{children:"--port"})}),"\n",(0,i.jsx)(n.p,{children:"The UDP port to listen on"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"9000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--listenaddress6",children:(0,i.jsx)(n.code,{children:"--listenAddress6"})}),"\n",(0,i.jsx)(n.p,{children:"The IPv6 address to listen for discv5 connections"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--port6",children:(0,i.jsx)(n.code,{children:"--port6"})}),"\n",(0,i.jsx)(n.p,{children:"The UDP port to listen on"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"9090"})]}),"\n",(0,i.jsx)(n.h4,{id:"--bootnodes",children:(0,i.jsx)(n.code,{children:"--bootnodes"})}),"\n",(0,i.jsx)(n.p,{children:"Additional bootnodes for discv5 discovery"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'[ "[]" ]'})]}),"\n",(0,i.jsx)(n.h4,{id:"--bootnodesfile",children:(0,i.jsx)(n.code,{children:"--bootnodesFile"})}),"\n",(0,i.jsx)(n.p,{children:"Additional bootnodes for discv5 discovery file path"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--persistnetworkidentity",children:(0,i.jsx)(n.code,{children:"--persistNetworkIdentity"})}),"\n",(0,i.jsx)(n.p,{children:"Whether to reuse the same peer-id across restarts"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"true"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrip",children:(0,i.jsx)(n.code,{children:"--enr.ip"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR IP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrudp",children:(0,i.jsx)(n.code,{children:"--enr.udp"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR UDP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrip6",children:(0,i.jsx)(n.code,{children:"--enr.ip6"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR IPv6 entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrudp6",children:(0,i.jsx)(n.code,{children:"--enr.udp6"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR (IPv6-specific) UDP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--nat",children:(0,i.jsx)(n.code,{children:"--nat"})}),"\n",(0,i.jsx)(n.p,{children:"Allow ENR configuration of non-local addresses"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--loglevel",children:(0,i.jsx)(n.code,{children:"--logLevel"})}),"\n",(0,i.jsx)(n.p,{children:"Logging verbosity level for emitting logs to terminal"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"info"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--logfile",children:(0,i.jsx)(n.code,{children:"--logFile"})}),"\n",(0,i.jsx)(n.p,{children:"Path to output all logs to a persistent log file, use 'none' to disable"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--logfilelevel",children:(0,i.jsx)(n.code,{children:"--logFileLevel"})}),"\n",(0,i.jsx)(n.p,{children:"Logging verbosity level for emitting logs to file"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"debug"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--logfiledailyrotate",children:(0,i.jsx)(n.code,{children:"--logFileDailyRotate"})}),"\n",(0,i.jsx)(n.p,{children:"Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"5"})]}),"\n",(0,i.jsx)(n.h4,{id:"--metrics",children:(0,i.jsx)(n.code,{children:"--metrics"})}),"\n",(0,i.jsx)(n.p,{children:"Enable the Prometheus metrics HTTP server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--metricsport",children:(0,i.jsx)(n.code,{children:"--metrics.port"})}),"\n",(0,i.jsx)(n.p,{children:"Listen TCP port for the Prometheus metrics HTTP server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"8008"})]}),"\n",(0,i.jsx)(n.h4,{id:"--metricsaddress",children:(0,i.jsx)(n.code,{children:"--metrics.address"})}),"\n",(0,i.jsx)(n.p,{children:"Listen address for the Prometheus metrics HTTP server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"127.0.0.1"'})]})]})}function a(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,n,d)=>{d.d(n,{R:()=>l,x:()=>s});var i=d(6540);const o={},r=i.createContext(o);function l(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ffc70006.e3699ab8.js b/assets/js/ffc70006.e3699ab8.js new file mode 100644 index 00000000000..8c6d492ad0f --- /dev/null +++ b/assets/js/ffc70006.e3699ab8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_lodestar_docs=self.webpackChunk_lodestar_docs||[]).push([[7923],{2623:(e,n,d)=>{d.r(n),d.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>a,frontMatter:()=>r,metadata:()=>s,toc:()=>t});var i=d(4848),o=d(8453);const r={title:"CLI Reference"},l="bootnode CLI Command",s={id:"run/bootnode/bootnode-cli",title:"CLI Reference",description:"Run a discv5 bootnode. This will NOT perform any beacon node functions, rather, it will run a discv5 service that allows nodes on the network to discover one another.",source:"@site/pages/run/bootnode/bootnode-cli.md",sourceDirName:"run/bootnode",slug:"/run/bootnode/bootnode-cli",permalink:"/lodestar/run/bootnode/bootnode-cli",draft:!1,unlisted:!1,editUrl:"https://github.com/ChainSafe/lodestar/tree/unstable/docs/pages/run/bootnode/bootnode-cli.md",tags:[],version:"current",frontMatter:{title:"CLI Reference"},sidebar:"tutorialSidebar",previous:{title:"Client Monitoring",permalink:"/lodestar/run/logging-and-metrics/client-monitoring"},next:{title:"Lodestar Light Client",permalink:"/lodestar/libraries/lightclient-prover/lightclient"}},c={},t=[{value:"bootnode Options",id:"bootnode-options",level:2},{value:"--dataDir",id:"--datadir",level:4},{value:"--network",id:"--network",level:4},{value:"--paramsFile",id:"--paramsfile",level:4},{value:"--rcConfig",id:"--rcconfig",level:4},{value:"--terminal-total-difficulty-override",id:"--terminal-total-difficulty-override",level:4},{value:"--terminal-block-hash-override",id:"--terminal-block-hash-override",level:4},{value:"--terminal-block-hash-epoch-override",id:"--terminal-block-hash-epoch-override",level:4},{value:"--listenAddress",id:"--listenaddress",level:4},{value:"--port",id:"--port",level:4},{value:"--listenAddress6",id:"--listenaddress6",level:4},{value:"--port6",id:"--port6",level:4},{value:"--bootnodes",id:"--bootnodes",level:4},{value:"--bootnodesFile",id:"--bootnodesfile",level:4},{value:"--persistNetworkIdentity",id:"--persistnetworkidentity",level:4},{value:"--enr.ip",id:"--enrip",level:4},{value:"--enr.udp",id:"--enrudp",level:4},{value:"--enr.ip6",id:"--enrip6",level:4},{value:"--enr.udp6",id:"--enrudp6",level:4},{value:"--nat",id:"--nat",level:4},{value:"--logLevel",id:"--loglevel",level:4},{value:"--logFile",id:"--logfile",level:4},{value:"--logFileLevel",id:"--logfilelevel",level:4},{value:"--logFileDailyRotate",id:"--logfiledailyrotate",level:4},{value:"--metrics",id:"--metrics",level:4},{value:"--metrics.port",id:"--metricsport",level:4},{value:"--metrics.address",id:"--metricsaddress",level:4}];function h(e){const n={code:"code",h1:"h1",h2:"h2",h4:"h4",p:"p",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.h1,{id:"bootnode-cli-command",children:[(0,i.jsx)(n.code,{children:"bootnode"})," CLI Command"]}),"\n",(0,i.jsx)(n.p,{children:"Run a discv5 bootnode. This will NOT perform any beacon node functions, rather, it will run a discv5 service that allows nodes on the network to discover one another."}),"\n",(0,i.jsxs)(n.h2,{id:"bootnode-options",children:[(0,i.jsx)(n.code,{children:"bootnode"})," Options"]}),"\n",(0,i.jsx)(n.h4,{id:"--datadir",children:(0,i.jsx)(n.code,{children:"--dataDir"})}),"\n",(0,i.jsx)(n.p,{children:"Lodestar root data directory"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--network",children:(0,i.jsx)(n.code,{children:"--network"})}),"\n",(0,i.jsx)(n.p,{children:"Name of the Ethereum Consensus chain network to join"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "mainnet", "gnosis", "sepolia", "holesky", "chiado", "ephemery", "mekong", "dev"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"mainnet"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--paramsfile",children:(0,i.jsx)(n.code,{children:"--paramsFile"})}),"\n",(0,i.jsx)(n.p,{children:"Network configuration file"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--rcconfig",children:(0,i.jsx)(n.code,{children:"--rcConfig"})}),"\n",(0,i.jsx)(n.p,{children:"RC file to supplement command line args, accepted formats: .yml, .yaml, .json"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--terminal-total-difficulty-override",children:(0,i.jsx)(n.code,{children:"--terminal-total-difficulty-override"})}),"\n",(0,i.jsx)(n.p,{children:"Terminal PoW block TTD override"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--terminal-block-hash-override",children:(0,i.jsx)(n.code,{children:"--terminal-block-hash-override"})}),"\n",(0,i.jsx)(n.p,{children:"Terminal PoW block hash override"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--terminal-block-hash-epoch-override",children:(0,i.jsx)(n.code,{children:"--terminal-block-hash-epoch-override"})}),"\n",(0,i.jsx)(n.p,{children:"Terminal PoW block hash override activation epoch"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--listenaddress",children:(0,i.jsx)(n.code,{children:"--listenAddress"})}),"\n",(0,i.jsx)(n.p,{children:"The IPv4 address to listen for discv5 connections"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"0.0.0.0"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--port",children:(0,i.jsx)(n.code,{children:"--port"})}),"\n",(0,i.jsx)(n.p,{children:"The UDP port to listen on"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"9000"})]}),"\n",(0,i.jsx)(n.h4,{id:"--listenaddress6",children:(0,i.jsx)(n.code,{children:"--listenAddress6"})}),"\n",(0,i.jsx)(n.p,{children:"The IPv6 address to listen for discv5 connections"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--port6",children:(0,i.jsx)(n.code,{children:"--port6"})}),"\n",(0,i.jsx)(n.p,{children:"The UDP port to listen on"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"9090"})]}),"\n",(0,i.jsx)(n.h4,{id:"--bootnodes",children:(0,i.jsx)(n.code,{children:"--bootnodes"})}),"\n",(0,i.jsx)(n.p,{children:"Additional bootnodes for discv5 discovery"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'[ "[]" ]'})]}),"\n",(0,i.jsx)(n.h4,{id:"--bootnodesfile",children:(0,i.jsx)(n.code,{children:"--bootnodesFile"})}),"\n",(0,i.jsx)(n.p,{children:"Additional bootnodes for discv5 discovery file path"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--persistnetworkidentity",children:(0,i.jsx)(n.code,{children:"--persistNetworkIdentity"})}),"\n",(0,i.jsx)(n.p,{children:"Whether to reuse the same peer-id across restarts"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"true"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrip",children:(0,i.jsx)(n.code,{children:"--enr.ip"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR IP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrudp",children:(0,i.jsx)(n.code,{children:"--enr.udp"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR UDP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrip6",children:(0,i.jsx)(n.code,{children:"--enr.ip6"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR IPv6 entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--enrudp6",children:(0,i.jsx)(n.code,{children:"--enr.udp6"})}),"\n",(0,i.jsx)(n.p,{children:"Override ENR (IPv6-specific) UDP entry"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"--nat",children:(0,i.jsx)(n.code,{children:"--nat"})}),"\n",(0,i.jsx)(n.p,{children:"Allow ENR configuration of non-local addresses"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--loglevel",children:(0,i.jsx)(n.code,{children:"--logLevel"})}),"\n",(0,i.jsx)(n.p,{children:"Logging verbosity level for emitting logs to terminal"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"info"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--logfile",children:(0,i.jsx)(n.code,{children:"--logFile"})}),"\n",(0,i.jsx)(n.p,{children:"Path to output all logs to a persistent log file, use 'none' to disable"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.h4,{id:"--logfilelevel",children:(0,i.jsx)(n.code,{children:"--logFileLevel"})}),"\n",(0,i.jsx)(n.p,{children:"Logging verbosity level for emitting logs to file"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsx)(n.p,{children:'choices: "error", "warn", "info", "verbose", "debug", "trace"'}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"debug"'})]}),"\n",(0,i.jsx)(n.h4,{id:"--logfiledailyrotate",children:(0,i.jsx)(n.code,{children:"--logFileDailyRotate"})}),"\n",(0,i.jsx)(n.p,{children:"Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"5"})]}),"\n",(0,i.jsx)(n.h4,{id:"--metrics",children:(0,i.jsx)(n.code,{children:"--metrics"})}),"\n",(0,i.jsx)(n.p,{children:"Enable the Prometheus metrics HTTP server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"boolean"})]}),"\n",(0,i.jsx)(n.h4,{id:"--metricsport",children:(0,i.jsx)(n.code,{children:"--metrics.port"})}),"\n",(0,i.jsx)(n.p,{children:"Listen TCP port for the Prometheus metrics HTTP server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:"8008"})]}),"\n",(0,i.jsx)(n.h4,{id:"--metricsaddress",children:(0,i.jsx)(n.code,{children:"--metrics.address"})}),"\n",(0,i.jsx)(n.p,{children:"Listen address for the Prometheus metrics HTTP server"}),"\n",(0,i.jsxs)(n.p,{children:["type: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.p,{children:["default: ",(0,i.jsx)(n.code,{children:'"127.0.0.1"'})]})]})}function a(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,n,d)=>{d.d(n,{R:()=>l,x:()=>s});var i=d(6540);const o={},r=i.createContext(o);function l(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.514c634b.js b/assets/js/runtime~main.484d5972.js similarity index 93% rename from assets/js/runtime~main.514c634b.js rename to assets/js/runtime~main.484d5972.js index 17b52be08bd..bb010561b4f 100644 --- a/assets/js/runtime~main.514c634b.js +++ b/assets/js/runtime~main.484d5972.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,f,d,t={},r={};function b(e){var a=r[e];if(void 0!==a)return a.exports;var c=r[e]={exports:{}};return t[e].call(c.exports,c,c.exports,b),c.exports}b.m=t,e=[],b.O=(a,c,f,d)=>{if(!c){var t=1/0;for(i=0;i=d)&&Object.keys(b.O).every((e=>b.O[e](c[o])))?c.splice(o--,1):(r=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);b.r(d);var t={};a=a||[null,c({}),c([]),c(c)];for(var r=2&f&&e;"object"==typeof r&&!~a.indexOf(r);r=c(r))Object.getOwnPropertyNames(r).forEach((a=>t[a]=()=>e[a]));return t.default=()=>e,b.d(d,t),d},b.d=(e,a)=>{for(var c in a)b.o(a,c)&&!b.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce(((a,c)=>(b.f[c](e,a),a)),[])),b.u=e=>"assets/js/"+({84:"d7b6a362",247:"43a176ea",326:"7c26186b",350:"df88bd52",395:"02fae9b5",469:"737c497b",692:"a633c360",707:"c4496819",782:"78ac94ca",784:"82e2cd2c",1346:"a5031d8c",1565:"02aa52e0",1724:"6acb692f",1959:"3a649430",2126:"eb592992",2138:"1a4e3797",2190:"0bc418af",2277:"e0d2741e",2443:"7621feb1",2466:"4dd9b1dc",2539:"4c9cac69",2817:"4cac2fef",2953:"1057ab3e",3208:"c963cc9c",3235:"0414c4ea",3628:"2520b9cd",3632:"0916e813",3674:"734d20af",3773:"f2711a48",3872:"1ed6da99",4e3:"0e49db30",4959:"b8a66f3f",5296:"188f9ebf",5505:"d811cffe",5870:"07c18e8c",5887:"40d332f6",6084:"a542f7c7",6635:"5eec63b5",6698:"3b843869",7098:"a7bd4aaa",7194:"e82326e0",7368:"cebe1fd9",7545:"e8d2177f",7852:"4621f787",7923:"ffc70006",7934:"8d276d7c",8401:"17896441",8492:"88b8b4fa",8509:"1cbe151d",8525:"692dd667",8581:"935f2afb",8614:"e6370ef9",8648:"60823064",8992:"7e68ceaf",9048:"a94703ab",9313:"2151466c",9401:"d515de40",9577:"23c6c368",9647:"5e95c892",9861:"0df83f4c",9949:"36eb90f9"}[e]||e)+"."+{84:"63fefc09",141:"13b28a37",247:"04ba3923",326:"3afce3e7",350:"bef7ae8e",395:"9c2fe44f",469:"c12ac37d",489:"ded89482",692:"225adc2e",707:"bc14a881",711:"46a92b57",782:"470025d5",784:"f215343d",971:"5d99f66d",1169:"505eec54",1176:"67c37e43",1329:"4f67db5b",1346:"eef344dc",1565:"4720ad7c",1689:"d08da003",1724:"b1c07e76",1959:"08adbba4",1987:"1896d541",2126:"41225f4f",2130:"28399da1",2138:"58fca3a2",2144:"9049bb6c",2190:"40c26511",2237:"1ade738a",2277:"e02be98d",2315:"91f985c6",2443:"1e937dd7",2466:"2acd2754",2519:"1b3f4849",2539:"f0f7bb38",2704:"bd9f55bf",2817:"5466c829",2953:"3b8fce5f",3208:"31244cf1",3235:"a324c1b2",3292:"bc921c82",3417:"81ece665",3628:"c26a8e25",3632:"f48d5292",3674:"9b46206c",3687:"9de3b5d2",3773:"41d380f0",3872:"fca3527a",4e3:"537d3c32",4073:"a2e5c100",4104:"670f925d",4529:"750284d1",4564:"fff7c12d",4959:"bd16af8d",5163:"a446407b",5296:"32c07ea9",5505:"4ff8b80f",5628:"3b5e2727",5741:"c09d9fe1",5857:"e8f7a25f",5860:"8075efd5",5870:"9be4c6af",5887:"e59eae93",6084:"b97e723c",6625:"e44ffaf6",6635:"06061164",6698:"939f80a8",6770:"a541c4b1",7098:"2a78d619",7194:"75ab1be4",7368:"01004e14",7545:"30069e08",7852:"315799f7",7899:"9234e1fa",7923:"dbe23771",7934:"480c94e1",8146:"9de1402b",8401:"795fc9b2",8492:"54549ce2",8509:"e866e3d4",8525:"71b9ed19",8581:"e9267f0c",8614:"426a8702",8648:"d7acdc85",8846:"c78e9ff4",8989:"a322bf4b",8992:"49880847",8995:"a42c0214",9048:"bb5ec56a",9313:"4d3ccc5c",9401:"f060e0db",9577:"3965415b",9647:"fa4c7af9",9861:"b24f2da1",9949:"dc29a7a2"}[e]+".js",b.miniCssF=e=>{},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="@lodestar/docs:",b.l=(e,a,c,t)=>{if(f[e])f[e].push(a);else{var r,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{r.onerror=r.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],r.parentNode&&r.parentNode.removeChild(r),d&&d.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),o&&document.head.appendChild(r)}},b.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.p="/lodestar/",b.gca=function(e){return e={17896441:"8401",60823064:"8648",d7b6a362:"84","43a176ea":"247","7c26186b":"326",df88bd52:"350","02fae9b5":"395","737c497b":"469",a633c360:"692",c4496819:"707","78ac94ca":"782","82e2cd2c":"784",a5031d8c:"1346","02aa52e0":"1565","6acb692f":"1724","3a649430":"1959",eb592992:"2126","1a4e3797":"2138","0bc418af":"2190",e0d2741e:"2277","7621feb1":"2443","4dd9b1dc":"2466","4c9cac69":"2539","4cac2fef":"2817","1057ab3e":"2953",c963cc9c:"3208","0414c4ea":"3235","2520b9cd":"3628","0916e813":"3632","734d20af":"3674",f2711a48:"3773","1ed6da99":"3872","0e49db30":"4000",b8a66f3f:"4959","188f9ebf":"5296",d811cffe:"5505","07c18e8c":"5870","40d332f6":"5887",a542f7c7:"6084","5eec63b5":"6635","3b843869":"6698",a7bd4aaa:"7098",e82326e0:"7194",cebe1fd9:"7368",e8d2177f:"7545","4621f787":"7852",ffc70006:"7923","8d276d7c":"7934","88b8b4fa":"8492","1cbe151d":"8509","692dd667":"8525","935f2afb":"8581",e6370ef9:"8614","7e68ceaf":"8992",a94703ab:"9048","2151466c":"9313",d515de40:"9401","23c6c368":"9577","5e95c892":"9647","0df83f4c":"9861","36eb90f9":"9949"}[e]||e,b.p+b.u(e)},(()=>{var e={5354:0,1869:0};b.f.j=(a,c)=>{var f=b.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var t=b.p+b.u(a),r=new Error;b.l(t,(c=>{if(b.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),t=c&&c.target&&c.target.src;r.message="Loading chunk "+a+" failed.\n("+d+": "+t+")",r.name="ChunkLoadError",r.type=d,r.request=t,f[1](r)}}),"chunk-"+a,a)}},b.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,t=c[0],r=c[1],o=c[2],n=0;if(t.some((a=>0!==e[a]))){for(f in r)b.o(r,f)&&(b.m[f]=r[f]);if(o)var i=o(b)}for(a&&a(c);n{"use strict";var e,a,c,f,d,t={},r={};function b(e){var a=r[e];if(void 0!==a)return a.exports;var c=r[e]={exports:{}};return t[e].call(c.exports,c,c.exports,b),c.exports}b.m=t,e=[],b.O=(a,c,f,d)=>{if(!c){var t=1/0;for(i=0;i=d)&&Object.keys(b.O).every((e=>b.O[e](c[o])))?c.splice(o--,1):(r=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);b.r(d);var t={};a=a||[null,c({}),c([]),c(c)];for(var r=2&f&&e;"object"==typeof r&&!~a.indexOf(r);r=c(r))Object.getOwnPropertyNames(r).forEach((a=>t[a]=()=>e[a]));return t.default=()=>e,b.d(d,t),d},b.d=(e,a)=>{for(var c in a)b.o(a,c)&&!b.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce(((a,c)=>(b.f[c](e,a),a)),[])),b.u=e=>"assets/js/"+({84:"d7b6a362",247:"43a176ea",326:"7c26186b",350:"df88bd52",395:"02fae9b5",469:"737c497b",692:"a633c360",707:"c4496819",782:"78ac94ca",784:"82e2cd2c",1346:"a5031d8c",1565:"02aa52e0",1724:"6acb692f",1959:"3a649430",2126:"eb592992",2138:"1a4e3797",2190:"0bc418af",2277:"e0d2741e",2443:"7621feb1",2466:"4dd9b1dc",2539:"4c9cac69",2817:"4cac2fef",2953:"1057ab3e",3208:"c963cc9c",3235:"0414c4ea",3628:"2520b9cd",3632:"0916e813",3674:"734d20af",3773:"f2711a48",3872:"1ed6da99",4e3:"0e49db30",4959:"b8a66f3f",5296:"188f9ebf",5505:"d811cffe",5870:"07c18e8c",5887:"40d332f6",6084:"a542f7c7",6635:"5eec63b5",6698:"3b843869",7098:"a7bd4aaa",7194:"e82326e0",7368:"cebe1fd9",7545:"e8d2177f",7852:"4621f787",7923:"ffc70006",7934:"8d276d7c",8401:"17896441",8492:"88b8b4fa",8509:"1cbe151d",8525:"692dd667",8581:"935f2afb",8614:"e6370ef9",8648:"60823064",8992:"7e68ceaf",9048:"a94703ab",9313:"2151466c",9401:"d515de40",9577:"23c6c368",9647:"5e95c892",9861:"0df83f4c",9949:"36eb90f9"}[e]||e)+"."+{84:"63fefc09",141:"13b28a37",247:"04ba3923",326:"3afce3e7",350:"bef7ae8e",395:"9c2fe44f",469:"c12ac37d",489:"ded89482",692:"225adc2e",707:"6816b8b7",711:"46a92b57",782:"470025d5",784:"f215343d",971:"5d99f66d",1169:"505eec54",1176:"67c37e43",1329:"4f67db5b",1346:"eef344dc",1565:"4720ad7c",1689:"d08da003",1724:"b1c07e76",1959:"08adbba4",1987:"1896d541",2126:"41225f4f",2130:"28399da1",2138:"58fca3a2",2144:"9049bb6c",2190:"40c26511",2237:"1ade738a",2277:"e02be98d",2315:"91f985c6",2443:"1e937dd7",2466:"2acd2754",2519:"1b3f4849",2539:"88aca9b4",2704:"bd9f55bf",2817:"5466c829",2953:"3b8fce5f",3208:"31244cf1",3235:"a324c1b2",3292:"bc921c82",3417:"81ece665",3628:"c26a8e25",3632:"bc796161",3674:"9b46206c",3687:"9de3b5d2",3773:"41d380f0",3872:"fca3527a",4e3:"d5d8c1f1",4073:"a2e5c100",4104:"670f925d",4529:"750284d1",4564:"fff7c12d",4959:"bd16af8d",5163:"a446407b",5296:"32c07ea9",5505:"4ff8b80f",5628:"3b5e2727",5741:"c09d9fe1",5857:"e8f7a25f",5860:"8075efd5",5870:"9be4c6af",5887:"e59eae93",6084:"b97e723c",6625:"e44ffaf6",6635:"06061164",6698:"939f80a8",6770:"a541c4b1",7098:"2a78d619",7194:"75ab1be4",7368:"01004e14",7545:"30069e08",7852:"315799f7",7899:"9234e1fa",7923:"e3699ab8",7934:"480c94e1",8146:"9de1402b",8401:"795fc9b2",8492:"6ef49da5",8509:"e866e3d4",8525:"71b9ed19",8581:"e9267f0c",8614:"426a8702",8648:"d7acdc85",8846:"c78e9ff4",8989:"a322bf4b",8992:"49880847",8995:"a42c0214",9048:"bb5ec56a",9313:"4d3ccc5c",9401:"f060e0db",9577:"3965415b",9647:"fa4c7af9",9861:"b24f2da1",9949:"dc29a7a2"}[e]+".js",b.miniCssF=e=>{},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="@lodestar/docs:",b.l=(e,a,c,t)=>{if(f[e])f[e].push(a);else{var r,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{r.onerror=r.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],r.parentNode&&r.parentNode.removeChild(r),d&&d.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),o&&document.head.appendChild(r)}},b.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.p="/lodestar/",b.gca=function(e){return e={17896441:"8401",60823064:"8648",d7b6a362:"84","43a176ea":"247","7c26186b":"326",df88bd52:"350","02fae9b5":"395","737c497b":"469",a633c360:"692",c4496819:"707","78ac94ca":"782","82e2cd2c":"784",a5031d8c:"1346","02aa52e0":"1565","6acb692f":"1724","3a649430":"1959",eb592992:"2126","1a4e3797":"2138","0bc418af":"2190",e0d2741e:"2277","7621feb1":"2443","4dd9b1dc":"2466","4c9cac69":"2539","4cac2fef":"2817","1057ab3e":"2953",c963cc9c:"3208","0414c4ea":"3235","2520b9cd":"3628","0916e813":"3632","734d20af":"3674",f2711a48:"3773","1ed6da99":"3872","0e49db30":"4000",b8a66f3f:"4959","188f9ebf":"5296",d811cffe:"5505","07c18e8c":"5870","40d332f6":"5887",a542f7c7:"6084","5eec63b5":"6635","3b843869":"6698",a7bd4aaa:"7098",e82326e0:"7194",cebe1fd9:"7368",e8d2177f:"7545","4621f787":"7852",ffc70006:"7923","8d276d7c":"7934","88b8b4fa":"8492","1cbe151d":"8509","692dd667":"8525","935f2afb":"8581",e6370ef9:"8614","7e68ceaf":"8992",a94703ab:"9048","2151466c":"9313",d515de40:"9401","23c6c368":"9577","5e95c892":"9647","0df83f4c":"9861","36eb90f9":"9949"}[e]||e,b.p+b.u(e)},(()=>{var e={5354:0,1869:0};b.f.j=(a,c)=>{var f=b.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var t=b.p+b.u(a),r=new Error;b.l(t,(c=>{if(b.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),t=c&&c.target&&c.target.src;r.message="Loading chunk "+a+" failed.\n("+d+": "+t+")",r.name="ChunkLoadError",r.type=d,r.request=t,f[1](r)}}),"chunk-"+a,a)}},b.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,t=c[0],r=c[1],o=c[2],n=0;if(t.some((a=>0!==e[a]))){for(f in r)b.o(r,f)&&(b.m[f]=r[f]);if(o)var i=o(b)}for(a&&a(c);n Lodestar Documentation - + diff --git a/contribution/advanced-topics/doppelganger-detection/index.html b/contribution/advanced-topics/doppelganger-detection/index.html index 4ecc5fe257c..39d90b15ed7 100644 --- a/contribution/advanced-topics/doppelganger-detection/index.html +++ b/contribution/advanced-topics/doppelganger-detection/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/advanced-topics/migrating-from-other-clients/index.html b/contribution/advanced-topics/migrating-from-other-clients/index.html index d1e146f2356..1a08b795016 100644 --- a/contribution/advanced-topics/migrating-from-other-clients/index.html +++ b/contribution/advanced-topics/migrating-from-other-clients/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/advanced-topics/setting-up-a-testnet/index.html b/contribution/advanced-topics/setting-up-a-testnet/index.html index 5ca6150b834..8f52f7a68f2 100644 --- a/contribution/advanced-topics/setting-up-a-testnet/index.html +++ b/contribution/advanced-topics/setting-up-a-testnet/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/advanced-topics/slashing-protection/index.html b/contribution/advanced-topics/slashing-protection/index.html index fb18c648a22..7d168a6b75a 100644 --- a/contribution/advanced-topics/slashing-protection/index.html +++ b/contribution/advanced-topics/slashing-protection/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/bug-reports/index.html b/contribution/bug-reports/index.html index 1bce6272150..44a464a0c1e 100644 --- a/contribution/bug-reports/index.html +++ b/contribution/bug-reports/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/depgraph/index.html b/contribution/depgraph/index.html index e855645bfd6..0061581a062 100644 --- a/contribution/depgraph/index.html +++ b/contribution/depgraph/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/dev-cli/index.html b/contribution/dev-cli/index.html index d43bcd12f09..938ad80142f 100644 --- a/contribution/dev-cli/index.html +++ b/contribution/dev-cli/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + @@ -25,6 +25,9 @@

--network--paramsFile

Network configuration file

type: string

+

--rcConfig

+

RC file to supplement command line args, accepted formats: .yml, .yaml, .json

+

type: string

--terminal-total-difficulty-override

Terminal PoW block TTD override

type: string

@@ -34,6 +37,9 @@

--terminal-block-hash-epoch-override

Terminal PoW block hash override activation epoch

type: string

+

--genesisStateFile

+

Path or URL to download a genesis state file in ssz-encoded format

+

type: string

--checkpointSyncUrl

Server url hosting Beacon Node APIs to fetch weak subjectivity state. Fetch latest finalized by default, else set --wssCheckpoint

type: string

@@ -46,6 +52,12 @@

--wssC

--forceCheckpointSync

Force syncing from checkpoint state even if db state is within weak subjectivity period. This helps to avoid long sync times after node has been offline for a while.

type: boolean

+

--ignoreWeakSubjectivityCheck

+

Ignore the checkpoint sync state failing the weak subjectivity check. This is relevant in testnets where the weak subjectivity period is too small for even few epochs of non finalization causing last finalized to be out of range. This flag is not recommended for mainnet use.

+

type: boolean

+

--persistNetworkIdentity

+

Whether to reuse the same peer-id across restarts

+

type: boolean

--private

Do not send implementation details over p2p identify protocol and in builder, execution engine and eth1 requests

type: boolean

@@ -358,6 +370,6 @@

--reset

type: boolean

--dumpTestnetFiles

Dump testnet files and exit

-

type: string

+

type: string

\ No newline at end of file diff --git a/contribution/getting-started/index.html b/contribution/getting-started/index.html index 9808592906e..d016330bc8d 100644 --- a/contribution/getting-started/index.html +++ b/contribution/getting-started/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/pr-submission/index.html b/contribution/pr-submission/index.html index 9af82c7da90..fa6f5cbe45d 100644 --- a/contribution/pr-submission/index.html +++ b/contribution/pr-submission/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/repo/index.html b/contribution/repo/index.html index 3f12ae2d22e..d56a1df1380 100644 --- a/contribution/repo/index.html +++ b/contribution/repo/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/testing/end-to-end-tests/index.html b/contribution/testing/end-to-end-tests/index.html index 91430835654..ffda01c018f 100644 --- a/contribution/testing/end-to-end-tests/index.html +++ b/contribution/testing/end-to-end-tests/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/testing/index.html b/contribution/testing/index.html index e83cbe25f68..b4efe243e49 100644 --- a/contribution/testing/index.html +++ b/contribution/testing/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/testing/integration-tests/index.html b/contribution/testing/integration-tests/index.html index d22000dda9c..650b001933e 100644 --- a/contribution/testing/integration-tests/index.html +++ b/contribution/testing/integration-tests/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/testing/performance-tests/index.html b/contribution/testing/performance-tests/index.html index 02eaf94876c..a4ffb99e7ea 100644 --- a/contribution/testing/performance-tests/index.html +++ b/contribution/testing/performance-tests/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/testing/simulation-tests/index.html b/contribution/testing/simulation-tests/index.html index 9989641e95d..023cbe83981 100644 --- a/contribution/testing/simulation-tests/index.html +++ b/contribution/testing/simulation-tests/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/testing/spec-tests/index.html b/contribution/testing/spec-tests/index.html index 52873af7e7f..805c5179629 100644 --- a/contribution/testing/spec-tests/index.html +++ b/contribution/testing/spec-tests/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/testing/unit-tests/index.html b/contribution/testing/unit-tests/index.html index fca02024b2c..58b285d2385 100644 --- a/contribution/testing/unit-tests/index.html +++ b/contribution/testing/unit-tests/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/tools/core-dumps/index.html b/contribution/tools/core-dumps/index.html index 1ef3b4c4dda..9e967391db0 100644 --- a/contribution/tools/core-dumps/index.html +++ b/contribution/tools/core-dumps/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/tools/debugging/index.html b/contribution/tools/debugging/index.html index bc1de0c9e94..423fc877a45 100644 --- a/contribution/tools/debugging/index.html +++ b/contribution/tools/debugging/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/tools/flamegraphs/index.html b/contribution/tools/flamegraphs/index.html index 6dccb8390d9..38b92eb7255 100644 --- a/contribution/tools/flamegraphs/index.html +++ b/contribution/tools/flamegraphs/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/tools/heap-dumps/index.html b/contribution/tools/heap-dumps/index.html index 916253231a4..8a60405ce4e 100644 --- a/contribution/tools/heap-dumps/index.html +++ b/contribution/tools/heap-dumps/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/contribution/tools/perf/index.html b/contribution/tools/perf/index.html index 75ad3dffa9a..838c88fcf02 100644 --- a/contribution/tools/perf/index.html +++ b/contribution/tools/perf/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/faqs/index.html b/faqs/index.html index 6eb55dc1b71..376d8b93bbc 100644 --- a/faqs/index.html +++ b/faqs/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/index.html b/index.html index a207b98e632..fdf823f0aa6 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/install b/install new file mode 100644 index 00000000000..f6db9948eed --- /dev/null +++ b/install @@ -0,0 +1,91 @@ +#!/bin/bash + +# ASCII art +echo " _ _ _ " +echo " | | | | | | " +echo " | | ___ __| | ___ ___| |_ __ _ _ __ " +echo " | |/ _ \ / _ |/ _ \/ __| __/ _ | __|" +echo " | | (_) | (_| | __/\__ \ || (_| | | " +echo " |_|\___/ \__ _|\___||___/\__\__ _|_| " +echo "" + +# Declare directories +TEMP_DIR=$(mktemp -d) +LOCAL_BIN="$HOME/.local/bin" + +# Ensure ~/.local/bin exists +mkdir -p "$LOCAL_BIN" + +# Inform the user about temporary directory usage +echo "Using temporary directory: $TEMP_DIR" + +# Fetch the latest release tag from GitHub +echo "Fetching the latest version information..." +VERSION=$(curl -s "https://api.github.com/repos/ChainSafe/lodestar/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') + +# Check if VERSION is empty +if [ -z "$VERSION" ]; then + echo "Failed to fetch the latest version. Exiting." + exit 1 +fi + +echo "Latest version detected: $VERSION" + +# Detect the operating system and architecture +OS=$(uname -s) +ARCH=$(uname -m) + +# Translate architecture to expected format +case $ARCH in + x86_64) ARCH="amd64" ;; + aarch64|arm64) ARCH="arm64" ;; + *) + echo "Unsupported architecture: $ARCH. Exiting." + exit 1 + ;; +esac + +# Translate OS to expected format +case $OS in + Linux) PLATFORM="linux-$ARCH" ;; + *) + echo "Unsupported operating system: $OS. Exiting." + exit 1 + ;; +esac + +# Construct the download URL +URL="https://github.com/ChainSafe/lodestar/releases/download/$VERSION/lodestar-$VERSION-$PLATFORM.tar.gz" +echo "Downloading from: $URL" + +# Download the tarball +if ! wget "$URL" -O "$TEMP_DIR/lodestar-$VERSION-$PLATFORM.tar.gz"; then + echo "Download failed. Exiting." + exit 1 +fi + +# Extract the tarball +echo "Extracting the binary..." +if ! tar -xzf "$TEMP_DIR/lodestar-$VERSION-$PLATFORM.tar.gz" -C "$TEMP_DIR"; then + echo "Extraction failed. Exiting." + exit 1 +fi + +# Move the binary to ~/.local/bin +echo "Moving the binary to $LOCAL_BIN..." +mv "$TEMP_DIR/lodestar" "$LOCAL_BIN/" +chmod +x "$LOCAL_BIN/lodestar" + +# Verify if ~/.local/bin is in PATH +if [[ ":$PATH:" != *":$LOCAL_BIN:"* ]]; then + echo "Adding $LOCAL_BIN to PATH..." + echo 'export PATH="$PATH:$HOME/.local/bin"' >> "$HOME/.bashrc" + echo "Run 'source ~/.bashrc' to apply changes to your shell." +fi + +# Clean up the temporary directory +rm -rf "$TEMP_DIR" + +# Inform the user of successful installation +echo "Installation complete!" +echo "Run 'lodestar --help' to get started." diff --git a/introduction/index.html b/introduction/index.html index 16afe2fd86b..082b2627ab2 100644 --- a/introduction/index.html +++ b/introduction/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/libraries/api/using-the-api/index.html b/libraries/api/using-the-api/index.html index 5f0baf46479..42d3385bafb 100644 --- a/libraries/api/using-the-api/index.html +++ b/libraries/api/using-the-api/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/libraries/lightclient-prover/lightclient-cli/index.html b/libraries/lightclient-prover/lightclient-cli/index.html index b22dc46b6c5..940d6225268 100644 --- a/libraries/lightclient-prover/lightclient-cli/index.html +++ b/libraries/lightclient-prover/lightclient-cli/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + @@ -25,6 +25,9 @@

--network--paramsFile

Network configuration file

type: string

+

--rcConfig

+

RC file to supplement command line args, accepted formats: .yml, .yaml, .json

+

type: string

--terminal-total-difficulty-override

Terminal PoW block TTD override

type: string

@@ -58,6 +61,6 @@

--beaco

--checkpointRoot

Checkpoint root hex string to sync the lightclient from, start with 0x

required: true

-

type: string

+

type: string

\ No newline at end of file diff --git a/libraries/lightclient-prover/lightclient/index.html b/libraries/lightclient-prover/lightclient/index.html index ea4d7f8f7ad..6eeda759e12 100644 --- a/libraries/lightclient-prover/lightclient/index.html +++ b/libraries/lightclient-prover/lightclient/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/libraries/lightclient-prover/prover/index.html b/libraries/lightclient-prover/prover/index.html index d96f426fa82..6ea4a0cc93b 100644 --- a/libraries/lightclient-prover/prover/index.html +++ b/libraries/lightclient-prover/prover/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/reference/cli/index.html b/reference/cli/index.html index 98707c0c2a4..fd04f4c7113 100644 --- a/reference/cli/index.html +++ b/reference/cli/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/beacon-management/beacon-cli/index.html b/run/beacon-management/beacon-cli/index.html index 70d42ca9cb8..215bbf98710 100644 --- a/run/beacon-management/beacon-cli/index.html +++ b/run/beacon-management/beacon-cli/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + @@ -25,6 +25,9 @@

--network--paramsFile

Network configuration file

type: string

+

--rcConfig

+

RC file to supplement command line args, accepted formats: .yml, .yaml, .json

+

type: string

--terminal-total-difficulty-override

Terminal PoW block TTD override

type: string

@@ -34,6 +37,9 @@

--terminal-block-hash-epoch-override

Terminal PoW block hash override activation epoch

type: string

+

--genesisStateFile

+

Path or URL to download a genesis state file in ssz-encoded format

+

type: string

--checkpointSyncUrl

Server url hosting Beacon Node APIs to fetch weak subjectivity state. Fetch latest finalized by default, else set --wssCheckpoint

type: string

@@ -46,6 +52,12 @@

--wssC

--forceCheckpointSync

Force syncing from checkpoint state even if db state is within weak subjectivity period. This helps to avoid long sync times after node has been offline for a while.

type: boolean

+

--ignoreWeakSubjectivityCheck

+

Ignore the checkpoint sync state failing the weak subjectivity check. This is relevant in testnets where the weak subjectivity period is too small for even few epochs of non finalization causing last finalized to be out of range. This flag is not recommended for mainnet use.

+

type: boolean

+

--persistNetworkIdentity

+

Whether to reuse the same peer-id across restarts

+

type: boolean

--private

Do not send implementation details over p2p identify protocol and in builder, execution engine and eth1 requests

type: boolean

@@ -242,6 +254,6 @@

--enr.udp6type: number

--nat

Allow configuration of non-local addresses

-

type: boolean

+

type: boolean

\ No newline at end of file diff --git a/run/beacon-management/data-retention/index.html b/run/beacon-management/data-retention/index.html index 9f540084334..4c8f5760484 100644 --- a/run/beacon-management/data-retention/index.html +++ b/run/beacon-management/data-retention/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/beacon-management/mev-and-builder-integration/index.html b/run/beacon-management/mev-and-builder-integration/index.html index 63876b283bd..9b6bf2d576f 100644 --- a/run/beacon-management/mev-and-builder-integration/index.html +++ b/run/beacon-management/mev-and-builder-integration/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/beacon-management/networking/index.html b/run/beacon-management/networking/index.html index a6f1800762c..e559e68bafb 100644 --- a/run/beacon-management/networking/index.html +++ b/run/beacon-management/networking/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/beacon-management/starting-a-node/index.html b/run/beacon-management/starting-a-node/index.html index a23e924b622..b48134fe27b 100644 --- a/run/beacon-management/starting-a-node/index.html +++ b/run/beacon-management/starting-a-node/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/beacon-management/syncing/index.html b/run/beacon-management/syncing/index.html index 5efeee318e7..6246317a0ad 100644 --- a/run/beacon-management/syncing/index.html +++ b/run/beacon-management/syncing/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/bootnode/bootnode-cli/index.html b/run/bootnode/bootnode-cli/index.html index 5b444c5dda8..1f726d873f4 100644 --- a/run/bootnode/bootnode-cli/index.html +++ b/run/bootnode/bootnode-cli/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + @@ -22,6 +22,9 @@

--network--paramsFile

Network configuration file

type: string

+

--rcConfig

+

RC file to supplement command line args, accepted formats: .yml, .yaml, .json

+

type: string

--terminal-total-difficulty-override

Terminal PoW block TTD override

type: string

@@ -99,6 +102,6 @@

--metric

--metrics.address

Listen address for the Prometheus metrics HTTP server

type: string

-

default: "127.0.0.1"

+

default: "127.0.0.1"

\ No newline at end of file diff --git a/run/getting-started/installation/index.html b/run/getting-started/installation/index.html index 554c7887dd3..34d88ce1696 100644 --- a/run/getting-started/installation/index.html +++ b/run/getting-started/installation/index.html @@ -4,13 +4,15 @@ Lodestar Documentation - +

Install Options

Binaries

Binaries can be downloaded from the Lodestar release page under the Assets section.

+

Run the following command to install the latest version

+
curl -fsSL https://chainsafe.github.io/lodestar/install | bash

Docker Installation

The chainsafe/lodestar Docker Hub repository is maintained actively. It contains the lodestar CLI preinstalled.

info

The Docker Hub image tagged as chainsafe/lodestar:next is run on CI every commit on our unstable branch. diff --git a/run/getting-started/quick-start-custom-guide/index.html b/run/getting-started/quick-start-custom-guide/index.html index e5bfef30dfd..0e91a88f854 100644 --- a/run/getting-started/quick-start-custom-guide/index.html +++ b/run/getting-started/quick-start-custom-guide/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/getting-started/quick-start/index.html b/run/getting-started/quick-start/index.html index eab1c7ebe36..0432691459d 100644 --- a/run/getting-started/quick-start/index.html +++ b/run/getting-started/quick-start/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/logging-and-metrics/client-monitoring/index.html b/run/logging-and-metrics/client-monitoring/index.html index 5532633a410..dc26f32db74 100644 --- a/run/logging-and-metrics/client-monitoring/index.html +++ b/run/logging-and-metrics/client-monitoring/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/logging-and-metrics/prometheus-grafana/index.html b/run/logging-and-metrics/prometheus-grafana/index.html index c86b8986dab..b34a3c6f60c 100644 --- a/run/logging-and-metrics/prometheus-grafana/index.html +++ b/run/logging-and-metrics/prometheus-grafana/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/validator-management/external-signer/index.html b/run/validator-management/external-signer/index.html index 0427ed514e2..4360fd45ec2 100644 --- a/run/validator-management/external-signer/index.html +++ b/run/validator-management/external-signer/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/validator-management/key-management/index.html b/run/validator-management/key-management/index.html index efca42da5af..83765ff6cb7 100644 --- a/run/validator-management/key-management/index.html +++ b/run/validator-management/key-management/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/validator-management/multiple-and-fallback-validation/index.html b/run/validator-management/multiple-and-fallback-validation/index.html index 31ec72b995f..695e719ed3e 100644 --- a/run/validator-management/multiple-and-fallback-validation/index.html +++ b/run/validator-management/multiple-and-fallback-validation/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/validator-management/proposer-config/index.html b/run/validator-management/proposer-config/index.html index 9bee622184f..c40c2a4a80d 100644 --- a/run/validator-management/proposer-config/index.html +++ b/run/validator-management/proposer-config/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/validator-management/validator-cli/index.html b/run/validator-management/validator-cli/index.html index bab5a9a3ce9..25200ba1996 100644 --- a/run/validator-management/validator-cli/index.html +++ b/run/validator-management/validator-cli/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + @@ -48,6 +48,9 @@

--network--paramsFile

Network configuration file

type: string

+

--rcConfig

+

RC file to supplement command line args, accepted formats: .yml, .yaml, .json

+

type: string

--terminal-total-difficulty-override

Terminal PoW block TTD override

type: string

@@ -284,6 +287,6 @@

--fro

--toExecutionAddress

Address to which the validator's balances will be set to be withdrawn.

required: true

-

type: string

+

type: string

\ No newline at end of file diff --git a/run/validator-management/vc-configuration/index.html b/run/validator-management/vc-configuration/index.html index 5781ccd9630..c96d39b916a 100644 --- a/run/validator-management/vc-configuration/index.html +++ b/run/validator-management/vc-configuration/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/run/validator-management/withdrawals/index.html b/run/validator-management/withdrawals/index.html index 7ea2039ea76..6f76215348f 100644 --- a/run/validator-management/withdrawals/index.html +++ b/run/validator-management/withdrawals/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/search-index.json b/search-index.json index 1a12d5c6796..e696d9d5806 100644 --- a/search-index.json +++ b/search-index.json @@ -1 +1 @@ -[{"documents":[{"i":1,"t":"Home","u":"/lodestar/","b":[]},{"i":14,"t":"Block Exploration","u":"/lodestar/contribution/advanced-topics/block-exploration","b":[]},{"i":15,"t":"Doppelganger Detection","u":"/lodestar/contribution/advanced-topics/doppelganger-detection","b":[]},{"i":16,"t":"Slashing Protection","u":"/lodestar/contribution/advanced-topics/slashing-protection","b":[]},{"i":17,"t":"Migration From Other Clients","u":"/lodestar/contribution/advanced-topics/migrating-from-other-clients","b":[]},{"i":18,"t":"Setting-Up a Testnet","u":"/lodestar/contribution/advanced-topics/setting-up-a-testnet","b":["Contributing","Advanced Topics"]},{"i":22,"t":"bug-reports","u":"/lodestar/contribution/bug-reports","b":[]},{"i":23,"t":"Dependency Graph","u":"/lodestar/contribution/depgraph","b":["Contributing"]},{"i":78,"t":"Contribution Guidelines","u":"/lodestar/contribution/getting-started","b":["Contributing"]},{"i":125,"t":"pr-submission","u":"/lodestar/contribution/pr-submission","b":[]},{"i":126,"t":"repo","u":"/lodestar/contribution/repo","b":[]},{"i":127,"t":"dev CLI Command","u":"/lodestar/contribution/dev-cli","b":["Contributing","Development Tools"]},{"i":133,"t":"Testing","u":"/lodestar/contribution/testing/","b":["Contributing","Testing"]},{"i":147,"t":"End-To-End Tests","u":"/lodestar/contribution/testing/end-to-end-tests","b":["Contributing","Testing"]},{"i":149,"t":"Integration Tests","u":"/lodestar/contribution/testing/integration-tests","b":["Contributing","Testing"]},{"i":151,"t":"Simulation Tests","u":"/lodestar/contribution/testing/simulation-tests","b":["Contributing","Testing"]},{"i":177,"t":"Performance Tests","u":"/lodestar/contribution/testing/performance-tests","b":["Contributing","Testing"]},{"i":179,"t":"Specification Tests","u":"/lodestar/contribution/testing/spec-tests","b":["Contributing","Testing"]},{"i":181,"t":"Unit Tests","u":"/lodestar/contribution/testing/unit-tests","b":[]},{"i":183,"t":"Core Dump Analysis","u":"/lodestar/contribution/tools/core-dumps","b":["Contributing","Development Tools"]},{"i":191,"t":"Debugging","u":"/lodestar/contribution/tools/debugging","b":["Contributing","Development Tools"]},{"i":197,"t":"perf","u":"/lodestar/contribution/tools/perf","b":[]},{"i":198,"t":"Generating Flamegraphs for a Running Node Service on Linux","u":"/lodestar/contribution/tools/flamegraphs","b":["Contributing","Development Tools"]},{"i":225,"t":"Frequently Asked Questions","u":"/lodestar/faqs","b":[]},{"i":234,"t":"Heap Dump Analysis","u":"/lodestar/contribution/tools/heap-dumps","b":["Contributing","Development Tools"]},{"i":256,"t":"Introduction","u":"/lodestar/introduction","b":[]},{"i":266,"t":"using-the-api","u":"/lodestar/libraries/api/using-the-api","b":[]},{"i":267,"t":"Lodestar Light Client","u":"/lodestar/libraries/lightclient-prover/lightclient","b":["Developer Tools","Light Client"]},{"i":285,"t":"Lodestar Prover","u":"/lodestar/libraries/lightclient-prover/prover","b":["Developer Tools","Prover"]},{"i":307,"t":"lightclient CLI Command","u":"/lodestar/libraries/lightclient-prover/lightclient-cli","b":["Developer Tools","Light Client"]},{"i":313,"t":"Page relocated","u":"/lodestar/reference/cli","b":[]},{"i":315,"t":"beacon CLI Command","u":"/lodestar/run/beacon-management/beacon-cli","b":["Run A Node","Beacon Node"]},{"i":321,"t":"Data Retention","u":"/lodestar/run/beacon-management/data-retention","b":["Run A Node","Beacon Node"]},{"i":325,"t":"Networking","u":"/lodestar/run/beacon-management/networking","b":["Run A Node","Beacon Node"]},{"i":345,"t":"MEV & Merge","u":"/lodestar/run/beacon-management/mev-and-builder-integration","b":["Run A Node","Beacon Node"]},{"i":351,"t":"Beacon Management","u":"/lodestar/run/beacon-management/starting-a-node","b":["Run A Node","Beacon Node"]},{"i":369,"t":"Syncing","u":"/lodestar/run/beacon-management/syncing","b":["Run A Node","Beacon Node"]},{"i":384,"t":"bootnode CLI Command","u":"/lodestar/run/bootnode/bootnode-cli","b":["Run A Node","Discv5 Bootnode"]},{"i":388,"t":"Install Options","u":"/lodestar/run/getting-started/installation","b":["Run A Node"]},{"i":408,"t":"Lodestar Quick Start Scripts","u":"/lodestar/run/getting-started/quick-start","b":["Run A Node","Quick Start"]},{"i":414,"t":"Client Monitoring","u":"/lodestar/run/logging-and-metrics/client-monitoring","b":["Run A Node","Logging and Metrics"]},{"i":422,"t":"Prometheus and Grafana Setup","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","b":["Run A Node","Logging and Metrics"]},{"i":430,"t":"External Signer","u":"/lodestar/run/validator-management/external-signer","b":["Run A Node","Validator Client"]},{"i":434,"t":"key-management","u":"/lodestar/run/validator-management/key-management","b":[]},{"i":435,"t":"multiple-and-fallback-validation","u":"/lodestar/run/validator-management/multiple-and-fallback-validation","b":[]},{"i":436,"t":"Quick Start Custom Setup Guide","u":"/lodestar/run/getting-started/quick-start-custom-guide","b":["Run A Node","Quick Start"]},{"i":503,"t":"Proposer Configuration","u":"/lodestar/run/validator-management/proposer-config","b":["Run A Node","Validator Client"]},{"i":509,"t":"validator CLI Command","u":"/lodestar/run/validator-management/validator-cli","b":["Run A Node","Validator Client"]},{"i":548,"t":"Validator Configuration","u":"/lodestar/run/validator-management/vc-configuration","b":["Run A Node","Validator Client"]},{"i":564,"t":"Security Policy","u":"/lodestar/security","b":[]},{"i":569,"t":"withdrawals","u":"/lodestar/run/validator-management/withdrawals","b":[]},{"i":570,"t":"Supporting Libraries","u":"/lodestar/supporting-libraries/","b":[]},{"i":580,"t":"Lodestar libraries","u":"/lodestar/supporting-libraries/libraries","b":[]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,4.644]],["t/14",[1,3.763,2,3.763]],["t/15",[3,3.763,4,3.763]],["t/16",[5,3.763,6,3.763]],["t/17",[7,3.763,8,2.873]],["t/18",[9,3.163,10,3.163,11,3.163]],["t/22",[12,3.763,13,3.763]],["t/23",[14,3.763,15,3.763]],["t/78",[16,3.763,17,3.763]],["t/125",[18,3.763,19,3.763]],["t/126",[20,4.644]],["t/127",[21,3.163,22,2.016,23,2.016]],["t/133",[24,2.558]],["t/147",[24,1.742,25,4.515]],["t/149",[24,2.073,26,3.763]],["t/151",[24,2.073,27,3.763]],["t/177",[24,2.073,28,3.763]],["t/179",[24,2.073,29,3.763]],["t/181",[24,2.073,30,3.763]],["t/183",[31,3.163,32,2.712,33,2.712]],["t/191",[34,4.644]],["t/197",[35,4.644]],["t/198",[36,2.139,37,2.139,38,2.139,39,2.139,40,2.139,41,2.139]],["t/225",[42,3.163,43,3.163,44,3.163]],["t/234",[32,2.712,33,2.712,45,3.163]],["t/256",[46,4.644]],["t/266",[47,3.763,48,3.763]],["t/267",[8,2.415,49,2.193,50,3.163]],["t/285",[49,2.609,51,3.763]],["t/307",[22,2.016,23,2.016,52,3.163]],["t/313",[53,3.763,54,3.763]],["t/315",[22,2.016,23,2.016,55,2.712]],["t/321",[56,3.763,57,3.763]],["t/325",[58,4.644]],["t/345",[59,3.163,60,3.163,61,3.163]],["t/351",[55,3.227,62,3.227]],["t/369",[63,4.644]],["t/384",[22,2.016,23,2.016,64,3.163]],["t/388",[65,3.763,66,3.763]],["t/408",[49,1.892,67,2.339,68,2.339,69,2.728]],["t/414",[8,2.873,70,3.763]],["t/422",[71,3.163,72,3.163,73,2.712]],["t/430",[74,3.763,75,3.763]],["t/434",[62,3.227,76,3.763]],["t/435",[77,3.163,78,3.163,79,2.415]],["t/436",[67,2.056,68,2.056,73,2.056,80,2.398,81,2.398]],["t/503",[82,3.763,83,3.227]],["t/509",[22,2.016,23,2.016,79,2.415]],["t/548",[79,2.873,83,3.227]],["t/564",[84,3.763,85,3.763]],["t/569",[86,4.644]],["t/570",[87,3.763,88,3.227]],["t/580",[49,2.609,88,3.227]]],"invertedIndex":[["",{"_index":60,"t":{"345":{"position":[[4,1]]}}}],["analysi",{"_index":33,"t":{"183":{"position":[[10,8]]},"234":{"position":[[10,8]]}}}],["api",{"_index":48,"t":{"266":{"position":[[10,3]]}}}],["ask",{"_index":43,"t":{"225":{"position":[[11,5]]}}}],["beacon",{"_index":55,"t":{"315":{"position":[[0,6]]},"351":{"position":[[0,6]]}}}],["block",{"_index":1,"t":{"14":{"position":[[0,5]]}}}],["bootnod",{"_index":64,"t":{"384":{"position":[[0,8]]}}}],["bug",{"_index":12,"t":{"22":{"position":[[0,3]]}}}],["cli",{"_index":22,"t":{"127":{"position":[[4,3]]},"307":{"position":[[12,3]]},"315":{"position":[[7,3]]},"384":{"position":[[9,3]]},"509":{"position":[[10,3]]}}}],["client",{"_index":8,"t":{"17":{"position":[[21,7]]},"267":{"position":[[15,6]]},"414":{"position":[[0,6]]}}}],["command",{"_index":23,"t":{"127":{"position":[[8,7]]},"307":{"position":[[16,7]]},"315":{"position":[[11,7]]},"384":{"position":[[13,7]]},"509":{"position":[[14,7]]}}}],["configur",{"_index":83,"t":{"503":{"position":[[9,13]]},"548":{"position":[[10,13]]}}}],["contribut",{"_index":16,"t":{"78":{"position":[[0,12]]}}}],["core",{"_index":31,"t":{"183":{"position":[[0,4]]}}}],["custom",{"_index":80,"t":{"436":{"position":[[12,6]]}}}],["data",{"_index":56,"t":{"321":{"position":[[0,4]]}}}],["debug",{"_index":34,"t":{"191":{"position":[[0,9]]}}}],["depend",{"_index":14,"t":{"23":{"position":[[0,10]]}}}],["detect",{"_index":4,"t":{"15":{"position":[[13,9]]}}}],["dev",{"_index":21,"t":{"127":{"position":[[0,3]]}}}],["doppelgang",{"_index":3,"t":{"15":{"position":[[0,12]]}}}],["dump",{"_index":32,"t":{"183":{"position":[[5,4]]},"234":{"position":[[5,4]]}}}],["end",{"_index":25,"t":{"147":{"position":[[0,3],[7,3]]}}}],["explor",{"_index":2,"t":{"14":{"position":[[6,11]]}}}],["extern",{"_index":74,"t":{"430":{"position":[[0,8]]}}}],["fallback",{"_index":78,"t":{"435":{"position":[[13,8]]}}}],["flamegraph",{"_index":37,"t":{"198":{"position":[[11,11]]}}}],["frequent",{"_index":42,"t":{"225":{"position":[[0,10]]}}}],["gener",{"_index":36,"t":{"198":{"position":[[0,10]]}}}],["grafana",{"_index":72,"t":{"422":{"position":[[15,7]]}}}],["graph",{"_index":15,"t":{"23":{"position":[[11,5]]}}}],["guid",{"_index":81,"t":{"436":{"position":[[25,5]]}}}],["guidelin",{"_index":17,"t":{"78":{"position":[[13,10]]}}}],["heap",{"_index":45,"t":{"234":{"position":[[0,4]]}}}],["home",{"_index":0,"t":{"1":{"position":[[0,4]]}}}],["instal",{"_index":65,"t":{"388":{"position":[[0,7]]}}}],["integr",{"_index":26,"t":{"149":{"position":[[0,11]]}}}],["introduct",{"_index":46,"t":{"256":{"position":[[0,12]]}}}],["key",{"_index":76,"t":{"434":{"position":[[0,3]]}}}],["librari",{"_index":88,"t":{"570":{"position":[[11,9]]},"580":{"position":[[9,9]]}}}],["light",{"_index":50,"t":{"267":{"position":[[9,5]]}}}],["lightclient",{"_index":52,"t":{"307":{"position":[[0,11]]}}}],["linux",{"_index":41,"t":{"198":{"position":[[53,5]]}}}],["lodestar",{"_index":49,"t":{"267":{"position":[[0,8]]},"285":{"position":[[0,8]]},"408":{"position":[[0,8]]},"580":{"position":[[0,8]]}}}],["manag",{"_index":62,"t":{"351":{"position":[[7,10]]},"434":{"position":[[4,10]]}}}],["merg",{"_index":61,"t":{"345":{"position":[[6,5]]}}}],["mev",{"_index":59,"t":{"345":{"position":[[0,3]]}}}],["migrat",{"_index":7,"t":{"17":{"position":[[0,9]]}}}],["monitor",{"_index":70,"t":{"414":{"position":[[7,10]]}}}],["multipl",{"_index":77,"t":{"435":{"position":[[0,8]]}}}],["network",{"_index":58,"t":{"325":{"position":[[0,10]]}}}],["node",{"_index":39,"t":{"198":{"position":[[37,4]]}}}],["option",{"_index":66,"t":{"388":{"position":[[8,7]]}}}],["page",{"_index":53,"t":{"313":{"position":[[0,4]]}}}],["perf",{"_index":35,"t":{"197":{"position":[[0,4]]}}}],["perform",{"_index":28,"t":{"177":{"position":[[0,11]]}}}],["polici",{"_index":85,"t":{"564":{"position":[[9,6]]}}}],["pr",{"_index":18,"t":{"125":{"position":[[0,2]]}}}],["prometheu",{"_index":71,"t":{"422":{"position":[[0,10]]}}}],["propos",{"_index":82,"t":{"503":{"position":[[0,8]]}}}],["protect",{"_index":6,"t":{"16":{"position":[[9,10]]}}}],["prover",{"_index":51,"t":{"285":{"position":[[9,6]]}}}],["question",{"_index":44,"t":{"225":{"position":[[17,9]]}}}],["quick",{"_index":67,"t":{"408":{"position":[[9,5]]},"436":{"position":[[0,5]]}}}],["reloc",{"_index":54,"t":{"313":{"position":[[5,9]]}}}],["repo",{"_index":20,"t":{"126":{"position":[[0,4]]}}}],["report",{"_index":13,"t":{"22":{"position":[[4,7]]}}}],["retent",{"_index":57,"t":{"321":{"position":[[5,9]]}}}],["run",{"_index":38,"t":{"198":{"position":[[29,7]]}}}],["script",{"_index":69,"t":{"408":{"position":[[21,7]]}}}],["secur",{"_index":84,"t":{"564":{"position":[[0,8]]}}}],["servic",{"_index":40,"t":{"198":{"position":[[42,7]]}}}],["set",{"_index":9,"t":{"18":{"position":[[0,7]]}}}],["setup",{"_index":73,"t":{"422":{"position":[[23,5]]},"436":{"position":[[19,5]]}}}],["signer",{"_index":75,"t":{"430":{"position":[[9,6]]}}}],["simul",{"_index":27,"t":{"151":{"position":[[0,10]]}}}],["slash",{"_index":5,"t":{"16":{"position":[[0,8]]}}}],["specif",{"_index":29,"t":{"179":{"position":[[0,13]]}}}],["start",{"_index":68,"t":{"408":{"position":[[15,5]]},"436":{"position":[[6,5]]}}}],["submiss",{"_index":19,"t":{"125":{"position":[[3,10]]}}}],["support",{"_index":87,"t":{"570":{"position":[[0,10]]}}}],["sync",{"_index":63,"t":{"369":{"position":[[0,7]]}}}],["test",{"_index":24,"t":{"133":{"position":[[0,7]]},"147":{"position":[[11,5]]},"149":{"position":[[12,5]]},"151":{"position":[[11,5]]},"177":{"position":[[12,5]]},"179":{"position":[[14,5]]},"181":{"position":[[5,5]]}}}],["testnet",{"_index":11,"t":{"18":{"position":[[13,7]]}}}],["unit",{"_index":30,"t":{"181":{"position":[[0,4]]}}}],["up",{"_index":10,"t":{"18":{"position":[[8,2]]}}}],["us",{"_index":47,"t":{"266":{"position":[[0,5]]}}}],["valid",{"_index":79,"t":{"435":{"position":[[22,10]]},"509":{"position":[[0,9]]},"548":{"position":[[0,9]]}}}],["withdraw",{"_index":86,"t":{"569":{"position":[[0,11]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"Welcome to the Lodestar Documentation","u":"/lodestar/","h":"#welcome-to-the-lodestar-documentation","p":1},{"i":4,"t":"Getting Started","u":"/lodestar/","h":"#getting-started","p":1},{"i":6,"t":"Specifications","u":"/lodestar/","h":"#specifications","p":1},{"i":8,"t":"Execution Client","u":"/lodestar/","h":"#execution-client","p":1},{"i":10,"t":"About These Docs","u":"/lodestar/","h":"#about-these-docs","p":1},{"i":12,"t":"Need Assistance?","u":"/lodestar/","h":"#need-assistance","p":1},{"i":20,"t":"Post-Merge local testnet","u":"/lodestar/contribution/advanced-topics/setting-up-a-testnet","h":"#post-merge-local-testnet","p":18},{"i":24,"t":"Lodestar Dependency Graph","u":"/lodestar/contribution/depgraph","h":"#lodestar-dependency-graph","p":23},{"i":26,"t":"Lodestar Monorepo","u":"/lodestar/contribution/depgraph","h":"#lodestar-monorepo","p":23},{"i":28,"t":"@chainsafe/lodestar","u":"/lodestar/contribution/depgraph","h":"#chainsafelodestar","p":23},{"i":30,"t":"@lodestar/api","u":"/lodestar/contribution/depgraph","h":"#lodestarapi","p":23},{"i":32,"t":"@lodestar/beacon-node","u":"/lodestar/contribution/depgraph","h":"#lodestarbeacon-node","p":23},{"i":34,"t":"@lodestar/config","u":"/lodestar/contribution/depgraph","h":"#lodestarconfig","p":23},{"i":36,"t":"@lodestar/db","u":"/lodestar/contribution/depgraph","h":"#lodestardb","p":23},{"i":38,"t":"@lodestar/flare","u":"/lodestar/contribution/depgraph","h":"#lodestarflare","p":23},{"i":40,"t":"@lodestar/fork-choice","u":"/lodestar/contribution/depgraph","h":"#lodestarfork-choice","p":23},{"i":42,"t":"@lodestar/light-client","u":"/lodestar/contribution/depgraph","h":"#lodestarlight-client","p":23},{"i":44,"t":"@lodestar/logger","u":"/lodestar/contribution/depgraph","h":"#lodestarlogger","p":23},{"i":46,"t":"@lodestar/params","u":"/lodestar/contribution/depgraph","h":"#lodestarparams","p":23},{"i":48,"t":"@lodestar/prover","u":"/lodestar/contribution/depgraph","h":"#lodestarprover","p":23},{"i":50,"t":"@lodestar/reqresp","u":"/lodestar/contribution/depgraph","h":"#lodestarreqresp","p":23},{"i":52,"t":"@lodestar/spec-test-util","u":"/lodestar/contribution/depgraph","h":"#lodestarspec-test-util","p":23},{"i":54,"t":"@lodestar/state-transition","u":"/lodestar/contribution/depgraph","h":"#lodestarstate-transition","p":23},{"i":56,"t":"@lodestar/types","u":"/lodestar/contribution/depgraph","h":"#lodestartypes","p":23},{"i":58,"t":"@lodestar/utils","u":"/lodestar/contribution/depgraph","h":"#lodestarutils","p":23},{"i":60,"t":"@lodestar/validator","u":"/lodestar/contribution/depgraph","h":"#lodestarvalidator","p":23},{"i":62,"t":"External Dependencies","u":"/lodestar/contribution/depgraph","h":"#external-dependencies","p":23},{"i":64,"t":"@chainsafe/blst-ts","u":"/lodestar/contribution/depgraph","h":"#chainsafeblst-ts","p":23},{"i":66,"t":"@chainsafe/discv5","u":"/lodestar/contribution/depgraph","h":"#chainsafediscv5","p":23},{"i":68,"t":"@chainsafe/js-libp2p-gossipsub","u":"/lodestar/contribution/depgraph","h":"#chainsafejs-libp2p-gossipsub","p":23},{"i":70,"t":"@chainsafe/js-libp2p-noise","u":"/lodestar/contribution/depgraph","h":"#chainsafejs-libp2p-noise","p":23},{"i":72,"t":"@chainsafe/js-libp2p-yamux","u":"/lodestar/contribution/depgraph","h":"#chainsafejs-libp2p-yamux","p":23},{"i":74,"t":"@chainsafe/ssz","u":"/lodestar/contribution/depgraph","h":"#chainsafessz","p":23},{"i":76,"t":"@libp2p/js-libp2p","u":"/lodestar/contribution/depgraph","h":"#libp2pjs-libp2p","p":23},{"i":80,"t":"Prerequisites","u":"/lodestar/contribution/getting-started","h":"#prerequisites","p":78},{"i":82,"t":"MacOS Specifics","u":"/lodestar/contribution/getting-started","h":"#macos-specifics","p":78},{"i":84,"t":"Getting Started","u":"/lodestar/contribution/getting-started","h":"#getting-started","p":78},{"i":86,"t":"Tests","u":"/lodestar/contribution/getting-started","h":"#tests","p":78},{"i":88,"t":"Devcontainer","u":"/lodestar/contribution/getting-started","h":"#devcontainer","p":78},{"i":90,"t":"Common Issues","u":"/lodestar/contribution/getting-started","h":"#common-issues","p":78},{"i":92,"t":"Debugging Spec Tests","u":"/lodestar/contribution/getting-started","h":"#debugging-spec-tests","p":78},{"i":94,"t":"Docker","u":"/lodestar/contribution/getting-started","h":"#docker","p":78},{"i":96,"t":"First Time Contributor?","u":"/lodestar/contribution/getting-started","h":"#first-time-contributor","p":78},{"i":98,"t":"Reporting A Bug?","u":"/lodestar/contribution/getting-started","h":"#reporting-a-bug","p":78},{"i":100,"t":"Contribution Process","u":"/lodestar/contribution/getting-started","h":"#contribution-process","p":78},{"i":102,"t":"Github Style Guide","u":"/lodestar/contribution/getting-started","h":"#github-style-guide","p":78},{"i":104,"t":"Lodestar Monorepo","u":"/lodestar/contribution/getting-started","h":"#lodestar-monorepo","p":78},{"i":106,"t":"Style Guide","u":"/lodestar/contribution/getting-started","h":"#style-guide","p":78},{"i":108,"t":"Tests style guide","u":"/lodestar/contribution/getting-started","h":"#tests-style-guide","p":78},{"i":110,"t":"Logging policy","u":"/lodestar/contribution/getting-started","h":"#logging-policy","p":78},{"i":111,"t":"Logging Levels","u":"/lodestar/contribution/getting-started","h":"#logging-levels","p":78},{"i":113,"t":"Logging guidelines","u":"/lodestar/contribution/getting-started","h":"#logging-guidelines","p":78},{"i":115,"t":"Contributing to Grafana dashboards","u":"/lodestar/contribution/getting-started","h":"#contributing-to-grafana-dashboards","p":78},{"i":117,"t":"Using Download Script","u":"/lodestar/contribution/getting-started","h":"#using-download-script","p":78},{"i":119,"t":"Contributing to Documentation","u":"/lodestar/contribution/getting-started","h":"#contributing-to-documentation","p":78},{"i":121,"t":"Label Guide","u":"/lodestar/contribution/getting-started","h":"#label-guide","p":78},{"i":123,"t":"Community","u":"/lodestar/contribution/getting-started","h":"#community","p":78},{"i":129,"t":"Examples","u":"/lodestar/contribution/dev-cli","h":"#examples","p":127},{"i":131,"t":"dev Options","u":"/lodestar/contribution/dev-cli","h":"#dev-options","p":127},{"i":135,"t":"Unit Tests","u":"/lodestar/contribution/testing/","h":"#unit-tests","p":133},{"i":137,"t":"Spec Tests","u":"/lodestar/contribution/testing/","h":"#spec-tests","p":133},{"i":139,"t":"Performance Tests","u":"/lodestar/contribution/testing/","h":"#performance-tests","p":133},{"i":141,"t":"End-To-End Tests","u":"/lodestar/contribution/testing/","h":"#end-to-end-tests","p":133},{"i":143,"t":"Integration Tests","u":"/lodestar/contribution/testing/","h":"#integration-tests","p":133},{"i":145,"t":"Simulation Tests","u":"/lodestar/contribution/testing/","h":"#simulation-tests","p":133},{"i":153,"t":"Running Sim Tests","u":"/lodestar/contribution/testing/simulation-tests","h":"#running-sim-tests","p":151},{"i":155,"t":"Environment Variables","u":"/lodestar/contribution/testing/simulation-tests","h":"#environment-variables","p":151},{"i":157,"t":"test:sim:multifork","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimmultifork","p":151},{"i":159,"t":"test:sim:endpoints","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimendpoints","p":151},{"i":161,"t":"test:sim:deneb","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimdeneb","p":151},{"i":163,"t":"test:sim:mixedcleint","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimmixedcleint","p":151},{"i":165,"t":"Sim Test Infrastructure","u":"/lodestar/contribution/testing/simulation-tests","h":"#sim-test-infrastructure","p":151},{"i":167,"t":"Simulation Environment","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-environment","p":151},{"i":169,"t":"Simulation Assertions","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-assertions","p":151},{"i":171,"t":"Custom Assertions","u":"/lodestar/contribution/testing/simulation-tests","h":"#custom-assertions","p":151},{"i":173,"t":"Simulation Reports","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-reports","p":151},{"i":175,"t":"Simulation Logging","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-logging","p":151},{"i":185,"t":"Installing llnode","u":"/lodestar/contribution/tools/core-dumps","h":"#installing-llnode","p":183},{"i":187,"t":"Collecting a core dump","u":"/lodestar/contribution/tools/core-dumps","h":"#collecting-a-core-dump","p":183},{"i":189,"t":"Analyzing a core dump","u":"/lodestar/contribution/tools/core-dumps","h":"#analyzing-a-core-dump","p":183},{"i":193,"t":"VS Code launch config","u":"/lodestar/contribution/tools/debugging","h":"#vs-code-launch-config","p":191},{"i":195,"t":"Attach to running process","u":"/lodestar/contribution/tools/debugging","h":"#attach-to-running-process","p":191},{"i":200,"t":"Modifying Linux and Lodestar","u":"/lodestar/contribution/tools/flamegraphs","h":"#modifying-linux-and-lodestar","p":198},{"i":202,"t":"Example start_lodestar.sh","u":"/lodestar/contribution/tools/flamegraphs","h":"#example-start_lodestarsh","p":198},{"i":204,"t":"Capturing Stack Traces","u":"/lodestar/contribution/tools/flamegraphs","h":"#capturing-stack-traces","p":198},{"i":206,"t":"Rendering a Flamegraph","u":"/lodestar/contribution/tools/flamegraphs","h":"#rendering-a-flamegraph","p":198},{"i":208,"t":"Installation","u":"/lodestar/contribution/tools/flamegraphs","h":"#installation","p":198},{"i":210,"t":"Usage","u":"/lodestar/contribution/tools/flamegraphs","h":"#usage","p":198},{"i":212,"t":"Filtering Results","u":"/lodestar/contribution/tools/flamegraphs","h":"#filtering-results","p":198},{"i":214,"t":"Unfiltered","u":"/lodestar/contribution/tools/flamegraphs","h":"#unfiltered","p":198},{"i":215,"t":"Filtered","u":"/lodestar/contribution/tools/flamegraphs","h":"#filtered","p":198},{"i":216,"t":"References","u":"/lodestar/contribution/tools/flamegraphs","h":"#references","p":198},{"i":217,"t":"List of Web References","u":"/lodestar/contribution/tools/flamegraphs","h":"#list-of-web-references","p":198},{"i":219,"t":"Visualization Tools","u":"/lodestar/contribution/tools/flamegraphs","h":"#visualization-tools","p":198},{"i":221,"t":"Collecting on Linux","u":"/lodestar/contribution/tools/flamegraphs","h":"#collecting-on-linux","p":198},{"i":223,"t":"Collecting on MacOS","u":"/lodestar/contribution/tools/flamegraphs","h":"#collecting-on-macos","p":198},{"i":227,"t":"Tooling","u":"/lodestar/faqs","h":"#tooling","p":225},{"i":229,"t":"Troubleshooting Lodestar","u":"/lodestar/faqs","h":"#troubleshooting-lodestar","p":225},{"i":230,"t":"Running a beacon node","u":"/lodestar/faqs","h":"#running-a-beacon-node","p":225},{"i":232,"t":"Using Kubernetes","u":"/lodestar/faqs","h":"#using-kubernetes","p":225},{"i":236,"t":"JavaScript Heap Dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#javascript-heap-dump","p":234},{"i":238,"t":"Creating a V8 heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#creating-a-v8-heap-dump","p":234},{"i":240,"t":"Viewing a V8 heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#viewing-a-v8-heap-dump","p":234},{"i":242,"t":"Analyzing a V8 heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#analyzing-a-v8-heap-dump","p":234},{"i":244,"t":"Native Heap Dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#native-heap-dump","p":234},{"i":246,"t":"Build collection tools","u":"/lodestar/contribution/tools/heap-dumps","h":"#build-collection-tools","p":234},{"i":248,"t":"Collect a heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#collect-a-heap-dump","p":234},{"i":250,"t":"Collecting a heap dump on a running process","u":"/lodestar/contribution/tools/heap-dumps","h":"#collecting-a-heap-dump-on-a-running-process","p":234},{"i":252,"t":"Installing heaptrack-gui on Linux","u":"/lodestar/contribution/tools/heap-dumps","h":"#installing-heaptrack-gui-on-linux","p":234},{"i":254,"t":"Installing heaptrack-gui on OSX","u":"/lodestar/contribution/tools/heap-dumps","h":"#installing-heaptrack-gui-on-osx","p":234},{"i":258,"t":"Proof of Stake","u":"/lodestar/introduction","h":"#proof-of-stake","p":256},{"i":260,"t":"Consensus Clients","u":"/lodestar/introduction","h":"#consensus-clients","p":256},{"i":262,"t":"Why Client Diversity?","u":"/lodestar/introduction","h":"#why-client-diversity","p":256},{"i":264,"t":"Ethereum Reading List","u":"/lodestar/introduction","h":"#ethereum-reading-list","p":256},{"i":269,"t":"Prerequisites","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#prerequisites","p":267},{"i":271,"t":"Requirements for Running a Light-Client","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#requirements-for-running-a-light-client","p":267},{"i":273,"t":"Getting started","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#getting-started","p":267},{"i":275,"t":"Light-Client CLI Example","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#light-client-cli-example","p":267},{"i":277,"t":"Light-Client Programmatic Example","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#light-client-programmatic-example","p":267},{"i":279,"t":"Browser Integration","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#browser-integration","p":267},{"i":281,"t":"Contributors","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#contributors","p":267},{"i":283,"t":"License","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#license","p":267},{"i":287,"t":"Usage","u":"/lodestar/libraries/lightclient-prover/prover","h":"#usage","p":285},{"i":289,"t":"How to detect a web3 provider","u":"/lodestar/libraries/lightclient-prover/prover","h":"#how-to-detect-a-web3-provider","p":285},{"i":291,"t":"Supported Web3 Methods","u":"/lodestar/libraries/lightclient-prover/prover","h":"#supported-web3-methods","p":285},{"i":293,"t":"Non-supported features","u":"/lodestar/libraries/lightclient-prover/prover","h":"#non-supported-features","p":285},{"i":295,"t":"Warnings","u":"/lodestar/libraries/lightclient-prover/prover","h":"#warnings","p":285},{"i":297,"t":"Prerequisites","u":"/lodestar/libraries/lightclient-prover/prover","h":"#prerequisites","p":285},{"i":299,"t":"What you need","u":"/lodestar/libraries/lightclient-prover/prover","h":"#what-you-need","p":285},{"i":301,"t":"Getting started","u":"/lodestar/libraries/lightclient-prover/prover","h":"#getting-started","p":285},{"i":303,"t":"Contributors","u":"/lodestar/libraries/lightclient-prover/prover","h":"#contributors","p":285},{"i":305,"t":"License","u":"/lodestar/libraries/lightclient-prover/prover","h":"#license","p":285},{"i":309,"t":"Examples","u":"/lodestar/libraries/lightclient-prover/lightclient-cli","h":"#examples","p":307},{"i":311,"t":"lightclient Options","u":"/lodestar/libraries/lightclient-prover/lightclient-cli","h":"#lightclient-options","p":307},{"i":317,"t":"Examples","u":"/lodestar/run/beacon-management/beacon-cli","h":"#examples","p":315},{"i":319,"t":"beacon Options","u":"/lodestar/run/beacon-management/beacon-cli","h":"#beacon-options","p":315},{"i":323,"t":"Data Management","u":"/lodestar/run/beacon-management/data-retention","h":"#data-management","p":321},{"i":327,"t":"Networking Flags","u":"/lodestar/run/beacon-management/networking","h":"#networking-flags","p":325},{"i":329,"t":"Peer Discovery (Discv5)","u":"/lodestar/run/beacon-management/networking","h":"#peer-discovery-discv5","p":325},{"i":331,"t":"ENR","u":"/lodestar/run/beacon-management/networking","h":"#enr","p":325},{"i":333,"t":"Peer Communication (gossipsub and Req/Resp)","u":"/lodestar/run/beacon-management/networking","h":"#peer-communication-gossipsub-and-reqresp","p":325},{"i":335,"t":"Gossipsub","u":"/lodestar/run/beacon-management/networking","h":"#gossipsub","p":325},{"i":337,"t":"Req/Resp","u":"/lodestar/run/beacon-management/networking","h":"#reqresp","p":325},{"i":339,"t":"Data Transport (libp2p)","u":"/lodestar/run/beacon-management/networking","h":"#data-transport-libp2p","p":325},{"i":341,"t":"Firewall Management","u":"/lodestar/run/beacon-management/networking","h":"#firewall-management","p":325},{"i":343,"t":"NAT Traversal","u":"/lodestar/run/beacon-management/networking","h":"#nat-traversal","p":325},{"i":347,"t":"Lodestar and Builder API","u":"/lodestar/run/beacon-management/mev-and-builder-integration","h":"#lodestar-and-builder-api","p":345},{"i":349,"t":"Configure Lodestar setup for MEV","u":"/lodestar/run/beacon-management/mev-and-builder-integration","h":"#configure-lodestar-setup-for-mev","p":345},{"i":353,"t":"Connect to Mainnet or a Public Testnet","u":"/lodestar/run/beacon-management/starting-a-node","h":"#connect-to-mainnet-or-a-public-testnet","p":351},{"i":355,"t":"Configure the Lodestar JWT Authentication Token","u":"/lodestar/run/beacon-management/starting-a-node","h":"#configure-the-lodestar-jwt-authentication-token","p":351},{"i":357,"t":"Generate a Secret Key","u":"/lodestar/run/beacon-management/starting-a-node","h":"#generate-a-secret-key","p":351},{"i":359,"t":"Configure Lodestar to Locate the JWT Secret","u":"/lodestar/run/beacon-management/starting-a-node","h":"#configure-lodestar-to-locate-the-jwt-secret","p":351},{"i":361,"t":"Configure the Execution Client with the JWT Secret","u":"/lodestar/run/beacon-management/starting-a-node","h":"#configure-the-execution-client-with-the-jwt-secret","p":351},{"i":363,"t":"Run the Beacon Node","u":"/lodestar/run/beacon-management/starting-a-node","h":"#run-the-beacon-node","p":351},{"i":365,"t":"Checkpoint Sync","u":"/lodestar/run/beacon-management/starting-a-node","h":"#checkpoint-sync","p":351},{"i":367,"t":"Sync Log Guide","u":"/lodestar/run/beacon-management/starting-a-node","h":"#sync-log-guide","p":351},{"i":371,"t":"Weak Subjectivity","u":"/lodestar/run/beacon-management/syncing","h":"#weak-subjectivity","p":369},{"i":373,"t":"Syncing Methods","u":"/lodestar/run/beacon-management/syncing","h":"#syncing-methods","p":369},{"i":374,"t":"Checkpoint Sync","u":"/lodestar/run/beacon-management/syncing","h":"#checkpoint-sync","p":369},{"i":376,"t":"Historical Sync","u":"/lodestar/run/beacon-management/syncing","h":"#historical-sync","p":369},{"i":378,"t":"Range Sync","u":"/lodestar/run/beacon-management/syncing","h":"#range-sync","p":369},{"i":380,"t":"Backfill Sync","u":"/lodestar/run/beacon-management/syncing","h":"#backfill-sync","p":369},{"i":382,"t":"Syncing Lodestar","u":"/lodestar/run/beacon-management/syncing","h":"#syncing-lodestar","p":369},{"i":386,"t":"bootnode Options","u":"/lodestar/run/bootnode/bootnode-cli","h":"#bootnode-options","p":384},{"i":389,"t":"Binaries","u":"/lodestar/run/getting-started/installation","h":"#binaries","p":388},{"i":391,"t":"Docker Installation","u":"/lodestar/run/getting-started/installation","h":"#docker-installation","p":388},{"i":393,"t":"Build from Source","u":"/lodestar/run/getting-started/installation","h":"#build-from-source","p":388},{"i":394,"t":"Prerequisites","u":"/lodestar/run/getting-started/installation","h":"#prerequisites","p":388},{"i":396,"t":"Clone repository","u":"/lodestar/run/getting-started/installation","h":"#clone-repository","p":388},{"i":398,"t":"Install packages","u":"/lodestar/run/getting-started/installation","h":"#install-packages","p":388},{"i":400,"t":"Build source code","u":"/lodestar/run/getting-started/installation","h":"#build-source-code","p":388},{"i":402,"t":"Lodestar CLI","u":"/lodestar/run/getting-started/installation","h":"#lodestar-cli","p":388},{"i":404,"t":"Known Issues","u":"/lodestar/run/getting-started/installation","h":"#known-issues","p":388},{"i":406,"t":"Install from NPM [not recommended]","u":"/lodestar/run/getting-started/installation","h":"#install-from-npm-not-recommended","p":388},{"i":410,"t":"Support","u":"/lodestar/run/getting-started/quick-start","h":"#support","p":408},{"i":412,"t":"Customizations (Optional)","u":"/lodestar/run/getting-started/quick-start","h":"#customizations-optional","p":408},{"i":416,"t":"Configuration","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"#configuration","p":414},{"i":418,"t":"Remote endpoint URL","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"#remote-endpoint-url","p":414},{"i":420,"t":"Monitoring interval","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"#monitoring-interval","p":414},{"i":424,"t":"Localized Docker Metrics Script","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"#localized-docker-metrics-script","p":422},{"i":426,"t":"Prometheus Setup","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"#prometheus-setup","p":422},{"i":428,"t":"Grafana Setup","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"#grafana-setup","p":422},{"i":432,"t":"Configuration","u":"/lodestar/run/validator-management/external-signer","h":"#configuration","p":430},{"i":438,"t":"Support","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#support","p":436},{"i":440,"t":"Prerequisites","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#prerequisites","p":436},{"i":442,"t":"Testnet to Mainnet","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#testnet-to-mainnet","p":436},{"i":444,"t":"Hardware Requirements","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#hardware-requirements","p":436},{"i":446,"t":"Setup Machine & Repository","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#setup-machine--repository","p":436},{"i":447,"t":"Install Docker Engine & Docker Compose","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#install-docker-engine--docker-compose","p":436},{"i":449,"t":"Configure Lodestar Quick Scripts","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-lodestar-quick-scripts","p":436},{"i":450,"t":"Navigate to the root directory","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#navigate-to-the-root-directory","p":436},{"i":452,"t":"Create your own JWT Secret","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#create-your-own-jwt-secret","p":436},{"i":454,"t":"Input your JWT Secret into the import-args.sh script","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#input-your-jwt-secret-into-the-import-argssh-script","p":436},{"i":456,"t":"Configure feeRecipient","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-feerecipient","p":436},{"i":458,"t":"Set minimum bid for MEV-Boost validators","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#set-minimum-bid-for-mev-boost-validators","p":436},{"i":460,"t":"Configuring your Network","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configuring-your-network","p":436},{"i":462,"t":"Select your Network","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#select-your-network","p":436},{"i":464,"t":"Configure MEV-boost relays","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-mev-boost-relays","p":436},{"i":466,"t":"Configure Lodestar version","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-lodestar-version","p":436},{"i":468,"t":"Modify your weak subjectivity (checkpoint sync) provider","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#modify-your-weak-subjectivity-checkpoint-sync-provider","p":436},{"i":470,"t":"Modify other client parameters (For advanced users)","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#modify-other-client-parameters-for-advanced-users","p":436},{"i":472,"t":"Setup Validators","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#setup-validators","p":436},{"i":474,"t":"Create validator keystore password","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#create-validator-keystore-password","p":436},{"i":476,"t":"Option 1: Setup validators with keystores","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#option-1-setup-validators-with-keystores","p":436},{"i":478,"t":"Option 2: Setup multiple validator sets with keystores encrypted under different passwords","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#option-2-setup-multiple-validator-sets-with-keystores-encrypted-under-different-passwords","p":436},{"i":480,"t":"Option 3: Setup validators with mnemonic","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#option-3-setup-validators-with-mnemonic","p":436},{"i":482,"t":"Startup Quickstart Script","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#startup-quickstart-script","p":436},{"i":484,"t":"Quickstart Script Help","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#quickstart-script-help","p":436},{"i":486,"t":"Check Containers","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-containers","p":436},{"i":488,"t":"Check Container Logs","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-container-logs","p":436},{"i":490,"t":"Check beacon node is progressing","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-beacon-node-is-progressing","p":436},{"i":492,"t":"Check validators are detected and decrypted","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-validators-are-detected-and-decrypted","p":436},{"i":494,"t":"Stop Containers","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#stop-containers","p":436},{"i":496,"t":"Appendix","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"","p":436},{"i":497,"t":"Appendix A - Expanding the Logical Volume","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#appendix-a---expanding-the-logical-volume","p":436},{"i":499,"t":"Appendix B - Update client images","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#appendix-b---update-client-images","p":436},{"i":501,"t":"Full Disclaimer","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#full-disclaimer","p":436},{"i":505,"t":"Example proposer_config.yaml","u":"/lodestar/run/validator-management/proposer-config","h":"#example-proposer_configyaml","p":503},{"i":507,"t":"Enable Proposer Configuration","u":"/lodestar/run/validator-management/proposer-config","h":"#enable-proposer-configuration","p":503},{"i":511,"t":"Available Sub-Commands","u":"/lodestar/run/validator-management/validator-cli","h":"#available-sub-commands","p":509},{"i":513,"t":"Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#examples","p":509},{"i":514,"t":"Base validator command","u":"/lodestar/run/validator-management/validator-cli","h":"#base-validator-command","p":509},{"i":516,"t":"validator Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-options","p":509},{"i":518,"t":"validator slashing-protection import","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-import","p":509},{"i":520,"t":"validator slashing-protection import Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-import-options","p":509},{"i":522,"t":"validator slashing-protection export","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-export","p":509},{"i":524,"t":"validator slashing-protection export Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-export-options","p":509},{"i":526,"t":"validator import","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-import","p":509},{"i":528,"t":"validator import Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-import-examples","p":509},{"i":530,"t":"validator import Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-import-options","p":509},{"i":532,"t":"validator list","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-list","p":509},{"i":534,"t":"validator list Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-list-examples","p":509},{"i":536,"t":"validator voluntary-exit","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-voluntary-exit","p":509},{"i":538,"t":"validator voluntary-exit Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-voluntary-exit-examples","p":509},{"i":540,"t":"validator voluntary-exit Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-voluntary-exit-options","p":509},{"i":542,"t":"validator bls-to-execution-change","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-bls-to-execution-change","p":509},{"i":544,"t":"validator bls-to-execution-change Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-bls-to-execution-change-examples","p":509},{"i":546,"t":"validator bls-to-execution-change Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-bls-to-execution-change-options","p":509},{"i":550,"t":"Setup your validator","u":"/lodestar/run/validator-management/vc-configuration","h":"#setup-your-validator","p":548},{"i":552,"t":"Create a keystore","u":"/lodestar/run/validator-management/vc-configuration","h":"#create-a-keystore","p":548},{"i":554,"t":"Import a validator keystore to Lodestar","u":"/lodestar/run/validator-management/vc-configuration","h":"#import-a-validator-keystore-to-lodestar","p":548},{"i":556,"t":"Configuring the fee recipient address","u":"/lodestar/run/validator-management/vc-configuration","h":"#configuring-the-fee-recipient-address","p":548},{"i":558,"t":"Configure your builder selection and/or builder boost factor","u":"/lodestar/run/validator-management/vc-configuration","h":"#configure-your-builder-selection-andor-builder-boost-factor","p":548},{"i":560,"t":"Submit a validator deposit","u":"/lodestar/run/validator-management/vc-configuration","h":"#submit-a-validator-deposit","p":548},{"i":562,"t":"Run the validator","u":"/lodestar/run/validator-management/vc-configuration","h":"#run-the-validator","p":548},{"i":565,"t":"Supported Versions","u":"/lodestar/security","h":"#supported-versions","p":564},{"i":567,"t":"Reporting a Vulnerability","u":"/lodestar/security","h":"#reporting-a-vulnerability","p":564},{"i":571,"t":"Networking","u":"/lodestar/supporting-libraries/","h":"#networking","p":570},{"i":572,"t":"LibP2P","u":"/lodestar/supporting-libraries/","h":"#libp2p","p":570},{"i":574,"t":"Discv5","u":"/lodestar/supporting-libraries/","h":"#discv5","p":570},{"i":576,"t":"Serialization and Hashing","u":"/lodestar/supporting-libraries/","h":"#serialization-and-hashing","p":570},{"i":578,"t":"BLS","u":"/lodestar/supporting-libraries/","h":"#bls","p":570},{"i":582,"t":"Monorepo libraries","u":"/lodestar/supporting-libraries/libraries","h":"#monorepo-libraries","p":580},{"i":584,"t":"Other libraries","u":"/lodestar/supporting-libraries/libraries","h":"#other-libraries","p":580},{"i":585,"t":"BLS Utilities","u":"/lodestar/supporting-libraries/libraries","h":"#bls-utilities","p":580},{"i":587,"t":"Hashing","u":"/lodestar/supporting-libraries/libraries","h":"#hashing","p":580},{"i":589,"t":"Networking","u":"/lodestar/supporting-libraries/libraries","h":"#networking","p":580}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,4.705,1,2.571,2,4.238]],["t/4",[3,4.371,4,4.371]],["t/6",[5,6.112]],["t/8",[6,4.155,7,3.456]],["t/10",[8,6.786]],["t/12",[9,5.006,10,5.557]],["t/20",[11,4.08,12,4.08,13,3.675,14,3.408]],["t/24",[1,2.571,15,4.238,16,4.705]],["t/26",[1,3.036,17,4.642]],["t/28",[18,6.786]],["t/30",[19,6.786]],["t/32",[20,5.557,21,4.371]],["t/34",[22,6.786]],["t/36",[23,6.786]],["t/38",[24,6.786]],["t/40",[25,5.557,26,5.557]],["t/42",[7,3.456,27,5.557]],["t/44",[28,6.786]],["t/46",[29,6.786]],["t/48",[30,6.786]],["t/50",[31,6.786]],["t/52",[32,4.705,33,2.767,34,4.238]],["t/54",[35,5.557,36,5.557]],["t/56",[37,6.786]],["t/58",[38,6.786]],["t/60",[39,6.786]],["t/62",[15,5.006,40,5.557]],["t/64",[41,5.557,42,5.557]],["t/66",[43,6.786]],["t/68",[44,3.931,45,3.365,46,3.931]],["t/70",[44,3.931,45,3.365,47,4.705]],["t/72",[44,3.931,45,3.365,48,4.705]],["t/74",[49,6.786]],["t/76",[45,3.974,50,5.557]],["t/80",[51,5.073]],["t/82",[5,5.006,52,5.006]],["t/84",[3,4.371,4,4.371]],["t/86",[33,3.991]],["t/88",[53,6.786]],["t/90",[54,5.557,55,5.006]],["t/92",[33,2.767,56,4.705,57,4.238]],["t/94",[58,5.337]],["t/96",[59,4.705,60,4.705,61,3.931]],["t/98",[62,4.642,63,5.557]],["t/100",[64,4.642,65,4.642]],["t/102",[66,4.705,67,3.931,68,3.518]],["t/104",[1,3.036,17,4.642]],["t/106",[67,4.642,68,4.155]],["t/108",[33,2.767,67,3.931,68,3.518]],["t/110",[69,3.974,70,5.557]],["t/111",[69,3.974,71,5.557]],["t/113",[69,3.974,72,5.557]],["t/115",[64,3.931,73,4.238,74,4.705]],["t/117",[75,4.238,76,4.705,77,3.365]],["t/119",[2,5.006,64,4.642]],["t/121",[68,4.155,78,5.557]],["t/123",[79,6.112]],["t/129",[80,3.991]],["t/131",[81,5.557,82,3.108]],["t/135",[33,3.268,83,5.557]],["t/137",[33,3.268,57,5.006]],["t/139",[33,3.268,84,5.557]],["t/141",[33,2.767,85,6.648]],["t/143",[33,3.268,86,5.006]],["t/145",[33,3.268,87,4.155]],["t/153",[33,2.767,88,3.234,89,4.238]],["t/155",[90,5.006,91,5.557]],["t/157",[92,6.786]],["t/159",[93,6.786]],["t/161",[94,6.786]],["t/163",[95,6.786]],["t/165",[33,2.767,89,4.238,96,4.705]],["t/167",[87,4.155,90,5.006]],["t/169",[87,4.155,97,5.006]],["t/171",[97,5.006,98,5.006]],["t/173",[62,4.642,87,4.155]],["t/175",[69,3.974,87,4.155]],["t/185",[99,3.685,100,5.557]],["t/187",[101,3.365,102,4.238,103,3.018]],["t/189",[102,4.238,103,3.018,104,4.238]],["t/193",[105,4.08,106,3.675,107,4.08,108,4.08]],["t/195",[65,3.931,88,3.234,109,4.705]],["t/200",[1,2.571,110,3.931,111,3.931]],["t/202",[80,3.268,112,5.557]],["t/204",[113,4.705,114,4.705,115,4.705]],["t/206",[116,5.557,117,5.557]],["t/208",[99,4.499]],["t/210",[118,6.112]],["t/212",[119,5.006,120,5.557]],["t/214",[121,6.786]],["t/215",[119,6.112]],["t/216",[122,6.112]],["t/217",[122,4.238,123,3.701,124,4.705]],["t/219",[125,5.557,126,4.642]],["t/221",[101,3.974,111,4.642]],["t/223",[52,5.006,101,3.974]],["t/227",[126,5.669]],["t/229",[1,3.036,127,5.557]],["t/230",[21,3.701,88,3.234,128,3.701]],["t/232",[75,5.006,129,5.557]],["t/236",[103,3.018,130,4.705,131,3.234]],["t/238",[103,2.617,131,2.804,132,3.209,133,3.408]],["t/240",[103,2.617,131,2.804,133,3.408,134,4.08]],["t/242",[103,2.617,104,3.675,131,2.804,133,3.408]],["t/244",[103,3.018,131,3.234,135,4.705]],["t/246",[101,3.365,126,3.931,136,3.931]],["t/248",[101,3.365,103,3.018,131,3.234]],["t/250",[65,3.009,88,2.475,101,2.575,103,2.31,131,2.475]],["t/252",[99,2.705,111,3.408,137,3.675,138,3.675]],["t/254",[99,2.705,137,3.675,138,3.675,139,4.08]],["t/258",[140,5.557,141,5.557]],["t/260",[7,3.456,142,5.557]],["t/262",[7,3.456,143,5.557]],["t/264",[123,3.701,144,4.705,145,4.705]],["t/269",[51,5.073]],["t/271",[7,2.538,88,2.804,146,3.675,147,3.408]],["t/273",[3,4.371,4,4.371]],["t/275",[7,2.538,80,2.399,147,3.408,148,3.675]],["t/277",[7,2.538,80,2.399,147,3.408,149,4.08]],["t/279",[86,5.006,150,5.557]],["t/281",[61,5.669]],["t/283",[151,6.112]],["t/287",[118,6.112]],["t/289",[152,4.238,153,4.238,154,4.238]],["t/291",[153,4.238,155,3.518,156,4.238]],["t/293",[155,3.518,157,4.705,158,4.705]],["t/295",[159,6.786]],["t/297",[51,5.073]],["t/299",[9,6.112]],["t/301",[3,4.371,4,4.371]],["t/303",[61,5.669]],["t/305",[151,6.112]],["t/309",[80,3.991]],["t/311",[82,3.108,160,5.557]],["t/317",[80,3.991]],["t/319",[82,3.108,128,4.371]],["t/323",[161,5.006,162,5.006]],["t/327",[163,4.155,164,5.557]],["t/329",[165,4.238,166,4.705,167,4.238]],["t/331",[168,6.786]],["t/333",[46,3.408,79,3.675,165,3.675,169,3.675]],["t/335",[46,5.669]],["t/337",[169,6.112]],["t/339",[45,3.365,161,4.238,170,4.705]],["t/341",[162,5.006,171,5.557]],["t/343",[172,5.557,173,5.557]],["t/347",[1,2.571,174,4.238,175,4.705]],["t/349",[1,2.229,176,2.282,177,2.617,178,3.408]],["t/353",[14,3.408,179,4.08,180,3.675,181,4.08]],["t/355",[1,1.967,176,2.014,182,2.692,183,3.601,184,3.601]],["t/357",[185,4.705,186,3.518,187,4.705]],["t/359",[1,1.967,176,2.014,182,2.692,186,2.692,188,3.601]],["t/361",[6,2.692,7,2.24,176,2.014,182,2.692,186,2.692]],["t/363",[21,3.701,88,3.234,128,3.701]],["t/365",[189,4.642,190,3.564]],["t/367",[68,3.518,69,3.365,190,3.018]],["t/371",[191,5.006,192,5.006]],["t/373",[156,5.006,190,3.564]],["t/374",[189,4.642,190,3.564]],["t/376",[190,3.564,193,5.557]],["t/378",[190,3.564,194,5.557]],["t/380",[190,3.564,195,5.557]],["t/382",[1,3.036,190,3.564]],["t/386",[82,3.108,196,5.557]],["t/389",[197,6.786]],["t/391",[58,4.371,99,3.685]],["t/393",[136,4.642,198,5.006]],["t/394",[51,5.073]],["t/396",[199,5.557,200,5.006]],["t/398",[99,3.685,201,5.557]],["t/400",[106,4.238,136,3.931,198,4.238]],["t/402",[1,3.036,148,5.006]],["t/404",[55,5.006,202,5.557]],["t/406",[99,3.12,203,4.705,204,4.705]],["t/410",[155,5.073]],["t/412",[82,3.108,98,5.006]],["t/416",[176,3.795]],["t/418",[205,4.705,206,4.705,207,4.705]],["t/420",[208,5.557,209,5.557]],["t/424",[13,3.675,58,3.209,77,2.918,210,4.08]],["t/426",[177,3.564,211,5.557]],["t/428",[73,5.006,177,3.564]],["t/432",[176,3.795]],["t/438",[155,5.073]],["t/440",[51,5.073]],["t/442",[14,4.642,180,5.006]],["t/444",[146,5.006,212,5.557]],["t/446",[177,2.617,200,3.675,213,4.08,214,3.675]],["t/447",[58,3.947,99,2.137,214,2.903,215,3.223,216,3.223]],["t/449",[1,2.229,77,2.918,176,2.282,217,4.08]],["t/450",[218,4.705,219,4.705,220,4.705]],["t/452",[132,3.701,182,3.518,186,3.518]],["t/454",[77,2.305,182,2.41,186,2.41,221,3.223,222,2.215,223,3.223]],["t/456",[176,3.108,224,5.557]],["t/458",[178,2.693,225,2.903,226,3.223,227,3.223,228,2.693,229,1.379]],["t/460",[163,4.155,176,3.108]],["t/462",[163,4.155,230,5.006]],["t/464",[176,2.282,178,3.408,228,3.408,231,4.08]],["t/466",[1,2.571,176,2.632,232,4.238]],["t/468",[110,2.693,154,2.903,189,2.693,190,2.067,191,2.903,192,2.903]],["t/470",[7,2.24,110,3.009,233,3.601,234,3.601,235,3.601]],["t/472",[177,3.564,229,2.378]],["t/474",[132,3.209,229,1.746,236,3.05,237,3.675]],["t/476",[82,2.014,177,2.31,229,1.541,236,2.692,238,3.601]],["t/478",[82,1.182,177,1.356,225,1.904,229,0.905,236,1.58,237,1.904,239,2.114,240,2.114,241,2.114,242,2.114,243,2.114]],["t/480",[82,2.014,177,2.31,229,1.541,244,3.601,245,3.601]],["t/482",[77,3.365,246,4.705,247,4.238]],["t/484",[77,3.365,247,4.238,248,4.705]],["t/486",[249,4.371,250,4.642]],["t/488",[69,3.365,249,3.701,250,3.931]],["t/490",[21,3.209,128,3.209,249,3.209,251,4.08]],["t/492",[152,3.675,229,1.746,249,3.209,252,4.08]],["t/494",[250,4.642,253,5.557]],["t/496",[254,5.669]],["t/497",[254,3.408,255,4.08,256,4.08,257,4.08]],["t/499",[7,2.24,254,3.009,258,3.601,259,3.601,260,3.601]],["t/501",[261,5.557,262,5.557]],["t/505",[80,3.268,263,5.557]],["t/507",[176,2.632,264,4.705,265,4.705]],["t/511",[266,4.705,267,4.705,268,4.238]],["t/513",[80,3.991]],["t/514",[229,2.014,268,4.238,269,4.705]],["t/516",[82,3.108,229,2.378]],["t/518",[222,2.804,229,1.746,270,3.209,271,3.209]],["t/520",[82,2.014,222,2.475,229,1.541,270,2.833,271,2.833]],["t/522",[229,1.746,270,3.209,271,3.209,272,3.675]],["t/524",[82,2.014,229,1.541,270,2.833,271,2.833,272,3.244]],["t/526",[222,3.82,229,2.378]],["t/528",[80,2.767,222,3.234,229,2.014]],["t/530",[82,2.632,222,3.234,229,2.014]],["t/532",[123,4.371,229,2.378]],["t/534",[80,2.767,123,3.701,229,2.014]],["t/536",[229,2.014,273,3.931,274,3.931]],["t/538",[80,2.399,229,1.746,273,3.408,274,3.408]],["t/540",[82,2.282,229,1.746,273,3.408,274,3.408]],["t/542",[6,3.05,229,1.746,275,3.05,276,3.408]],["t/544",[6,2.692,80,2.118,229,1.541,275,2.692,276,3.009]],["t/546",[6,2.692,82,2.014,229,1.541,275,2.692,276,3.009]],["t/550",[177,3.564,229,2.378]],["t/552",[132,4.371,236,4.155]],["t/554",[1,2.229,222,2.804,229,1.746,236,3.05]],["t/556",[176,2.282,277,4.08,278,4.08,279,4.08]],["t/558",[174,4.179,176,1.631,228,2.437,230,2.627,280,2.917,281,2.917]],["t/560",[229,2.014,282,4.705,283,4.705]],["t/562",[88,3.82,229,2.378]],["t/565",[155,4.155,232,5.006]],["t/567",[62,4.642,284,5.557]],["t/571",[163,5.073]],["t/572",[45,4.853]],["t/574",[167,6.112]],["t/576",[285,5.557,286,5.006]],["t/578",[275,5.073]],["t/582",[17,4.642,287,5.006]],["t/584",[287,6.112]],["t/585",[34,5.006,275,4.155]],["t/587",[286,6.112]],["t/589",[163,5.073]]],"invertedIndex":[["",{"_index":214,"t":{"446":{"position":[[14,1]]},"447":{"position":[[22,1]]}}}],["1",{"_index":238,"t":{"476":{"position":[[7,2]]}}}],["2",{"_index":239,"t":{"478":{"position":[[7,2]]}}}],["3",{"_index":244,"t":{"480":{"position":[[7,2]]}}}],["address",{"_index":279,"t":{"556":{"position":[[30,7]]}}}],["advanc",{"_index":234,"t":{"470":{"position":[[36,8]]}}}],["analyz",{"_index":104,"t":{"189":{"position":[[0,9]]},"242":{"position":[[0,9]]}}}],["and/or",{"_index":280,"t":{"558":{"position":[[33,6]]}}}],["api",{"_index":175,"t":{"347":{"position":[[21,3]]}}}],["appendix",{"_index":254,"t":{"496":{"position":[[0,8]]},"497":{"position":[[0,8]]},"499":{"position":[[0,8]]}}}],["args.sh",{"_index":223,"t":{"454":{"position":[[38,7]]}}}],["assert",{"_index":97,"t":{"169":{"position":[[11,10]]},"171":{"position":[[7,10]]}}}],["assist",{"_index":10,"t":{"12":{"position":[[5,11]]}}}],["attach",{"_index":109,"t":{"195":{"position":[[0,6]]}}}],["authent",{"_index":183,"t":{"355":{"position":[[27,14]]}}}],["avail",{"_index":266,"t":{"511":{"position":[[0,9]]}}}],["b",{"_index":258,"t":{"499":{"position":[[9,1]]}}}],["backfil",{"_index":195,"t":{"380":{"position":[[0,8]]}}}],["base",{"_index":269,"t":{"514":{"position":[[0,4]]}}}],["beacon",{"_index":128,"t":{"230":{"position":[[10,6]]},"319":{"position":[[0,6]]},"363":{"position":[[8,6]]},"490":{"position":[[6,6]]}}}],["bid",{"_index":227,"t":{"458":{"position":[[12,3]]}}}],["binari",{"_index":197,"t":{"389":{"position":[[0,8]]}}}],["bl",{"_index":275,"t":{"542":{"position":[[10,3]]},"544":{"position":[[10,3]]},"546":{"position":[[10,3]]},"578":{"position":[[0,3]]},"585":{"position":[[0,3]]}}}],["boost",{"_index":228,"t":{"458":{"position":[[24,5]]},"464":{"position":[[14,5]]},"558":{"position":[[48,5]]}}}],["bootnod",{"_index":196,"t":{"386":{"position":[[0,8]]}}}],["browser",{"_index":150,"t":{"279":{"position":[[0,7]]}}}],["bug",{"_index":63,"t":{"98":{"position":[[12,4]]}}}],["build",{"_index":136,"t":{"246":{"position":[[0,5]]},"393":{"position":[[0,5]]},"400":{"position":[[0,5]]}}}],["builder",{"_index":174,"t":{"347":{"position":[[13,7]]},"558":{"position":[[15,7],[40,7]]}}}],["captur",{"_index":113,"t":{"204":{"position":[[0,9]]}}}],["chainsafe/blst",{"_index":41,"t":{"64":{"position":[[0,15]]}}}],["chainsafe/discv5",{"_index":43,"t":{"66":{"position":[[0,17]]}}}],["chainsafe/j",{"_index":44,"t":{"68":{"position":[[0,13]]},"70":{"position":[[0,13]]},"72":{"position":[[0,13]]}}}],["chainsafe/lodestar",{"_index":18,"t":{"28":{"position":[[0,19]]}}}],["chainsafe/ssz",{"_index":49,"t":{"74":{"position":[[0,14]]}}}],["chang",{"_index":276,"t":{"542":{"position":[[27,6]]},"544":{"position":[[27,6]]},"546":{"position":[[27,6]]}}}],["check",{"_index":249,"t":{"486":{"position":[[0,5]]},"488":{"position":[[0,5]]},"490":{"position":[[0,5]]},"492":{"position":[[0,5]]}}}],["checkpoint",{"_index":189,"t":{"365":{"position":[[0,10]]},"374":{"position":[[0,10]]},"468":{"position":[[30,11]]}}}],["choic",{"_index":26,"t":{"40":{"position":[[15,6]]}}}],["cli",{"_index":148,"t":{"275":{"position":[[13,3]]},"402":{"position":[[9,3]]}}}],["client",{"_index":7,"t":{"8":{"position":[[10,6]]},"42":{"position":[[16,6]]},"260":{"position":[[10,7]]},"262":{"position":[[4,6]]},"271":{"position":[[33,6]]},"275":{"position":[[6,6]]},"277":{"position":[[6,6]]},"361":{"position":[[24,6]]},"470":{"position":[[13,6]]},"499":{"position":[[20,6]]}}}],["clone",{"_index":199,"t":{"396":{"position":[[0,5]]}}}],["code",{"_index":106,"t":{"193":{"position":[[3,4]]},"400":{"position":[[13,4]]}}}],["collect",{"_index":101,"t":{"187":{"position":[[0,10]]},"221":{"position":[[0,10]]},"223":{"position":[[0,10]]},"246":{"position":[[6,10]]},"248":{"position":[[0,7]]},"250":{"position":[[0,10]]}}}],["command",{"_index":268,"t":{"511":{"position":[[14,8]]},"514":{"position":[[15,7]]}}}],["common",{"_index":54,"t":{"90":{"position":[[0,6]]}}}],["commun",{"_index":79,"t":{"123":{"position":[[0,9]]},"333":{"position":[[5,13]]}}}],["compos",{"_index":216,"t":{"447":{"position":[[31,7]]}}}],["config",{"_index":108,"t":{"193":{"position":[[15,6]]}}}],["configur",{"_index":176,"t":{"349":{"position":[[0,9]]},"355":{"position":[[0,9]]},"359":{"position":[[0,9]]},"361":{"position":[[0,9]]},"416":{"position":[[0,13]]},"432":{"position":[[0,13]]},"449":{"position":[[0,9]]},"456":{"position":[[0,9]]},"460":{"position":[[0,11]]},"464":{"position":[[0,9]]},"466":{"position":[[0,9]]},"507":{"position":[[16,13]]},"556":{"position":[[0,11]]},"558":{"position":[[0,9]]}}}],["connect",{"_index":179,"t":{"353":{"position":[[0,7]]}}}],["consensu",{"_index":142,"t":{"260":{"position":[[0,9]]}}}],["contain",{"_index":250,"t":{"486":{"position":[[6,10]]},"488":{"position":[[6,9]]},"494":{"position":[[5,10]]}}}],["contribut",{"_index":64,"t":{"100":{"position":[[0,12]]},"115":{"position":[[0,12]]},"119":{"position":[[0,12]]}}}],["contributor",{"_index":61,"t":{"96":{"position":[[11,12]]},"281":{"position":[[0,12]]},"303":{"position":[[0,12]]}}}],["core",{"_index":102,"t":{"187":{"position":[[13,4]]},"189":{"position":[[12,4]]}}}],["creat",{"_index":132,"t":{"238":{"position":[[0,8]]},"452":{"position":[[0,6]]},"474":{"position":[[0,6]]},"552":{"position":[[0,6]]}}}],["custom",{"_index":98,"t":{"171":{"position":[[0,6]]},"412":{"position":[[0,14]]}}}],["dashboard",{"_index":74,"t":{"115":{"position":[[24,10]]}}}],["data",{"_index":161,"t":{"323":{"position":[[0,4]]},"339":{"position":[[0,4]]}}}],["debug",{"_index":56,"t":{"92":{"position":[[0,9]]}}}],["decrypt",{"_index":252,"t":{"492":{"position":[[34,9]]}}}],["depend",{"_index":15,"t":{"24":{"position":[[9,10]]},"62":{"position":[[9,12]]}}}],["deposit",{"_index":283,"t":{"560":{"position":[[19,7]]}}}],["detect",{"_index":152,"t":{"289":{"position":[[7,6]]},"492":{"position":[[21,8]]}}}],["dev",{"_index":81,"t":{"131":{"position":[[0,3]]}}}],["devcontain",{"_index":53,"t":{"88":{"position":[[0,12]]}}}],["differ",{"_index":243,"t":{"478":{"position":[[71,9]]}}}],["directori",{"_index":220,"t":{"450":{"position":[[21,9]]}}}],["disclaim",{"_index":262,"t":{"501":{"position":[[5,10]]}}}],["discoveri",{"_index":166,"t":{"329":{"position":[[5,9]]}}}],["discv5",{"_index":167,"t":{"329":{"position":[[15,8]]},"574":{"position":[[0,6]]}}}],["divers",{"_index":143,"t":{"262":{"position":[[11,10]]}}}],["doc",{"_index":8,"t":{"10":{"position":[[12,4]]}}}],["docker",{"_index":58,"t":{"94":{"position":[[0,6]]},"391":{"position":[[0,6]]},"424":{"position":[[10,6]]},"447":{"position":[[8,6],[24,6]]}}}],["document",{"_index":2,"t":{"2":{"position":[[24,13]]},"119":{"position":[[16,13]]}}}],["download",{"_index":76,"t":{"117":{"position":[[6,8]]}}}],["dump",{"_index":103,"t":{"187":{"position":[[18,4]]},"189":{"position":[[17,4]]},"236":{"position":[[16,4]]},"238":{"position":[[19,4]]},"240":{"position":[[18,4]]},"242":{"position":[[20,4]]},"244":{"position":[[12,4]]},"248":{"position":[[15,4]]},"250":{"position":[[18,4]]}}}],["enabl",{"_index":264,"t":{"507":{"position":[[0,6]]}}}],["encrypt",{"_index":241,"t":{"478":{"position":[[55,9]]}}}],["end",{"_index":85,"t":{"141":{"position":[[0,3],[7,3]]}}}],["endpoint",{"_index":206,"t":{"418":{"position":[[7,8]]}}}],["engin",{"_index":215,"t":{"447":{"position":[[15,6]]}}}],["enr",{"_index":168,"t":{"331":{"position":[[0,3]]}}}],["environ",{"_index":90,"t":{"155":{"position":[[0,11]]},"167":{"position":[[11,11]]}}}],["ethereum",{"_index":144,"t":{"264":{"position":[[0,8]]}}}],["exampl",{"_index":80,"t":{"129":{"position":[[0,8]]},"202":{"position":[[0,7]]},"275":{"position":[[17,7]]},"277":{"position":[[26,7]]},"309":{"position":[[0,8]]},"317":{"position":[[0,8]]},"505":{"position":[[0,7]]},"513":{"position":[[0,8]]},"528":{"position":[[17,8]]},"534":{"position":[[15,8]]},"538":{"position":[[25,8]]},"544":{"position":[[34,8]]}}}],["execut",{"_index":6,"t":{"8":{"position":[[0,9]]},"361":{"position":[[14,9]]},"542":{"position":[[17,9]]},"544":{"position":[[17,9]]},"546":{"position":[[17,9]]}}}],["exit",{"_index":274,"t":{"536":{"position":[[20,4]]},"538":{"position":[[20,4]]},"540":{"position":[[20,4]]}}}],["expand",{"_index":255,"t":{"497":{"position":[[13,9]]}}}],["export",{"_index":272,"t":{"522":{"position":[[30,6]]},"524":{"position":[[30,6]]}}}],["extern",{"_index":40,"t":{"62":{"position":[[0,8]]}}}],["factor",{"_index":281,"t":{"558":{"position":[[54,6]]}}}],["featur",{"_index":158,"t":{"293":{"position":[[14,8]]}}}],["fee",{"_index":277,"t":{"556":{"position":[[16,3]]}}}],["feerecipi",{"_index":224,"t":{"456":{"position":[[10,12]]}}}],["filter",{"_index":119,"t":{"212":{"position":[[0,9]]},"215":{"position":[[0,8]]}}}],["firewal",{"_index":171,"t":{"341":{"position":[[0,8]]}}}],["first",{"_index":59,"t":{"96":{"position":[[0,5]]}}}],["flag",{"_index":164,"t":{"327":{"position":[[11,5]]}}}],["flamegraph",{"_index":117,"t":{"206":{"position":[[12,10]]}}}],["full",{"_index":261,"t":{"501":{"position":[[0,4]]}}}],["gener",{"_index":185,"t":{"357":{"position":[[0,8]]}}}],["get",{"_index":3,"t":{"4":{"position":[[0,7]]},"84":{"position":[[0,7]]},"273":{"position":[[0,7]]},"301":{"position":[[0,7]]}}}],["github",{"_index":66,"t":{"102":{"position":[[0,6]]}}}],["gossipsub",{"_index":46,"t":{"68":{"position":[[21,9]]},"333":{"position":[[19,10]]},"335":{"position":[[0,9]]}}}],["grafana",{"_index":73,"t":{"115":{"position":[[16,7]]},"428":{"position":[[0,7]]}}}],["graph",{"_index":16,"t":{"24":{"position":[[20,5]]}}}],["gui",{"_index":138,"t":{"252":{"position":[[21,3]]},"254":{"position":[[21,3]]}}}],["guid",{"_index":68,"t":{"102":{"position":[[13,5]]},"106":{"position":[[6,5]]},"108":{"position":[[12,5]]},"121":{"position":[[6,5]]},"367":{"position":[[9,5]]}}}],["guidelin",{"_index":72,"t":{"113":{"position":[[8,10]]}}}],["hardwar",{"_index":212,"t":{"444":{"position":[[0,8]]}}}],["hash",{"_index":286,"t":{"576":{"position":[[18,7]]},"587":{"position":[[0,7]]}}}],["heap",{"_index":131,"t":{"236":{"position":[[11,4]]},"238":{"position":[[14,4]]},"240":{"position":[[13,4]]},"242":{"position":[[15,4]]},"244":{"position":[[7,4]]},"248":{"position":[[10,4]]},"250":{"position":[[13,4]]}}}],["heaptrack",{"_index":137,"t":{"252":{"position":[[11,9]]},"254":{"position":[[11,9]]}}}],["help",{"_index":248,"t":{"484":{"position":[[18,4]]}}}],["histor",{"_index":193,"t":{"376":{"position":[[0,10]]}}}],["imag",{"_index":260,"t":{"499":{"position":[[27,6]]}}}],["import",{"_index":222,"t":{"454":{"position":[[31,6]]},"518":{"position":[[30,6]]},"520":{"position":[[30,6]]},"526":{"position":[[10,6]]},"528":{"position":[[10,6]]},"530":{"position":[[10,6]]},"554":{"position":[[0,6]]}}}],["infrastructur",{"_index":96,"t":{"165":{"position":[[9,14]]}}}],["input",{"_index":221,"t":{"454":{"position":[[0,5]]}}}],["instal",{"_index":99,"t":{"185":{"position":[[0,10]]},"208":{"position":[[0,12]]},"252":{"position":[[0,10]]},"254":{"position":[[0,10]]},"391":{"position":[[7,12]]},"398":{"position":[[0,7]]},"406":{"position":[[0,7]]},"447":{"position":[[0,7]]}}}],["integr",{"_index":86,"t":{"143":{"position":[[0,11]]},"279":{"position":[[8,11]]}}}],["interv",{"_index":209,"t":{"420":{"position":[[11,8]]}}}],["issu",{"_index":55,"t":{"90":{"position":[[7,6]]},"404":{"position":[[6,6]]}}}],["javascript",{"_index":130,"t":{"236":{"position":[[0,10]]}}}],["jwt",{"_index":182,"t":{"355":{"position":[[23,3]]},"359":{"position":[[33,3]]},"361":{"position":[[40,3]]},"452":{"position":[[16,3]]},"454":{"position":[[11,3]]}}}],["key",{"_index":187,"t":{"357":{"position":[[18,3]]}}}],["keystor",{"_index":236,"t":{"474":{"position":[[17,8]]},"476":{"position":[[32,9]]},"478":{"position":[[45,9]]},"552":{"position":[[9,8]]},"554":{"position":[[19,8]]}}}],["known",{"_index":202,"t":{"404":{"position":[[0,5]]}}}],["kubernet",{"_index":129,"t":{"232":{"position":[[6,10]]}}}],["label",{"_index":78,"t":{"121":{"position":[[0,5]]}}}],["launch",{"_index":107,"t":{"193":{"position":[[8,6]]}}}],["level",{"_index":71,"t":{"111":{"position":[[8,6]]}}}],["libp2p",{"_index":45,"t":{"68":{"position":[[14,6]]},"70":{"position":[[14,6]]},"72":{"position":[[14,6]]},"76":{"position":[[11,6]]},"339":{"position":[[15,8]]},"572":{"position":[[0,6]]}}}],["libp2p/j",{"_index":50,"t":{"76":{"position":[[0,10]]}}}],["librari",{"_index":287,"t":{"582":{"position":[[9,9]]},"584":{"position":[[6,9]]}}}],["licens",{"_index":151,"t":{"283":{"position":[[0,7]]},"305":{"position":[[0,7]]}}}],["light",{"_index":147,"t":{"271":{"position":[[27,5]]},"275":{"position":[[0,5]]},"277":{"position":[[0,5]]}}}],["lightclient",{"_index":160,"t":{"311":{"position":[[0,11]]}}}],["linux",{"_index":111,"t":{"200":{"position":[[10,5]]},"221":{"position":[[14,5]]},"252":{"position":[[28,5]]}}}],["list",{"_index":123,"t":{"217":{"position":[[0,4]]},"264":{"position":[[17,4]]},"532":{"position":[[10,4]]},"534":{"position":[[10,4]]}}}],["llnode",{"_index":100,"t":{"185":{"position":[[11,6]]}}}],["local",{"_index":13,"t":{"20":{"position":[[11,5]]},"424":{"position":[[0,9]]}}}],["locat",{"_index":188,"t":{"359":{"position":[[22,6]]}}}],["lodestar",{"_index":1,"t":{"2":{"position":[[15,8]]},"24":{"position":[[0,8]]},"26":{"position":[[0,8]]},"104":{"position":[[0,8]]},"200":{"position":[[20,8]]},"229":{"position":[[16,8]]},"347":{"position":[[0,8]]},"349":{"position":[[10,8]]},"355":{"position":[[14,8]]},"359":{"position":[[10,8]]},"382":{"position":[[8,8]]},"402":{"position":[[0,8]]},"449":{"position":[[10,8]]},"466":{"position":[[10,8]]},"554":{"position":[[31,8]]}}}],["lodestar/api",{"_index":19,"t":{"30":{"position":[[0,13]]}}}],["lodestar/beacon",{"_index":20,"t":{"32":{"position":[[0,16]]}}}],["lodestar/config",{"_index":22,"t":{"34":{"position":[[0,16]]}}}],["lodestar/db",{"_index":23,"t":{"36":{"position":[[0,12]]}}}],["lodestar/flar",{"_index":24,"t":{"38":{"position":[[0,15]]}}}],["lodestar/fork",{"_index":25,"t":{"40":{"position":[[0,14]]}}}],["lodestar/light",{"_index":27,"t":{"42":{"position":[[0,15]]}}}],["lodestar/logg",{"_index":28,"t":{"44":{"position":[[0,16]]}}}],["lodestar/param",{"_index":29,"t":{"46":{"position":[[0,16]]}}}],["lodestar/prov",{"_index":30,"t":{"48":{"position":[[0,16]]}}}],["lodestar/reqresp",{"_index":31,"t":{"50":{"position":[[0,17]]}}}],["lodestar/spec",{"_index":32,"t":{"52":{"position":[[0,14]]}}}],["lodestar/st",{"_index":35,"t":{"54":{"position":[[0,15]]}}}],["lodestar/typ",{"_index":37,"t":{"56":{"position":[[0,15]]}}}],["lodestar/util",{"_index":38,"t":{"58":{"position":[[0,15]]}}}],["lodestar/valid",{"_index":39,"t":{"60":{"position":[[0,19]]}}}],["log",{"_index":69,"t":{"110":{"position":[[0,7]]},"111":{"position":[[0,7]]},"113":{"position":[[0,7]]},"175":{"position":[[11,7]]},"367":{"position":[[5,3]]},"488":{"position":[[16,4]]}}}],["logic",{"_index":256,"t":{"497":{"position":[[27,7]]}}}],["machin",{"_index":213,"t":{"446":{"position":[[6,7]]}}}],["maco",{"_index":52,"t":{"82":{"position":[[0,5]]},"223":{"position":[[14,5]]}}}],["mainnet",{"_index":180,"t":{"353":{"position":[[11,7]]},"442":{"position":[[11,7]]}}}],["manag",{"_index":162,"t":{"323":{"position":[[5,10]]},"341":{"position":[[9,10]]}}}],["merg",{"_index":12,"t":{"20":{"position":[[5,5]]}}}],["method",{"_index":156,"t":{"291":{"position":[[15,7]]},"373":{"position":[[8,7]]}}}],["metric",{"_index":210,"t":{"424":{"position":[[17,7]]}}}],["mev",{"_index":178,"t":{"349":{"position":[[29,3]]},"458":{"position":[[20,3]]},"464":{"position":[[10,3]]}}}],["minimum",{"_index":226,"t":{"458":{"position":[[4,7]]}}}],["mnemon",{"_index":245,"t":{"480":{"position":[[32,8]]}}}],["modifi",{"_index":110,"t":{"200":{"position":[[0,9]]},"468":{"position":[[0,6]]},"470":{"position":[[0,6]]}}}],["monitor",{"_index":208,"t":{"420":{"position":[[0,10]]}}}],["monorepo",{"_index":17,"t":{"26":{"position":[[9,8]]},"104":{"position":[[9,8]]},"582":{"position":[[0,8]]}}}],["multipl",{"_index":240,"t":{"478":{"position":[[16,8]]}}}],["nat",{"_index":172,"t":{"343":{"position":[[0,3]]}}}],["nativ",{"_index":135,"t":{"244":{"position":[[0,6]]}}}],["navig",{"_index":218,"t":{"450":{"position":[[0,8]]}}}],["need",{"_index":9,"t":{"12":{"position":[[0,4]]},"299":{"position":[[9,4]]}}}],["network",{"_index":163,"t":{"327":{"position":[[0,10]]},"460":{"position":[[17,7]]},"462":{"position":[[12,7]]},"571":{"position":[[0,10]]},"589":{"position":[[0,10]]}}}],["node",{"_index":21,"t":{"32":{"position":[[17,4]]},"230":{"position":[[17,4]]},"363":{"position":[[15,4]]},"490":{"position":[[13,4]]}}}],["nois",{"_index":47,"t":{"70":{"position":[[21,5]]}}}],["non",{"_index":157,"t":{"293":{"position":[[0,3]]}}}],["npm",{"_index":203,"t":{"406":{"position":[[13,3]]}}}],["option",{"_index":82,"t":{"131":{"position":[[4,7]]},"311":{"position":[[12,7]]},"319":{"position":[[7,7]]},"386":{"position":[[9,7]]},"412":{"position":[[15,10]]},"476":{"position":[[0,6]]},"478":{"position":[[0,6]]},"480":{"position":[[0,6]]},"516":{"position":[[10,7]]},"520":{"position":[[37,7]]},"524":{"position":[[37,7]]},"530":{"position":[[17,7]]},"540":{"position":[[25,7]]},"546":{"position":[[34,7]]}}}],["osx",{"_index":139,"t":{"254":{"position":[[28,3]]}}}],["packag",{"_index":201,"t":{"398":{"position":[[8,8]]}}}],["paramet",{"_index":233,"t":{"470":{"position":[[20,10]]}}}],["password",{"_index":237,"t":{"474":{"position":[[26,8]]},"478":{"position":[[81,9]]}}}],["peer",{"_index":165,"t":{"329":{"position":[[0,4]]},"333":{"position":[[0,4]]}}}],["perform",{"_index":84,"t":{"139":{"position":[[0,11]]}}}],["polici",{"_index":70,"t":{"110":{"position":[[8,6]]}}}],["post",{"_index":11,"t":{"20":{"position":[[0,4]]}}}],["prerequisit",{"_index":51,"t":{"80":{"position":[[0,13]]},"269":{"position":[[0,13]]},"297":{"position":[[0,13]]},"394":{"position":[[0,13]]},"440":{"position":[[0,13]]}}}],["process",{"_index":65,"t":{"100":{"position":[[13,7]]},"195":{"position":[[18,7]]},"250":{"position":[[36,7]]}}}],["programmat",{"_index":149,"t":{"277":{"position":[[13,12]]}}}],["progress",{"_index":251,"t":{"490":{"position":[[21,11]]}}}],["prometheu",{"_index":211,"t":{"426":{"position":[[0,10]]}}}],["proof",{"_index":140,"t":{"258":{"position":[[0,5]]}}}],["propos",{"_index":265,"t":{"507":{"position":[[7,8]]}}}],["proposer_config.yaml",{"_index":263,"t":{"505":{"position":[[8,20]]}}}],["protect",{"_index":271,"t":{"518":{"position":[[19,10]]},"520":{"position":[[19,10]]},"522":{"position":[[19,10]]},"524":{"position":[[19,10]]}}}],["provid",{"_index":154,"t":{"289":{"position":[[21,8]]},"468":{"position":[[48,8]]}}}],["public",{"_index":181,"t":{"353":{"position":[[24,6]]}}}],["quick",{"_index":217,"t":{"449":{"position":[[19,5]]}}}],["quickstart",{"_index":247,"t":{"482":{"position":[[8,10]]},"484":{"position":[[0,10]]}}}],["rang",{"_index":194,"t":{"378":{"position":[[0,5]]}}}],["read",{"_index":145,"t":{"264":{"position":[[9,7]]}}}],["recipi",{"_index":278,"t":{"556":{"position":[[20,9]]}}}],["recommend",{"_index":204,"t":{"406":{"position":[[22,12]]}}}],["refer",{"_index":122,"t":{"216":{"position":[[0,10]]},"217":{"position":[[12,10]]}}}],["relay",{"_index":231,"t":{"464":{"position":[[20,6]]}}}],["remot",{"_index":205,"t":{"418":{"position":[[0,6]]}}}],["render",{"_index":116,"t":{"206":{"position":[[0,9]]}}}],["report",{"_index":62,"t":{"98":{"position":[[0,9]]},"173":{"position":[[11,7]]},"567":{"position":[[0,9]]}}}],["repositori",{"_index":200,"t":{"396":{"position":[[6,10]]},"446":{"position":[[16,10]]}}}],["req/resp",{"_index":169,"t":{"333":{"position":[[34,9]]},"337":{"position":[[0,8]]}}}],["requir",{"_index":146,"t":{"271":{"position":[[0,12]]},"444":{"position":[[9,12]]}}}],["result",{"_index":120,"t":{"212":{"position":[[10,7]]}}}],["root",{"_index":219,"t":{"450":{"position":[[16,4]]}}}],["run",{"_index":88,"t":{"153":{"position":[[0,7]]},"195":{"position":[[10,7]]},"230":{"position":[[0,7]]},"250":{"position":[[28,7]]},"271":{"position":[[17,7]]},"363":{"position":[[0,3]]},"562":{"position":[[0,3]]}}}],["script",{"_index":77,"t":{"117":{"position":[[15,6]]},"424":{"position":[[25,6]]},"449":{"position":[[25,7]]},"454":{"position":[[46,6]]},"482":{"position":[[19,6]]},"484":{"position":[[11,6]]}}}],["secret",{"_index":186,"t":{"357":{"position":[[11,6]]},"359":{"position":[[37,6]]},"361":{"position":[[44,6]]},"452":{"position":[[20,6]]},"454":{"position":[[15,6]]}}}],["select",{"_index":230,"t":{"462":{"position":[[0,6]]},"558":{"position":[[23,9]]}}}],["serial",{"_index":285,"t":{"576":{"position":[[0,13]]}}}],["set",{"_index":225,"t":{"458":{"position":[[0,3]]},"478":{"position":[[35,4]]}}}],["setup",{"_index":177,"t":{"349":{"position":[[19,5]]},"426":{"position":[[11,5]]},"428":{"position":[[8,5]]},"446":{"position":[[0,5]]},"472":{"position":[[0,5]]},"476":{"position":[[10,5]]},"478":{"position":[[10,5]]},"480":{"position":[[10,5]]},"550":{"position":[[0,5]]}}}],["sim",{"_index":89,"t":{"153":{"position":[[8,3]]},"165":{"position":[[0,3]]}}}],["simul",{"_index":87,"t":{"145":{"position":[[0,10]]},"167":{"position":[[0,10]]},"169":{"position":[[0,10]]},"173":{"position":[[0,10]]},"175":{"position":[[0,10]]}}}],["slash",{"_index":270,"t":{"518":{"position":[[10,8]]},"520":{"position":[[10,8]]},"522":{"position":[[10,8]]},"524":{"position":[[10,8]]}}}],["sourc",{"_index":198,"t":{"393":{"position":[[11,6]]},"400":{"position":[[6,6]]}}}],["spec",{"_index":57,"t":{"92":{"position":[[10,4]]},"137":{"position":[[0,4]]}}}],["specif",{"_index":5,"t":{"6":{"position":[[0,14]]},"82":{"position":[[6,9]]}}}],["stack",{"_index":114,"t":{"204":{"position":[[10,5]]}}}],["stake",{"_index":141,"t":{"258":{"position":[[9,5]]}}}],["start",{"_index":4,"t":{"4":{"position":[[8,7]]},"84":{"position":[[8,7]]},"273":{"position":[[8,7]]},"301":{"position":[[8,7]]}}}],["start_lodestar.sh",{"_index":112,"t":{"202":{"position":[[8,17]]}}}],["startup",{"_index":246,"t":{"482":{"position":[[0,7]]}}}],["stop",{"_index":253,"t":{"494":{"position":[[0,4]]}}}],["style",{"_index":67,"t":{"102":{"position":[[7,5]]},"106":{"position":[[0,5]]},"108":{"position":[[6,5]]}}}],["sub",{"_index":267,"t":{"511":{"position":[[10,3]]}}}],["subject",{"_index":192,"t":{"371":{"position":[[5,12]]},"468":{"position":[[17,12]]}}}],["submit",{"_index":282,"t":{"560":{"position":[[0,6]]}}}],["support",{"_index":155,"t":{"291":{"position":[[0,9]]},"293":{"position":[[4,9]]},"410":{"position":[[0,7]]},"438":{"position":[[0,7]]},"565":{"position":[[0,9]]}}}],["sync",{"_index":190,"t":{"365":{"position":[[11,4]]},"367":{"position":[[0,4]]},"373":{"position":[[0,7]]},"374":{"position":[[11,4]]},"376":{"position":[[11,4]]},"378":{"position":[[6,4]]},"380":{"position":[[9,4]]},"382":{"position":[[0,7]]},"468":{"position":[[42,5]]}}}],["test",{"_index":33,"t":{"52":{"position":[[15,4]]},"86":{"position":[[0,5]]},"92":{"position":[[15,5]]},"108":{"position":[[0,5]]},"135":{"position":[[5,5]]},"137":{"position":[[5,5]]},"139":{"position":[[12,5]]},"141":{"position":[[11,5]]},"143":{"position":[[12,5]]},"145":{"position":[[11,5]]},"153":{"position":[[12,5]]},"165":{"position":[[4,4]]}}}],["test:sim:deneb",{"_index":94,"t":{"161":{"position":[[0,14]]}}}],["test:sim:endpoint",{"_index":93,"t":{"159":{"position":[[0,18]]}}}],["test:sim:mixedcleint",{"_index":95,"t":{"163":{"position":[[0,20]]}}}],["test:sim:multifork",{"_index":92,"t":{"157":{"position":[[0,18]]}}}],["testnet",{"_index":14,"t":{"20":{"position":[[17,7]]},"353":{"position":[[31,7]]},"442":{"position":[[0,7]]}}}],["time",{"_index":60,"t":{"96":{"position":[[6,4]]}}}],["token",{"_index":184,"t":{"355":{"position":[[42,5]]}}}],["tool",{"_index":126,"t":{"219":{"position":[[14,5]]},"227":{"position":[[0,7]]},"246":{"position":[[17,5]]}}}],["trace",{"_index":115,"t":{"204":{"position":[[16,6]]}}}],["transit",{"_index":36,"t":{"54":{"position":[[16,10]]}}}],["transport",{"_index":170,"t":{"339":{"position":[[5,9]]}}}],["travers",{"_index":173,"t":{"343":{"position":[[4,9]]}}}],["troubleshoot",{"_index":127,"t":{"229":{"position":[[0,15]]}}}],["ts",{"_index":42,"t":{"64":{"position":[[16,2]]}}}],["under",{"_index":242,"t":{"478":{"position":[[65,5]]}}}],["unfilt",{"_index":121,"t":{"214":{"position":[[0,10]]}}}],["unit",{"_index":83,"t":{"135":{"position":[[0,4]]}}}],["updat",{"_index":259,"t":{"499":{"position":[[13,6]]}}}],["url",{"_index":207,"t":{"418":{"position":[[16,3]]}}}],["us",{"_index":75,"t":{"117":{"position":[[0,5]]},"232":{"position":[[0,5]]}}}],["usag",{"_index":118,"t":{"210":{"position":[[0,5]]},"287":{"position":[[0,5]]}}}],["user",{"_index":235,"t":{"470":{"position":[[45,6]]}}}],["util",{"_index":34,"t":{"52":{"position":[[20,4]]},"585":{"position":[[4,9]]}}}],["v8",{"_index":133,"t":{"238":{"position":[[11,2]]},"240":{"position":[[10,2]]},"242":{"position":[[12,2]]}}}],["valid",{"_index":229,"t":{"458":{"position":[[30,10]]},"472":{"position":[[6,10]]},"474":{"position":[[7,9]]},"476":{"position":[[16,10]]},"478":{"position":[[25,9]]},"480":{"position":[[16,10]]},"492":{"position":[[6,10]]},"514":{"position":[[5,9]]},"516":{"position":[[0,9]]},"518":{"position":[[0,9]]},"520":{"position":[[0,9]]},"522":{"position":[[0,9]]},"524":{"position":[[0,9]]},"526":{"position":[[0,9]]},"528":{"position":[[0,9]]},"530":{"position":[[0,9]]},"532":{"position":[[0,9]]},"534":{"position":[[0,9]]},"536":{"position":[[0,9]]},"538":{"position":[[0,9]]},"540":{"position":[[0,9]]},"542":{"position":[[0,9]]},"544":{"position":[[0,9]]},"546":{"position":[[0,9]]},"550":{"position":[[11,9]]},"554":{"position":[[9,9]]},"560":{"position":[[9,9]]},"562":{"position":[[8,9]]}}}],["variabl",{"_index":91,"t":{"155":{"position":[[12,9]]}}}],["version",{"_index":232,"t":{"466":{"position":[[19,7]]},"565":{"position":[[10,8]]}}}],["view",{"_index":134,"t":{"240":{"position":[[0,7]]}}}],["visual",{"_index":125,"t":{"219":{"position":[[0,13]]}}}],["volum",{"_index":257,"t":{"497":{"position":[[35,6]]}}}],["voluntari",{"_index":273,"t":{"536":{"position":[[10,9]]},"538":{"position":[[10,9]]},"540":{"position":[[10,9]]}}}],["vs",{"_index":105,"t":{"193":{"position":[[0,2]]}}}],["vulner",{"_index":284,"t":{"567":{"position":[[12,13]]}}}],["warn",{"_index":159,"t":{"295":{"position":[[0,8]]}}}],["weak",{"_index":191,"t":{"371":{"position":[[0,4]]},"468":{"position":[[12,4]]}}}],["web",{"_index":124,"t":{"217":{"position":[[8,3]]}}}],["web3",{"_index":153,"t":{"289":{"position":[[16,4]]},"291":{"position":[[10,4]]}}}],["welcom",{"_index":0,"t":{"2":{"position":[[0,7]]}}}],["yamux",{"_index":48,"t":{"72":{"position":[[21,5]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"Lodestar is an open-source Ethereum Consensus client and TypeScript ecosystem, maintained by ChainSafe Systems","s":"Welcome to the Lodestar Documentation","u":"/lodestar/","h":"#welcome-to-the-lodestar-documentation","p":1},{"i":5,"t":"Follow the instructions for build from source, binaries, or Docker to install Lodestar. Or use our Lodestar Quickstart scripts. Use Lodestar libraries in your next Ethereum TypeScript project. Run a beacon node on mainnet or a public testnet. Utilize the whole stack by starting a local testnet. View the Lodestar Beacon CLI commands and options Prospective contributors can read the contributing section to understand how we develop and test on Lodestar. If you have questions submit an issue or join us on Discord! Please note our security policy.","s":"Getting Started","u":"/lodestar/","h":"#getting-started","p":1},{"i":7,"t":"Hardware specifications minimum / recommended, to run the Lodestar client. Minimum Recommended Processor Intel Core i3–9100 or AMD Ryzen 5 3450 Intel Core i7–9700 or AMD Ryzen 7 4700 Memory 8 GB RAM 16 GB RAM Storage 130 GB available space SSD 200 GB available space SSD Internet Reliable broadband with 10mbps upload Reliable broadband with >10mbps upload","s":"Specifications","u":"/lodestar/","h":"#specifications","p":1},{"i":9,"t":"If you run the execution client on the same host, you will need to check their requirements and add them to the above requirements. Broadly, to run both an execution and a consensus client on the same machine, we recommend a 4 TB SSD and 32 GB RAM.","s":"Execution Client","u":"/lodestar/","h":"#execution-client","p":1},{"i":11,"t":"This documentation is open source, contribute on our Github Lodestar repository /docs.","s":"About These Docs","u":"/lodestar/","h":"#about-these-docs","p":1},{"i":13,"t":"If you have questions about this documentation, feel free to talk to us on our ChainSafe Discord or open an issue and a member of the team or our community will be happy to assist you.","s":"Need Assistance?","u":"/lodestar/","h":"#need-assistance","p":1},{"i":19,"t":"To quickly test and run Lodestar we recommend starting a local testnet. We recommend a simple configuration of two beacon nodes with multiple validators. The dev scripts can used for simplicity but below instructions provide more insights on how it works and include details about different configurations. note The testnet set up in this guide is meant to be short-lived / ephemeral and should primarily be used for development and testing. Please refer to Ethereum In a Box or Kurtosis ethereum package to set up a long-lived private network or devnet. Terminal 1 Run a beacon node as a bootnode, with 8 validators with the following command. ./lodestar dev \\ --genesisValidators 8 \\ --genesisTime 1669713528 \\ --startValidators 0..7 \\ --enr.ip 127.0.0.1 \\ --enr.udp 9000 \\ --dataDir \\ --reset --genesisValidators and --genesisTime define the genesis state of the beacon chain. --dataDir defines a path where Lodestar should store the beacon state. --enr.ip sets the ENR IP entry for the node (essential for second node to connect via enr) and --enr.udp exposes the Discv5 discovery service (if you want to connect more than 1 node and enable discovery amongst them via bootnode). Lastly the --reset flag ensures the state is cleared on each restart - which is useful when testing locally. Once the node has started, make a request to curl http://localhost:9596/eth/v1/node/identity and copy the enr value. This would be used to connect from the second node. ENR stands for Ethereum node records, which is a format for conveying p2p connectivity information for Ethereum nodes. For more info see EIP-778. Terminal 2 Start the second node without starting any validators and connect to the first node by supplying the copied enr value: ./lodestar dev \\ --genesisValidators 8 \\ --genesisTime 1669713528 \\ --dataDir \\ --port 9001 \\ --rest.port 9597 \\ --network.connectToDiscv5Bootnodes true \\ --bootnodes \\ --reset By default, Lodestar starts as many validators as the number supplied by --genesisValidators. In order to not start any validator, this is overridden by the --startValidators option. Passing a value of 0..0 means no validators should be started. Also, take note that the values of --genesisValidators and --genesisTime must be the same as the ones passed to the first node in order for the two nodes to have the same beacon chain. Also --port and --rest.port are supplied since the default values will already be in use by the first node. The --network.connectToDiscv5Bootnodes flags needs to be set to true as this is needed to allow connection to boot ENRs on local devnet. The exact ENR of node to connect to is then supplied via the --bootnodes flag. Once the second node starts, you should see an output similar to the following in either of the terminals: Eph 167991/6 6.007 [] info: Searching peers - peers: 1 - slot: 5375718 (skipped 5375718) - head: 0 0xcc67…3345 - finalized: 0x0000…0000:0 For further confirmation that both nodes are connected as peers, make a request to the /eth/v1/node/peers endpoint. For example, making the request on the first node via the following command: curl http://localhost:9596/eth/v1/node/peers | jq will give a result similar to the following: { \"data\": [ { \"peer_id\": \"...\", \"enr\": \"\", \"last_seen_p2p_address\": \"....\", \"direction\": \"inbound\", \"state\": \"connected\" } ], \"meta\": { \"count\": 1 } }","s":"Setting-Up a Testnet","u":"/lodestar/contribution/advanced-topics/setting-up-a-testnet","h":"","p":18},{"i":21,"t":"To set up a local testnet with a Post-Merge configuration, you may need to add the following parameters (in addition to the parameters described above) to your lodestar dev command: --params.ALTAIR_FORK_EPOCH 0 --params.BELLATRIX_FORK_EPOCH 0 --terminal-total-difficulty-override 0","s":"Post-Merge local testnet","u":"/lodestar/contribution/advanced-topics/setting-up-a-testnet","h":"#post-merge-local-testnet","p":18},{"i":25,"t":"This is a diagram of the various Lodestar packages in the monorepo, how they fit together and interact with major external dependencies: note This dependency graph only applies to dependencies as they are used in the src/ folders of each package, not in test/","s":"Lodestar Dependency Graph","u":"/lodestar/contribution/depgraph","h":"#lodestar-dependency-graph","p":23},{"i":27,"t":"For a list of all the packages in the monorepo and a description for each, click here. Below is a brief summary of each package in alphabetical order.","s":"Lodestar Monorepo","u":"/lodestar/contribution/depgraph","h":"#lodestar-monorepo","p":23},{"i":29,"t":"@chainsafe/lodestar combines everything together for CLI usage and configuration of the beacon node and validator.","s":"@chainsafe/lodestar","u":"/lodestar/contribution/depgraph","h":"#chainsafelodestar","p":23},{"i":31,"t":"@lodestar/api contains a TypeScript REST client for the Ethereum Consensus API.","s":"@lodestar/api","u":"/lodestar/contribution/depgraph","h":"#lodestarapi","p":23},{"i":33,"t":"@lodestar/beacon-node contains the actual beacon node process itself, which is the aggregate of all the above packages and the \"brain\" of the Lodestar beacon chain implementation. All of the node modules live in this package as well.","s":"@lodestar/beacon-node","u":"/lodestar/contribution/depgraph","h":"#lodestarbeacon-node","p":23},{"i":35,"t":"@lodestar/config combines @lodestar/params and @lodestar/types together to be used as a single config object across the other Lodestar packages.","s":"@lodestar/config","u":"/lodestar/contribution/depgraph","h":"#lodestarconfig","p":23},{"i":37,"t":"@lodestar/db is where all persistent data about the beacon node is stored. Any package that needs to read or write persistent beacon node data depends on @lodestar/db.","s":"@lodestar/db","u":"/lodestar/contribution/depgraph","h":"#lodestardb","p":23},{"i":39,"t":"@lodestar/flare is a command tool used for easily triggering non-standard actions and debugging for researchers, developers and testers. Use with care.","s":"@lodestar/flare","u":"/lodestar/contribution/depgraph","h":"#lodestarflare","p":23},{"i":41,"t":"@lodestar/fork-choice holds the methods for reading/writing the fork choice DAG. The @lodestar/beacon-node package is the sole consumer of this package because the beacon node itself is what controls when the fork choice DAG is updated. For a good explanation on how the fork choice itself works, see the annotated fork choice spec. This is an annotated version of the Ethereum Consensus fork choice spec which @lodestar/fork-choice is based on.","s":"@lodestar/fork-choice","u":"/lodestar/contribution/depgraph","h":"#lodestarfork-choice","p":23},{"i":43,"t":"@lodestar/light-client is our light client designed to interact with the Ethereum blockchain in a trust-minimized matter via the sync committee and the light-client protocol.","s":"@lodestar/light-client","u":"/lodestar/contribution/depgraph","h":"#lodestarlight-client","p":23},{"i":45,"t":"@lodestar/logger is a common NodeJS logger for Lodestar binaries, which is required for worker threads to instantiate new loggers with consistent settings.","s":"@lodestar/logger","u":"/lodestar/contribution/depgraph","h":"#lodestarlogger","p":23},{"i":47,"t":"@lodestar/params contains the parameters for configuring an Ethereum Consensus network. For example, the mainnet params.","s":"@lodestar/params","u":"/lodestar/contribution/depgraph","h":"#lodestarparams","p":23},{"i":49,"t":"@lodestar/prover is a web3 provider and a proxy to enable verification of JSON-RPC calls to the execution client using the light-client protocol.","s":"@lodestar/prover","u":"/lodestar/contribution/depgraph","h":"#lodestarprover","p":23},{"i":51,"t":"@lodestar/reqresp contains the TypeScript implementation of the Ethereum Consensus Req/Resp protocol.","s":"@lodestar/reqresp","u":"/lodestar/contribution/depgraph","h":"#lodestarreqresp","p":23},{"i":53,"t":"@lodestar/spec-test-util is a Vitest test utility harness used for adhering to the Ethereum Consensus specification tests.","s":"@lodestar/spec-test-util","u":"/lodestar/contribution/depgraph","h":"#lodestarspec-test-util","p":23},{"i":55,"t":"@lodestar/state-transition contains the Lodestar implementation of the beacon state transition function, which is used by @lodestar/beacon-node to perform the actual beacon state transition. This package also contains various functions used to calculate info about the beacon chain (such as computeEpochAtSlot) which are used by @lodestar/fork-choice and @lodestar/validator","s":"@lodestar/state-transition","u":"/lodestar/contribution/depgraph","h":"#lodestarstate-transition","p":23},{"i":57,"t":"@lodestar/types contains Ethereum Consensus ssz types and data structures.","s":"@lodestar/types","u":"/lodestar/contribution/depgraph","h":"#lodestartypes","p":23},{"i":59,"t":"@lodestar/utils contains various utilities that are common among the various Lodestar monorepo packages.","s":"@lodestar/utils","u":"/lodestar/contribution/depgraph","h":"#lodestarutils","p":23},{"i":61,"t":"@lodestar/validator contains the validator client. The sole consumer of this package is @chainsafe/lodestar, which provides CLI access to run and configure the validator client. However, the validator client communicates to a REST API that is contained in @lodestar/beacon-node (specifically in the api module) to perform the validator duties.","s":"@lodestar/validator","u":"/lodestar/contribution/depgraph","h":"#lodestarvalidator","p":23},{"i":63,"t":"Below is a brief summary, listed alphabetically, of each of our main external dependencies managed externally from our monorepo.","s":"External Dependencies","u":"/lodestar/contribution/depgraph","h":"#external-dependencies","p":23},{"i":65,"t":"@chainsafe/blst-ts` is our TypeScript wrapper for @supranational/blst native bindings, a highly performant BLS12-381 signature library.","s":"@chainsafe/blst-ts","u":"/lodestar/contribution/depgraph","h":"#chainsafeblst-ts","p":23},{"i":67,"t":"@chainsafe/discv5 is our monorepo containing our TypeScript implementation of the discv5 Node Discovery Protocol v5.","s":"@chainsafe/discv5","u":"/lodestar/contribution/depgraph","h":"#chainsafediscv5","p":23},{"i":69,"t":"@chainsafe/js-libp2p-gossipsub is an implementation of pubsub based on mmeshsub and floodsub. Specified under @libp2p/specs/pubsub/gossipsub.","s":"@chainsafe/js-libp2p-gossipsub","u":"/lodestar/contribution/depgraph","h":"#chainsafejs-libp2p-gossipsub","p":23},{"i":71,"t":"@chainsafe/js-libp2p-noise contains the TypeScript implementation of the Noise protocol, an encryption protocol used in @libp2p/specs/noise.","s":"@chainsafe/js-libp2p-noise","u":"/lodestar/contribution/depgraph","h":"#chainsafejs-libp2p-noise","p":23},{"i":73,"t":"@chainsafe/js-libp2p-yamux contains the JavaScript implementation of the Yamux multiplexer from Hashicorp designed for usage with js-libp2p.","s":"@chainsafe/js-libp2p-yamux","u":"/lodestar/contribution/depgraph","h":"#chainsafejs-libp2p-yamux","p":23},{"i":75,"t":"@chainsafe/ssz contains the packages as a monorepo related to the Simple Serialize.","s":"@chainsafe/ssz","u":"/lodestar/contribution/depgraph","h":"#chainsafessz","p":23},{"i":77,"t":"@libp2p/js-libp2p is the JavaScript implementation of the libp2p networking stack used in Ethereum's networking stack.","s":"@libp2p/js-libp2p","u":"/lodestar/contribution/depgraph","h":"#libp2pjs-libp2p","p":23},{"i":79,"t":"Thanks for your interest in contributing to Lodestar. It's people like you that push the Ethereum ecosystem forward.","s":"Contribution Guidelines","u":"/lodestar/contribution/getting-started","h":"","p":78},{"i":81,"t":"⚙ NodeJS (LTS) 🧰 Yarn","s":"Prerequisites","u":"/lodestar/contribution/getting-started","h":"#prerequisites","p":78},{"i":83,"t":"When using MacOS, there are a couple of extra prerequisites that are required. python coreutils (e.g. via brew install coreutils)","s":"MacOS Specifics","u":"/lodestar/contribution/getting-started","h":"#macos-specifics","p":78},{"i":85,"t":"⚙ Run corepack enable to enable Corepack. ⚙ Run yarn to install dependencies. ⚙ Run yarn build to build lib from source. 📦 A lodestar binary will be bundled in ./packages/cli/bin. 💻 Run ./lodestar --help to get a list of available commands and arguments.","s":"Getting Started","u":"/lodestar/contribution/getting-started","h":"#getting-started","p":78},{"i":87,"t":"To run tests: 🧪 Run yarn test:unit for unit tests. 🧪 Run yarn test:e2e for end-to-end tests. 🧪 Run yarn test:spec for spec tests. 🧪 Run yarn test to run all tests. 🧪 Run yarn check-types to check TypeScript types. 🧪 Run yarn lint to run the linter. Note that to run test:e2e, first ensure that the environment is correctly setup by running the run_e2e_env.sh script. This script requires a running docker engine. ./scripts/run_e2e_env.sh start Similarly, run yarn download-spec-tests before running yarn test:spec. Contributing to tests: Test must not depend on external live resources, such that running tests for a commit must be deterministic: Do not pull data from external APIs like execution JSON RPC (instead run a local node). Do not pull unpinned versions from DockerHub (use deterministic tag) or Github (checkout commit not branch). Carefully design tests that depend on timing sensitive events like p2p network e2e tests. Consider that Github runners are significantly less powerful than your development environment.","s":"Tests","u":"/lodestar/contribution/getting-started","h":"#tests","p":78},{"i":89,"t":"A devcontainer configuration is provided to help speed up linux based development environment setup. It will be used by GitHub Codespaces or directly inside VS Code via your local through this extension.","s":"Devcontainer","u":"/lodestar/contribution/getting-started","h":"#devcontainer","p":78},{"i":91,"t":"Error: [vitest] Cannot mock \"../../src/db/repositories/index.js\" because it is already loaded by \"src/db/beacon.ts\" If you observe any error in tests with matching to above error message, that implies you are loading the mocks in the wrong order. The correct order is to import the mocks first and then the actual module. We suggest to import the mocks on very top before any local modules. ✖ Error: Cannot find package 'async_hooks' imported from If you observe following error running any of the test files that means you are running a file which itself or any dependency of that file imports vitest, but you are not running that file with vitest runner. Try running it with yarn vitest command, not with node command.","s":"Common Issues","u":"/lodestar/contribution/getting-started","h":"#common-issues","p":78},{"i":93,"t":"To fix errors always focus on passing all minimal tests first without running mainnet tests. Spec tests often compare full expected vs actual states in JSON format. A single logical error can cause many spec tests to fail. To focus on a single test at a time you can use vitest's option --bail 1 to stop at the first failed test To then run only that failed test you can run against a specific file as use vitest's filters option -t to run only one case Before running the tests, make sure to switch to the package directory (e.g. packages/beacon-node) to speed up test execution LODESTAR_PRESET=minimal yarn vitest --run --bail 1 --config vitest.spec.config.ts test/spec/presets/sanity.test.ts -t attester_slashing","s":"Debugging Spec Tests","u":"/lodestar/contribution/getting-started","h":"#debugging-spec-tests","p":78},{"i":95,"t":"The docker-compose file requires that a .env file be present in this directory. The default.env file provides a template and can be copied .env: cp default.env .env Beacon node only​ docker-compose up -d Beacon node and validator​ First, you must have keystores and their secrets available locally at ./keystores and your password.txt in ./secrets docker-compose -f docker-compose.yml -f docker-compose.validator.yml up -d Dockerized metrics + local beacon node​ Run a local beacon with --metrics enabled. Then start Prometheus + Grafana with all dashboards in ./dashboards automatically loaded running: ./docker/docker-compose.local_dev.sh","s":"Docker","u":"/lodestar/contribution/getting-started","h":"#docker","p":78},{"i":97,"t":"Unsure where to begin contributing to Lodestar? Here are some ideas! ✏️ See any typos? See any verbiage that should be changed or updated? Go for it! Github makes it easy to make contributions right from the browser. 🔎 Look through our outstanding unassigned issues. (Hint: look for issues labeled good first issue or help-wanted!) 💬 Join our Discord chat!","s":"First Time Contributor?","u":"/lodestar/contribution/getting-started","h":"#first-time-contributor","p":78},{"i":99,"t":"🗒 Create a new issue! Select the type of issue that best fits, and please fill out as much of the information as you can.","s":"Reporting A Bug?","u":"/lodestar/contribution/getting-started","h":"#reporting-a-bug","p":78},{"i":101,"t":"Make sure you're familiar with our contribution guidelines (this document)! Create your own fork of this repository. Make your changes in your local fork. If you've made a code change, make sure to lint and test your changes (yarn lint and yarn test:unit). Make an open pull request when you're ready for it to be reviewed. We review PRs on a regular basis. See Pull request etiquette for more information. You may be asked to sign a Contributor License Agreement (CLA). We make it relatively painless with CLA-bot.","s":"Contribution Process","u":"/lodestar/contribution/getting-started","h":"#contribution-process","p":78},{"i":103,"t":"Branch Naming If you are contributing from this repository prefix the branch name with your Github username (i.e. myusername/short-description) Pull Request Naming Pull request titles must be: Adhering to the conventional commits spec Short and descriptive summary Written in imperative present tense Not end with a period For example: feat: add lodestar prover for execution api fix: ignore known block in publish blinded block flow refactor(reqresp)!: support byte based handlers Pull Request Etiquette Pull requests should remain as drafts when they are not ready for review by maintainers. Open pull requests signal to the maintainers that it's ready for review. If your pull request is no longer applicable or validated to fix an issue, close your pull request. If your pull request is fixable and needs additional changes or commits within a short period of time, switch your pull request into a draft until it's ready. Otherwise, close your pull request and create a new issue instead.","s":"Github Style Guide","u":"/lodestar/contribution/getting-started","h":"#github-style-guide","p":78},{"i":105,"t":"We're currently experimenting with hosting the majority of lodestar packages and support packages in this repository as a monorepo. We're using Lerna to manage the packages. See packages/ for a list of packages hosted in this repository.","s":"Lodestar Monorepo","u":"/lodestar/contribution/getting-started","h":"#lodestar-monorepo","p":78},{"i":107,"t":"Lodestar has migrated to using ES modules. Many module class constructors have the following signature: (options, dependencies) e.g.: public constructor(opts: IExampleOptions, {db, logger}: IExampleModules) Modules should be designed to \"do one thing and do it well!\" Consider the interface of a module -- events included, and make sure it is coherent Make sure your code is properly linted use an IDE that will show linter errors/warnings run yarn lint from the command line common rules: Functions and variables should be camelCase, classes should be PascalCase, constants should be UPPERCASE_WITH_UNDERSCORES. Use \" instead of ' All functions should have types declared for all parameters and return value You shouldn't be using TypeScript type any Private class properties should not be prefixed with a _ e.g.: private dirty;, not private _dirty; Make sure that your code is properly type checked: use an IDE that will show type errors run yarn check-types from the command line Make sure that the tests are still passing: run yarn test:unit from the command line Commenting: If your code does something that is not obvious or deviates from standards, leave a comment for other developers to explain your logic and reasoning. Use // commenting format unless it's a comment you want people to see in their IDE. Use /** */ commenting format for documenting a function/variable. Code white space can be helpful for reading complex code, please add some. For unit tests, we forbid import stubbing when other approaches are feasible. Metrics are a critical part of Lodestar, every large feature should be documented with metrics Metrics need to follow the Prometheus Best Practices For metric names, make sure to add the unit as suffix, e.g. _seconds or _bytes Metric code variables on the other hand should not be suffixed, i.e. Sec-suffix should be omitted Time-based metrics must use seconds as the unit","s":"Style Guide","u":"/lodestar/contribution/getting-started","h":"#style-guide","p":78},{"i":109,"t":"Test must not depend on external live resources, such that running tests for a commit must be deterministic: Do not pull data from external APIs like execution JSON RPC (instead run a local node). Do not pull unpinned versions from dockerhub (use deterministic tag) or Github (checkout commit not branch). Carefully design tests that depend on timing sensitive events like p2p network e2e tests. Consider that Github runners are significantly less powerful than your development environment. Add assertion messages where possible to ease fixing tests if they fail. If an assertion message is called from multiple times with the same stack trace, you MUST include an assertion message. For example, if an assertion is inside a for loop add some metadata to be able to locate the error source: for (const blockResult of blocksResult) { expect(blockResult.status).equals(\"processed\", `wrong block ${blockResult.id} result status`); }","s":"Tests style guide","u":"/lodestar/contribution/getting-started","h":"#tests-style-guide","p":78},{"i":112,"t":"Contributors must choose the log level carefully to ensure a consistent experience for every type of user: error: Critical issues that prevent the application from functioning correctly or cause significant disruption to users. Examples include failed network connections, crashes, or data corruption. warn: Situations that may lead to critical issues if not addressed but do not prevent the application from functioning. Examples include configuration issues, deprecated features, or temporary network disruptions. info: General sporadic informational about the node's state. Examples include initialization messages, infrequent periodic status updates, or high-level progress reports. debug: Detailed diagnostic information that can help developers or users troubleshoot specific issues. Examples include individual request logs for every REST API, networking interactions, or internal components status changes. Alias to verbose.","s":"Logging Levels","u":"/lodestar/contribution/getting-started","h":"#logging-levels","p":78},{"i":114,"t":"Avoid excessive logging. Log messages should be clear and concise, providing enough information to understand the context and severity of the issue. Do not log sensitive data, such as private keys, user credentials, or personal information. Do not log arbitrary data from the network as ASCII or UTF8 at levels higher or equal to info. Use clear and concise language. Prefer to log variables in JSON format log.debug(\"Action\", {slot}) instead of formatting the text yourself log.debug('slot=${slot}'). Include only relevant context in log messages, sufficient to debug the issue or action it refers to.","s":"Logging guidelines","u":"/lodestar/contribution/getting-started","h":"#logging-guidelines","p":78},{"i":116,"t":"To edit or extend an existing Grafana dashboard with minimal diff: Grab the .json dashboard file from current unstable Import the file to Grafana via the web UI at /dashboard/import without modifying the UID of the dashboard Visually edit the dashboard Once done make sure to leave the exact same visual aspect as before: same refresh interval, time range, etc. Save the dashboard (CTRL+S) Run download script, see below on how to use it Check git diff of updated dashboards, commit, push and open your PR","s":"Contributing to Grafana dashboards","u":"/lodestar/contribution/getting-started","h":"#contributing-to-grafana-dashboards","p":78},{"i":118,"t":"Create a file .secrets.env with envs GRAFANA_API_KEY=$token GRAFANA_URL=https://yourgrafanaapi.io Run script to download dashboards to ./dashboards folder node scripts/download_dashboards.mjs","s":"Using Download Script","u":"/lodestar/contribution/getting-started","h":"#using-download-script","p":78},{"i":120,"t":"When submitting PRs for documentation updates, build and run the documentation locally to ensure functionality before submission. First generate the CLI documentation with yarn docs:build. Then build and serve the documentation locally with yarn docs:serve. Your locally served documentation will then be accessible at http://localhost:3000/lodestar/. We also use a spelling word list as part of our documentation checks. If using unrecognized words or abbreviations, please extend the word list to pass checks. Make sure the list is sorted with ./scripts/wordlist_sort.sh and checked with ./scripts/wordlist_sort_check.sh for sorting and duplicates.","s":"Contributing to Documentation","u":"/lodestar/contribution/getting-started","h":"#contributing-to-documentation","p":78},{"i":122,"t":"Issues and pull requests are subject to the following labeling guidelines. PRs may have a status label to indicate deviation from the normal process such as status-blocked or status-do-not-merge Issues and PRs will be tagged with a scope and prio to indicate type and priority for triage. All other labels allow for further evaluation and organization. Label descriptions can be found below. status.* Issues and Pull Request Status​ Status labels apply to issues and pull requests which deviate from normal processes. scope.* Scope Indicator​ Scope is comparable to Module labels but less strict with the definition of components. It applies to both, issues and pull requests. prio.* Prioritization Indicator​ A simple indicator of issue prioritization. It mainly applies to issues. spec.* Ethereum Consensus Spec Version Target​ Issues that target a specific version of the Ethereum consensus spec, shall be tagged accordingly.","s":"Label Guide","u":"/lodestar/contribution/getting-started","h":"#label-guide","p":78},{"i":124,"t":"Come chat with us on Discord and join our public weekly planning meetings!","s":"Community","u":"/lodestar/contribution/getting-started","h":"#community","p":78},{"i":128,"t":"Quickly bootstrap a beacon node and multiple validators. Use for development and testing","s":"dev CLI Command","u":"/lodestar/contribution/dev-cli","h":"","p":127},{"i":130,"t":"Start a single beacon node with 8 interop validators ./lodestar dev --genesisValidators 8 --reset","s":"Examples","u":"/lodestar/contribution/dev-cli","h":"#examples","p":127},{"i":132,"t":"--dataDir​ Lodestar root data directory type: string --network​ Name of the Ethereum Consensus chain network to join type: string choices: \"mainnet\", \"gnosis\", \"sepolia\", \"holesky\", \"chiado\", \"ephemery\", \"mekong\", \"dev\" default: \"mainnet\" --paramsFile​ Network configuration file type: string --terminal-total-difficulty-override​ Terminal PoW block TTD override type: string --terminal-block-hash-override​ Terminal PoW block hash override type: string --terminal-block-hash-epoch-override​ Terminal PoW block hash override activation epoch type: string --checkpointSyncUrl​ Server url hosting Beacon Node APIs to fetch weak subjectivity state. Fetch latest finalized by default, else set --wssCheckpoint type: string --checkpointState​ Set a checkpoint state to start syncing from type: string --wssCheckpoint​ Start beacon node off a state at the provided weak subjectivity checkpoint, to be supplied in : format. For example, 0x1234:100 will sync and start off from the weak subjectivity state at checkpoint of epoch 100 with block root 0x1234. type: string --forceCheckpointSync​ Force syncing from checkpoint state even if db state is within weak subjectivity period. This helps to avoid long sync times after node has been offline for a while. type: boolean --private​ Do not send implementation details over p2p identify protocol and in builder, execution engine and eth1 requests type: boolean --validatorMonitorLogs​ Log validator monitor events as info. This requires metrics to be enabled. type: boolean --disableLightClientServer​ Disable light client server. type: boolean --logLevel​ Logging verbosity level for emitting logs to terminal type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"info\" --logFile​ Path to output all logs to a persistent log file, use 'none' to disable type: string --logFileLevel​ Logging verbosity level for emitting logs to file type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"debug\" --logFileDailyRotate​ Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation type: number default: 5 --rest​ Enable/disable HTTP API type: boolean default: true --rest.namespace​ Pick namespaces to expose for HTTP API. Set to '*' to enable all namespaces type: string[] choices: \"beacon\", \"config\", \"debug\", \"events\", \"lightclient\", \"lodestar\", \"node\", \"proof\", \"validator\", \"*\" default: [\"beacon\",\"config\",\"debug\",\"events\",\"node\",\"validator\",\"lightclient\"] --rest.cors​ Configures the Access-Control-Allow-Origin CORS header for HTTP API type: string default: \"*\" --rest.address​ Set host for HTTP API type: string default: \"127.0.0.1\" --rest.port​ Set port for HTTP API type: number default: 9596 --rest.swaggerUI​ Enable Swagger UI for API exploration at http://{address}:{port}/documentation type: boolean default: true --suggestedFeeRecipient​ Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$). It would be possible (WIP) to override this per validator key using config or key manager API. Only used post merge. type: string default: \"0x0000000000000000000000000000000000000000\" --emitPayloadAttributes​ Flag to SSE emit execution payloadAttributes before every slot type: boolean default: false --chain.archiveBlobEpochs​ Number of epochs to retain finalized blobs (minimum of MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS) type: number --eth1​ Whether to follow the eth1 chain type: boolean --eth1.providerUrls​ Urls to Eth1 node with enabled rpc. If not explicitly provided and execution endpoint provided via execution.urls, it will use execution.urls. Otherwise will try connecting on the specified default(s) type: string[] default: [ \"http://localhost:8545\" ] --execution.urls​ Urls to execution client engine API type: string[] default: [ \"http://localhost:8551\" ] --execution.timeout​ Timeout in milliseconds for execution engine API HTTP client type: number default: 12000 --execution.retries​ Number of retries when calling execution engine API type: number default: 2 --execution.retryDelay​ Delay time in milliseconds between retries when retrying calls to the execution engine API type: number default: 2000 --execution.engineMock​ Set the execution engine to mock mode (development only) type: boolean --jwtSecret​ File path to a shared hex-encoded jwt secret which will be used to generate and bundle HS256 encoded jwt tokens for authentication with the EL client's rpc server hosting engine apis. Secret to be exactly same as the one used by the corresponding EL client. type: string --jwtId​ An optional identifier to be set in the id field of the claims included in jwt tokens used for authentication with EL client's rpc server hosting engine apis type: string --builder​ An alias for --builder.selection default for the builder flow, ignored if --builder.selection is explicitly provided type: boolean --builder.url​ Url hosting the builder API type: string default: \"http://localhost:8661\" --builder.timeout​ Timeout in milliseconds for builder API HTTP client type: number default: 12000 --builder.faultInspectionWindow​ Window to inspect missed slots for enabling/disabling builder circuit breaker type: number --builder.allowedFaults​ Number of missed slots allowed in the faultInspectionWindow for builder circuit type: number --metrics​ Enable the Prometheus metrics HTTP server type: boolean default: false --metrics.port​ Listen TCP port for the Prometheus metrics HTTP server type: number default: 5064 --metrics.address​ Listen address for the Prometheus metrics HTTP server type: string default: \"127.0.0.1\" --monitoring.endpoint​ Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in) type: string --monitoring.interval​ Interval in milliseconds between sending client stats to the remote service type: number default: 60000 --discv5​ Enable discv5 type: boolean default: true --listenAddress​ The IPv4 address to listen for p2p UDP and TCP connections type: string default: \"0.0.0.0\" --port​ The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort flag. type: number default: 9000 --discoveryPort​ The UDP port that discovery will listen on. Defaults to port type: number default: port --listenAddress6​ The IPv6 address to listen for p2p UDP and TCP connections type: string --port6​ The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort6 flag. type: number default: 9090 --discoveryPort6​ The UDP port that discovery will listen on. Defaults to port6 type: number default: port6 --bootnodes​ Bootnodes for discv5 discovery type: string[] default: [ \"[]\" ] --targetPeers​ The target connected peers. Above this number peers will be disconnected type: number default: 100 --subscribeAllSubnets​ Subscribe to all subnets regardless of validator count type: boolean default: false --disablePeerScoring​ Disable peer scoring, used for testing on devnets type: boolean default: false --mdns​ Enable mdns local peer discovery type: boolean default: false --enr.ip​ Override ENR IP entry type: string --enr.tcp​ Override ENR TCP entry type: number --enr.udp​ Override ENR UDP entry type: number --enr.ip6​ Override ENR IPv6 entry type: string --enr.tcp6​ Override ENR (IPv6-specific) TCP entry type: number --enr.udp6​ Override ENR (IPv6-specific) UDP entry type: number --nat​ Allow configuration of non-local addresses type: boolean --keymanager​ Enable key manager API server type: boolean --keymanager.auth​ Enable token bearer authentication for key manager API server type: boolean default: true --keymanager.tokenFile​ Path to file containing bearer token used for key manager API authentication type: string --keymanager.port​ Set port for key manager API type: number default: 5062 --keymanager.address​ Set host for key manager API type: string default: \"127.0.0.1\" --keymanager.cors​ Configures the Access-Control-Allow-Origin CORS header for key manager API type: string default: \"*\" --beaconNodes​ Addresses to connect to BeaconNode type: string[] default: [ \"http://127.0.0.1:9596\" ] --force​ Open validators even if there's a lockfile. Use with caution type: boolean --graffiti​ Specify your custom graffiti to be included in blocks (plain UTF8 text, 32 characters max) type: string --proposerSettingsFile​ A yaml file to specify detailed default and per validator public key customized proposer configs. PS: This feature and its format is in alpha and subject to change type: string --strictFeeRecipientCheck​ Enable strict checking of the validator's feeRecipient with the one returned by engine type: boolean --defaultGasLimit​ Suggested gas limit to the engine/builder for building execution payloads. Only used post merge. type: number default: 30000000 --builder.selection​ Builder block selection strategy default, maxprofit, builderalways, builderonly, executionalways, or executiononly type: string default: \"executiononly\" --builder.boostFactor​ Percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if --builder.selection is set to anything other than maxprofit type: string default: \"100\" --useProduceBlockV3​ Enable/disable usage of produceBlockV3 for block production, is auto enabled on deneb+ blocks type: boolean --broadcastValidation​ Validations to be run by beacon node for the signed block prior to publishing type: string default: \"gossip\" --blindedLocal​ Request fetching local block in blinded format for produceBlockV3 type: boolean default: false --importKeystores​ Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators type: string[] default: [ \"./keystores/*.json\" ] --importKeystoresPassword​ Path to a file with password to decrypt all keystores from importKeystores option type: string default: \"./password.txt\" --doppelgangerProtection​ Enables Doppelganger protection type: boolean --http.requestWireFormat​ Wire format to use in HTTP requests to beacon node. Can be one of json or ssz type: string default: \"json\" --http.responseWireFormat​ Preferred wire format for HTTP responses from beacon node. Can be one of json or ssz type: string default: \"ssz\" --externalSigner.url​ URL to connect to an external signing server type: string --externalSigner.pubkeys​ List of validator public keys used by an external signer. May also provide a single string of comma-separated public keys type: string[] --externalSigner.fetch​ Fetch the list of public keys to validate from an external signer. Cannot be used in combination with --externalSigner.pubkeys type: boolean --externalSigner.fetchInterval​ Interval in milliseconds between fetching the list of public keys from external signer, once per epoch by default type: number --distributed​ Enables specific features required to run as part of a distributed validator cluster type: boolean --genesisEth1Hash​ If present it will create genesis with this eth1 hash. type: string --genesisValidators​ If present it will create genesis with interop validators and start chain. type: number default: 8 --startValidators​ Start interop validators in inclusive range with notation '0..7' type: string --genesisTime​ genesis_time to initialize interop genesis state type: number default: now --reset​ To delete chain and validator directories type: boolean --dumpTestnetFiles​ Dump testnet files and exit type: string","s":"dev Options","u":"/lodestar/contribution/dev-cli","h":"#dev-options","p":127},{"i":134,"t":"Testing is critical to the Lodestar project and there are many types of tests that are run to build a product that is both effective AND efficient. This page will help to break down the different types of tests you will find in the Lodestar repo. There are few flags you can set through env variables to override behavior of testing and it's output. ENV variable Effect Impact TEST_COMPACT_DIFF All Will strip down the object difference rendered during test failures. Very useful for large object matching. TEST_QUIET_CONSOLE All Will strip down console output. Reduce console flickering. TEST_COMPACT_OUTPUT All Display a condensed summary of tests run. Use vitest basic reporter.","s":"Testing","u":"/lodestar/contribution/testing/","h":"","p":133},{"i":136,"t":"This is the most fundamental type of test in most code bases. In all instances mocks, stubs and other forms of isolation are used to test code on a functional, unit level. See the Unit Tests page for more information.","s":"Unit Tests","u":"/lodestar/contribution/testing/","h":"#unit-tests","p":133},{"i":138,"t":"The Ethereum Consensus Specifications are what ensure that the various consensus clients do not diverge on critical computations and will work harmoniously on the network. See the Spec Tests page for more information.","s":"Spec Tests","u":"/lodestar/contribution/testing/","h":"#spec-tests","p":133},{"i":140,"t":"Node.js is an unforgiving virtual machine when it comes to high performance, multi-threaded applications. In order to ensure that Lodestar can not only keep up with the chain, but to push the boundary of what is possible, there are lots of performance tests that benchmark programming paradigms and prevent regression. See the Performance Testing page for more information.","s":"Performance Tests","u":"/lodestar/contribution/testing/","h":"#performance-tests","p":133},{"i":142,"t":"E2E test are where Lodestar is run in its full form, often from the CLI as a user would to check that the system as a whole works as expected. These tests are meant to exercise the entire system in isolation and there is no network interaction, nor interaction with any other code outside of Lodestar. See the End-To-End Testing page for more information.","s":"End-To-End Tests","u":"/lodestar/contribution/testing/","h":"#end-to-end-tests","p":133},{"i":144,"t":"Integration tests are meant to test how Lodestar interacts with other clients, but are not considered full simulations. This is where Lodestar may make API calls or otherwise work across the process boundary, but there is required mocking, stubbing, or class isolation. An example of this is using the ExecutionEngine class to make API calls to a Geth instance to check that the http requests are properly formatted.","s":"Integration Tests","u":"/lodestar/contribution/testing/","h":"#integration-tests","p":133},{"i":146,"t":"These are the most comprehensive types of tests. They aim to test Lodestar in a fully functioning ephemeral devnet environment. See the Simulation Testing page for more information.","s":"Simulation Tests","u":"/lodestar/contribution/testing/","h":"#simulation-tests","p":133},{"i":148,"t":"Check back soon for more information!! We are in the process of updating our docs.","s":"End-To-End Tests","u":"/lodestar/contribution/testing/end-to-end-tests","h":"","p":147},{"i":150,"t":"The following tests are found in packages/beacon-node test:sim:mergemock​ yarn test:sim:blobs​","s":"Integration Tests","u":"/lodestar/contribution/testing/integration-tests","h":"","p":149},{"i":152,"t":"\"Sim\" testing for Lodestar is the most comprehensive, and complex, testing that is run. The goal is to fully simulate a testnet and to actuate the code in a way that closely mimics what will happen when turning on Lodestar in the wild. This is a very complex task and requires a lot of moving parts to work together. The following sections will describe the various components and how they work together. At a very high level, simulation testing will setup a testnet from genesis and let proceed through \"normal\" execution exactly as the nodes would under production circumstances. To get feedback there are regular checks along the way to asses how the testnet nodes are working. These \"assertions\" can be added and removed at will to allow developers to check for specific conditions in a tightly controlled, reproducible, environment to get high quality and actionable feedback on how Lodestar performs. The end goal of these tests is to to run a full Lodestar client in an environment that is as close to what an end user would experience. These tests usually setup full testnets with multiple consensus clients and their paired execution node. In many instance we are looking to just exercise the Lodestar code but there are some places where there is also testing to see how Lodestar works in relation to the other consensus clients, like Lighthouse. As you can imagine, there is quite a bit of machinery that is responsible for setting up and managing the simulations and assertions. This section will help to go over those bits and pieces. Many, but not all, of these classes can be found in packages/cli/test/utils/simulation.","s":"Simulation Tests","u":"/lodestar/contribution/testing/simulation-tests","h":"","p":151},{"i":154,"t":"There are a number of sim tests that are available and each has a slightly different purpose. All are run by CI and must pass for a PR to be valid for merging. Most tests require a couple of environment variables to be set.","s":"Running Sim Tests","u":"/lodestar/contribution/testing/simulation-tests","h":"#running-sim-tests","p":151},{"i":156,"t":"To see what typical values for these are check out the .env.test file in the root directory. GETH_DOCKER_IMAGE: The geth docker image that will be used NETHERMIND_IMAGE: The nethermind docker image that will be used LIGHTHOUSE_IMAGE: The lighthouse docker image that will be used","s":"Environment Variables","u":"/lodestar/contribution/testing/simulation-tests","h":"#environment-variables","p":151},{"i":158,"t":"The multi-fork sim test checks most of the functionality Lodestar provides. Is verifies that Lodestar is capable of peering, moving through all of the forks and using various sync methods in a testnet environment. Lodestar is tested with both Geth and Nethermind as the execution client. It also checks a Lighthouse/Geth node for cross client compatibility. yarn workspace @chainsafe/lodestar test:sim:multifork","s":"test:sim:multifork","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimmultifork","p":151},{"i":160,"t":"This tests that various endpoints of the beacon node and validator client are working as expected. yarn workspace @chainsafe/lodestar test:sim:endpoints","s":"test:sim:endpoints","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimendpoints","p":151},{"i":162,"t":"This test is still included in our CI but is no longer as important as it once was. Lodestar is often the first client to implement new features and this test was created before geth was upgraded with the features required to support the Deneb fork. To test that Lodestar was ready this test uses mocked geth instances. It is left as a placeholder for when the next fork comes along that requires a similar approach.","s":"test:sim:deneb","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimdeneb","p":151},{"i":164,"t":"Checks that Lodestar is compatible with other consensus validators and vice-versa. All tests use Geth as the EL. yarn workspace @chainsafe/lodestar test:sim:mixedclient","s":"test:sim:mixedcleint","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimmixedcleint","p":151},{"i":166,"t":"When setting up and running the simulations, interactions with the nodes is through the published node API's. All functionality is actuated via http request and by \"plugging in\" this way it is possible to run the nodes in a stand-alone fashion, as they would be run in production, but to still achieve a tightly monitored and controlled environment. If code needs to be executed on a \"class by class\" basis or with mocking involved then the test is not a simulation test and would fall into one of the other testing categories. See the Testing Overview page for more information on the other types of tests available for Lodestar.","s":"Sim Test Infrastructure","u":"/lodestar/contribution/testing/simulation-tests","h":"#sim-test-infrastructure","p":151},{"i":168,"t":"The simulation environment has many pieces and those are orchestrated by the SimulationEnvironment class. The testnet nodes will be run as a mixture of Docker containers and bare metal code execution via Node.js. In order to monitor the various clients there is a SimulationTracker that's primary function is to register assertions that will track and gauge how the nodes are doing during the simulation. See the section on Simulation Assertions below for more information on them. There is an EpochClock that has helper functions related to timing of slots and epochs and there is also a Runner that will help to start/stop the various Docker container and spawn the Node.js child processes as necessary. The SimulationEnvironment is the orchestrator for all the various functions to great the test net and start it from genesis. It is also how the various forks are configured to exercise code through various fork transitions.","s":"Simulation Environment","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-environment","p":151},{"i":170,"t":"These are the secret sauce for making the simulation tests meaningful. There are several predefined assertions that can be added to a simulation tracker and one can also create custom assertions and add them to the environment. Assertions can be added per slot, per epoch, per fork or per node. They can even be added to check conditions across nodes. Assertions are added to the SimulationTracker with the register method and the tracker follows the environment to make sure that assertions are run at the appropriate times, and on the correct targets. Assertions are implemented via API calls to the various targets and meta from the API calls is stored and used to assert that the desired conditions were met. Any information that can be retrieved via API call can be added to the assertion stores for validation, and validations can be asserted at a specific time or on an interval. There are a number of assertions that are added to simulations by default. They are: inclusionDelayAssertion attestationsCountAssertion attestationParticipationAssertion connectedPeerCountAssertion finalizedAssertion headAssertion missedBlocksAssertion syncCommitteeParticipationAssertion Because of the flexibility, and complexity, there is a section specifically for how to create custom assertions below. See custom assertions for more info.","s":"Simulation Assertions","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-assertions","p":151},{"i":172,"t":"Check back soon for more information on how to create custom assertions.","s":"Custom Assertions","u":"/lodestar/contribution/testing/simulation-tests","h":"#custom-assertions","p":151},{"i":174,"t":"Sim tests that are run using the simulation framework output a table of information to the console. The table summarizes the state of all of the nodes and the network at each slot. Here is an example of the table and how to interpret it: ┼─────────────────────────────────────────────────────────────────────────────────────────────────┼ │ fork │ eph │ slot │ head │ finzed │ peers │ attCount │ incDelay │ errors │ ┼─────────────────────────────────────────────────────────────────────────────────────────────────┼ │ capella │ 9/0 │ 72 │ 0x95c4.. │ 56 │ 3 │ 16 │ 1.00 │ 0 │ │ capella │ 9/1 │ 73 │ 0x9dfc.. │ 56 │ 3 │ 16 │ 1.00 │ 0 │ │ capella │ 9/2 │ 74 │ 0xdf3f.. │ 56 │ 3 │ 16 │ 1.00 │ 0 │ │ capella │ 9/3 │ 75 │ 0xbeae.. │ 56 │ 3 │ 16 │ 1.00 │ 0 │ │ capella │ 9/4 │ 76 │ 0x15fa.. │ 56 │ 3 │ 16 │ 1.00 │ 0 │ │ capella │ 9/5 │ 77 │ 0xf8ff.. │ 56 │ 2,3,3,2 │ 16 │ 1.00 │ 0 │ │ capella │ 9/6 │ 78 │ 0x8199.. │ 56 │ 2,3,3,2 │ 16 │ 1.20 │ 0 │ │ capella │ 9/7 │ 79 │ different │ 56 │ 2,3,3,2 │ 16 │ 1.50 │ 2 │ ┼─────────────────────────────────────────────────────────────────────────────────────────────────┼ │ Att Participation: H: 0.75, S: 1.00, T: 0.75 - SC Participation: 1.00 │ ┼─────────────────────────────────────────────────────────────────────────────────────────────────┼ Slot Information​ fork: shows what fork is currently being tested eph: During simulation tests the Lodestar repo is setup to use 8 slot per epoch so what is shown is the epoch number and the slot number within that epoch as epoch/slot slot: The slot number that is currently being processed head: If all clients have the same head the first couple of bytes of the hash are shown. If all clients do not have the same head different is reported. finzed: Shows the number of the last finalized slot peers: The number of peers that each node is connected to. If all have the same number then only a single value is shown. If they do not have the same number of peers count for each node is reported in a comma-separated list attCount: The number of attestations that the node has seen. incDelay: The average number of slots inclusion delay was experienced for the attestations. Often attestations for the current head arrive more than one slot behind and this value tracks that errors: The number of errors that were encountered during the slot Epoch Information​ H: The percentage of nodes, at epoch transition, that voted for the head block S: The percentage of nodes, at epoch transition, that voted for the source block T: The percentage of nodes, at epoch transition, that voted for the target block SC Participation: The sync committee participation rate","s":"Simulation Reports","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-reports","p":151},{"i":176,"t":"The simulation environment will capture all of the logs from all nodes that are running. The logs can be found in the packages/cli/test-logs directory. The logs are named with the following convention: -_.log Some examples are: node-1-beacon_lodestar.log: The is the first node in the simulation. It is the consensus layer. It is running the lodestar validator client. range-sync-execution_geth.log: This is the node that was added to test pulling history in range sync mode. It was the execution layer and was running the geth execution client.","s":"Simulation Logging","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-logging","p":151},{"i":178,"t":"Check back soon for more information!! We are in the process of updating our docs.","s":"Performance Tests","u":"/lodestar/contribution/testing/performance-tests","h":"","p":177},{"i":180,"t":"Check back soon for more information!! We are in the process of updating our docs.","s":"Specification Tests","u":"/lodestar/contribution/testing/spec-tests","h":"","p":179},{"i":182,"t":"Check back soon for more information!! We are in the process of updating our docs.","s":"Unit Tests","u":"/lodestar/contribution/testing/unit-tests","h":"","p":181},{"i":184,"t":"Core dump analysis is some ninja level stuff. Once you get the hang of it you will feel like you have super powers. It will up your game to a whole new level because you will be able to debug issues that seemed impossible before. Post-crash analysis is a very powerful tool to have in your tool belt. A core dump has all of the objects in memory as well as all of the stack frame information at the exact moment the dump was taken, usually when a hard crash occurs. It is important to note that debug symbols will greatly aid you in your debugging for issues related to native code like C/C++. When compiled languages are optimized the compiler will often strip out identifiers and all that will be remaining are mangled symbols and addresses. Compiling with debug symbols will leave all of the identifiers, file names and line numbers in-tact. While it is not always practical to be running code in a Debug version of node, if you run across a persistent issue it will be helpful to recreate it on a debug build and to use that for analysis. It is important to note that the EXACT binary that was running when the dump was created MUST be loaded when doing analysis. There is a lot of information in the dump that is specific to the binary that was running (like function offsets, etc). If you load a different binary you will get a lot of errors and the analysis will not be useful (if it loads at all). It is also a nice-to-know that you can create the dump on linux, using a linux compiled version of node, and then read it on a mac. All that is needed is to download the node binary and dump file to the mac. It is possible to load them into a mac compiled version of llnode and all will work as expected. Its just the meta in the linux binary that is needed for analysis, it doesn't actually run the code.","s":"Core Dump Analysis","u":"/lodestar/contribution/tools/core-dumps","h":"","p":183},{"i":186,"t":"llnode is a Node.js plugin for the LLDB debugger. It is the officially sanctioned tool from Node and powerful way to do postmortem analysis of Node.js processes. The process for install is pretty straight-forward unless you have an M1 mac. XCode ships with an instance of lldb and installing llnode is as simple as running npm install -g llnode. On an M1 mac the install will work fine but the plugin will crash at load time. See this issue for updates. The workaround is to install lldb via homebrew. # should only be necessary on M1 macs at time of writing $ brew install llvm $ echo 'export PATH=\"/opt/homebrew/opt/llvm/bin:$PATH\"' >> ~/.zshrc $ # note that its before recopying PATH to make sure it resolves $ zsh ~/.zshrc $ which llvm-config /opt/homebrew/opt/llvm/bin/llvm-config # if this is not what comes up restart the shell $ npm install -g llnode $ llnode (lldb) plugin load '/Users/ninja_user/.nvm/versions/node/v22.1.0/lib/node_modules/llnode/llnode.dylib' (lldb) settings set prompt '(llnode) ' (llnode)","s":"Installing llnode","u":"/lodestar/contribution/tools/core-dumps","h":"#installing-llnode","p":183},{"i":188,"t":"Before a core dump can be created the system must be enabled. ulimit -c unlimited This is a critical step. If that command is not run the core will not be dumped to disk. Core dumps are normally created by the kernel when certain process signals are encountered. SIGSEGV is the most common signal that will cause a dump and its sent by the kernel to the process when a segfault occurs. SIGSEGV is not the only signal that works and you can see the full list here under the \"Standard Signals\" section (all the ones that say \"Core\" in the \"Action\" column). If you want to create a dump on demand you can use the gcore command on linux. This will create a dump of the process without killing it. If you don't mind termination you can also use kill -SIGSEGV to send the a dump signal to the process.","s":"Collecting a core dump","u":"/lodestar/contribution/tools/core-dumps","h":"#collecting-a-core-dump","p":183},{"i":190,"t":"Once you collect the core dump you can load it into llnode for debugging. # remember that the node binary must be the exact same one that was running when the core was created $ llnode -f /path/to/node_debug -c /Users/ninja_user/coredumps/node.coredump (lldb) target create \"node_debug\" --core \"node.coredump\" Core file '/Users/ninja_user/coredumps/node.coredump' (x86_64) was loaded. (lldb) plugin load '/Users/ninja_user/.nvm/versions/node/v22.1.0/lib/node_modules/llnode/llnode.dylib' (lldb) settings set prompt '(llnode) ' (llnode) Once the dump is loaded the first few steps will be to figure out what types of objects were in memory and what was the processor working on when the crash occurred. Lets start with the stack trace. There are two distinct commands for pulling the stack because node is both a native runtime and a virtual machine. The bt, back trace, command will pull the native stack frames and the v8 bt command will use the llnode plugin to pull the JavaScript stack frames. Newer versions of llnode will automatically pull the JavaScript stack frames when the bt command is run but it is still good to know the difference. It is also possible to add the all verb to the bt command and it will pull the back trace for all threads. To start looking through memory there are two commands that are helpful. The v8 findjsobjects command will list all of the JavaScript objects in memory. The v8 findjsinstances command will list all of the instances of a particular JavaScript object.","s":"Analyzing a core dump","u":"/lodestar/contribution/tools/core-dumps","h":"#analyzing-a-core-dump","p":183},{"i":192,"t":"This page describes different approaches for debugging Lodestar.","s":"Debugging","u":"/lodestar/contribution/tools/debugging","h":"","p":191},{"i":194,"t":"The simplest way to debug is to use the provided launch.template.json configurations. Copy them as .vscode/launch.json and they will be made available in the Run and Debug section in VS Code. Adapt as needed, e.g. by adding additional arguments to the beacon configuration to match your needs. VS Code supports debugging Workers out of the box when using those configurations.","s":"VS Code launch config","u":"/lodestar/contribution/tools/debugging","h":"#vs-code-launch-config","p":191},{"i":196,"t":"Remote lodestar processes can also be debugged by leveraging node:inspector. Adding --inspect to the node CLI (e.g. NODE_OPTIONS=--inspect ./lodestar beacon) allows to debug the main thread. To debug a specific Worker, follow those steps: remove --inspect from node CLI add following code to the worker import inspector from \"node:inspector\"; inspector.open(); inspector.waitForDebugger(); Use VS Code or Chrome devtools to debug those processes.","s":"Attach to running process","u":"/lodestar/contribution/tools/debugging","h":"#attach-to-running-process","p":191},{"i":199,"t":"This guide assumes a running instance of Lodestar and will walk through how to generate a flamegraph for the process while running on Linux. While it is possible to run Lodestar in a number of ways, for performance profiling it is recommended to not use Dockerized implementations. It is best to run Lodestar as a service on a Linux machine. Follow the Lodestar docs to get the service installed and running. Then come back here when you are ready to generate the flamegraph.","s":"Generating Flamegraphs for a Running Node Service on Linux","u":"/lodestar/contribution/tools/flamegraphs","h":"","p":198},{"i":201,"t":"Use the following two commands to install perf for generating the stack traces. You may get a warning about needing to restart the VM due to kernel updates. This is nothing to be concerned with and if so, cancel out of the restart dialog. sudo apt-get install linux-tools-common linux-tools-generic sudo apt-get install linux-tools-`uname -r` # empirically this throws if run on the same line above Next we need to update the Lodestar service by modifying the start script. We need to add a necessary flag --perf-basic-prof to allow the stack traces to be useful. Node is a virtual machine and perf is designed to capture host stack traces. In order to allow the JavaScript functions to be captured meaningfully, v8 can provide some help. Generally Lodestar is started with a script like the following:","s":"Modifying Linux and Lodestar","u":"/lodestar/contribution/tools/flamegraphs","h":"#modifying-linux-and-lodestar","p":198},{"i":203,"t":"node \\ --perf-basic-prof \\ --max-old-space-size=8192 \\ /usr/src/lodestar/packages/cli/bin/lodestar \\ beacon \\ --rcConfig /home/devops/beacon/rcconfig.yml After updating the start script, restart the node process running the beacon service. Note in the command below, that the beacon service may have a different name or restart command, depending on your setup. admin@12.34.56.78: sudo systemctl restart beacon The flag that was added notifies V8 to output a map of functions and their addresses. This is necessary for perf to generate the stack traces for the virtual machine in addition to the traditional host stack traces. There is a very small, performance overhead to output the maps. After a short while, once the process runs for a bit the functions will no longer be moving in memory and the overhead will be significantly reduced. The VM will still be moving objects around but this flag is generally safe to run in production. After a few minutes of running, listing the directory with the start script (process.cwd()) will look similar: -rw-r--r-- 1 admin admin 9701529 May 22 00:36 beacon-2023-05-22.log -rwxrwxr-x 1 admin root 421 May 22 00:31 beacon_run.sh drwxr-xr-x 2 admin admin 917504 May 22 00:35 chain-db -rw-r--r-- 1 admin admin 2861242 May 22 00:36 isolate-0x6761520-2085004-v8.log -rw-r--r-- 1 admin admin 203172 May 22 00:36 isolate-0x7fa2f0001060-2085004-v8.log -rw-r--r-- 1 admin admin 68044 May 22 00:36 isolate-0x7fcd80001060-2085004-v8.log -rw-r--r-- 1 admin admin 420809 May 22 00:36 isolate-0x7fcd84001060-2085004-v8.log -rw-r--r-- 1 admin admin 123919 May 22 00:36 isolate-0x7fcd88001060-2085004-v8.log -rw-r--r-- 1 admin admin 94391 May 22 00:35 isolate-0x7fcd8c001060-2085004-v8.log -rw-r--r-- 1 admin admin 183831 May 22 00:36 isolate-0x7fcd90000e60-2085004-v8.log -rw-r--r-- 1 admin admin 152786 May 22 00:36 isolate-0x7fcd94000e60-2085004-v8.log -rw-r--r-- 1 admin admin 262333 May 22 00:36 isolate-0x7fcd98000e60-2085004-v8.log -rw-r--r-- 1 admin admin 218473 May 22 00:36 isolate-0x7fcd9c000e60-2085004-v8.log -rw-r--r-- 1 admin admin 366788 May 22 00:36 isolate-0x7fcda0000e60-2085004-v8.log -rw-r--r-- 1 admin admin 304917 May 22 00:36 isolate-0x7fcda4000e60-2085004-v8.log -rw-r--r-- 1 admin admin 586238 May 22 00:36 isolate-0x7fcda8000e60-2085004-v8.log -rw-r--r-- 1 admin admin 450675 May 22 00:36 isolate-0x7fcdac000e60-2085004-v8.log -rw-r--r-- 1 admin admin 768470 May 22 00:36 isolate-0x7fcdb8000d60-2085004-v8.log -rw-r--r-- 1 admin root 559 May 21 14:17 rcconfig.yml The isolate-*-v8.log files are the maps that v8 outputs for the perf command to reference. You are now ready to collect the stack traces.","s":"Example start_lodestar.sh","u":"/lodestar/contribution/tools/flamegraphs","h":"#example-start_lodestarsh","p":198},{"i":205,"t":"The first command below will run perf for 60 seconds, and then save the output to a file named perf.out. The second one will merge the exported, unknown, tokens with the isolate maps and output full stack traces for the render. Running both perf commands in the folder with the isolate maps will allow the data to be seamlessly spliced. Once the output is saved, update the permissions so the file can be copied to your local machine via scp. You can modify the frequency of capture by changing -F 99 to a different number. Try to stay away from whole numbers as they are more likely to cause interference with periodically scheduled tasks. As an example use 99Hz or 997Hz instead of 100Hz or 1000Hz. In testing neither seemed to have an appreciable affect on CPU usage when run for a short period of time. To change the period of capture adjust the sleep duration (which is in seconds). The pgrep command is used to find the process id to capture against. Feel free to pass a number to the -p flag if you know the process id, or adjust the file path if the executable is in a different location. admin@12.34.56.78: sudo perf record -F 99 -p $(pgrep -f '/usr/src/lodestar/packages/cli/bin/lodestar beacon') -g -- sleep 60 admin@12.34.56.78: sudo perf script -f > perf.out admin@12.34.56.78: sudo chmod 777 ~/beacon/perf.out And then copy the perf.out file to your local machine to render the flamegraph. Running at 99Hz for 180 seconds results in a file size of about 3.5MB and 997Hz for 60 seconds is roughly 4.4MB. scp admin@12.34.56.78:/home/devops/beacon/out.perf /some_temp_dir/perf.out","s":"Capturing Stack Traces","u":"/lodestar/contribution/tools/flamegraphs","h":"#capturing-stack-traces","p":198},{"i":207,"t":"By far the best tool to render flamegraphs is flamescope from Netflix. It allows for easy analysis and zooming into specific time periods. It also give a holistic view of how the process is performing over time.","s":"Rendering a Flamegraph","u":"/lodestar/contribution/tools/flamegraphs","h":"#rendering-a-flamegraph","p":198},{"i":209,"t":"Python3 is required. Clone the repository and install the dependencies: The original is no longer maintained and had a configuration bug. This is a fork that fixes the issue. git clone https://github.com/matthewkeil/flamescope cd flamescope pip3 install -r requirements.txt yarn","s":"Installation","u":"/lodestar/contribution/tools/flamegraphs","h":"#installation","p":198},{"i":211,"t":"mv /some_temp_dir/perf.out /path/to/flamescope/examples yarn dev Then navigate in a browser to http://localhost:8080 and begin analyzing the data.","s":"Usage","u":"/lodestar/contribution/tools/flamegraphs","h":"#usage","p":198},{"i":213,"t":"There can be a lot of \"noise\" in the stack traces with libc, v8 and libuv calls. It is possible to filter the results to make it more useful, but note this will skew the results. Looking at the graph both filtered and unfiltered can be beneficial. The following sed command will remove the noise from the stack traces. sed -r -e \"/( __libc_start| uv_| LazyCompile | v8::internal::| node::| Builtins_| Builtin:| Stub:| LoadIC:| \\\\[unknown\\\\]| LoadPolymorphicIC:)/d\" -e 's/ LazyCompile:[*~]?/ /'","s":"Filtering Results","u":"/lodestar/contribution/tools/flamegraphs","h":"#filtering-results","p":198},{"i":218,"t":"https://www.brendangregg.com/flamegraphs.html https://nodejs.org/en/docs/guides/diagnostics-flamegraph https://netflixtechblog.com/netflix-flamescope-a57ca19d47bb https://jaanhio.me/blog/nodejs-flamegraph-analysis/ (this was a great one about filtering methodology) https://medium.com/voodoo-engineering/node-js-and-cpu-profiling-on-production-in-real-time-without-downtime-d6e62af173e2","s":"List of Web References","u":"/lodestar/contribution/tools/flamegraphs","h":"#list-of-web-references","p":198},{"i":220,"t":"flamescope","s":"Visualization Tools","u":"/lodestar/contribution/tools/flamegraphs","h":"#visualization-tools","p":198},{"i":222,"t":"https://www.brendangregg.com/perf.html https://www.brendangregg.com/linuxperf.html https://www.brendangregg.com/blog/2014-09-17/node-flame-graphs-on-linux.html https://perf.wiki.kernel.org/index.php/Main_Page","s":"Collecting on Linux","u":"/lodestar/contribution/tools/flamegraphs","h":"#collecting-on-linux","p":198},{"i":224,"t":"https://gist.github.com/zeusdeux/aac6f8500917319213c5 https://gist.github.com/loderunner/36724cc9ee8db66db305 https://keith.github.io/xcode-man-pages/xctrace.1.html","s":"Collecting on MacOS","u":"/lodestar/contribution/tools/flamegraphs","h":"#collecting-on-macos","p":198},{"i":226,"t":"This section of the documentation will cover common questions and encounters often asked by users and developers.","s":"Frequently Asked Questions","u":"/lodestar/faqs","h":"","p":225},{"i":228,"t":"\"Package manager issues\" Lodestar relies on Corepack and associated packageManager value to manage its package manager version. Make sure corepack is correctly enabled if you encounter some package manager related issues: corepack enable","s":"Tooling","u":"/lodestar/faqs","h":"#tooling","p":225},{"i":231,"t":"\"Heap memory limit\" Lodestar beacon node requires at least 8GB of heap space. While the lodestar script and the official docker image correctly sets the appropriate value, it might be necessary to manually set it for some specific scenario. The simplest way to achieve this is via the NODE_OPTIONS environment variable or by passing --max-old-space-size directly to the node binary NODE_OPTIONS: --max-old-space-size=8192","s":"Running a beacon node","u":"/lodestar/faqs","h":"#running-a-beacon-node","p":225},{"i":233,"t":"\"Unknown arguments error\" Lodestar reads all environment variables prefixed with LODESTAR and will try to parse them similar to command line arguments, meaning any unknown argument will cause an error. ✖ Unknown arguments: servicePort, servicePortEthConsensusP2p, port9000Tcp, port9000TcpPort, port9000TcpProto, port9000TcpAddr, serviceHost The extra arguments are present because Kubernetes automatically adds environment variables to the Pod based on the name (metadata.name) defined in the associated Service. To resolve the issue, this name has to be changed to something that does not start with lodestar. Reference Issue: #6045","s":"Using Kubernetes","u":"/lodestar/faqs","h":"#using-kubernetes","p":225},{"i":235,"t":"There are a number of reason why one would want to do a heap dump but in particular, they are helpful for find memory intensive operations and leaks. There are two major types of heap dumps that are available to node developers. The first is a JavaScript heap dump, and the second is a native heap dump. The JS heap dump is much more common and is the default heap dump that is generated by node. It is useful when analyzing JS generated objects that are managed by the runtime. However there is one major limitation to the JS heap dump, and that is that it does not include native objects. This is where the native heap dump comes in handy. The native heap dump is a snapshot of the entire process memory, and includes objects that are allocated by C/C++ code, including native modules in use by the application. The limitation to the native heap dump is that it will not include any JS objects that are allocated by the V8 runtime. Those are generally created within mmap'ed pages and the native heap dump tools are specific to C objects that are created with malloc and destroyed via free. C++ is also covered as new and delete are wrappers around malloc and free. This is why it is important to understand how to analyze both types of memory usage.","s":"Heap Dump Analysis","u":"/lodestar/contribution/tools/heap-dumps","h":"","p":234},{"i":237,"t":"Node has built in V8 heap dump access and its a very powerful tool for analyzing memory usage. Understanding how the dump is created will both help to understand how it is displayed and how to use the analysis more effectively. The V8 heap dump is a stop the world process because walking the entire heap graph is necessary to create one. This is similar to a full, major garbage collection event. The VM starts at the heap entrance node and walks the entire graph and makes note of every edge that connects each node along the way. Nodes are JSObjects and edges are references between those objects. By time the whole heap is walked the full size and values of all nodes are known and all of the connections between those nodes is well understood. The object that is returned is a set of three arrays, the nodes, the edges and the string values that are encountered (because strings are themselves arrays of characters in C so they are treated a bit differently by V8).","s":"JavaScript Heap Dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#javascript-heap-dump","p":234},{"i":239,"t":"There are two functions for creating a heap dump but both call the same functionality under the hood. One streams the result, require(\"v8\").getHeapSnapshot([options]), and is primarily intended for use by the Chrome devtools button to \"take a snapshot\". The second writes the heap dump to a file, require(\"v8\").writeHeapSnapshot(filename[,options]). The optional options argument, in both cases, is the same and contains two props.exposeInternals and exposeNumericValues to enrich the dump. In many cases its the application layer that one wants to debug so exposeInternals is not usually necessary. In V8 numbers are stored as 32bit integers and the size of pointers is also 32bits. So as an optimization, the pointer to the numeric value can be eliminated and the value itself can be stored in the Address of the Value instead. exposeNumericValues transcribes those \"pointers\" to the actual numeric value and appends them to the dump. Because heap analysis happens frequently during Lodestar development there is a helper api endpoint to capture a heap dump. It is IMPORTANT that this endpoint is not public facing as it will open the threat of DDOS attack. The endpoint accepts a POST request and you may include an optional dirpath query parameter to specify the directory where the heap dump will be written. If the dirpath is not specified then the heap dump will be written to the current working directory. To create a Lodestar heap dump you can use the following command: curl -X POST http://localhost:9596/eth/v1/lodestar/write_heapdump?dirpath=/some/directory/path","s":"Creating a V8 heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#creating-a-v8-heap-dump","p":234},{"i":241,"t":"It is best to analyze on a local development machine so if Lodestar is running on a cloud instance download the dump to the local environment. Open Chrome, or any Chromium based browser (the example photos were taken using Brave). In the url bar type chrome:://inspect to bring up the DevTools menu (in brave the url will be rewritten to brave://inspect). Click on the Open dedicated DevTools for Node link to open the node specific window and click on the Memory tab as shown below. Load the profile by either right clicking on the left pane or by clicking the Load button at the bottom.","s":"Viewing a V8 heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#viewing-a-v8-heap-dump","p":234},{"i":243,"t":"Analysis is as much an art as it is a science and the best way to learn is to do it a few times. Generally the goal is looking for memory leaks but reducing memory overhead is also something that happens. This guide will focus on leaks. With memory leaks one is looking for why objects have references that prevent them from being garbage collected. To spot sources of leaks, focus on objects that have large quantities or very large retained size. Retained size is the amount of memory that would be freed if the object was garbage collected. As an example if there is an object that has lots and lots of instances, like 100,000, and they are all pushed into an array then the array will have a very large retained size. This is because the array is holding references to all of the objects that it contains. If it is not immediately apparent what objects are being leaked then another tool in your arsenal will be to take a second snapshot and compare it to the first. This will show what objects have been created/changed since the first snapshot. If there is an object that has a large retained size but is roughly the same, but not exactly the same, changes are that is NOT the leak. Some objects can get quite large during runtime but if its roughly the same size over time, but not exactly the same, it means that the application is modifying the object (why its not exactly identical in size) but if it hasn't grown significantly over time it can be assumed it is probably the working size of the instances. Try to focus on objects that are growing in size or in number over time. Growing in size means the object is holding references to other objects and growing in number means a function closure somewhere is retaining the small instances. That is the science part, but these clues are just breadcrumbs to follow. In order to actually resolve the leak, one needs to go into the code to figure out where those objects are being created, or more often, why the references to them are being retained. This is where the art comes in. Having a good understanding of the codebase will help to narrow down where to look. It is also common that the leak is not coming directly from Lodestar code, but rather one of the dependencies so be careful not to rule those out.","s":"Analyzing a V8 heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#analyzing-a-v8-heap-dump","p":234},{"i":245,"t":"note: collecting a native heap dump is only supported on linux, analysis can be done from linux or Mac There are several tools that can be used to do native heap dump analysis. The most common are massif from the Valgrind suite, google's gperftools and heaptrack from KDE. Of the three, heaptrack is the most user friendly tool, and it is specifically designed for the task. It is much faster than Valgrind, easier to integrate than gperftools and also includes a gui for result analysis. Often times there are also memory allocations that are not related to memory leaks, and tools like Valgrind and gperftools become less useful. This is why heaptrack is the recommended tool for heap dump analysis on Lodestar. There are a few things that will make the results with heaptrack far better. The most important is using debug builds of all libraries included in a binary, including the application itself. This will make the results usable. Not to say that they will be useless without debug symbols but it will be kinda tough to optimize functions without knowing the function names nor the file and line numbers. This is the heart of what heaptrack will do for us. It hooks into the memory allocation and adds in stack traces for each malloc call site. That way every time memory is reserved there is a way to track back where it happened in the code. heaptrack also hooks into the free function and checks that versus the allocations to check for memory leaks and for temporary variables that can be optimized. This also allows for optimization of how many of each object is created by identifying high frequency allocations. Generally the .heapdump file will be created on a cloud server and then copied to a local machine for analysis, mostly because the gui is not available through ssh. The gui is not required for analysis but it is much easier to use than the command line tools. The first step will be to install heaptrack on the target server and to capture a profile.","s":"Native Heap Dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#native-heap-dump","p":234},{"i":247,"t":"Assume the following directory structure: ├── beacon-node │ ├── db │ ├── logs │ ├── start-lodestar.sh │ └── rc-config.yml ├── lodestar └── node # step below will clone this repo We will start from the directory that contains lodestar and the beacon-node files. # Install heaptrack $ sudo apt-get update $ sudo apt-get -y install heaptrack # Using a debug build of node is recommended and it can be build # from source. Clone the node repo to get started. $ git clone https://github.com/nodejs/node.git $ cd node # Use whichever version of node you prefer $ git checkout v22.1.0 $ ./configure --debug # This command only builds the debug version of node and assumes # that a release version of node is already installed on the system $ make -C out BUILDTYPE=Debug -j$(nproc --all) # Move the debug version of node the same folder that the release # version is installed in and name it `node_debug`. This will put the # debug binary on the path and allow you to run it with the # `node_debug` command $ cp out/Debug/node \"$(which node)_debug\" $ which node_debug /your/home/directory/.nvm/versions/node/v20.10.0/bin/node_debug # Return to the lodestar repo $ cd ../lodestar # Clean the build artifacts and node_modules $ yarn clean && yarn clean:nm # Install the dependencies $ yarn install # Ensure that all native modules are rebuilt with debug symbols. Some # modules are prebuilt, like classic-level, and the debug symbols may # not be included. If the debugging exercise is focussed around # one of these dependencies, then you will need to manually clone those # repos and manually build them with debug symbols. $ npm rebuild --debug","s":"Build collection tools","u":"/lodestar/contribution/tools/heap-dumps","h":"#build-collection-tools","p":234},{"i":249,"t":"# Move to th `beacon-node` directory $ cd ../beacon-node # Start lodestar with profiling enabled $ heaptrack \\ $ --output ./lodestar.heapdump \\ $ node_debug \\ $ --max-old-space-size=8192 \\ $ ../lodestar/packages/cli/bin/lodestar.js \\ $ beacon \\ $ --rcConfig ./rc-config.yml \\ $ > /dev/null 2>&1 & # Wait some period of time for the heap dump data to be collected # The data will not be persisted until the process is stopped. You can gracefully # stop the process with the following command and if you want to hard kill it # add `-9` to the end of the `kill` command although that should not be necessary $ ps aux | grep lodestar | grep -v grep | awk '{print $2}' | head -n 1 | xargs kill","s":"Collect a heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#collect-a-heap-dump","p":234},{"i":251,"t":"Collecting a heap dump can also be done on a running process. There are both advantages and disadvantages to this approach. The main advantage is that you can collect a heap dump without having to restart. The down side is that the dump will only include allocations/de-allocations while the tracker is running. This means that all the non-paired calls to malloc/free will register as leaks. It will also not give a true representation of how the heap is being used. On the upside, however the dump will be much smaller in size. It is important to note a warning that is in the heaptrack source code: WARNING: Runtime-attaching heaptrack is UNSTABLE and can lead to CRASHES in your application, especially after you detach heaptrack again. You are hereby warned, use it at your own risk! # Move to th `beacon-node` directory $ cd ../beacon-node # Start lodestar $ node_debug \\ $ --max-old-space-size=8192 \\ $ ../lodestar/packages/cli/bin/lodestar.js \\ $ beacon \\ $ --rcConfig ./rc-config.yml \\ $ > /dev/null 2>&1 & # Wait some period of time to start collecting the dump # GDB is required to inject heaptrack into a running process # so you may need to install it $ sudo apt-get update $ sudo apt-get install -y gdb # Elevated `perf` permissions are also required depending on your # system configuration. Change until the next reboot $ echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope # Get the pid of the lodestar process $ export LODESTAR_PID=$(ps aux | grep lodestar | grep -v grep | awk '{print $2}' | head -n 1) # Inject heaptrack into the running process $ heaptrack --pid $LODESTAR_PID heaptrack output will be written to \"/home/user/beacon-node/heaptrack.node_debug.111868.zst\" /usr/lib/heaptrack/libheaptrack_preload.so injecting heaptrack into application via GDB, this might take some time... injection finished # Wait some period of time to collect the heap dump. See below # for the termination command that can be run from a separate # terminal when ready to stop collecting data Terminated removing heaptrack injection via GDB, this might take some time... Heaptrack finished! Now run the following to investigate the data: heaptrack --analyze \"/home/user/beacon-node/heaptrack.node_debug.111868.zst\" There is a trap in heaptrack but the process uses a nested shell to do the actual injection so it is not possible to just Ctrl+C out of the injected process without corrupting the output file. To properly kill the collection one needs to target the nested shell pid. Here is a helper command to target that process: ps -ef | grep '[h]eaptrack --pid' | awk '$3 == '$(ps -ef | grep '[h]eaptrack --pid' | awk '$3 != 1 {print $2}' | head -n 1)' {print $2}' | xargs -r kill After working with the injected process for a while, I cannot honestly recommend it. It can work in a pinch, and is best suited for when the profiled process can be exited gracefully without repercussions (not on mainnet for instance). The benefit, though, is that the heapdump will be much smaller and targeted to runtime (will not have the transient, startup allocations) which can make it easier to see what is happening.","s":"Collecting a heap dump on a running process","u":"/lodestar/contribution/tools/heap-dumps","h":"#collecting-a-heap-dump-on-a-running-process","p":234},{"i":253,"t":"# You can you apt, apt-get or aptitude to install the gui $ sudo apt-get update $ sudo apt-get install -y heaptrack-gui","s":"Installing heaptrack-gui on Linux","u":"/lodestar/contribution/tools/heap-dumps","h":"#installing-heaptrack-gui-on-linux","p":234},{"i":255,"t":"At the time of writing this there is no official pre-built binary for OSX. This was a bit of a challenge but it was WELL worth the effort as the tool works very well. There were a number of bugs along the way while \"using the docs\" so your mileage may vary, but this is what worked for me. Most of the dependencies can be installed via Homebrew and the tool itself needs to be built from source. There was one dependency that needed to be built from source. This process assumes a working folder that the repos can be cloned into. # Start in the root folder where the repos will be cloned $ brew install qt@5 # prepare tap of kde-mac/kde $ brew tap kde-mac/kde https://invent.kde.org/packaging/homebrew-kde.git $ \"$(brew --repo kde-mac/kde)/tools/do-caveats.sh\" # install the kde-mac and other required dependencies $ brew install kde-mac/kde/kf5-kcoreaddons \\ $ kde-mac/kde/kf5-kitemmodels \\ $ kde-mac/kde/kf5-kconfigwidgets \\ $ kde-mac/kde/kdiagram \\ $ extra-cmake-modules \\ $ ki18n \\ $ threadweaver \\ $ boost \\ $ zstd \\ $ gettext # There is a bug in the current version of kde-mac/kde and one dependency needs # to be built manually. This is the workaround to get it built. $ git clone https://invent.kde.org/frameworks/kio.git $ mkdir kio/build $ cd kio/build $ export CMAKE_PREFIX_PATH=$(brew --prefix qt@5) $ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release .. $ ninja $ sudo ninja install $ cd ../.. # Now make sure that the dependencies are available to the system during runtime $ ln -sfv \"$(brew --prefix)/share/kf5\" \"$HOME/Library/Application Support\" $ ln -sfv \"$(brew --prefix)/share/knotifications5\" \"$HOME/Library/Application Support\" $ ln -sfv \"$(brew --prefix)/share/kservices5\" \"$HOME/Library/Application Support\" $ ln -sfv \"$(brew --prefix)/share/kservicetypes5\" \"$HOME/Library/Application Support\" # We are now ready to build the heaptrack_gui binaries for analysis on OSX $ git clone https://invent.kde.org/sdk/heaptrack.git $ cd heaptrack $ mkdir build $ cd build $ CMAKE_PREFIX_PATH=$(brew --prefix qt@5) PATH=$PATH:/opt/homebrew/opt/gettext/bin cmake .. $ cmake -DCMAKE_BUILD_TYPE=Release .. $ make heaptrack_gui $ sudo make install # You can now find heaptrack_gui with your gui Applications. It is default # placed as /Applications/KDE/heaptrack_gui.app","s":"Installing heaptrack-gui on OSX","u":"/lodestar/contribution/tools/heap-dumps","h":"#installing-heaptrack-gui-on-osx","p":234},{"i":257,"t":"Ethereum is one of the most profoundly important inventions in recent history. It is a decentralized, open-source blockchain featuring smart contract functionality. It is the second-largest cryptocurrency by market capitalization, after Bitcoin, and is the second largest blockchain by market capitalization. Ethereum was proposed in 2013 by programmer Vitalik Buterin. Development was crowdfunded in 2014, and the network went live on 30 July 2015, with 72 million coins premined. ChainSafe was founded not too long afterwards in 2017 and has been actively working in the Ethereum ecosystem ever since. We are proud to develop Lodestar, the only TypeScript based consensus client, and to present this documentation as a resource for the Ethereum community.","s":"Introduction","u":"/lodestar/introduction","h":"","p":256},{"i":259,"t":"In Ethereum's Proof of Stake (PoS) model, validators replace miners from the Proof of Work (PoW) system. Validators are Ethereum stakeholders who lock up a portion of their Ether as a stake. The protocol randomly selects these validators to propose new blocks. The chance of being chosen is tied to the size of their stake: the more Ether staked, the higher the probability of being selected to propose the block. Proposers receive transaction fees and block rewards as incentives. Validators are also responsible for voting on the validity of blocks proposed by other validators. However, they also face penalties, known as slashing, for actions like signing two different block proposals in the same slot or voting on two different attestations for the same target epoch, which creates conflicting states. The PoS mechanism significantly reduces energy consumption compared to PoW, because it does not require extensive computational power. Moreover, PoS tends to facilitate faster transaction validations and block creations, enhancing the overall performance and scalability of the network.","s":"Proof of Stake","u":"/lodestar/introduction","h":"#proof-of-stake","p":256},{"i":261,"t":"In an effort to promote client diversity there are several consensus beacon nodes being developed. Each is programmed in a different language and by a different team. The following is a list of the current open source consensus clients in alphabetical order: Grandine (Rust) Lighthouse (Rust) Lodestar (TypeScript) Nimbus (Nim) Prysm (Golang) Teku (Java)","s":"Consensus Clients","u":"/lodestar/introduction","h":"#consensus-clients","p":256},{"i":263,"t":"The Ethereum network's robustness is significantly enhanced by its client diversity, whereby multiple, independently-developed clients conforming to a common specification, facilitating seamless interaction and function equivalently across different nodes. This client variety not only fosters a rich ecosystem but also provides a buffer against network-wide issues stemming from bugs or malicious attacks targeted at particular clients. For instance, during the Shanghai denial-of-service attack in 2016, the diversified client structure enabled the network to withstand the assault, underscoring the resilience afforded by multiple client configurations. On the consensus layer, client distribution is crucial for maintaining network integrity and finality, ensuring transactions are irreversible once validated. A balanced spread of nodes across various clients help to mitigate risks associated with potential bugs or attacks that could, in extreme cases, derail the consensus process (liveness failure) or lead to incorrect chain splits (forking), thereby jeopardizing the network's stability and trust. While the data suggests a dominance of the Prysm and Lighthouse clients on the consensus layer, efforts are ongoing to promote a more even distribution among others clients. Encouraging the adoption of minority clients, bolstering their documentation, and leveraging real-time client diversity dashboards are among the strategies being employed to enhance client diversity, which in turn fortifies the Ethereum consensus layer against adversities and fosters a healthier decentralized network. The non-finality event of May 2023 on the Ethereum network posed a significant challenge. The issue arose from attestations for a fork, which necessitated state replays to validate the attestations, causing a notable strain on system resources. As a result, nodes fell out of sync, which deterred the accurate tracking of the actual head of the chain. This situation was exacerbated by a decline in attestations during specific epochs, further hampering the consensus mechanism from reaching finality. The Lodestar team noticed late attestations several weeks prior to the event and implemented a feature that attempted to address such challenges by not processing untimely attestations, and thus not requiring expensive state replays​. While it was done for slightly different reasons, the result was the same. Lodestar was able to follow the chain correctly and helped to stabilize the network. This example underscored the importance of client diversity and network resilience against potential forks and replay attacks. These are considered realistic threats, especially in the context of system complexity like in Ethereum's consensus mechanism.","s":"Why Client Diversity?","u":"/lodestar/introduction","h":"#why-client-diversity","p":256},{"i":265,"t":"Ethereum Docs Upgrading Ethereum by Ben Edgington Ethereum Book by Andreas M. Antonopoulos and Gavin Wood Ethereum Consensus Specification Casper the Friendly Finality Gadget by Vitalik Buterin and Virgil Griffith LMD Ghost by protolambda","s":"Ethereum Reading List","u":"/lodestar/introduction","h":"#ethereum-reading-list","p":256},{"i":268,"t":"Ethereum light clients provide a pathway for users to interact with the Ethereum blockchain in a trust-minimized manner, comparable to the level of trust required when engaging with a third-party provider like Infura or EtherScan. Not that those platforms are bad, but trust in any centralized provider goes against the ethos of blockchain. Light clients are a way that low-power devices, like cell phones, can do self validation of transactions and dApp state. Unlike full nodes, light clients do not download and store the entire blockchain. Instead, they download only the headers of each block and employ Merkle proofs to verify transactions. This enables a quick synchronization with the network and access the latest information without using significant system resources​. This streamlined approach to accessing Ethereum is crucial, especially in scenarios where full-scale network participation is infeasible or undesired. The evolution of light clients is emblematic of the broader trajectory of Ethereum towards becoming more accessible and resource-efficient, making blockchain technology more inclusive and adaptable to a wide array of use cases and environments. The Altair hard fork introduced sync committees to allow light-clients to synchronize to the network.","s":"Lodestar Light Client","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"","p":267},{"i":270,"t":"This package is part of ChainSafe's Lodestar project","s":"Prerequisites","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#prerequisites","p":267},{"i":272,"t":"Access to an beacon node that supports the light client specification is necessary. The client must support the following routes from the consensus API spec: GET /eth/v1/beacon/light_client/updates GET /eth/v1/beacon/light_client/optimistic_update GET /eth/v1/beacon/light_client/finality_update GET /eth/v1/beacon/light_client/bootstrap/{block_root} System requirements are quite low so its possible to run a light client in the browser as part of a website. There are a few examples of this on github that you can use as reference, our prover being one of them. You can find more information about the light-client protocol in the specification.","s":"Requirements for Running a Light-Client","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#requirements-for-running-a-light-client","p":267},{"i":274,"t":"Follow the installation guide to install Lodestar. Quickly try out the whole stack by starting a local testnet.","s":"Getting started","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#getting-started","p":267},{"i":276,"t":"It is possible to start up the light-client as a standalone process. lodestar lightclient \\ --network sepolia \\ --beaconApiUrl https://lodestar-sepolia.chainsafe.io \\ --checkpointRoot \"0xccaff4b99986a7b05e06738f1828a32e40799b277fd9f9ff069be55341fe0229\"","s":"Light-Client CLI Example","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#light-client-cli-example","p":267},{"i":278,"t":"For this example we will assume there is a running beacon node at https://lodestar-sepolia.chainsafe.io import {Lightclient, LightclientEvent} from \"@lodestar/light-client\"; import {LightClientRestTransport} from \"@lodestar/light-client/transport\"; import { getFinalizedSyncCheckpoint, getGenesisData, getConsoleLogger, getApiFromUrl, getChainForkConfigFromNetwork, } from \"@lodestar/light-client/utils\"; const config = getChainForkConfigFromNetwork(\"sepolia\"); const logger = getConsoleLogger({logDebug: Boolean(process.env.DEBUG)}); const api = getApiFromUrl(\"https://lodestar-sepolia.chainsafe.io\", \"sepolia\"); const lightclient = await Lightclient.initializeFromCheckpointRoot({ config, logger, transport: new LightClientRestTransport(api), genesisData: await getGenesisData(api), checkpointRoot: await getFinalizedSyncCheckpoint(api), opts: { allowForcedUpdates: true, updateHeadersOnForcedUpdate: true, }, }); // Wait for the lightclient to start await lightclient.start(); logger.info(\"Lightclient synced\"); lightclient.emitter.on(LightclientEvent.lightClientFinalityHeader, async (finalityUpdate) => { logger.info(\"Received finality update\", {slot: finalityUpdate.beacon.slot}); }); lightclient.emitter.on(LightclientEvent.lightClientOptimisticHeader, async (optimisticUpdate) => { logger.info(\"Received optimistic update\", {slot: optimisticUpdate.beacon.slot}); });","s":"Light-Client Programmatic Example","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#light-client-programmatic-example","p":267},{"i":280,"t":"If you want to use Lightclient in browser and facing some issues in building it with bundlers like webpack, vite. We suggest to use our distribution build. The support for single distribution build is started from 1.20.0 version. Directly link the dist build with the **Typescript support** The web bundle comes with the types support. Unfortunately due to following [issue](https://github.com/microsoft/rushstack/issues/1128#issuecomment-2066257538) we can't bundle all types. A workaround would be to add `@chainsafe/as-sha256` as a devDependency to your project.","s":"Browser Integration","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#browser-integration","p":267},{"i":282,"t":"Read our contribution documentation, submit an issue or talk to us on our discord!","s":"Contributors","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#contributors","p":267},{"i":284,"t":"Apache-2.0 ChainSafe Systems","s":"License","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#license","p":267},{"i":286,"t":"This package is part of ChainSafe's Lodestar project A set of tools allowing to verify EL client JSON-RPC calls.","s":"Lodestar Prover","u":"/lodestar/libraries/lightclient-prover/prover","h":"","p":285},{"i":288,"t":"You can use the @lodestar/prover in two ways, as a Web3 Provider and as proxy. For prover use case see below example. import Web3 from \"web3\"; import {createVerifiedExecutionProvider, LCTransport} from \"@lodestar/prover\"; const httpProvider = new Web3.providers.HttpProvider(\"https://lodestar-sepoliarpc.chainsafe.io\"); const {provider, proofProvider} = createVerifiedExecutionProvider(httpProvider, { transport: LCTransport.Rest, urls: [\"https://lodestar-sepolia.chainsafe.io\"], network: \"sepolia\", wsCheckpoint: \"trusted-checkpoint\", }); const web3 = new Web3(provider); const address = \"0xf97e180c050e5Ab072211Ad2C213Eb5AEE4DF134\"; const balance = await web3.eth.getBalance(address, \"latest\"); console.log({balance, address}); In this scenario the actual provider is mutated to handle the RPC requests and verify those. So here if you use provider or httpProvider both are the same objects. This behavior is useful when you already have an application and usage of any provider across the code space and don't want to change the code. So you mutate the provider during startup. For some scenarios when you don't want to mutate the provider you can pass an option mutateProvider as false. In this scenario the object httpProvider is not mutated and you get a new object provider. This is useful when your provider object does not allow mutation, e.g. Metamask provider accessible through window.ethereum. If not provided mutateProvider is considered as true by default. In coming releases we will switch its default behavior to false. import Web3 from \"web3\"; import {createVerifiedExecutionProvider, LCTransport} from \"@lodestar/prover\"; const httpProvider = new Web3.providers.HttpProvider(\"https://lodestar-sepoliarpc.chainsafe.io\"); const {provider, proofProvider} = createVerifiedExecutionProvider(httpProvider, { transport: LCTransport.Rest, urls: [\"https://lodestar-sepolia.chainsafe.io\"], network: \"sepolia\", wsCheckpoint: \"trusted-checkpoint\", mutateProvider: false, }); const web3 = new Web3(provider); const address = \"0xf97e180c050e5Ab072211Ad2C213Eb5AEE4DF134\"; const balance = await web3.eth.getBalance(address, \"latest\"); console.log({balance, address}); You can also invoke the package as binary. npm i -g @lodestar/prover lodestar-prover proxy \\ --network sepolia \\ --executionRpcUrl https://lodestar-sepoliarpc.chainsafe.io \\ --beaconUrls https://lodestar-sepolia.chainsafe.io \\ --port 8080","s":"Usage","u":"/lodestar/libraries/lightclient-prover/prover","h":"#usage","p":285},{"i":290,"t":"There can be different implementations of the web3 providers and each can handle the RPC request differently. We call those different provider types. We had provided builtin support for common providers e.g. web3.js, ethers or any eip1193 compatible providers. We inspect given provider instance at runtime to detect the correct provider type. If your project is using some provider type which is not among above list, you have the option to register a custom provider type with the createVerifiedExecutionProvider with the option providerTypes which will be an array of your supported provider types. Your custom provider types will have higher priority than default provider types. Please see existing provide types implementations to know how to implement your own if needed.","s":"How to detect a web3 provider","u":"/lodestar/libraries/lightclient-prover/prover","h":"#how-to-detect-a-web3-provider","p":285},{"i":292,"t":"✅ - Completed ⌛ - Todo ➡️ - Request will be forward to EL without any intermediary manipulations. You can limit these by providing unverifiedWhitelist option for provider or --unverifiedWhitelist from the cli. If not set then all methods will be forwarded. ❇️ - Always forwarded to EL. Group Method Status Version Block eth_getBlockByHash ✅ v0 eth_getBlockByNumber ✅ v0 eth_getBlockTransactionCountByHash ⌛ v2 eth_getBlockTransactionCountByNumber ⌛ v2 eth_getUncleCountByBlockHash ⌛ v2 eth_getUncleCountByBlockNumber ⌛ v2 Chain/Network eth_chainId ➡️ eth_syncing ⌛ v1 eth_coinbase ⌛ v2 eth_accounts ➡️ eth_blockNumber ➡️ Call and Estimate eth_call ✅ v0 eth_estimateGas ✅ v0 eth_createAccessList ⌛ v2 eth_gasPrice ⌛ v1 eth_maxPriorityFeePerGas ⌛ v1 eth_feeHistory ⌛ v2 Filters eth_newFilter ⌛ v2 eth_newBlockFilter ⌛ v2 eth_newPendingTransactionFilter ⌛ v2 eth_uninstallFilter ⌛ v2 eth_getFilterChanges ⌛ v2 eth_getFilterLogs ⌛ v2 eth_getLogs ⌛ v1 Mining eth_mining ➡️ eth_hashrate ➡️ eth_getWork ➡️ eth_submitWork ➡️ eth_submitHashrate ➡️ Signing eth_sign ➡️ eth_signTransaction ➡️ State eth_getBalance ✅ v0 eth_getStorageAt ⌛ v1 eth_getTransactionCount ⌛ v2 eth_getCode ✅ v0 eth_getProof ❇️ v0 Transactions eth_sendTransaction ➡️ eth_sendRawTransaction ➡️ eth_getTransactionByHash ⌛ v2 eth_getTransactionByBlockHashAndIndex ⌛ v2 eth_getTransactionByBlockNumberAndIndex ⌛ v2 eth_getTransactionReceipt ⌛ v2 Events eth_subscribe ❇️ v0 eth_unsubscribe ❇️ v0","s":"Supported Web3 Methods","u":"/lodestar/libraries/lightclient-prover/prover","h":"#supported-web3-methods","p":285},{"i":294,"t":"Currently does not support batch requests.","s":"Non-supported features","u":"/lodestar/libraries/lightclient-prover/prover","h":"#non-supported-features","p":285},{"i":296,"t":"To use this prover the ethereum provider must support the eth_getProof method. Unfortunately, Infura does not currently support this endpoint. As an alternative, we suggest using Alchemy.","s":"Warnings","u":"/lodestar/libraries/lightclient-prover/prover","h":"#warnings","p":285},{"i":298,"t":"NodeJS (LTS) Yarn","s":"Prerequisites","u":"/lodestar/libraries/lightclient-prover/prover","h":"#prerequisites","p":285},{"i":300,"t":"You will need to go over the specification. You will also need to have a basic understanding of lightclient.","s":"What you need","u":"/lodestar/libraries/lightclient-prover/prover","h":"#what-you-need","p":285},{"i":302,"t":"Follow the installation guide to install Lodestar. Quickly try out the whole stack by starting a local testnet.","s":"Getting started","u":"/lodestar/libraries/lightclient-prover/prover","h":"#getting-started","p":285},{"i":304,"t":"Read our contributors document, submit an issue or talk to us on our discord!","s":"Contributors","u":"/lodestar/libraries/lightclient-prover/prover","h":"#contributors","p":285},{"i":306,"t":"Apache-2.0 ChainSafe Systems","s":"License","u":"/lodestar/libraries/lightclient-prover/prover","h":"#license","p":285},{"i":308,"t":"Run lightclient","s":"lightclient CLI Command","u":"/lodestar/libraries/lightclient-prover/lightclient-cli","h":"","p":307},{"i":310,"t":"Run lightclient with holesky network ./lodestar lightclient --network holesky","s":"Examples","u":"/lodestar/libraries/lightclient-prover/lightclient-cli","h":"#examples","p":307},{"i":312,"t":"--dataDir​ Lodestar root data directory type: string --network​ Name of the Ethereum Consensus chain network to join type: string choices: \"mainnet\", \"gnosis\", \"sepolia\", \"holesky\", \"chiado\", \"ephemery\", \"mekong\", \"dev\" default: \"mainnet\" --paramsFile​ Network configuration file type: string --terminal-total-difficulty-override​ Terminal PoW block TTD override type: string --terminal-block-hash-override​ Terminal PoW block hash override type: string --terminal-block-hash-epoch-override​ Terminal PoW block hash override activation epoch type: string --logLevel​ Logging verbosity level for emitting logs to terminal type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"info\" --logFile​ Path to output all logs to a persistent log file, use 'none' to disable type: string --logFileLevel​ Logging verbosity level for emitting logs to file type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"debug\" --logFileDailyRotate​ Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation type: number default: 5 --beaconApiUrl​ Url to a beacon node that support lightclient API required: true type: string --checkpointRoot​ Checkpoint root hex string to sync the lightclient from, start with 0x required: true type: string","s":"lightclient Options","u":"/lodestar/libraries/lightclient-prover/lightclient-cli","h":"#lightclient-options","p":307},{"i":314,"t":"Welcome! This page has been moved. Please checkout our new docs layout from the Table of Contents! Below are some helpful links to the CLI pages that were split out from this original document Beacon Node CLI Validator CLI Bootnode CLI Light Client CLI Dev CLI","s":"Page relocated","u":"/lodestar/reference/cli","h":"","p":313},{"i":316,"t":"Run a beacon chain node","s":"beacon CLI Command","u":"/lodestar/run/beacon-management/beacon-cli","h":"","p":315},{"i":318,"t":"Run a beacon chain node and connect to the holesky testnet ./lodestar beacon --network holesky","s":"Examples","u":"/lodestar/run/beacon-management/beacon-cli","h":"#examples","p":315},{"i":320,"t":"--dataDir​ Lodestar root data directory type: string --network​ Name of the Ethereum Consensus chain network to join type: string choices: \"mainnet\", \"gnosis\", \"sepolia\", \"holesky\", \"chiado\", \"ephemery\", \"mekong\", \"dev\" default: \"mainnet\" --paramsFile​ Network configuration file type: string --terminal-total-difficulty-override​ Terminal PoW block TTD override type: string --terminal-block-hash-override​ Terminal PoW block hash override type: string --terminal-block-hash-epoch-override​ Terminal PoW block hash override activation epoch type: string --checkpointSyncUrl​ Server url hosting Beacon Node APIs to fetch weak subjectivity state. Fetch latest finalized by default, else set --wssCheckpoint type: string --checkpointState​ Set a checkpoint state to start syncing from type: string --wssCheckpoint​ Start beacon node off a state at the provided weak subjectivity checkpoint, to be supplied in : format. For example, 0x1234:100 will sync and start off from the weak subjectivity state at checkpoint of epoch 100 with block root 0x1234. type: string --forceCheckpointSync​ Force syncing from checkpoint state even if db state is within weak subjectivity period. This helps to avoid long sync times after node has been offline for a while. type: boolean --private​ Do not send implementation details over p2p identify protocol and in builder, execution engine and eth1 requests type: boolean --validatorMonitorLogs​ Log validator monitor events as info. This requires metrics to be enabled. type: boolean --disableLightClientServer​ Disable light client server. type: boolean --logLevel​ Logging verbosity level for emitting logs to terminal type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"info\" --logFile​ Path to output all logs to a persistent log file, use 'none' to disable type: string --logFileLevel​ Logging verbosity level for emitting logs to file type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"debug\" --logFileDailyRotate​ Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation type: number default: 5 --rest​ Enable/disable HTTP API type: boolean default: true --rest.namespace​ Pick namespaces to expose for HTTP API. Set to '*' to enable all namespaces type: string[] choices: \"beacon\", \"config\", \"debug\", \"events\", \"lightclient\", \"lodestar\", \"node\", \"proof\", \"validator\", \"*\" default: [\"beacon\",\"config\",\"debug\",\"events\",\"node\",\"validator\",\"lightclient\"] --rest.cors​ Configures the Access-Control-Allow-Origin CORS header for HTTP API type: string default: \"*\" --rest.address​ Set host for HTTP API type: string default: \"127.0.0.1\" --rest.port​ Set port for HTTP API type: number default: 9596 --rest.swaggerUI​ Enable Swagger UI for API exploration at http://{address}:{port}/documentation type: boolean --suggestedFeeRecipient​ Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$) in case validator fails to update for a validator index before calling produceBlock. type: string default: \"0x0000000000000000000000000000000000000000\" --emitPayloadAttributes​ Flag to SSE emit execution payloadAttributes before every slot type: boolean default: false --chain.archiveBlobEpochs​ Number of epochs to retain finalized blobs (minimum of MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS) type: number --eth1​ Whether to follow the eth1 chain type: boolean default: true --eth1.providerUrls​ Urls to Eth1 node with enabled rpc. If not explicitly provided and execution endpoint provided via execution.urls, it will use execution.urls. Otherwise will try connecting on the specified default(s) type: string[] default: [ \"http://localhost:8545\" ] --execution.urls​ Urls to execution client engine API type: string[] default: [ \"http://localhost:8551\" ] --execution.timeout​ Timeout in milliseconds for execution engine API HTTP client type: number default: 12000 --execution.retries​ Number of retries when calling execution engine API type: number default: 2 --execution.retryDelay​ Delay time in milliseconds between retries when retrying calls to the execution engine API type: number default: 2000 --execution.engineMock​ Set the execution engine to mock mode (development only) type: boolean --jwtSecret​ File path to a shared hex-encoded jwt secret which will be used to generate and bundle HS256 encoded jwt tokens for authentication with the EL client's rpc server hosting engine apis. Secret to be exactly same as the one used by the corresponding EL client. type: string --jwtId​ An optional identifier to be set in the id field of the claims included in jwt tokens used for authentication with EL client's rpc server hosting engine apis type: string --builder​ Enable builder interface type: boolean --builder.url​ Url hosting the builder API type: string default: \"http://localhost:8661\" --builder.timeout​ Timeout in milliseconds for builder API HTTP client type: number default: 12000 --builder.faultInspectionWindow​ Window to inspect missed slots for enabling/disabling builder circuit breaker type: number --builder.allowedFaults​ Number of missed slots allowed in the faultInspectionWindow for builder circuit type: number --metrics​ Enable the Prometheus metrics HTTP server type: boolean --metrics.port​ Listen TCP port for the Prometheus metrics HTTP server type: number default: 8008 --metrics.address​ Listen address for the Prometheus metrics HTTP server type: string default: \"127.0.0.1\" --monitoring.endpoint​ Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in) type: string --monitoring.interval​ Interval in milliseconds between sending client stats to the remote service type: number default: 60000 --discv5​ Enable discv5 type: boolean default: true --listenAddress​ The IPv4 address to listen for p2p UDP and TCP connections type: string default: \"0.0.0.0\" --port​ The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort flag. type: number default: 9000 --discoveryPort​ The UDP port that discovery will listen on. Defaults to port type: number default: port --listenAddress6​ The IPv6 address to listen for p2p UDP and TCP connections type: string --port6​ The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort6 flag. type: number default: 9090 --discoveryPort6​ The UDP port that discovery will listen on. Defaults to port6 type: number default: port6 --bootnodes​ Bootnodes for discv5 discovery type: string[] default: [ \"[]\" ] --targetPeers​ The target connected peers. Above this number peers will be disconnected type: number default: 100 --subscribeAllSubnets​ Subscribe to all subnets regardless of validator count type: boolean default: false --disablePeerScoring​ Disable peer scoring, used for testing on devnets type: boolean default: false --mdns​ Enable mdns local peer discovery type: boolean default: false --enr.ip​ Override ENR IP entry type: string --enr.tcp​ Override ENR TCP entry type: number --enr.udp​ Override ENR UDP entry type: number --enr.ip6​ Override ENR IPv6 entry type: string --enr.tcp6​ Override ENR (IPv6-specific) TCP entry type: number --enr.udp6​ Override ENR (IPv6-specific) UDP entry type: number --nat​ Allow configuration of non-local addresses type: boolean","s":"beacon Options","u":"/lodestar/run/beacon-management/beacon-cli","h":"#beacon-options","p":315},{"i":322,"t":"There are two components for an ethereum node database, the execution client and the beacon node. Both need to hold data for a full node to work correctly. In particular the execution node holds state such as wallet information and smart contract code. It also holds the execution blocks with the transaction record. The beacon node is responsible for holding beacon node blocks and state. The beacon state is responsible primarily for the validator information. There are several processes that need to store data for Lodestar. These data sets can grow quite large over time so it is important to understand how to manage them so the host machine can support operations effectively. $executionDir # this changes depending on the execution client └── execution-db $dataDir # specified by --dataDir on the beacon command ├── .log_rotate_audit.json ├── beacon.log # there can be many of these ├── enr ├── peer-id.json ├── chain-db # default if --dbDir not specified │ └── (db files) └── peerstore # default if --peerStoreDir not specified └── (peerstore files) $dataDir # specified by --dataDir on the validator command ├── .log_rotate_audit.json ├── validator.log # there can be many of these ├── validator-db # default if --validatorsDbDir not specified │ └── (db files) ├── proposerConfigs # default if --proposerDir not specified │ └── (config files) ├── cache # default if --cacheDir not specified │ └── (cache files) ├── secrets # default if --secretsDir not specified │ ├── 0x8e41b969493454318c27ec6fac90645769331c07ebc8db5037... │ └── 0xa329f988c16993768299643d918a2694892c012765d896a16f... ├── keystores # default if --keystoresDir not specified │ ├── 0x8e41b969493454318c27ec6fac90645769331c07ebc8db5037... │ │ └── voting-keystore.json │ └── 0xa329f988c16993768299643d918a2694892c012765d896a16f... │ └── voting-keystore.json └── remoteKeys # default if --remoteKeysDir not specified └── 0xa329f988c16993768299643d918a2694892c012765d896a16f.json","s":"Data Retention","u":"/lodestar/run/beacon-management/data-retention","h":"","p":321},{"i":324,"t":"Configuring your node to store and prune data is key to success. On average you can expect for the database to grow by the follow amounts: execution-db grows at 2-30GB per week chain-db grows at 1GB per month validator-db grows at less than 2MB per year, per key (2000 keys = 4GB per year) keystores, keystore-cache and peerstore are not usually very large and are not expected to grow much during normal operation. Logs can also become quite large so please check out the section on log management for more information. There is really only one flag that is needed to manage the data for Lodestar, --dataDir. Other than that handling log management is really the heart of the data management story. Beacon node data is what it is. Depending on the execution client that is chosen, there may be flags to help with data storage growth but that is outside the scope of this document.","s":"Data Management","u":"/lodestar/run/beacon-management/data-retention","h":"#data-management","p":321},{"i":326,"t":"Lodestar will automatically connect to peers on the network. Peers are found through the discv5 protocol and once peers are established communications happen via gossipsub over libp2p. While not necessary, having a basic understanding of how the various protocols and transports work will help with debugging and troubleshooting as some of the more common challenges come up with firewalls and NAT traversal.","s":"Networking","u":"/lodestar/run/beacon-management/networking","h":"","p":325},{"i":328,"t":"Some of the important Lodestar flags related to networking are: --discv5 --listenAddress --port --discoveryPort --listenAddress6 --port6 --discoveryPort6 --bootnodes --subscribeAllSubnets --disablePeerScoring --enr.ip --enr.tcp --enr.udp --enr.ip6 --enr.tcp6 --enr.udp6 --nat --private","s":"Networking Flags","u":"/lodestar/run/beacon-management/networking","h":"#networking-flags","p":325},{"i":330,"t":"In Ethereum, discv5 plays a pivotal role in the peer discovery process, facilitating nodes to find and locate each other in order to form the peer-to-peer network​. The process begins with an interaction between new nodes and bootnodes at start-up. Bootnodes are nodes with hard-coded addresses, or can be overridden via the cli flag --bootnodes, to bootstrap the discovery process​. Through a method called FINDNODE-NODES, a new node establishes a bond with each bootnode, and it returns a list of peers for the new node to connect to. Following this trail, the new node engages through FINDNODE-NODES with the provided peers to further establish a web of connections​. Discv5 operates as a peer advertisement medium in this network, where nodes can act as both providers and consumers of data. Every participating node in the Discv5 protocol discovers peer data from other nodes and later relays it, making the discovery process dynamic and efficient​. Discv5 is designed to be a standalone protocol running via UDP on a dedicated port solely for peer discovery. Peer data is exchanged via self-certified, flexible peer records (ENRs). These key features cater to the Ethereum network​ and being a good peer often means running a discv5 worker​. Lodestar offers simple configuration to setup and run a bootnode independently of a beacon node. See the bootnode cli page for more information and configuration options.","s":"Peer Discovery (Discv5)","u":"/lodestar/run/beacon-management/networking","h":"#peer-discovery-discv5","p":325},{"i":332,"t":"Ethereum Node Records (ENRs) are a standardized format utilized for peer discovery - see EIP-778 for the specification. An ENR consists of a set of key-value pairs. These pairs include crucial information such as the node's ID, IP address, the port on which it's listening, and the protocols it supports. This information helps other nodes in the network locate and connect to the node. The primary purpose of ENRs is to facilitate node discovery and connectivity in the Ethereum network. Nodes use ENRs to announce their presence and capabilities to other nodes, making it easier to establish and maintain a robust, interconnected network. Note that bootnodes are announced via ENR. Lodestar prints out its own ENR on startup, the logs will show something similar to the following info: discv5 worker started peerId=16Uiu...t9LQ3, initialENR=enr:-Iu4QGE...WRwgiMo, bindAddr4=/ip4/0.0.0.0/udp/9000 Alternatively, the ENR can also be retrieved from the beacon node API by querying the getNetworkIdentity endpoint. ENR Viewer provides a simple and convenient option to decode and inspect ENRs.","s":"ENR","u":"/lodestar/run/beacon-management/networking","h":"#enr","p":325},{"i":334,"t":"Gossipsub and Req/Resp are the two mechanisms that beacon nodes use to exchange chain data. Gossipsub is used disseminate the most recent relevant data proactively throughout the network. Req/Resp is used to directly ask specific peers for specific information (eg: during syncing).","s":"Peer Communication (gossipsub and Req/Resp)","u":"/lodestar/run/beacon-management/networking","h":"#peer-communication-gossipsub-and-reqresp","p":325},{"i":336,"t":"GossipSub is a foundational protocol in peer-to-peer (P2P) communication, particularly decentralized networks like Ethereum and IPFS. At its core, GossipSub efficiently propagates data, filtered by topic, through a P2P network. It organizes peers into a collection of overlay networks, each associated with a distinct topic. By routing data through relevant overlay networks based on topics of interest, large amounts of data can be efficiently disseminated without excessive bandwidth, latency, etc. In GossipSub, nodes can subscribe to topics, effectively joining the corresponding overlay to receive messages published to a specific topic. This topic-based structure enables nodes to congregate around shared interests, ensuring that relevant messages are delivered to all interested parties. Each message published to a topic gets disseminated and relayed to all subscribed peers, similar to a chat room. Messages are propagated through a blend of eager-push and lazy-pull models. Specifically, the protocol employs \"mesh links\" to carry full messages actively and \"gossip links\" to carry only message identifiers (lazy-pull propagation model). This hybrid approach allows for both active message propagation and reactive message retrieval​ which is an extension of the traditional hub-and-spoke pub/sub model.","s":"Gossipsub","u":"/lodestar/run/beacon-management/networking","h":"#gossipsub","p":325},{"i":338,"t":"Req/Resp is the domain of protocols that establish a flexible, on-demand mechanism to retrieve historical data and data missed by gossip. This family of methods, implemented as separate libp2p protocols, operate between a single requester and responder. A method is initiated via a libp2p protocol ID, with the initiator sending a request message and the responder sending a response message. Every method defines a specific request and response message type, and a specific protocol ID. This framework also facilitates streaming responses and robust error handling.","s":"Req/Resp","u":"/lodestar/run/beacon-management/networking","h":"#reqresp","p":325},{"i":340,"t":"Libp2p is a modular and extensible network stack that serves as the data transport layer below both gossipsub and Req/Resp and facilitates the lower-level peer-to-peer communications. It provides a suite of protocols for various networking functionalities including network transports, connection encryption and protocol multiplexing. Its modular design allows for the easy addition, replacement, or upgrading of protocols, ensuring an adaptable and evolving networking stack. Libp2p operates at the lower levels of the OSI model, particularly at the Transport and Network layers. Libp2p supports both TCP and UDP protocols for establishing connections and data transmission. Combined with libp2p's modular design it can integrate with various networking technologies to facilitating both routing and addressing.","s":"Data Transport (libp2p)","u":"/lodestar/run/beacon-management/networking","h":"#data-transport-libp2p","p":325},{"i":342,"t":"If your setup is behind a firewall there are a few ports that will need to be opened to allow for P2P discovery and communication. There are also some ports that need to be protected to prevent unwanted access or DDOS attacks on your node. Ports that must be opened: 30303/TCP+UDP - Execution layer P2P communication port 9000/TCP+UDP - Beacon node IPv4 P2P communication port 9090/TCP+UDP - Beacon node IPv6 P2P communication port Ports that must be protected: 9596/TCP - Beacon node REST API port 5062/TCP - Validator key manager API port 18550/TCP - MEV-Boost/Builder port 8008/TCP - Beacon node metrics port 5064/TCP - Validator metrics port 8545/TCP - Execution client JSON RPC port 8551/TCP - Execution engine port for Lodestar to communicate with the execution client","s":"Firewall Management","u":"/lodestar/run/beacon-management/networking","h":"#firewall-management","p":325},{"i":344,"t":"Lodestar does not support UPnP. If you are behind a NAT you will need to manually forward the ports listed above.","s":"NAT Traversal","u":"/lodestar/run/beacon-management/networking","h":"#nat-traversal","p":325},{"i":346,"t":"MEV is a term that refers to the bundling of transactions in one particular order to extract (mostly) arbitrage opportunities on the dApps and decentralized exchanges. And the ones who gets to include these execution payloads (miners before the merge, validators after the merge) in the canonical chain get paid a per-block reward which essentially should be higher than the normal payload inclusion reward (including transactions tips). Currently these happen with miners running forked versions of their favorite execution client, integrating with these \"builders\" but in the post-merge world they get a more native and standard integration with the CL. This is what we in CL land refer to as Builder Api.","s":"MEV & Merge","u":"/lodestar/run/beacon-management/mev-and-builder-integration","h":"","p":345},{"i":348,"t":"Lodestar offers builder integration through the spec-ed builder API. This sits in parallel with the execution engine so when enabled, lodestar validator run both flows in parallel when its time to propose for a validator key and currently (naively) picks the builder block in preference to execution if a builder block is fetched (else just proceeds with the execution block).","s":"Lodestar and Builder API","u":"/lodestar/run/beacon-management/mev-and-builder-integration","h":"#lodestar-and-builder-api","p":345},{"i":350,"t":"All you have to do is: Provide lodestar beacon node with a Builder endpoint (which corresponds to the network you are running) via these additional flags: --builder --builder.url Run lodestar validator client with these additional flags --builder --suggestedFeeRecipient There are some more builder flags available in lodestar cli (for both beacon and validator) which you may inspect and use. Even though its possible to directly hook lodestar with an external Builder/Relay, its recommended to interface it with the MEV world via local MEV-BOOST multiplexer which can integrate multiple builder/relays for you and provide some payload verification on top, as currently Lodestar assumes this to be a trusted endpoint.","s":"Configure Lodestar setup for MEV","u":"/lodestar/run/beacon-management/mev-and-builder-integration","h":"#configure-lodestar-setup-for-mev","p":345},{"i":352,"t":"Running a Lodestar node on mainnet or a testnet only requires basic familiarity with the terminal. The following instructions are required to configure and run the Lodestar beacon node. This page assumes you have already setup an Ethereum execution client.","s":"Beacon Management","u":"/lodestar/run/beacon-management/starting-a-node","h":"","p":351},{"i":354,"t":"Make sure Lodestar is installed in your local environment, following the chosen Installation method. The following command should return a non-error message. ./lodestar --help For a complete list of beacon node CLI commands and options, see the beacon CLI Command section. To select a known testnet or mainnet, use the --network flag. The option mainnet is selected by default, and a list of available networks is listed with the --help flag. Setting the --network flag will conveniently configure the beacon node for the selected network. For power users, any configuration option should be able to be overridden.","s":"Connect to Mainnet or a Public Testnet","u":"/lodestar/run/beacon-management/starting-a-node","h":"#connect-to-mainnet-or-a-public-testnet","p":351},{"i":356,"t":"Ethereum requires a secure authentication with the Engine API for connecting to your chosen execution client on port 8551.","s":"Configure the Lodestar JWT Authentication Token","u":"/lodestar/run/beacon-management/starting-a-node","h":"#configure-the-lodestar-jwt-authentication-token","p":351},{"i":358,"t":"You must generate a secret 32-byte (64 characters) hexadecimal string that will be used to authenticate with an execution node. You can use the following command in most terminals to generate a random secret: openssl rand -hex 32. Or you can use an online generator. Save this secret key into a text file and note where you store this file.","s":"Generate a Secret Key","u":"/lodestar/run/beacon-management/starting-a-node","h":"#generate-a-secret-key","p":351},{"i":360,"t":"When starting up a Lodestar beacon node in any configuration, ensure you add the --jwtSecret $JWT_SECRET_PATH flag to point to the saved secret key file.","s":"Configure Lodestar to Locate the JWT Secret","u":"/lodestar/run/beacon-management/starting-a-node","h":"#configure-lodestar-to-locate-the-jwt-secret","p":351},{"i":362,"t":"For Go Ethereum: Use the --authrpc.jwtsecret /path/to/jwtsecret.hex flag to configure the secret. Use their documentation here. For Nethermind: Use the --JsonRpc.JwtSecretFile /path/to/jwtsecret.hex flag to configure the secret. Use their documentation here. For Besu: Use the --engine-jwt-secret=/path/to/jwtsecret.hex flag to configure the secret. Use their documentation here. For Erigon: Use the --authrpc.jwtsecret /path/to/jwtsecret.hex flag to configure the secret. Use their documentation here. For Reth: Use the --authrpc.jwtsecret /path/to/jwtsecret.hex flag to configure the secret. Use their documentation here.","s":"Configure the Execution Client with the JWT Secret","u":"/lodestar/run/beacon-management/starting-a-node","h":"#configure-the-execution-client-with-the-jwt-secret","p":351},{"i":364,"t":"To start the Lodestar beacon, run the command: ./lodestar beacon --network $NETWORK_NAME --jwtSecret $JWT_SECRET_PATH This will assume an execution client is available at the default location of https://localhost:8545. If the execution clients are available at different locations, use the flag --execution.urls to specify these locations in the command: ./lodestar beacon --network $NETWORK_NAME --jwtSecret $JWT_SECRET_PATH --execution.urls $EL_URL1 $EL_URL2 Your initial logs should confirm that the node has started. Jul-31 13:35:27.967[] info: Lodestar network=mainnet, version=v1.21.0/ff35faa, commit=ff35faae4ad1697b86d708a0367a95a71648ab6e Jul-31 13:35:28.344[] info: Connected to LevelDB database path=/data/lodestar/chain-db Jul-31 13:35:49.828[] info: Initializing beacon from a valid db state slot=9633504, epoch=301047, stateRoot=0xfa2845a6877b98555906a1654941c97d9c05bdd41e61cc0870a967dc9030b156, isWithinWeakSubjectivityPeriod=true Jul-31 13:35:51.955[chain] info: Historical state worker started Jul-31 13:35:51.969[eth1] info: Eth1 provider urls=http://localhost:8551 Jul-31 13:35:51.975[execution] info: Execution client urls=http://localhost:8551 Jul-31 13:35:51.977[] info: External builder url=http://localhost:8661 Jul-31 13:36:21.128[network] info: running libp2p instance in worker thread Jul-31 13:36:21.727[network] info: libp2p worker started peer=15Uiu2HAmACcmCEXcgt3zCtJL2rqJZ2Mvdjh6U6fe26HgD2FoNRwW Jul-31 13:36:27.677[network] info: discv5 worker started peerId=16Uiu2HAmACcmCEXcgt3zCtJL2rqJZ2Mvdjh6U6fe26HgD2FoNRwW, initialENR=enr:-IO4QHGTUd1Zg8LAhUAioOz_ySTKoJLIOa6zltSP_AvvhTFVYw6M6YB35IxsiKxQG7nUgCpUB5SIsNxMntCNlTK9sMEBgmlkgnY0iXNlY3AyNTZrMaEC24cdmzuGnWqSwF-8Hw2gbkAZDzMWW3LsHJfp_kDhy-GDdGNwgiMog3VkcIIeWH, bindAddr4=/ip4/0.0.0.0/udp/9000 Jul-31 13:36:28.134[network] info: PeerId 16Uiu2HAmACcmCEXcgt3zCtJL2rqJZ2Mvdjh6U6fe26HgD2FoNRwW, Multiaddrs /ip4/0.0.0.0/tcp/9000 Jul-31 13:36:28.137[metrics] info: Started metrics HTTP server address=http://127.0.0.1:8008 Jul-31 13:36:28.256[rest] info: Started REST API server address=http://0.0.0.0:9596 Jul-31 13:36:28.257[] info: Searching peers - peers: 0 - slot: 9634080 - head: (slot -576) 0x9d88…d02a - exec-block: syncing(20426302 0xcec4…) - finalized: 0x7feb…c130:301045 Jul-31 13:36:36.461[execution] info: Execution client is synced oldState=ONLINE, newState=SYNCED Jul-31 13:36:53.019[] info: Syncing - 3.7 minutes left - 2.32 slots/s - slot: 9634082 - head: (slot -515) 0x792f…f8aa - exec-block: valid(20426365 0x58b1…) - finalized: 0x9d88…d02a:301047 - peers: 11 Jul-31 13:38:53.168[] info: Syncing - 11 seconds left - 4.01 slots/s - slot: 9634092 - head: (slot -44) 0x7491…f63e - exec-block: valid(20426841 0xd4b2…) - finalized: 0x1e00…6e6b:301062 - peers: 59 Jul-31 13:38:58.051[network] info: Subscribed gossip core topics Jul-31 13:38:58.132[sync] info: Subscribed gossip core topics Jul-31 13:39:05.001[] info: Synced - slot: 9634093 - head: 0x35de…1f0e - exec-block: valid(20426886 0x10ff…) - finalized: 0x88f8…5375:301063 - peers: 70 Jul-31 13:39:17.000[] info: Synced - slot: 9634094 - head: 0x7844…3b3e - exec-block: valid(20426887 0x67d1…) - finalized: 0x88f8…5375:301063 - peers: 69 Jul-31 13:39:29.000[] info: Synced - slot: 9634095 - head: 0x5516…ba12 - exec-block: valid(20426888 0x4ceb…) - finalized: 0x88f8…5375:301063 - peers: 74 info If your node is stuck with Searching peers, review your network configuration to make sure your ports are open and forwarded to your host machine. By default, Lodestar stores all configuration and chain data at the path $XDG_DATA_HOME/lodestar/$NETWORK_NAME. A young testnet should take a few hours to sync. If you see multiple or consistent errors in the logs, please open a Github issue or reach out to us in Discord. By reporting anomalies, you are helping to accelerate the progress of Ethereum consensus and we thank you for contributing! warning It is dangerous to expose your Beacon or Execution APIs publicly as there is no default authentication mechanism provided. Ensure your beacon node host is not exposing ports 8545 or 9596 outside of your internal network.","s":"Run the Beacon Node","u":"/lodestar/run/beacon-management/starting-a-node","h":"#run-the-beacon-node","p":351},{"i":366,"t":"If you are starting your node from a blank database, or from a last saved database state that is too old (outside of the weak subjectivity period), your node will be susceptible to \"long range attacks.\" Ethereum's solution to this attack is via something called weak subjectivity. Read Vitalik's illuminating post explaining weak subjectivity.. If you have a synced beacon node available (e.g., your friend's node or a trusted infrastructure provider) to serve a trusted checkpoint you can rely on, you can start syncing your beacon node from that available checkpoint with the flag --checkpointSyncUrl and passing in the URL of the checkpoint provider. This will allow your beacon node to sync within minutes rather than several days. The Ethereum community has maintained a set of public beacon chain checkpoints that serve these sync endpoints to the larger community. You can correlate the state root and the block root with more than one provider to verify the checkpoints being served follow the same canonical chain. Just supply these extra arguments to your beacon node command: --checkpointSyncUrl [--wssCheckpoint ] In case you really trust the --checkpointSyncUrl provider, then you may skip providing --wssCheckpoint, which will then result into your beacon node syncing and starting off the recently finalized state from the trusted URL. warning Please be aware that a malicious checkpoint sync server URL can put you on the wrong chain with a danger of you losing your funds by social engineering. If possible, validate your wssCheckpoint state from multiple places (e.g. different client distributions) or from other trusted sources. This will highly reduce the risk of starting off on a malicious chain. This list of public endpoints maintained by the Ethereum community may be used for reference. Still Taking Long to Sync?​ After your node has been offline for a while, it might be the case that it takes a long time to sync even though a --checkpointSyncUrl is specified. This is due to the fact that the last database state is still within the weak subjectivity period (~15 days on mainnet) which causes the node to sync from the database state instead of the checkpoint state. It is possible to force syncing from a checkpoint state by supplying the --forceCheckpointSync flag. This option is only recommended if it is absolutely necessary for the node to be synced right away to fulfill its duties as there is an inherent risk each time the state is obtained from an external source.","s":"Checkpoint Sync","u":"/lodestar/run/beacon-management/starting-a-node","h":"#checkpoint-sync","p":351},{"i":368,"t":"The Lodestar beacon sync log aims to provide information of utmost importance about the state of your node and be succinct at the same time. You may see the sync logs in the following format: [Sync status] - [ Slot info ] - [Head info] - [Execution block info] - [Finalized info] - [Peers info] See the following example of different kinds of sync log: Apr-20 15:24:08.034[] info: Searching peers - peers: 0 - slot: 6265018 - head: 6264018 0xed93…7b0a - exec-block: syncing(17088476 0x9649…) - finalized: 0xbf30…7e7c:195777 Apr-20 15:24:17.000[] info: Searching peers - peers: 0 - slot: 6265019 - head: 6264018 0xed93…7b0a - exec-block: syncing(17088476 0x9649…) - finalized: 0xbf30…7e7c:195777 Apr-20 15:13:41.298[] info: Syncing - 2.5 minutes left - 2.78 slots/s - slot: 6264966 - head: 6262966 0x5cec…f5b8 - exec-block: valid(17088105 0x6f74…) - finalized: 0x5cc0…3874:195764 - peers: 1 Apr-20 15:13:41.298[] info: Syncing - 2 minutes left - 2.78 slots/s - slot: 6264967 - head: 6263965 0x5cec…f5b8 - exec-block: valid(17088105 0x6f74…) - finalized: 0x5cc0…3874:195764 - peers: 1 Apr-20 15:13:53.151[] info: Syncing - 1.6 minutes left - 3.82 slots/s - slot: 6264967 - head: (slot -360) 0xe0cf…9f3c - exec-block: valid(17088167 0x2d6a…) - finalized: 0x8f3f…2f81:195766 - peers: 5 Apr-20 15:14:05.425[] info: Syncing - 1.1 minutes left - 4.33 slots/s - slot: 6264968 - head: (slot -297) 0x3655…1658 - exec-block: valid(17088231 0xdafd…) - finalized: 0x9475…425a:195769 - peers: 2 Apr-20 15:14:53.001[] info: Syncing - 9 seconds left - 5.00 slots/s - slot: 6264972 - head: (slot -45) 0x44e4…20a4 - exec-block: valid(17088475 0xca61…) - finalized: 0x9cbd…ba83:195776 - peers: 8 Apr-20 15:15:01.443[network] info: Subscribed gossip core topics Apr-20 15:15:01.446[sync] info: Subscribed gossip core topics Apr-20 15:15:05.000[] info: Synced - slot: 6264973 - head: 0x90ea…c655 - exec-block: valid(17088521 0xca9b…) - finalized: 0x6981…682f:195778 - peers: 6 Apr-20 15:15:17.003[] info: Synced - slot: 6264974 - head: 0x4f7e…0e3a - exec-block: valid(17088522 0x08b1…) - finalized: 0x6981…682f:195778 - peers: 6 Apr-20 15:15:41.001[] info: Synced - slot: 6264976 - head: (slot -1) 0x17c6…71a7 - exec-block: valid(17088524 0x5bc1…) - finalized: 0x6981…682f:195778 - peers: 8 Apr-20 15:15:53.001[] info: Synced - slot: 6264977 - head: (slot -2) 0x17c6…71a7 - exec-block: valid(17088524 0x5bc1…) - finalized: 0x6981…682f:195778 - peers: 8 Apr-20 15:16:05.000[] info: Synced - slot: 6264978 - head: 0xc9fd…28c5 - exec-block: valid(17088526 0xb5bf…) - finalized: 0x6981…682f:195778 - peers: 8 Apr-20 15:16:17.017[] info: Synced - slot: 6264979 - head: 0xde91…d4cb - exec-block: valid(17088527 0xa488…) - finalized: 0x6981…682f:195778 - peers: 7 Sync status: This status takes three values: Synced: The node is currently synced Syncing The node is currently in the syncing process Searching: The node is is still looking for viable peers from where it can download blocks Slot (clock) info: The current ongoing slot as per the chain genesis Head info: Specifies where the local beacon chain head hash is. In case it's far behind the Slot (clock), then it independently shows the head slot. Else, it will show how far behind the node is from the Slot (if the difference is < 1000) Execution block info: Provides the information about the execution block head, whether its confirmed valid or still syncing to it. In parenthesis, it shows the current execution block number and a short hash for easy identification Finalized info: Shows the current local finalized checkpoint in the format of [checkpoint root]:[checkpoint epoch]. For example: 0xd7ba…8386:189636 shows a checkpoint root of 0xd7ba…8386 in epoch 189636 Peer info: Current total number of outbound and inbound peers For more insight into how a Lodestar beacon node is functioning, you may setup Lodestar metrics with the --metrics flag and use the prepared Grafana dashboards that are found in the repository. Check out our section on Prometheus and Grafana for more details.","s":"Sync Log Guide","u":"/lodestar/run/beacon-management/starting-a-node","h":"#sync-log-guide","p":351},{"i":370,"t":"Syncing an Ethereum node involves obtaining a copy of the blockchain data from other peers in the network to reach a consistent state. This process is crucial for new nodes or nodes that have been offline and need to catch up with the network's current state. Syncing can be performed for both the execution layer and the beacon chain, although the focus here will be primarily on the beacon chain. Lodestar allows for several methods of syncing however the recommended method is checkpoint sync as it is the fastest and least resource intensive. It is generally a good idea to sync via a --checkpointSyncUrl. If starting at a specific point is necessary specify the --checkpointState that should be where the sync begins.","s":"Syncing","u":"/lodestar/run/beacon-management/syncing","h":"","p":369},{"i":372,"t":"Weak subjectivity is a concept specific to Proof of Stake (PoS) systems, addressing how new nodes can safely join the network and synchronize with the correct blockchain history. Unlike in Proof of Work (PoW) systems, where a node can trust the longest chain due to the significant computational effort required to forge it, PoS systems present different challenges. In PoS, the cost of creating or altering blockchain history is lower, as it is not based on computational work but on the stake held by validators. This difference raises the possibility that an attacker, if possessing sufficient stake, could feasibly create a misleading version of the blockchain history. The concept of weak subjectivity becomes particularly crucial in two scenarios: when new nodes join the network and when existing nodes reconnect after a significant period of being offline. During these times, the 'weak subjectivity period' defines a time frame within which a client, upon rejoining, can reliably process blocks to reach the consensus chain head. This approach is essential for mitigating the risks associated with long-range attacks, which could occur if nodes relied solely on the longest chain principle without any initial trust in a specific network state. To counter these risks, weak subjectivity requires new nodes to obtain a recent, trusted state of the blockchain from a reliable source upon joining the network. This state includes vital information about the current set of validators and their stakes. Starting from this trusted state helps new nodes avoid being misled by false histories, as any attempt to rewrite history beyond this point would require an unrealistically large portion of the total stake.","s":"Weak Subjectivity","u":"/lodestar/run/beacon-management/syncing","h":"#weak-subjectivity","p":369},{"i":375,"t":"Checkpoint sync, also known as state sync, allows a node to sync to a specific state checkpoint without having to process all historical data leading up to that point. In the context of a beacon node, this involves syncing to a recent finalized checkpoint, allowing the node to quickly join the network and participate in consensus activities. This is especially beneficial for new nodes or nodes that have been offline for a considerable duration.","s":"Checkpoint Sync","u":"/lodestar/run/beacon-management/syncing","h":"#checkpoint-sync","p":369},{"i":377,"t":"Historical sync involves processing all blocks from the genesis block or from a specified starting point to the current block. This is the most comprehensive sync method but also the most resource and time-intensive. For beacon nodes, historical sync is crucial for nodes that aim to maintain a complete history of the beacon chain, facilitating a deeper understanding and analysis of the network's history. In the execution layer, it ensures a complete historical record of the execution layer data.","s":"Historical Sync","u":"/lodestar/run/beacon-management/syncing","h":"#historical-sync","p":369},{"i":379,"t":"Range sync involves syncing blocks within a specified range, beneficial when a node is only temporarily offline and needs to catch up over a short range. In the beacon node context, this entails requesting and processing blocks within a defined range, ensuring the node quickly gets updated to the current network state.","s":"Range Sync","u":"/lodestar/run/beacon-management/syncing","h":"#range-sync","p":369},{"i":381,"t":"This is another version of checkpoint sync that allows a node that has not been historically synchronized to verify data prior to the checkpoint. It is done via downloading a checkpoint and then fetch blocks backwards from that point until the desired data can be verified. It is a relatively inexpensive sync from a cpu perspective because it only checks the block hashes and verifies the proposer signatures along the way.","s":"Backfill Sync","u":"/lodestar/run/beacon-management/syncing","h":"#backfill-sync","p":369},{"i":383,"t":"The implementation of the different syncing styles in Lodestar are actually one of two types under the hood, range sync and unknown-parent sync. Range sync is used when the start point of syncing is known. In the case of historical and checkpoint sync the starting points are well defined, genesis and the last finalized epoch boundary. Snapshot sync is not supported by Lodestar. If the starting point for sync is not known Lodestar must first determine where the starting point is. While the discussion about how that happens is out of scope for this document, the gist is that the beacon node will listen to gossipsub for blocks being broadcast on the network. It will also request MetaData from its peers and use that to start requesting the correct blocks from the network. There are several flags that can be used to configure the sync process. --checkpointSyncUrl --checkpointState --wssCheckpoint --forceCheckpointSync","s":"Syncing Lodestar","u":"/lodestar/run/beacon-management/syncing","h":"#syncing-lodestar","p":369},{"i":385,"t":"Run a discv5 bootnode. This will NOT perform any beacon node functions, rather, it will run a discv5 service that allows nodes on the network to discover one another.","s":"bootnode CLI Command","u":"/lodestar/run/bootnode/bootnode-cli","h":"","p":384},{"i":387,"t":"--dataDir​ Lodestar root data directory type: string --network​ Name of the Ethereum Consensus chain network to join type: string choices: \"mainnet\", \"gnosis\", \"sepolia\", \"holesky\", \"chiado\", \"ephemery\", \"mekong\", \"dev\" default: \"mainnet\" --paramsFile​ Network configuration file type: string --terminal-total-difficulty-override​ Terminal PoW block TTD override type: string --terminal-block-hash-override​ Terminal PoW block hash override type: string --terminal-block-hash-epoch-override​ Terminal PoW block hash override activation epoch type: string --listenAddress​ The IPv4 address to listen for discv5 connections type: string default: \"0.0.0.0\" --port​ The UDP port to listen on type: number default: 9000 --listenAddress6​ The IPv6 address to listen for discv5 connections type: string --port6​ The UDP port to listen on type: number default: 9090 --bootnodes​ Additional bootnodes for discv5 discovery type: string[] default: [ \"[]\" ] --bootnodesFile​ Additional bootnodes for discv5 discovery file path type: string --persistNetworkIdentity​ Whether to reuse the same peer-id across restarts type: boolean default: true --enr.ip​ Override ENR IP entry type: string --enr.udp​ Override ENR UDP entry type: number --enr.ip6​ Override ENR IPv6 entry type: string --enr.udp6​ Override ENR (IPv6-specific) UDP entry type: number --nat​ Allow ENR configuration of non-local addresses type: boolean --logLevel​ Logging verbosity level for emitting logs to terminal type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"info\" --logFile​ Path to output all logs to a persistent log file, use 'none' to disable type: string --logFileLevel​ Logging verbosity level for emitting logs to file type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"debug\" --logFileDailyRotate​ Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation type: number default: 5 --metrics​ Enable the Prometheus metrics HTTP server type: boolean --metrics.port​ Listen TCP port for the Prometheus metrics HTTP server type: number default: 8008 --metrics.address​ Listen address for the Prometheus metrics HTTP server type: string default: \"127.0.0.1\"","s":"bootnode Options","u":"/lodestar/run/bootnode/bootnode-cli","h":"#bootnode-options","p":384},{"i":390,"t":"Binaries can be downloaded from the Lodestar release page under the Assets section.","s":"Binaries","u":"/lodestar/run/getting-started/installation","h":"#binaries","p":388},{"i":392,"t":"The chainsafe/lodestar Docker Hub repository is maintained actively. It contains the lodestar CLI preinstalled. info The Docker Hub image tagged as chainsafe/lodestar:next is run on CI every commit on our unstable branch. For stable releases, the image is tagged as chainsafe/lodestar:latest. Ensure you have Docker installed by issuing the command: docker -v It should return a non error message such as Docker version xxxx, build xxxx. Pull, run the image and Lodestar should now be ready to use docker pull chainsafe/lodestar docker run chainsafe/lodestar --help info Docker is the recommended setup for Lodestar. Use our Lodestar Quickstart scripts with Docker for detailed instructions.","s":"Docker Installation","u":"/lodestar/run/getting-started/installation","h":"#docker-installation","p":388},{"i":395,"t":"Make sure to have Yarn installed. It is also recommended to install NVM (Node Version Manager) and use the LTS version (currently v22) of NodeJS. info NodeJS versions older than the current LTS are not supported by Lodestar. We recommend running the latest Node LTS. It is important to make sure the NodeJS version is not changed after reboot by setting a default nvm alias default && nvm use default. note Node Version Manager (NVM) will only install NodeJS for use with the active user. If you intend on setting up Lodestar to run under another user, we recommend using NodeSource's source for NodeJS so you can install NodeJS globally.","s":"Prerequisites","u":"/lodestar/run/getting-started/installation","h":"#prerequisites","p":388},{"i":397,"t":"Clone the repository locally and build from the stable release branch. git clone -b stable https://github.com/chainsafe/lodestar.git Switch to created directory. cd lodestar","s":"Clone repository","u":"/lodestar/run/getting-started/installation","h":"#clone-repository","p":388},{"i":399,"t":"Install across all packages. Lodestar follows a monorepo structure, so all commands below must be run in the project root. yarn install","s":"Install packages","u":"/lodestar/run/getting-started/installation","h":"#install-packages","p":388},{"i":401,"t":"Build across all packages. yarn run build","s":"Build source code","u":"/lodestar/run/getting-started/installation","h":"#build-source-code","p":388},{"i":403,"t":"Lodestar should now be ready for use. ./lodestar --help See Command Line Reference for further information.","s":"Lodestar CLI","u":"/lodestar/run/getting-started/installation","h":"#lodestar-cli","p":388},{"i":405,"t":"ModuleNotFoundError: No module named 'distutils' If you stump upon this issue while running Yarn, it's because Python 3.12 had removed distutils package. That package is required for node build tool. You can install it with following command. pip3 install setuptools --force-reinstall --user","s":"Known Issues","u":"/lodestar/run/getting-started/installation","h":"#known-issues","p":388},{"i":407,"t":"danger For mainnet (production) usage, we only recommend installing with Docker, using binaries or building from source due to NPM supply chain attacks. Until a safer installation method has been found, do not use this install method except for experimental purposes only.","s":"Install from NPM [not recommended]","u":"/lodestar/run/getting-started/installation","h":"#install-from-npm-not-recommended","p":388},{"i":409,"t":"In order to make things easier and quicker for all types of users to bootstrap the Lodestar consensus client with a variety of execution clients, we have come up with Lodestar Quickstart Docker scripts! ✅ Zero configuration ✅ Single command startup ✅ All testnets supported along with mainnet ✅ All mainstream execution clients integrated","s":"Lodestar Quick Start Scripts","u":"/lodestar/run/getting-started/quick-start","h":"","p":408},{"i":411,"t":"We actively maintain and update the configurations of running Lodestar with the most commonly used execution clients for various test/production networks so there is minimal configuration required for a standard setup. If you have questions about these scripts, documentation or repository, feel free to talk to us on our ChainSafe Discord or open an issue and a member of the team or our community will be happy to assist you.","s":"Support","u":"/lodestar/run/getting-started/quick-start","h":"#support","p":408},{"i":413,"t":"You can further adapt our Quickstart Docker scripts to your node setups with ease! Use our Quickstart Custom Setup Guide!","s":"Customizations (Optional)","u":"/lodestar/run/getting-started/quick-start","h":"#customizations-optional","p":408},{"i":415,"t":"Lodestar has the ability to send client stats to a remote service for collection. At the moment, the main service offering remote monitoring is beaconcha.in. Instructions for setting up client monitoring with beaconcha.in can be found in their docs about Mobile App <> Node Monitoring and in your account settings.","s":"Client Monitoring","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"","p":414},{"i":417,"t":"Lodestar provides CLI options to configure monitoring on both the beacon node and validator client.","s":"Configuration","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"#configuration","p":414},{"i":419,"t":"Client monitoring can be enabled by setting the --monitoring.endpoint flag to a remote service endpoint URL. --monitoring.endpoint \"https://beaconcha.in/api/v1/client/metrics?apikey={apikey}&machine={machineName}\" In case of beaconcha.in, the API key can be found in your account settings. Setting the machine is optional but it is especially useful if you are monitoring multiple nodes. note When sending data to a remote service you should be conscious about security: Only use a service that you trust as this will send information which may identify you and associate your validators, IP address and other personal information. Always use a HTTPS connection (i.e. a URL starting with https://) to prevent the traffic from being intercepted in transit and leaking information. More details about the data sent to the remote service can be found in the specification. It is also possible to print out the data sent to the remote service by enabling debug logs which can be done by supplying the --logLevel debug flag.","s":"Remote endpoint URL","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"#remote-endpoint-url","p":414},{"i":421,"t":"It is possible to adjust the interval between sending client stats to the remote service by setting the --monitoring.interval flag. It takes an integer value in milliseconds, the default is 60000 which means data is sent once a minute. For example, setting an interval of 300000 would mean the data is only sent every 5 minutes. --monitoring.interval 300000 Increasing the monitoring interval can be useful if you are running into rate limit errors when posting large amounts of data for multiple nodes.","s":"Monitoring interval","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"#monitoring-interval","p":414},{"i":423,"t":"Prometheus is an open-source monitoring system with efficient time series database and a modern alerting approach. Together with Grafana it's the recommended way to make sure that your node and validator(s) are performing correctly.","s":"Prometheus and Grafana Setup","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"","p":422},{"i":425,"t":"The Lodestar team has setup a script which will copy the latest dashboards compiled by our team for development purposes. By utilizing the script located in /docker/docker-compose.local_dev.sh, you can instantly setup the latest dockerized metrics alongside your local beacon node.","s":"Localized Docker Metrics Script","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"#localized-docker-metrics-script","p":422},{"i":427,"t":"To start, download Prometheus from https://prometheus.io/download/. Unzip the downloaded .zip file and run Prometheus from its installed location with the lodestar prometheus.yml passed in as the configuration file ./prometheus --config.file=$dataDir/prometheus.yml info 8008 is also the default port specified in the prometheus.yml in the lodestar repository Then run the Lodestar beacon node with lodestar --metrics=true --metrics.port=8008 Navigate to http://localhost:9090/ in your browser to verify that Prometheus is monitoring Lodestar","s":"Prometheus Setup","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"#prometheus-setup","p":422},{"i":429,"t":"Download and install Grafana from its official repository https://grafana.com/docs/grafana/latest/installation/debian/ Add Prometheus as a data source to Grafana https://prometheus.io/docs/visualization/grafana/#installing An example of relevant metrics of interest to monitor are: nodejs_heap_space_size_used_bytes nodejs_eventloop_lag_seconds beaconchain_peers beaconchain_current_slot beaconchain_current_finalized_epoch","s":"Grafana Setup","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"#grafana-setup","p":422},{"i":431,"t":"Lodestar supports connecting an external signing server like Web3Signer, Diva, or any other service implementing the remote signing specification. This allows the validator client to operate without storing any validator private keys locally by delegating the signing of messages (e.g. attestations, beacon blocks) to the external signer which is accessed through a REST API via HTTP(S). This API should not be exposed directly to the public Internet and appropriate firewall rules should be in place to restrict access only from the validator client.","s":"External Signer","u":"/lodestar/run/validator-management/external-signer","h":"","p":430},{"i":433,"t":"Lodestar provides CLI options to connect an external signer. ./lodestar validator --externalSigner.url \"http://localhost:9000\" --externalSigner.fetch The validator client will fetch the list of public keys from the external signer and automatically keep them in sync with signers in local validator store by adding newly discovered public keys and removing no longer present public keys on external signer. By default, the list of public keys will be fetched from the external signer once per epoch (6.4 minutes). This interval can be configured by setting --externalSigner.fetchInterval flag which takes a number in milliseconds. Alternatively, if it is not desired to use all public keys imported on the external signer, it is also possible to explicitly specify a list of public keys to use by setting the --externalSigner.pubkeys flag instead of --externalSigner.fetch.","s":"Configuration","u":"/lodestar/run/validator-management/external-signer","h":"#configuration","p":430},{"i":437,"t":"This is a step-by-step guide to utilize @ChainSafe/lodestar-quickstart to setup a Ubuntu-based full Ethereum node using a local execution client and ChainSafe's Lodestar consensus client via Docker (the recommended method to use Lodestar for production environments). This is an adaptation of Somer Esat's guides for the Ethereum staking community. This guide will provide instructions which include running a local execution node. This guide uses Lodestar's stable release branch and supports Holesky testnet setups and Mainnet. info This guide specifically focuses on using Lodestar's Quickstart scripts which allows for near instant setup with the following technologies: Ubuntu v22.04 (LTS) x64 server Ethereum Execution (eth1) clients: Erigon | Github Go-Ethereum (Geth) | Github Hyperledger Besu | Github Nethermind | Github Rust | Github ChainSafe's Lodestar Ethereum Consensus Client | Github Docker Engine danger This guide does not assist with securing your server such as secure SSH logins or enabling firewalls. Ensure you have limited access to your server and blocked unused ports with guides such as CoinCashew's Security Best Practices for your ETH staking validator node before continuing with this guide. warning This guide is for informational purposes only and does not constitute professional advice. The author does not guarantee accuracy of the information in this article and the author is not responsible for any damages or losses incurred by following this article. A full disclaimer can be found at the bottom of this page — please read before continuing.","s":"Quick Start Custom Setup Guide","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"","p":436},{"i":439,"t":"For technical support please reach out to: The Lodestar team actively develops and collaborates on the ChainSafe Discord Server under #🌟-lodestar-general channel. Please subscribe to our Discord server announcements on the ChainSafe Discord Server under #lodestar-announcements channel.","s":"Support","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#support","p":436},{"i":441,"t":"This guide assumes knowledge of Ethereum (ETH), Docker, staking and Linux. You require the following before getting started: Ubuntu Server v22.04 (LTS) amd64 or newer, installed and running on a local machine or in the cloud. A locally running machine is encouraged for greater decentralization — if the cloud provider goes down then all nodes hosted with that provider go down. 32 ETH to run a solo validator with Lodestar. If running on testnet, contact us in our ChainSafe Discord Server for testnet Ether.","s":"Prerequisites","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#prerequisites","p":436},{"i":443,"t":"If moving from a testnet setup to a mainnet setup it is strongly recommended that you start on a fresh (newly installed) server instance. This guide has not been tested for migration scenarios and does not guarantee success if you are using an existing instance with previously installed testnet software.","s":"Testnet to Mainnet","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#testnet-to-mainnet","p":436},{"i":445,"t":"Minimum Recommended Processor Intel Core i3–9100 or AMD Ryzen 5 3450 Intel Core i7–9700 or AMD Ryzen 7 4700 Memory 8 GB RAM 16 GB RAM Storage 130 GB available space SSD 200 GB available space SSD Internet Reliable broadband with 10mbps upload Reliable broadband with >10mbps upload info Check your available disk space. Even you have a large SSD there are cases where Ubuntu is reporting only 100GB free. If this applies to you then take a look at Appendix A — Expanding the Logical Volume.","s":"Hardware Requirements","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#hardware-requirements","p":436},{"i":448,"t":"We must install Docker Engine to run the images on your local machine. Add Docker's GPG keyrings​ Run each line one at a time. sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg Add the repository to Apt sources​ Copy and paste the entire command below. echo \\ \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \\ $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable\" | \\ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Update Ubuntu​ Ensure all updates to your Ubuntu Server are complete. sudo apt-get update sudo apt-get upgrade -y Hit Enter if required to restart services. Install Docker Engine​ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin Test Docker​ sudo docker run hello-world If you see the message Hello from Docker! This message shows that your installation appears to be working correctly., you can move on to the next step. Clone lodestar-quickstart repository​ Clone the lodestar-quickstart from Github into your local server. cd ~ && git clone https://github.com/ChainSafe/lodestar-quickstart.git","s":"Install Docker Engine & Docker Compose","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#install-docker-engine--docker-compose","p":436},{"i":451,"t":"The script and required files are located within the lodestar-quickstart folder. cd lodestar-quickstart","s":"Navigate to the root directory","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#navigate-to-the-root-directory","p":436},{"i":453,"t":"We will generate a JWT secret that is shared by the Execution client and Lodestar in order to have a required secure connection for the Engine API on port 8551. openssl rand -hex 32 | tr -d \"\\n\" > \"jwtsecret\" Confirm that your JWT token created. cat jwtsecret ; echo Your terminal should display the secret. Copy the token for the next step. Be careful to only copy the 64 characters corresponding to the secret and nothing else. danger 🚨 WARNING: Do not share this secret as it protects your authenticated port 8551.","s":"Create your own JWT Secret","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#create-your-own-jwt-secret","p":436},{"i":455,"t":"Edit the import-args.sh file. nano import-args.sh Replace the 64 characters after 0x with your token. If you are not running validators, press CTRL + x then y then Enter to save and exit. Proceed to Configuring your Network.","s":"Input your JWT Secret into the import-args.sh script","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#input-your-jwt-secret-into-the-import-argssh-script","p":436},{"i":457,"t":"warning If you are running validators, Ethereum requires validators to set a Fee Recipient which allows you to receive priority fees and MEV rewards when proposing blocks. If you do not set this address, your rewards will be sent to the burn address by default. Configure your validator client's feeRecipient address by changing the FEE_RECIPIENT line. Ensure you specify an Ethereum address you control. An example of a fee recipient set with the address 0xB7576e9d314Df41EC5506494293Afb1bd5D3f65d, you would change the configuration to: FEE_RECIPIENT=\"0xB7576e9d314Df41EC5506494293Afb1bd5D3f65d\" If you would like to run MEV-Boost with your validators, proceed to the next section. If you do not want to run MEV-Boost, press CTRL + x then y then Enter to save and exit. Proceed to Configuring your Network.","s":"Configure feeRecipient","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-feerecipient","p":436},{"i":459,"t":"info (Optional): If you are running validators and would like to use MEV-Boost, follow this section. Otherwise, skip this section. Validators running MEV-Boost maximize their staking reward by selling blockspace to an open market of builders. MEV-Boost v1.4+ allows you to set a minimum bid threshold to only use an externally built block if it meets or exceeds this parameter. The min-bid parameter is denominated in ETH. For example, if you want to set your threshold to 0.03 ETH, set your configuration to MIN_BUILDERBID=0.03 When complete, press CTRL + x then y then Enter to save and exit.","s":"Set minimum bid for MEV-Boost validators","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#set-minimum-bid-for-mev-boost-validators","p":436},{"i":461,"t":"When using the quick scripts, each supported network has a .vars file to define the parameters required for configuring the clients to the specified network. To view the available files, use the command: ls *.vars","s":"Configuring your Network","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configuring-your-network","p":436},{"i":463,"t":"Each network has specifics variables that you may want to setup for use. We will use Holesky to demonstrate connecting to a public testnet. Open the holesky.vars file. nano holesky.vars","s":"Select your Network","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#select-your-network","p":436},{"i":465,"t":"info (Optional): If you have validators you intend to use for MEV-boost, you can input the relays you want to connect here. Otherwise, skip this section. You can list multiple relays simply by pasting the relay URL as a variable in this file. RELAY_A=https://0xRelayPubKey@relay.com RELAY_B=https://0xRelayPubKey@relay2.com Make sure to identify the ones you want to use by editing the line: RELAYS=\"$RELAY_A,$RELAY_B\"","s":"Configure MEV-boost relays","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-mev-boost-relays","p":436},{"i":467,"t":"The lodestar-quickstart scripts currently defaults to using our stable release branch. To use our nightly unstable release instead, replace LODESTAR_IMAGE=chainsafe/lodestar:latest with LODESTAR_IMAGE=chainsafe/lodestar:next in the import-images.sh file. You may also choose to use a specific version release of Lodestar. To select a specific version, replace the image with LODESTAR_IMAGE=chainsafe/lodestar:v1.x.x warning ⚠️ We do not recommend using the unstable branch or @chainsafe/lodestar:next docker versions of Lodestar for production related tasks.","s":"Configure Lodestar version","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-lodestar-version","p":436},{"i":469,"t":"note (Optional): We use ChainSafe's Lodestar checkpoints by default. You may choose to point your trusted checkpoint at another source or verify the checkpoints with other providers. If you would rather sync from genesis (not recommended), you can skip this step. Weak subjectivity (checkpoint sync) allows your beacon node to sync within minutes by utilizing a trusted checkpoint from a trusted provider. We highly recommend using this feature so you do not need to wait days to sync from genesis and will mitigate your susceptibility to long-range attacks. Minimize your risk of syncing a malicious chain from a malicious checkpoint by verifying the trusted checkpoint from multiple sources. View the community maintained list of Beacon Chain checkpoint sync endpoints Verify multiple endpoint links and ensure the latest finalized and latest justified block roots are the same Choose one of those endpoint URLs Replace the --checkpointSyncUrl address with your chosen provider. info NOTE: Ensure you use checkpoint URLs from the list above corresponding to the network you are trying to sync or you will receive errors. When complete, press CTRL + x then y then Enter to save and exit.","s":"Modify your weak subjectivity (checkpoint sync) provider","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#modify-your-weak-subjectivity-checkpoint-sync-provider","p":436},{"i":471,"t":"info (Optional): We have already set fixed parameters for a seamless setup. If you are looking to customize the default parameters of the clients you are using, follow this section. Otherwise, skip this section. Fixed parameters for clients can be modified under the fixed.vars configuration file. Under the selected client, modify or add the custom arguments on their corresponding line. note The following are links to client documentation for CLI commands: Lodestar CLI Commands Nethermind CLI Commands Besu CLI Commands Go Ethereum CLI commands Erigon CLI commands Reth CLI commands Once complete, press CTRL + x then y then Enter to save and exit.","s":"Modify other client parameters (For advanced users)","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#modify-other-client-parameters-for-advanced-users","p":436},{"i":473,"t":"info Optional: Skip this entire section if you do not intend to run validators.","s":"Setup Validators","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#setup-validators","p":436},{"i":475,"t":"Make sure you are in your main quickstart directory. Create the pass.txt file containing your validator's decryption password for use. cd ~/lodestar-quickstart nano pass.txt Enter the password for your validators. info Once the validator container is running, you can delete this file from your server. Note that every time you restart this container, you will need this password to decrypt your keystore.json files. Once complete, press CTRL + x then y then Enter to save and exit.","s":"Create validator keystore password","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#create-validator-keystore-password","p":436},{"i":477,"t":"If you want to setup validators with your keystores.json files follow this section. Otherwise, skip this step. Copy/Move keystores to lodestar-quickstart/keystores directory​ Your keystore.json file(s) generated from the staking-deposit-cli or similar generator for validator keys will be placed in the lodestar-quickstart/keystores directory using the cp command to copy or mv command to move the files. mkdir keystores info You may choose to use your own method (e.g. SFTP) for copying/uploading keys to your server. This is only a guide. The format of the command to use is below: cp An example usage of this command is: cp /home/user/validator_keys/keystore-x.json ~/lodestar-quickstart/keystores Ensure your keystore.json files are in the lodestar-quickstart/keystores directory using ls command. ls -lsah ~/lodestar-quickstart/keystores/ You should see the keystore files within the directory. info Ensure the /keystores directory only has the keystore-m_xxxxx.json files and nothing else. If you copied in the deposit_data-xxxxx.json files, you can remove them by using the sudo rm command. Example: sudo rm deposit_data-1552658472.json Continue to the Startup Quickstart Script section.","s":"Option 1: Setup validators with keystores","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#option-1-setup-validators-with-keystores","p":436},{"i":479,"t":"Optional: If you want to setup validators with your keystores.json files but they are not encrypted with the same password, follow this section. Otherwise, skip this step. This option will allow you to run multiple validator clients corresponding to each validator keystore set encrypted with the same password. Therefore, we will setup validatorset1 with one decryption password and validatorset2 with another decryption password. You can repeat these steps to create subsequent validator sets with different keystore decryption passwords. Create validator keystore set directory​ Ensure you are in the lodestar-quickstart directory and create a folder for your first validator keystore set. cd ~/lodestar-quickstart Make the new directory for set one. mkdir validatorset1 Navigate into the directory. cd validatorset1 Create validator keystore password​ Create the pass.txt file containing your validator's decryption password for use. nano pass.txt Enter the password for your validators. info Once the validator container is running, you can delete this file from your server. Note that every time you restart this container, you will need this password to decrypt your keystore.json files. Once complete, press CTRL + x then y then Enter to save and exit. Copy/Move keystores to lodestar-quickstart/validatorset1/keystores directory​ Your keystore.json file(s) generated from the staking-deposit-cli or similar generator for validator keys will be placed in the lodestar-quickstart/validatorset1/keystores directory using the sudo cp command to copy or sudo mv command to move the files. mkdir keystores The format of the command to use is below: cp An example usage of this command is: cp /home/user/validator_keys/keystore-x.json ~/lodestar-quickstart/validatorset1/keystores Ensure your keystore.json files are in the lodestar-quickstart/validatorset1/keystores directory using ls command. ls -lsah ~/lodestar-quickstart/validatorset1/keystores/ You should see the keystore files within the directory. info Ensure the /keystores directory only has the keystore-m_xxxxx.json files and nothing else. If you copied in the deposit_data-xxxxx.json files, you can remove them by using the sudo rm command. Example: sudo rm deposit_data-1552658472.json Repeat the same steps above for validatorset2 and any subsequent sets of validators you require. When complete you should have a similar looking directory tree such as the one below: Then, continue to the Startup Quickstart Script section. Pay particular attention to startup script example five (5) and (6).","s":"Option 2: Setup multiple validator sets with keystores encrypted under different passwords","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#option-2-setup-multiple-validator-sets-with-keystores-encrypted-under-different-passwords","p":436},{"i":481,"t":"warning TESTNET USE ONLY: Do not use this method unless you're validating on a testnet. Your mnemonic will be stored in plaintext on your server, which is unsafe. Optional: If you want to setup validators with your mnemonic. Otherwise, skip this step. Setup Mnemonic​ Select the .vars file corresponding to the network you want to run. For Holesky, select holesky.vars. Open the file with the nano text editor and edit the configuration: nano holesky.vars We will modify the LODESTAR_VALIDATOR_MNEMONIC_ARGS=. Specifically, the mnemonic located after the --fromMnemonic flag. Replace the default mnemonic with your mnemonic. Ensure it is between the quotations Indicate which indexes of the mnemonic you wish Lodestar to run. Specify a specific index number --mnemonicIndexes 0 or a range of numbers --mnemonicIndexes 0..5 info If you created your mnemonic with one key, it is likely located in index 0. If you've added to it, the generated keys are likely the subsequent indexes. Therefore, if you generated one key, it is likely in index 0, so you would use --mnemonicIndexes 0. If you generated five keys, it is likely in index 0 to 4, so you would use --mnemonicIndexes 0..4 Once complete, press CTRL + x then y then Enter to save and exit. Continue to the Startup Quickstart Script section.","s":"Option 3: Setup validators with mnemonic","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#option-3-setup-validators-with-mnemonic","p":436},{"i":483,"t":"Ensure you are in the `~/lodestar-quickstart folder. cd ~/lodestar-quickstart The following are example commands as a template for initiating the quickstart script: Startup a Sepolia beacon node with no validators and Go Ethereum (Geth) execution client with terminals attached: ./setup.sh --dataDir sepolia-data --elClient geth --network sepolia --dockerWithSudo --withTerminal \"gnome-terminal --disable-factory --\" Startup Mainnet beacon node with no validators and Nethermind execution client detached from containers (Recommended only when you've verified the setup has initiated properly with terminals attached): ./setup.sh --dataDir mainnet-data --elClient nethermind --network mainnet --dockerWithSudo --detached Startup Holesky beacon node with validator client (using mnemonic in /keystores) and Erigon execution client detached from containers: ./setup.sh --dataDir holesky-data --elClient erigon --network holesky --dockerWithSudo --detached --withValidatorMnemonic ~/lodestar-quickstart/ Startup Mainnet beacon node with validator client (using keystores) with MEV-Boost and Hyperledger Besu execution client detached from containers: ./setup.sh --dataDir mainnet-data --elClient besu --network mainnet --dockerWithSudo --detached --withValidatorKeystore ~/lodestar-quickstart/ --withMevBoost Startup Holesky beacon node with validator client set one (using keystores) and execution client Geth detached from containers: ./setup.sh --dataDir holesky-data --elClient geth --network holesky --dockerWithSudo --detached --withValidatorKeystore ~/lodestar-quickstart/validatorset1 warning You can only start up one set of validator keystores per validator client on the same command. Use the below command (#6) to startup another validator client for another set of validator keys. Startup validator client only with validator client set two (using keystores) and execution client Geth detached from containers: ./setup.sh --dataDir holesky-data --elClient geth --network holesky --dockerWithSudo --detached --withValidatorKeystore ~/lodestar-quickstart/validatorset2 --justVC info The script will standardize naming your containers so running the setup.sh twice, will not create two instances of the same containers. The script will standardize naming your containers so running the ./setup.sh a second time, will not create two instances of the same containers. Configure the above commands with what you intend to run using the Quickstart Script Help table below.","s":"Startup Quickstart Script","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#startup-quickstart-script","p":436},{"i":485,"t":"Command Required/Optional Description dataDir Required File location (volume) of the configuration & data for setup. This directory should be non-existent for the first run. If the directory exists, it will skip fetching the configuration, assuming it has been done previously. You can also clean individual directors of CL/EL between the re-runs. elClient Required The selected EL client you want to run with Lodestar. Options are nethermind, besu, erigon or geth. network Required The network/chain you want to load, reads the corresponding .vars (for e.g. holesky.vars) network configuration , like images, or urls for EL/CL to interact. Example: Default for Holesky is --network holesky using holesky.vars. dockerWithSudo Optional Provide this argument if your Docker needs a sudo prefix. --withTerminal Optional* Provide the terminal command prefix for CL and EL processes to run in your favourite terminal. You may use an alias or a terminal launching script as long as it waits for the command it runs till ends and then closes. If not provided, it will launch the docker processes in in-terminal mode. --detached Optional* By default the script will wait for processes and use user input (ctrl +c) to end the processes, however you can pass this option to skip this behavior and just return, for e.g. in case you just want to leave it running. --withValidatorKeystore Optional** Launch a validator client using LODESTAR_VALIDATOR_MNEMONIC_ARGS (--withValidatorMnemonic) or using a folder (--withValidatorKeystore --justVC connecting to same beacon node. --withValidatorMnemonic Optional** Launch a validator client using mnemonic method.(LODESTAR_VALIDATOR_MNEMONIC_ARGS) as set in the network vars file. --withMevBoost Optional Launch a MEV-Boost container to interface with multiple relays picked for the corresponding network vars file. When paired with --justCL or --justVC this only activates the builder arguments in the beacon/validator and use the builder url set in MEVBOOST_URL variable in fixed.vars --justEL Optional Launch only the Execution Layer client. --justCL Optional Launch only the Lodestar beacon node. --justVC Optional Launch only the Lodestar validator. --skipImagePull Optional Launch with only the local Docker images. Do not update them on this run. note * : Only one of the two options should be provided. ** : Only one of the two options should be provided.","s":"Quickstart Script Help","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#quickstart-script-help","p":436},{"i":487,"t":"You can check the status and get the name of your containers by using the docker ps command: sudo docker ps The containers should not constantly restart. If they restart, likely a misconfiguration occurred.","s":"Check Containers","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-containers","p":436},{"i":489,"t":"You can check the status of what your container is logging to diagnose a problem or follow along the status of your container output. Check the logs by using the docker logs command: sudo docker logs Follow along the logs by adding the -f flag: sudo docker logs -f Limit the fetched logs by indicating the latest container out puts by number of lines using the -n flag. For the last 10 lines: sudo docker logs -n 10 ","s":"Check Container Logs","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-container-logs","p":436},{"i":491,"t":"Your beacon node should initialize and you should see something similar to: Jul-31 13:35:27.967[] info: Lodestar network=mainnet, version=v1.21.0/ff35faa, commit=ff35faae4ad1697b86d708a0367a95a71648ab6e Jul-31 13:35:28.344[] info: Connected to LevelDB database path=/data/lodestar/chain-db Jul-31 13:35:49.828[] info: Initializing beacon from a valid db state slot=9633504, epoch=301047, stateRoot=0xfa2845a6877b98555906a1654941c97d9c05bdd41e61cc0870a967dc9030b156, isWithinWeakSubjectivityPeriod=true Jul-31 13:35:51.955[chain] info: Historical state worker started Jul-31 13:35:51.969[eth1] info: Eth1 provider urls=http://localhost:8551 Jul-31 13:35:51.975[execution] info: Execution client urls=http://localhost:8551 Jul-31 13:35:51.977[] info: External builder url=http://localhost:8661 Jul-31 13:36:21.128[network] info: running libp2p instance in worker thread Jul-31 13:36:21.727[network] info: libp2p worker started peer=15Uiu2HAmACcmCEXcgt3zCtJL2rqJZ2Mvdjh6U6fe26HgD2FoNRwW Jul-31 13:36:27.677[network] info: discv5 worker started peerId=16Uiu2HAmACcmCEXcgt3zCtJL2rqJZ2Mvdjh6U6fe26HgD2FoNRwW, initialENR=enr:-IO4QHGTUd1Zg8LAhUAioOz_ySTKoJLIOa6zltSP_AvvhTFVYw6M6YB35IxsiKxQG7nUgCpUB5SIsNxMntCNlTK9sMEBgmlkgnY0iXNlY3AyNTZrMaEC24cdmzuGnWqSwF-8Hw2gbkAZDzMWW3LsHJfp_kDhy-GDdGNwgiMog3VkcIIeWH, bindAddr4=/ip4/0.0.0.0/udp/9000 Jul-31 13:36:28.134[network] info: PeerId 16Uiu2HAmACcmCEXcgt3zCtJL2rqJZ2Mvdjh6U6fe26HgD2FoNRwW, Multiaddrs /ip4/0.0.0.0/tcp/9000 Jul-31 13:36:28.137[metrics] info: Started metrics HTTP server address=http://127.0.0.1:8008 Jul-31 13:36:28.256[rest] info: Started REST API server address=http://0.0.0.0:9596 Jul-31 13:36:28.257[] info: Searching peers - peers: 0 - slot: 9634080 - head: (slot -576) 0x9d88…d02a - exec-block: syncing(20426302 0xcec4…) - finalized: 0x7feb…c130:301045 Jul-31 13:36:36.461[execution] info: Execution client is synced oldState=ONLINE, newState=SYNCED Jul-31 13:36:53.019[] info: Syncing - 3.7 minutes left - 2.32 slots/s - slot: 9634082 - head: (slot -515) 0x792f…f8aa - exec-block: valid(20426365 0x58b1…) - finalized: 0x9d88…d02a:301047 - peers: 11 Jul-31 13:38:53.168[] info: Syncing - 11 seconds left - 4.01 slots/s - slot: 9634092 - head: (slot -44) 0x7491…f63e - exec-block: valid(20426841 0xd4b2…) - finalized: 0x1e00…6e6b:301062 - peers: 59 Jul-31 13:38:58.051[network] info: Subscribed gossip core topics Jul-31 13:38:58.132[sync] info: Subscribed gossip core topics Jul-31 13:39:05.001[] info: Synced - slot: 9634093 - head: 0x35de…1f0e - exec-block: valid(20426886 0x10ff…) - finalized: 0x88f8…5375:301063 - peers: 70 Jul-31 13:39:17.000[] info: Synced - slot: 9634094 - head: 0x7844…3b3e - exec-block: valid(20426887 0x67d1…) - finalized: 0x88f8…5375:301063 - peers: 69 Jul-31 13:39:29.000[] info: Synced - slot: 9634095 - head: 0x5516…ba12 - exec-block: valid(20426888 0x4ceb…) - finalized: 0x88f8…5375:301063 - peers: 74","s":"Check beacon node is progressing","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-beacon-node-is-progressing","p":436},{"i":493,"t":"OPTIONAL: If you are running validators, you can check the validator client logs to ensure the validator keys exist, has been detected and decrypted. Here is an example command if you are running validators on Goerli with the lodestar-quickstart script: sudo docker logs goerli-validator You should see something similar to: Mar-01 03:06:35.048[] info: Lodestar network=holesky, version=v1.16.0/6ad9740, commit=6ad9740a085574306cf46c7642e749d6ec9a4264 Mar-01 03:06:35.050[] info: Connecting to LevelDB database path=/keystoresDir/validator-db-holesky Mar-01 03:06:35.697[] info: 100% of keystores imported. current=2 total=2 rate=1318.68keys/m Mar-01 03:06:35.698[] info: 2 local keystores Mar-01 03:06:35.698[] info: 0xa6fcfca12e1db6c7341d82327010cd57224dc239d1c5e4fb18286cc32edb877d813c5af1c870d474aef7b3ff7ab927ea Mar-01 03:06:35.698[] info: 0x8f868e53bbe1451bcf6d42c9ab6d292cbd7fbfa09c59b6b99c1dd6a4977e2e7b4b752c328784ca2788dd6f63ffcbdb7e Mar-01 03:06:35.732[] info: Beacon node urls=http://127.0.0.1:9596 Mar-01 03:09:23.813[] info: Genesis fetched from the beacon node Mar-01 03:09:23.816[] info: Verified connected beacon node and validator have same the config Mar-01 03:09:23.818[] info: Verified connected beacon node and validator have the same genesisValidatorRoot Mar-01 03:09:23.818[] info: Initializing validator useProduceBlockV3=deneb+, broadcastValidation=gossip, defaultBuilderSelection=executiononly, suggestedFeeRecipient=0xeeef273281fB83F56182eE960aA4bAfe7fE075DE, strictFeeRecipientCheck=false Mar-01 03:09:23.830[] info: Validator seen on beacon chain validatorIndex=1234567, pubKey=0xa6fcfca12e1db6c7341d82327010cd57224dc239d1c5e4fb18286cc32edb877d813c5af1c870d474aef7b3ff7ab927ea Mar-01 03:09:23.830[] info: Validator seen on beacon chain validatorIndex=1234568, pubKey=0x8f868e53bbe1451bcf6d42c9ab6d292cbd7fbfa09c59b6b99c1dd6a4977e2e7b4b752c328784ca2788dd6f63ffcbdb7e Mar-01 03:09:23.830[] info: Validator statuses active=2, total=2 Mar-01 03:15:50.191[] info: Published attestations slot=1113379, count=1 Mar-01 03:16:02.728[] info: Published attestations slot=1113380, count=1 info It is normal to see Error on getProposerDuties in your validator logs as your beacon node and execution node sync up. Give it time.","s":"Check validators are detected and decrypted","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-validators-are-detected-and-decrypted","p":436},{"i":495,"t":"You can stop the running containers by using the docker stop command and apply it to more than one container if necessary. sudo docker stop Ensure to remove the container if you don't plan to restart it with the same parameters. sudo docker rm ","s":"Stop Containers","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#stop-containers","p":436},{"i":498,"t":"There are cases where Ubuntu is provisioning only 200GB of a larger SSD causing users to run out of disk space when syncing their Eth1 node. The error message is similar to: Fatal: Failed to register the Ethereum service: write /var/lib/goethereum/geth/chaindata/383234.ldb: no space left on device To address this issue, assuming you have a SSD that is larger than 200GB, expand the space allocation for the LVM by following these steps: sudo lvdisplay <-- Check your logical volume size sudo lvm lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv lvextend -l +100%FREE -r /dev/ubuntu-vg/ubuntu-lv exit sudo resize2fs /dev/ubuntu-vg/ubuntu-lv df -h <-- Check results That should resize your disk to the maximum available space. If you need support, please check with the ChainSafe Discord under the #🌟-lodestar-general channel.","s":"Appendix A - Expanding the Logical Volume","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#appendix-a---expanding-the-logical-volume","p":436},{"i":500,"t":"To update client images, you just need to stop all the containers, remove them and restart the lodestar-quickstart script to automatically check for new images. You can stop the running containers by using the docker stop command with the container names. sudo docker stop Remove the containers by using the docker rm command. sudo docker rm Restart your containers using your Startup Quickstart Script command.","s":"Appendix B - Update client images","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#appendix-b---update-client-images","p":436},{"i":502,"t":"This article (the guide) is for informational purposes only and does not constitute professional advice. The author does not warrant or guarantee the accuracy, integrity, quality, completeness, currency, or validity of any information in this article. All information herein is provided “as is” without warranty of any kind and is subject to change at any time without notice. The author disclaims all express, implied, and statutory warranties of any kind, including warranties as to accuracy, timeliness, completeness, or fitness of the information in this article for any particular purpose. The author is not responsible for any direct, indirect, incidental, consequential or any other damages arising out of or in connection with the use of this article or in reliance on the information available on this article. This includes any personal injury, business interruption, loss of use, lost data, lost profits, or any other pecuniary loss, whether in an action of contract, negligence, or other misuse, even if the author has been informed of the possibility.","s":"Full Disclaimer","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#full-disclaimer","p":436},{"i":504,"t":"warning This is an alpha feature. The feature and its format are subject to change. With Lodestar's validator client, you can assign specific metadata for each proposer/public key using a proposer configuration file written in YAML file. This will allow you to set specific graffiti, fee recipients and builder settings per validator key.","s":"Proposer Configuration","u":"/lodestar/run/validator-management/proposer-config","h":"","p":503},{"i":506,"t":"proposer_config: \"0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c\": graffiti: \"graffiti\" strict_fee_recipient_check: false fee_recipient: \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\" builder: gas_limit: \"30000000\" selection: \"executionalways\" boost_factor: \"0\" \"0xa4855c83d868f772a579133d9f23818008417b743e8447e235d8eb78b1d8f8a9f63f98c551beb7de254400f89592314d\": fee_recipient: \"0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\" builder: gas_limit: \"3000000\" selection: \"maxprofit\" boost_factor: \"100\" default_config: graffiti: \"default graffiti\" strict_fee_recipient_check: true fee_recipient: \"0xcccccccccccccccccccccccccccccccccccccccc\" builder: gas_limit: \"30000000\" selection: \"default\" boost_factor: \"90\"","s":"Example proposer_config.yaml","u":"/lodestar/run/validator-management/proposer-config","h":"#example-proposer_configyaml","p":503},{"i":508,"t":"After you have configured your proposer configuration YAML file, you can start Lodestar with an additional CLI flag option pointing to the file: --proposerSettingsFile /path/to/proposer_config.yaml. info The proposer configuration can also be retrieved via the keymanager API endpoint: GET /eth/v0/validator/{pubkey}/proposer_config","s":"Enable Proposer Configuration","u":"/lodestar/run/validator-management/proposer-config","h":"#enable-proposer-configuration","p":503},{"i":510,"t":"Run one or multiple validator clients","s":"validator CLI Command","u":"/lodestar/run/validator-management/validator-cli","h":"","p":509},{"i":512,"t":"The following sub-commands are available with the validator command: validator slashing-protection import validator slashing-protection export validator import validator list validator voluntary-exit validator bls-to-execution-change","s":"Available Sub-Commands","u":"/lodestar/run/validator-management/validator-cli","h":"#available-sub-commands","p":509},{"i":515,"t":"Run one validator client with all the keystores available in the directory .holesky/keystores ./lodestar validator --network holesky","s":"Base validator command","u":"/lodestar/run/validator-management/validator-cli","h":"#base-validator-command","p":509},{"i":517,"t":"--dataDir​ Lodestar root data directory type: string --network​ Name of the Ethereum Consensus chain network to join type: string choices: \"mainnet\", \"gnosis\", \"sepolia\", \"holesky\", \"chiado\", \"ephemery\", \"mekong\", \"dev\" default: \"mainnet\" --paramsFile​ Network configuration file type: string --terminal-total-difficulty-override​ Terminal PoW block TTD override type: string --terminal-block-hash-override​ Terminal PoW block hash override type: string --terminal-block-hash-epoch-override​ Terminal PoW block hash override activation epoch type: string --logLevel​ Logging verbosity level for emitting logs to terminal type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"info\" --logFile​ Path to output all logs to a persistent log file, use 'none' to disable type: string --logFileLevel​ Logging verbosity level for emitting logs to file type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"debug\" --logFileDailyRotate​ Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation type: number default: 5 --keymanager​ Enable key manager API server type: boolean --keymanager.auth​ Enable token bearer authentication for key manager API server type: boolean default: true --keymanager.tokenFile​ Path to file containing bearer token used for key manager API authentication type: string --keymanager.port​ Set port for key manager API type: number default: 5062 --keymanager.address​ Set host for key manager API type: string default: \"127.0.0.1\" --keymanager.cors​ Configures the Access-Control-Allow-Origin CORS header for key manager API type: string default: \"*\" --beaconNodes​ Addresses to connect to BeaconNode type: string[] default: [ \"http://127.0.0.1:9596\" ] --force​ Open validators even if there's a lockfile. Use with caution type: boolean --graffiti​ Specify your custom graffiti to be included in blocks (plain UTF8 text, 32 characters max) type: string --proposerSettingsFile​ A yaml file to specify detailed default and per validator public key customized proposer configs. PS: This feature and its format is in alpha and subject to change type: string --suggestedFeeRecipient​ Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$). It would be possible (WIP) to override this per validator key using config or key manager API. Only used post merge. type: string default: \"0x0000000000000000000000000000000000000000\" --strictFeeRecipientCheck​ Enable strict checking of the validator's feeRecipient with the one returned by engine type: boolean --defaultGasLimit​ Suggested gas limit to the engine/builder for building execution payloads. Only used post merge. type: number default: 30000000 --builder​ An alias for --builder.selection default for the builder flow, ignored if --builder.selection is explicitly provided type: boolean --builder.selection​ Builder block selection strategy default, maxprofit, builderalways, builderonly, executionalways, or executiononly type: string default: \"executiononly\" --builder.boostFactor​ Percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if --builder.selection is set to anything other than maxprofit type: string default: \"100\" --useProduceBlockV3​ Enable/disable usage of produceBlockV3 for block production, is auto enabled on deneb+ blocks type: boolean --broadcastValidation​ Validations to be run by beacon node for the signed block prior to publishing type: string default: \"gossip\" --blindedLocal​ Request fetching local block in blinded format for produceBlockV3 type: boolean default: false --importKeystores​ Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators type: string[] default: [ \"./keystores/*.json\" ] --importKeystoresPassword​ Path to a file with password to decrypt all keystores from importKeystores option type: string default: \"./password.txt\" --doppelgangerProtection​ Enables Doppelganger protection type: boolean --http.requestWireFormat​ Wire format to use in HTTP requests to beacon node. Can be one of json or ssz type: string default: \"json\" --http.responseWireFormat​ Preferred wire format for HTTP responses from beacon node. Can be one of json or ssz type: string default: \"ssz\" --externalSigner.url​ URL to connect to an external signing server type: string --externalSigner.pubkeys​ List of validator public keys used by an external signer. May also provide a single string of comma-separated public keys type: string[] --externalSigner.fetch​ Fetch the list of public keys to validate from an external signer. Cannot be used in combination with --externalSigner.pubkeys type: boolean --externalSigner.fetchInterval​ Interval in milliseconds between fetching the list of public keys from external signer, once per epoch by default type: number --distributed​ Enables specific features required to run as part of a distributed validator cluster type: boolean --metrics​ Enable the Prometheus metrics HTTP server type: boolean default: false --metrics.port​ Listen TCP port for the Prometheus metrics HTTP server type: number default: 5064 --metrics.address​ Listen address for the Prometheus metrics HTTP server type: string default: \"127.0.0.1\" --monitoring.endpoint​ Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in) type: string --monitoring.interval​ Interval in milliseconds between sending client stats to the remote service type: number default: 60000","s":"validator Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-options","p":509},{"i":519,"t":"Import an interchange file.","s":"validator slashing-protection import","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-import","p":509},{"i":521,"t":"Supports all parent command options plus the following: --beaconNodes​ Addresses to connect to BeaconNode type: string[] default: [ \"http://127.0.0.1:9596\" ] --force​ If genesisValidatorsRoot can't be fetched from the Beacon node, use a zero hash type: boolean --file​ The slashing protection interchange file to import (.json). required: true type: string","s":"validator slashing-protection import Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-import-options","p":509},{"i":523,"t":"Export an interchange file.","s":"validator slashing-protection export","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-export","p":509},{"i":525,"t":"Supports all parent command options plus the following: --beaconNodes​ Addresses to connect to BeaconNode type: string[] default: [ \"http://127.0.0.1:9596\" ] --force​ If genesisValidatorsRoot can't be fetched from the Beacon node, use a zero hash type: boolean --file​ The slashing protection interchange file to export to (.json). required: true type: string --pubkeys​ Export slashing protection data only for a given subset of public keys type: string[]","s":"validator slashing-protection export Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-export-options","p":509},{"i":527,"t":"Imports one or more EIP-2335 keystores into a Lodestar validator client directory, requesting passwords interactively. The directory flag provides a convenient method for importing a directory of keys generated by the eth2-deposit-cli Ethereum Foundation utility.","s":"validator import","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-import","p":509},{"i":529,"t":"Import validator keystores generated with the Ethereum Foundation Staking Launchpad ./lodestar validator import --network holesky --importKeystores $HOME/staking-deposit-cli/validator_keys","s":"validator import Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-import-examples","p":509},{"i":531,"t":"Supports all parent command options plus the following: --importKeystores​ Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators type: string[] default: [ \"./keystores/*.json\" ] --importKeystoresPassword​ Path to a file with password to decrypt all keystores from importKeystores option type: string default: \"./password.txt\"","s":"validator import Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-import-options","p":509},{"i":533,"t":"Lists the public keys of all validators","s":"validator list","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-list","p":509},{"i":535,"t":"List all validator public keys previously imported ./lodestar validator list","s":"validator list Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-list-examples","p":509},{"i":537,"t":"Performs a voluntary exit for a given set of validators as identified via pubkeys. If no pubkeys are provided, it will exit all validators that have been imported.","s":"validator voluntary-exit","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-voluntary-exit","p":509},{"i":539,"t":"Perform a voluntary exit for the validator who has a public key 0xF00 ./lodestar validator voluntary-exit --network holesky --pubkeys 0xF00 Perform a voluntary exit for the validator who has a public key 0xF00 and its secret key is on an external signer ./lodestar validator voluntary-exit --network holesky --externalSigner.url http://signer:9000 --externalSigner.fetch --pubkeys 0xF00","s":"validator voluntary-exit Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-voluntary-exit-examples","p":509},{"i":541,"t":"Supports all parent command options plus the following: --exitEpoch​ The epoch upon which to submit the voluntary exit. If no value is provided, then we default to the current epoch. type: number --pubkeys​ Public keys to exit type: string[] --yes​ Skip confirmation prompt type: boolean","s":"validator voluntary-exit Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-voluntary-exit-options","p":509},{"i":543,"t":"Performs BLS To Execution Change for a given validator (as identified via publicKey. If no publicKey is provided, a prompt will ask the user which validator they would like to choose for BLS To Execution Change.","s":"validator bls-to-execution-change","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-bls-to-execution-change","p":509},{"i":545,"t":"Perform BLS To Execution Change for the validator who has a public key 0xF00 ./lodestar validator bls-to-execution-change --publicKey 0xF00 --fromBlsPrivkey ... --toExecutionAddress ...","s":"validator bls-to-execution-change Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-bls-to-execution-change-examples","p":509},{"i":547,"t":"Supports all parent command options plus the following: --publicKey​ Validator public key for which to set withdrawal address hence enabling withdrawals required: true type: string --fromBlsPrivkey​ Bls withdrawals private key to sign the message required: true type: string --toExecutionAddress​ Address to which the validator's balances will be set to be withdrawn. required: true type: string","s":"validator bls-to-execution-change Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-bls-to-execution-change-options","p":509},{"i":549,"t":"The following instructions are for stakers utilizing the Lodestar validator client.","s":"Validator Configuration","u":"/lodestar/run/validator-management/vc-configuration","h":"","p":548},{"i":551,"t":"Validators are represented by a BLS keypair. Use your generated mnemonic from one of the tools above to generate the keystore files required for validator duties on Ethereum using the Lodestar validator client.","s":"Setup your validator","u":"/lodestar/run/validator-management/vc-configuration","h":"#setup-your-validator","p":548},{"i":553,"t":"To create a keystore, we recommend using the official Staking Deposit CLI from the Ethereum Foundation for users comfortable with command line interfaces. Alternatively, for a graphical user interface, you can use the Stakehouse Wagyu Key Generator developed by members of the EthStaker community. warning These tools will generate keystore files for staking validators as well as the important mnemonic. This mnemonic must be handled and stored securely.","s":"Create a keystore","u":"/lodestar/run/validator-management/vc-configuration","h":"#create-a-keystore","p":548},{"i":555,"t":"To import a validator JSON keystore that was created via one of the methods described above, you must locate the file for import (ex. keystore-m_12381_3600_0_0_0-1654128694.json). Inside the keystore JSON file, you should have an EIP-2335 keystore file. You will also need the passphrase used the encrypt the keystore. This can be specified interactively, or provided in a plaintext file. Option 1: Import Keys To Lodestar's Keystores Folder​ You can load the keys into the keystore folder using the validator import command. There are two methods for importing keystores: Interactive passphrase import ./lodestar validator import --importKeystores ./validator_keys Plaintext passphrase file import ./lodestar validator import --importKeystores ./validator_keys --importKeystoresPassword ./password.txt info The interactive passphrase import method will prompt every keystore in the validator_keys folder for import and will ask for the individual password for each keystore. This method will allow you to import multiple keystores with different passwords. The plaintext passphrase file import method will allow you to import all keystores in the validator_keys folder encrypted with the same password contained in password.txt for efficiency. Once imported with either method, these keystores will be automatically loaded when you start the validator. To list the imported keystores, use the validator list command. Option 2: Import Keys When Starting the Validator​ To import keys when you start the validator specify the --importKeystores and --importKeystoresPassword flags with the validator command: ./lodestar validator --importKeystores ./validator_keys --importKeystoresPassword ./password.txt warning If you import keys using --importKeystores at runtime (Option 2) any keys loaded to the keystores folder from Option 1 will be ignored.","s":"Import a validator keystore to Lodestar","u":"/lodestar/run/validator-management/vc-configuration","h":"#import-a-validator-keystore-to-lodestar","p":548},{"i":557,"t":"Post-Merge Ethereum requires validators to set a Fee Recipient which allows you to receive priority fees when proposing blocks. If you do not set this address, your priority fees will be sent to the burn address. Configure your validator client's fee recipient address by using the --suggestedFeeRecipient flag. Ensure you specify an Ethereum address you control. An example of a fee recipient set with the address 0xB7576e9d314Df41EC5506494293Afb1bd5D3f65d would add the following flag to their configuration: --suggestedFeeRecipient 0xB7576e9d314Df41EC5506494293Afb1bd5D3f65d. You may choose to use the --strictFeeRecipientCheck flag to enable a strict check of the fee recipient address with the one returned by the beacon node for added reassurance. note If you would like to set unique proposer metadata (e.g. fee recipient address) for each validator you are running, see the Proposer Configuration feature. This feature is also available via the keymanager API.","s":"Configuring the fee recipient address","u":"/lodestar/run/validator-management/vc-configuration","h":"#configuring-the-fee-recipient-address","p":548},{"i":559,"t":"If you are running a beacon node with connected builder relays, you may use these validator configurations to signal which block (builder vs. local execution) the beacon node should produce. With produceBlockV3 (enabled automatically after the Deneb hard fork), the --builder.boostFactor is a percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if --builder.selection is set to anything other than maxprofit. Even though this is set on the validator client, the calculation is requested and applied on the beacon node itself. For more information, see the produceBlockV3 Beacon API. With Lodestar's --builder.selection validator options, you can select: default: Default setting for Lodestar set at --builder.boostFactor=90. This default setting will have a local block boost of ~10%. Note that this value might change in the future depending on what we think is the most appropriate value to help improve censorship resistance of Ethereum. maxprofit: An alias of --builder.boostFactor=100, which will always choose the more profitable block. Using this option, you may customize your --builder.boostFactor to your preference. Examples of its usage are below. executionalways: An alias of --builder.boostFactor=0, which will select the local execution block, unless it fails to produce due to an error or a delay in the response from the execution client. executiononly: Beacon node will be requested to produce local execution block even if builder relays are configured. This option will always select the local execution block and will error if it couldn't produce one. builderalways: An alias of --builder.boostFactor=18446744073709551615 (2**64 - 1), which will select the builder block, unless the builder block fails to produce. The builder block may fail to produce if it's not available, not timely or there is an indication of censorship via shouldOverrideBuilder from the execution payload response. builderonly: Generally used for distributed validators (DVs). No execution block production will be triggered. Therefore, if a builder block is not produced, the API will fail and no block will be produced. Calculating builder boost factor with examples​ To calculate the builder boost factor setting, you need to know what percentage you will accept a builder block for against a local execution block using the following formula: 100*100/(100+percentage). The value passed to --builder.boostFactor must be a valid number without decimals. Example 1: I will only accept a builder block with 25% more value than the local execution block. 10000/(100+25) = 80 Therefore, --builder.boostFactor=80. Example 2: Setting a --builder.boostFactor=0 will always prefer the local execution block, but will produce an available builder block if the local execution block fails. Example 3: Setting a --builder.boostFactor=100 is the same as signaling --builder.selection maxprofit where the validator will always select the most profitable block between the local execution engine and the builder block from the relay.","s":"Configure your builder selection and/or builder boost factor","u":"/lodestar/run/validator-management/vc-configuration","h":"#configure-your-builder-selection-andor-builder-boost-factor","p":548},{"i":561,"t":"Please use the official Ethereum Launchpad to perform your deposits. Ensure your deposits are sent to the proper beacon chain deposit address on the correct network. Mainnet​ Ethereum Mainnet Launchpad Beacon Chain Deposit Contract 0x00000000219ab540356cBB839Cbe05303d7705Fa Holesky Testnet​ Ethereum Holesky Testnet Launchpad Holesky Beacon Chain Deposit Contract 0x4242424242424242424242424242424242424242 Ephemery Testnet​ Ethereum Ephemery Testnet Launchpad Ephemeral Testnet Resources","s":"Submit a validator deposit","u":"/lodestar/run/validator-management/vc-configuration","h":"#submit-a-validator-deposit","p":548},{"i":563,"t":"To start a Lodestar validator run the command: ./lodestar validator --network $NETWORK_NAME You should see confirmation that modules have started. Mar-01 03:06:35.048[] info: Lodestar network=holesky, version=v1.16.0/6ad9740, commit=6ad9740a085574306cf46c7642e749d6ec9a4264 Mar-01 03:06:35.050[] info: Connecting to LevelDB database path=/keystoresDir/validator-db-holesky Mar-01 03:06:35.697[] info: 100% of keystores imported. current=2 total=2 rate=1318.68keys/m Mar-01 03:06:35.698[] info: 2 local keystores Mar-01 03:06:35.698[] info: 0xa6fcfca12e1db6c7341d82327010cd57224dc239d1c5e4fb18286cc32edb877d813c5af1c870d474aef7b3ff7ab927ea Mar-01 03:06:35.698[] info: 0x8f868e53bbe1451bcf6d42c9ab6d292cbd7fbfa09c59b6b99c1dd6a4977e2e7b4b752c328784ca2788dd6f63ffcbdb7e Mar-01 03:06:35.732[] info: Beacon node urls=http://127.0.0.1:9596 Mar-01 03:09:23.813[] info: Genesis fetched from the beacon node Mar-01 03:09:23.816[] info: Verified connected beacon node and validator have same the config Mar-01 03:09:23.818[] info: Verified connected beacon node and validator have the same genesisValidatorRoot Mar-01 03:09:23.818[] info: Initializing validator useProduceBlockV3=deneb+, broadcastValidation=gossip, defaultBuilderSelection=executiononly, suggestedFeeRecipient=0xeeef273281fB83F56182eE960aA4bAfe7fE075DE, strictFeeRecipientCheck=false Mar-01 03:09:23.830[] info: Validator seen on beacon chain validatorIndex=1234567, pubKey=0xa6fcfca12e1db6c7341d82327010cd57224dc239d1c5e4fb18286cc32edb877d813c5af1c870d474aef7b3ff7ab927ea Mar-01 03:09:23.830[] info: Validator seen on beacon chain validatorIndex=1234568, pubKey=0x8f868e53bbe1451bcf6d42c9ab6d292cbd7fbfa09c59b6b99c1dd6a4977e2e7b4b752c328784ca2788dd6f63ffcbdb7e Mar-01 03:09:23.830[] info: Validator statuses active=2, total=2 Mar-01 03:15:50.191[] info: Published attestations slot=1113379, count=1 Mar-01 03:16:02.728[] info: Published attestations slot=1113380, count=1","s":"Run the validator","u":"/lodestar/run/validator-management/vc-configuration","h":"#run-the-validator","p":548},{"i":566,"t":"⏳ Lodestar currently undergoes a quick release cycle with regular minor releases published roughly fortnightly. 🌐 We encourage using the most recently released version before reporting an issue.","s":"Supported Versions","u":"/lodestar/security","h":"#supported-versions","p":564},{"i":568,"t":"🚨 Please, send vulnerability reports to security@chainsafe.io. ⚠️ Please do not file a public ticket mentioning the vulnerability, as doing so could increase the likelihood of the vulnerability being used before a fix has been created, released and installed on the network.","s":"Reporting a Vulnerability","u":"/lodestar/security","h":"#reporting-a-vulnerability","p":564},{"i":573,"t":"@chainsafe/js-libp2p-noise - Noise handshake for js-libp2p @chainsafe/js-libp2p-gossipsub - Gossipsub protocol for js-libp2p @chainsafe/libp2p-yamux","s":"LibP2P","u":"/lodestar/supporting-libraries/","h":"#libp2p","p":570},{"i":575,"t":"discv5 - Discv5 protocol","s":"Discv5","u":"/lodestar/supporting-libraries/","h":"#discv5","p":570},{"i":577,"t":"@chainsafe/ssz - Simple Serialize (SSZ) @chainsafe/persistent-merkle-tree - binary merkle tree implemented as a persistent data structure @chainsafe/as-sha256 - Small AssemblyScript implementation of SHA256","s":"Serialization and Hashing","u":"/lodestar/supporting-libraries/","h":"#serialization-and-hashing","p":570},{"i":579,"t":"@chainsafe/bls - Isomorphic Ethereum Consensus BLS sign / verify / aggregate @chainsafe/blst-ts - Node specific Ethereum Consensus BLS sign / verify / aggregate @chainsafe/bls-keystore - store / retrieve a BLS secret key from an EIP-2335 JSON keystore @chainsafe/bls-keygen - utility functions to generate BLS secret keys, following EIP-2333 and EIP-2334 @chainsafe/bls-hd-key - low level EIP-2333 and EIP-2334 functionality","s":"BLS","u":"/lodestar/supporting-libraries/","h":"#bls","p":570},{"i":581,"t":"The Lodestar project is divided into TypeScript packages that can be used independently of the CLI. These packages span the breadth of the Ethereum Consensus layer, and are perfect for TypeScript developers looking to build around Ethereum.","s":"Lodestar libraries","u":"/lodestar/supporting-libraries/libraries","h":"","p":580},{"i":583,"t":"Several useful Ethereum consensus libraries are developed as part of the Lodestar monorepo and may be useful when used individually. params - Ethereum consensus constants and fork names types - Ethereum consensus types, TypeScript interfaces and SSZ type objects config - Ethereum consensus run-time network configuration api - Ethereum consensus REST API client flare - Beacon chain multi-purpose and debugging tool light-client - Ethereum light client prover - A set of tools allowing to verify EL client JSON-RPC calls","s":"Monorepo libraries","u":"/lodestar/supporting-libraries/libraries","h":"#monorepo-libraries","p":580},{"i":586,"t":"bls - Ethereum Consensus BLS sign / verify / aggregate bls-keystore - store / retrieve a BLS secret key from an EIP-2335 JSON keystore bls-keygen - utility functions to generate BLS secret keys, following EIP-2333 and EIP-2334 bls-hd-key - low level EIP-2333 and EIP-2334 functionality","s":"BLS Utilities","u":"/lodestar/supporting-libraries/libraries","h":"#bls-utilities","p":580},{"i":588,"t":"ssz - Simple Serialize (SSZ) persistent-merkle-tree - binary merkle tree implemented as a persistent data structure as-sha256 - Small AssemblyScript implementation of SHA256","s":"Hashing","u":"/lodestar/supporting-libraries/libraries","h":"#hashing","p":580},{"i":590,"t":"discv5 - Discv5 protocol js-libp2p-gossipsub - Gossipsub protocol for js-libp2p js-libp2p-noise - Noise handshake for js-libp2p","s":"Networking","u":"/lodestar/supporting-libraries/libraries","h":"#networking","p":580}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,1.216,1,4.066,2,3.989,3,2.556,4,3.287,5,2.243,6,4.517,7,6.3,8,5.009,9,5.161,10,4.517]],["t/5",[0,1.459,2,2.853,3,1.828,6,3.231,11,1.729,12,3.949,13,3.026,14,3.231,15,2.752,16,2.574,17,1.361,18,3.158,19,2.574,20,4.287,21,3.949,22,3.813,23,1.336,24,2.145,25,1.132,26,2.965,27,2.965,28,3.816,29,3.483,30,3.949,31,3.309,32,2.085,33,2.318,34,4.506,35,2.752,36,1.871,37,2.255,38,5.703,39,4.506,40,3.583,41,3.692,42,2.908,43,3.692,44,2.659,45,2.255,46,4.506,47,4.287,48,2.704,49,3.483,50,3.483,51,3.158,52,2.704,53,4.105,54,5.703]],["t/7",[0,0.887,5,1.636,23,1.362,55,5.816,56,2.181,57,5.809,58,1.585,59,3.796,60,4.875,61,6.974,62,5.002,63,5.249,64,6.974,65,6.974,66,3.653,67,5.249,68,5.249,69,4.875,70,5.249,71,3.552,72,4.027,73,7.751,74,6.477,75,4.875,76,4.875,77,5.249,78,3.729,79,5.002,80,6.106,81,5.249,82,4.875,83,6.477,84,6.974,85,6.974,86,6.974]],["t/9",[4,2.894,5,2.453,23,2.043,59,3.449,73,5.884,74,5.884,80,5.547,87,3.271,88,3.874,89,4.41,90,2.98,91,2.98,92,3.229,93,3.65,94,3.977,95,7.021,96,3.449,97,3.977,98,6.336,99,7.021,100,5.054]],["t/11",[0,1.25,1,4.179,2,4.101,41,5.305,101,4.441,102,5.149,103,4.876,104,5.149]],["t/13",[1,3.958,9,5.025,46,6.134,48,3.681,50,4.742,101,4.206,105,6.134,106,5.588,107,6.134,108,6.506,109,5.588,110,4.618,111,7.006,112,6.506]],["t/19",[0,0.885,3,1.654,11,1.564,12,1.346,17,1.034,19,0.877,23,0.779,24,1.631,25,1.793,28,1.663,32,2.605,33,1.771,36,1.091,37,0.768,44,0.906,45,1.723,51,1.076,52,1.577,58,2.682,59,1.633,72,3.018,88,1.477,90,1.411,96,0.954,113,1.399,114,1.299,115,1.171,116,1.884,117,1.053,118,1.671,119,2.738,120,1.943,121,0.954,122,0.738,123,1.7,124,1.753,125,0.954,126,0.972,127,1.299,128,0.954,129,1.91,130,1.5,131,1.187,132,1.629,133,1.399,134,2.393,135,1.629,136,1.535,137,1.221,138,1.753,139,1.943,140,0.921,141,1.299,142,1.299,143,0.602,144,2.627,145,2.469,146,3.241,147,3.34,148,4.861,149,4.656,150,3.325,151,3,152,1.753,153,2.499,154,1.461,155,2.499,156,1.535,157,2.738,158,1.943,159,3.653,160,2.302,161,1.221,162,2.581,163,1.432,164,1.156,165,1.076,166,5.152,167,1.399,168,1.535,169,1.629,170,3.151,171,3.205,172,2.127,173,1.399,174,1.101,175,2.223,176,1.053,177,1.053,178,0.972,179,1.943,180,1.943,181,1.936,182,0.863,183,1.629,184,0.954,185,1.156,186,1.729,187,1.906,188,2.18,189,2.787,190,1.943,191,2.031,192,3.501,193,1.753,194,1.399,195,1.101,196,1.943,197,1.346,198,0.779,199,1.351,200,1.297,201,1.399,202,1.753,203,1.076,204,1.076,205,2.683,206,3.714,207,1.943,208,1.801,209,1.943,210,2.787,211,1.943,212,3.325,213,1.929,214,1.411,215,1.258,216,0.921,217,1.978,218,1.629,219,1.978,220,1.943,221,1.346,222,1.221,223,0.693,224,1.399,225,0.779,226,1.943,227,1.535,228,1.127,229,1.978,230,1.753,231,1.943,232,1.943,233,1.535,234,2.266,235,1.156,236,3.325,237,1.156,238,1.258,239,1.101,240,1.943,241,1.101,242,1.943,243,1.399,244,1.399,245,1.943,246,1.127,247,0.837,248,1.943,249,1.943,250,1.535,251,1.258,252,0.738,253,1.943,254,1.943,255,1.753,256,1.753,257,1.629,258,1.346]],["t/21",[0,1.062,11,2.112,28,3.485,33,2.831,36,2.285,90,2.956,93,3.621,94,3.946,115,2.453,119,4.375,129,2.578,130,3.143,145,3.946,239,5.356,259,4.509,260,4.657,261,5.803,262,4.657,263,5.503,264,6.966,265,6.966,266,4.657,267,5.014,268,4.823]],["t/25",[0,1.106,17,1.294,45,2.867,52,3.439,140,4.22,184,3.562,269,7.252,270,4.207,271,4.694,272,6.078,273,5.452,274,4.314,275,5.73,276,4.108,277,5.005,278,5.73,279,5.022,280,7.252,281,4.555]],["t/27",[121,3.813,140,4.397,184,4.555,217,4.618,271,5.025,282,3.619,283,6.134,284,7.006,285,4.618,286,7.006,287,6.134,288,6.506]],["t/29",[24,2.263,25,1.597,35,3.883,115,2.834,118,2.126,273,6.049,289,5.572,290,6.049,291,8.047,292,4.787]],["t/31",[3,2.628,4,3.379,5,2.305,6,4.643,293,8.197,294,3.585,295,5.149,296,3.531]],["t/33",[0,1.115,24,2.515,25,1.917,94,4.142,134,5.263,140,4.241,163,3.15,294,3.198,297,5.777,298,4.466,299,2.972,300,5.063,301,6.128,302,7.313,303,3.658,304,4.593,305,5.063]],["t/35",[0,1.216,17,1.422,140,3.781,273,5.994,290,5.994,306,7.974,307,7.196,308,7.196,309,5.009,310,4.87,311,4.87]],["t/37",[24,2.581,25,1.821,40,4.792,90,3.237,140,3.618,165,4.224,252,3.486,277,3.966,312,9.177,313,5.764,314,5.735]],["t/39",[17,1.645,36,2.524,44,3.588,315,7.696,316,4.169,317,7.696,318,6.944,319,4.981,320,5.329,321,5.539,322,3.924,323,7.696,324,7.696,325,6.45]],["t/41",[3,1.982,4,2.549,24,1.739,25,1.596,125,3.037,140,3.815,200,2.412,297,4.885,300,5.571,326,7.26,327,7.098,328,5.182,329,3.35,330,6.184,331,5.697,332,8.046,333,4.885,334,5.182,335,4.134,336,2.932,337,4.451,338,6.184,339,8.046,340,5.379,341,3.215,342,3.678]],["t/43",[3,2.425,5,2.758,172,3.118,274,4.499,343,6.825,344,5.909,345,4.896,346,5.686,347,4.896,348,5.444,349,7.564,350,3.468,351,6.339,352,3.932]],["t/45",[0,1.184,14,4.398,92,2.874,129,2.874,353,7.763,354,4.618,355,6.134,356,7.772,357,5.376,358,5.588,359,7.763,360,4.206,361,5.836]],["t/47",[3,2.58,4,3.317,26,4.184,115,2.834,143,2.494,247,3.466,261,5.38,294,3.519,307,7.261,362,7.261]],["t/49",[5,2.594,17,1.373,87,2.885,122,2.923,178,3.85,344,4.981,352,4.001,363,6.944,364,6.45,365,6.944,366,6.944,367,4.169,368,4.834,369,4.169]],["t/51",[3,2.628,4,3.379,6,4.643,294,3.585,303,4.101,352,4.261,370,8.197,371,6.476]],["t/53",[3,2.511,4,3.229,17,1.397,29,5.694,45,3.935,56,2.937,372,7.832,373,6.188,374,7.832,375,7.068]],["t/55",[0,1.022,17,1.657,24,2.612,25,1.329,140,3.177,162,4.238,163,2.886,199,2.723,270,3.887,294,3.705,297,5.294,298,4.093,303,3.352,326,6.047,327,4.64,376,6.701,377,7.339,378,4.087,379,3.555,380,6.047,381,4.093,382,6.701,383,6.047]],["t/57",[3,2.628,4,3.379,252,3.113,294,3.585,308,7.397,384,5.9,385,3.531,386,5.676]],["t/59",[0,1.239,29,4.96,140,3.851,270,5.525,271,5.257,294,3.552,354,4.831,387,8.121]],["t/61",[5,2.64,23,1.606,25,1.36,35,3.309,56,2.571,110,4.079,115,2.415,118,2.601,122,2.605,140,3.252,289,4.748,294,3.759,295,4.307,296,3.702,297,5.418,304,4.307,333,5.418,334,5.747,379,3.638,383,6.188,388,3.978,389,5.747]],["t/63",[121,3.882,184,3.882,271,5.115,276,5.309,277,4.109,282,3.684,286,7.131,287,6.244,288,6.623,390,5.941,391,4.827]],["t/65",[6,4.437,20,5.888,379,4.155,392,7.068,393,7.068,394,7.068,395,7.832,396,5.423,397,7.832,398,6.564,399,7.832,400,7.832,401,6.564]],["t/67",[6,4.558,25,1.597,174,4.558,175,5.38,271,5.209,294,3.519,303,4.026,352,4.184,402,8.047,403,8.047]],["t/69",[303,3.989,342,4.743,404,6.3,405,4.87,406,5.331,407,7.974,408,7.974,409,7.974,410,4.066,411,5.009,412,7.974]],["t/71",[6,4.477,17,1.41,294,3.456,303,3.954,352,4.872,404,6.244,405,4.827,413,7.404,414,6.244,415,7.903]],["t/73",[292,4.659,294,3.425,303,3.918,345,5.07,404,6.188,405,5.694,416,8.412,417,5.888,418,6.564,419,7.832,420,5.888]],["t/75",[114,5.531,140,3.923,271,5.355,294,3.618,421,7.466,422,5.531,423,6.934]],["t/77",[17,1.422,31,5.466,143,2.92,303,3.989,405,5.755,417,5.994,424,7.974,425,6.3]],["t/79",[0,1.227,3,2.58,7,6.358,41,5.209,426,7.261,427,6.744,428,5.209,429,7.261,430,6.049,431,6.049]],["t/81",[58,2.653,355,6.662,432,6.338,433,4.218]],["t/83",[16,3.534,17,1.397,92,2.899,172,3.229,434,7.832,435,6.564,436,6.188,437,7.832,438,7.068,439,9.322,440,4.243,441,6.564]],["t/85",[0,1.298,2,3.378,13,4.516,14,3.825,16,3.047,23,2.292,36,2.215,58,2.75,78,3.258,178,4.258,277,3.51,282,3.148,433,4.258,442,7.681,443,6.752,444,5.076,445,6.752,446,2.953,447,4.675]],["t/87",[6,2.254,15,1.92,17,0.71,19,2.668,23,2.411,25,0.789,32,1.454,33,1.617,41,2.575,44,1.855,45,3.931,52,1.886,58,2.385,87,1.492,91,2.509,92,1.473,102,3.714,134,2.864,143,1.233,182,1.767,197,2.755,205,2.068,252,1.511,276,3.35,277,3.074,296,1.714,340,3.953,341,2.068,345,2.575,367,2.155,368,2.499,381,2.43,385,2.547,433,4.657,448,3.334,449,3.334,450,5.913,451,4.256,452,5.913,453,3.334,454,3.59,455,3.074,456,2.66,457,1.92,458,3.978,459,2.308,460,3.978,461,3.978,462,2.43,463,2.155,464,2.66,465,4.445,466,5.336,467,3.827,468,2.43,469,3.59,470,3.59,471,2.991,472,3.143,473,2.755,474,3.334,475,1.552,476,3.334,477,2.575,478,3.334,479,2.864,480,3.143,481,2.864,482,2.991,483,2.66]],["t/89",[17,1.294,33,2.948,44,3.381,102,4.555,115,2.554,122,2.755,130,3.272,172,2.99,342,4.314,446,3.172,455,3.77,457,3.499,484,7.252,485,6.544,486,5.022,487,7.252,488,5.022,489,6.078,490,5.452,491,3.77,492,3.929,493,5.73]],["t/91",[11,1.624,23,2.095,25,1.063,33,2.177,36,2.398,45,2.891,58,1.46,94,3.034,140,2.54,205,2.785,217,4.349,221,3.709,224,3.856,277,2.785,298,3.272,300,3.709,304,4.593,373,7.066,433,2.68,463,2.902,480,4.232,494,4.517,495,6.193,496,5.357,497,4.732,498,5.357,499,7.311,500,4.489,501,3.186,502,4.834,503,4.489,504,3.856,505,3.687,506,3.856,507,3.467,508,4.489,509,3.709,510,5.357,511,3.074,512,3.467]],["t/93",[17,1.204,23,2.183,25,0.948,26,2.483,37,2.669,45,3.935,56,1.791,87,1.791,130,2.155,140,2.265,146,4.241,162,2.389,187,2.089,195,2.705,204,2.645,205,3.51,215,3.091,219,2.841,223,1.703,298,2.917,309,4.241,310,2.917,340,4.513,348,3.438,367,2.588,373,3.773,433,2.389,440,2.588,463,2.588,475,1.863,485,4.31,490,3.59,494,3.257,511,1.642,513,3.438,514,3.59,515,5.658,516,3.59,517,2.917,518,3.59,519,3.773,520,3.193,521,5.636,522,6.751,523,6.751,524,3.438,525,3.307,526,3.59,527,6.092,528,4.776,529,2.705,530,2.645,531,3.773,532,2.304,533,4.31,534,4.776,535,4.776,536,4.776,537,4.776]],["t/95",[15,4.653,23,1.705,24,2.509,25,1.646,32,1.946,33,3.372,58,1.984,78,2.569,92,1.971,118,1.407,122,2.022,130,3.285,178,2.664,191,3.252,205,2.768,497,3.446,511,2.853,532,2.569,538,7.488,539,6.954,540,3.687,541,7.281,542,4.805,543,4.207,544,6.102,545,3.643,546,4.331,547,4.002,548,5.753,549,5.324,550,5.324,551,4.331,552,3.344,553,4.002,554,5.241,555,3.559,556,4.805,557,4.805]],["t/97",[0,0.963,41,5.28,48,4.284,49,3.858,50,3.858,58,2.463,102,3.968,177,3.422,187,3.567,200,3.182,205,3.284,285,3.757,336,2.995,337,4.547,446,2.762,492,3.422,558,6.317,559,4.99,560,5.7,561,6.317,562,6.317,563,3.16,564,4.089,565,4.99,566,4.99,567,4.547,568,4.982,569,6.317,570,6.317,571,6.317,572,5.7,573,5.294]],["t/99",[48,4.397,51,4.299,58,2.116,198,3.112,272,6.506,360,4.206,385,3.344,574,3.448,575,4.742,576,5.19,577,7.763,578,3.681,579,5.588]],["t/101",[1,2.908,33,2.318,39,4.506,41,3.692,45,2.255,101,3.09,103,3.392,123,2.225,187,4.183,188,3.816,198,2.286,200,2.225,331,4.425,433,3.816,448,4.78,453,6.393,467,4.937,491,2.965,530,4.224,563,4.3,574,2.533,580,6.883,581,5.147,582,5.147,583,4.78,584,5.147,585,3.692,586,6.393,587,4.287,588,4.78,589,5.147,590,5.147,591,4.287,592,3.583,593,5.703,594,5.703,595,7.628,596,5.147,597,5.703,598,5.703]],["t/103",[0,0.657,1,2.197,8,3.939,41,2.789,48,2.974,87,1.616,90,1.829,93,2.24,102,2.707,103,2.563,118,1.139,133,4.514,188,4.935,247,1.856,262,2.881,283,4.954,287,3.404,296,1.856,340,2.881,342,2.563,360,2.334,375,3.888,428,4.059,451,3.102,465,4.714,467,6.384,468,2.632,473,4.342,475,1.681,513,4.514,531,3.404,540,2.984,563,2.156,574,1.914,585,4.785,586,5.256,590,3.888,599,3.567,600,3.239,601,4.309,602,3.102,603,4.309,604,4.309,605,3.888,606,3.404,607,4.309,608,4.309,609,3.939,610,4.309,611,3.239,612,3.239,613,3.102,614,2.622,615,2.881,616,3.611,617,3.404,618,4.309,619,1.856,620,3.102,621,4.309,622,3.888,623,6.271,624,3.611,625,3.239,626,2.707,627,5.256,628,4.309,629,2.563,630,3.239,631,2.707]],["t/105",[0,1.106,17,1.294,89,5.59,103,5.293,140,4.885,200,2.829,271,4.694,275,5.73,282,3.381,391,4.429,619,3.124,632,8.899,633,3.628,634,6.078,635,7.252]],["t/107",[0,0.728,6,1.707,11,1.448,17,1.518,23,1.389,27,1.566,36,1.946,37,1.191,40,1.892,44,1.405,45,1.888,51,1.668,58,2.006,79,1.95,90,1.278,91,2.027,93,2.483,101,2.587,126,1.507,142,3.966,170,1.84,177,1.632,187,3.219,192,1.668,195,2.705,200,1.175,215,1.95,219,1.792,223,1.074,261,2.014,277,1.566,304,4.24,305,2.086,320,2.086,342,1.792,345,1.95,354,1.792,356,2.525,378,2.304,385,3.17,401,2.525,428,1.95,429,2.719,433,2.968,440,3.214,446,1.318,448,2.525,449,4.972,453,4.002,454,2.719,468,1.84,475,1.175,477,1.95,479,2.168,491,4.071,494,1.454,505,1.242,519,2.38,530,4.075,551,4.658,552,1.892,576,2.014,599,1.454,600,2.265,602,2.168,636,2.719,637,3.013,638,4.46,639,3.013,640,3.013,641,3.013,642,1.84,643,3.013,644,2.525,645,2.086,646,3.013,647,3.773,648,4.108,649,3.437,650,3.013,651,3.529,652,2.525,653,3,654,3.013,655,3.013,656,2.719,657,3.013,658,3.013,659,1.892,660,3.013,661,3.013,662,3.013,663,3.013,664,3.013,665,2.086,666,7.36,667,2.086,668,3.013,669,2.719,670,2.38,671,2.719,672,2.525,673,2.38,674,3.013,675,3.013,676,2.38,677,3.013,678,2.38,679,2.014,680,2.719,681,2.265,682,1.892,683,1.95,684,1.84,685,2.525,686,5.933,687,3.013,688,3.013,689,3.013,690,3.013,691,3.013]],["t/109",[2,2.326,17,0.829,23,1.551,25,0.923,31,2.698,33,1.89,44,2.168,45,3.514,58,1.805,87,1.744,88,2.065,93,3.444,102,4.161,117,2.519,126,2.326,134,3.347,143,1.441,197,3.22,247,2.003,251,3.01,252,1.766,276,3.752,277,3.444,296,2.003,341,2.418,345,3.01,367,2.519,368,2.921,369,2.519,381,2.84,455,2.418,464,3.109,465,4.98,466,5.978,467,4.288,468,2.84,469,4.196,470,4.196,471,3.495,472,3.674,473,3.22,474,3.897,475,2.584,476,3.897,477,3.01,478,3.897,479,3.347,480,3.674,481,3.347,482,3.495,483,3.109,489,3.897,494,2.244,501,4.59,503,3.897,513,3.347,521,3.347,614,1.945,692,6.322,693,2.371,694,4.196,695,2.766,696,4.196,697,3.674,698,2.84,699,3.897,700,4.65,701,4.65,702,4.65,703,4.65,704,3.22]],["t/112",[39,3.674,44,2.168,48,3.988,56,1.744,115,1.638,126,4.207,127,3.109,143,2.392,162,2.326,171,2.003,182,2.065,188,2.326,198,2.655,199,1.89,247,3.622,252,1.766,274,2.766,295,2.921,296,2.003,322,2.371,336,2.205,361,3.495,378,3.196,385,2.003,446,2.034,456,3.109,474,3.897,494,2.244,501,2.766,520,3.109,521,3.347,563,2.326,609,2.921,626,4.161,634,3.897,681,4.98,684,2.84,704,4.587,705,3.22,706,3.589,707,3.589,708,4.273,709,4.98,710,3.674,711,6.624,712,3.495,713,4.196,714,2.371,715,4.196,716,3.674,717,2.168,718,4.65,719,4.196,720,2.132,721,4.65,722,4.196,723,3.01,724,4.65,725,3.674,726,4.196,727,3.22,728,4.65,729,4.196,730,3.674,731,4.196,732,3.674,733,3.347,734,3.347]],["t/114",[17,0.985,43,3.576,48,3.54,122,2.099,126,2.764,137,3.47,142,3.693,143,1.712,183,6.257,195,4.229,198,2.993,199,2.245,235,3.286,252,2.836,321,3.977,322,2.817,367,2.993,381,3.374,468,3.374,476,4.63,501,4.441,653,3.47,706,5.283,707,2.993,708,3.059,735,4.365,736,4.985,737,7.466,738,5.525,739,5.899,740,3.47,741,2.31,742,5.525,743,4.63,744,5.525,745,5.525,746,4.63,747,4.365,748,5.525,749,4.63,750,3.977,751,5.525,752,4.153,753,5.525,754,5.525,755,4.365,756,4.985]],["t/116",[1,2.799,17,0.979,19,2.477,23,1.286,88,3.302,91,2.33,121,2.697,172,2.263,186,2.854,187,2.401,200,2.141,204,3.04,227,4.338,336,2.603,348,3.952,367,2.974,430,4.127,462,3.353,463,2.974,465,4.127,475,2.141,505,2.263,511,2.556,530,3.04,553,5.589,554,7.006,587,4.127,633,2.747,670,4.338,757,5.874,758,4.954,759,3.952,760,7.435,761,5.49,762,4.338,763,4.601,764,4.601,765,5.49,766,3.554,767,5.49,768,7.435,769,3.802,770,5.49,771,5.49,772,3.802,773,3.554,774,4.601,775,3.185,776,5.49,777,3.952]],["t/118",[19,3.503,23,1.818,25,1.54,281,4.877,462,4.742,511,2.669,539,6.506,554,6.675,574,3.448,778,7.763,779,7.763,780,7.763,781,7.763]],["t/120",[13,4.047,17,1.361,23,1.336,33,3.493,35,2.752,47,4.287,51,3.158,91,3.647,101,5.332,182,2.533,187,2.494,205,2.965,219,3.392,282,4.007,336,2.704,378,2.752,388,3.309,433,3.816,463,3.09,530,3.158,587,4.287,682,3.583,720,2.615,758,5.147,782,5.703,783,5.703,784,6.393,785,5.703,786,5.703,787,5.703,788,8.595,789,5.703,790,5.703,791,7.628,792,5.703,793,5.703,794,5.703]],["t/122",[3,2.1,4,2.7,11,1.388,48,4.59,56,1.716,96,2.248,114,3.06,121,2.248,188,4.177,225,1.835,243,3.295,260,3.06,279,5.297,283,3.617,299,2.662,304,2.875,340,5.114,341,3.406,381,2.796,385,1.972,467,5.405,471,4.924,482,3.441,516,3.441,572,8.294,582,4.131,587,4.924,614,1.914,669,5.911,704,6.365,732,3.617,795,2.963,796,6.98,797,4.715,798,6.998,799,6.551,800,3.617,801,4.578,802,4.578,803,4.131,804,2.796,805,3.617,806,4.578,807,6.551,808,4.578,809,4.115,810,4.578,811,4.578]],["t/124",[27,4.261,49,5.006,50,5.006,573,6.87,812,5.006,813,8.197,814,7.397,815,7.397]],["t/128",[17,1.448,24,2.284,25,1.611,44,3.786,45,3.211,113,5.845,117,4.4,118,2.146,816,6.806]],["t/130",[0,1.205,24,2.223,25,1.568,32,2.888,72,6.49,118,2.088,119,4.964,148,6.623,159,6.623,309,4.964,817,7.131]],["t/132",[0,0.19,1,0.335,3,0.211,4,0.271,5,0.964,11,0.199,13,0.349,17,0.943,23,0.291,24,0.964,25,0.806,26,0.647,27,1.392,28,0.329,32,0.979,33,0.72,37,0.492,44,0.307,45,0.26,49,0.402,56,0.664,57,0.495,58,1.494,66,0.413,72,0.456,87,1.629,88,0.292,89,1.928,91,0.279,92,0.461,94,0.373,100,0.474,115,0.791,118,1.449,119,0.413,122,1.017,126,0.623,127,0.832,129,1.794,141,0.44,142,0.44,143,0.549,144,0.52,145,1.943,147,0.806,148,0.551,149,0.594,151,0.594,152,0.594,153,0.495,154,1.331,155,0.495,156,0.52,157,0.413,159,0.551,161,1.113,162,1.716,163,0.968,164,1.593,166,2.126,167,0.474,168,2.426,171,1.322,172,0.271,173,0.474,174,1.003,175,1.502,176,0.96,178,2.644,181,0.787,186,0.342,188,0.886,192,0.364,195,1.517,197,1.226,199,0.913,203,0.364,206,0.474,208,2.626,210,0.551,213,1.303,214,3.803,216,3.479,223,0.801,225,0.9,228,0.382,234,1.168,235,1.054,239,0.373,241,0.705,246,0.722,247,0.283,252,0.25,258,0.862,259,0.806,260,0.832,266,0.44,267,0.474,268,3.513,276,1.272,279,0.456,282,0.826,290,0.495,292,0.391,294,0.288,295,0.413,296,2.834,303,0.329,309,0.782,310,1.082,313,0.413,319,0.426,322,1.145,327,1.556,335,0.832,344,0.426,350,1.03,352,0.342,367,0.96,368,1.113,369,0.674,384,1.275,385,4.238,388,0.722,391,2.094,410,1.365,440,0.356,444,0.495,446,0.288,459,2.357,463,0.356,475,0.485,477,0.806,494,0.601,495,0.456,506,0.474,511,1.583,512,0.426,525,0.456,532,0.855,540,0.862,545,0.623,546,0.74,547,0.495,551,1.593,552,1.113,563,0.329,574,0.553,575,0.76,592,0.782,599,0.317,602,0.474,609,0.413,612,0.936,614,2.37,615,0.44,616,0.551,617,0.52,620,0.474,629,0.391,631,0.413,642,0.402,648,0.456,659,0.413,682,0.413,684,0.76,693,0.335,695,0.74,706,2.037,707,0.674,714,0.635,717,1.431,720,0.302,723,0.426,733,0.474,734,1.617,735,0.52,741,2.122,746,0.551,750,0.474,752,0.495,764,0.551,766,0.806,772,0.862,773,0.426,795,1.733,805,0.52,809,0.413,817,1.598,818,0.74,819,5.096,820,0.495,821,0.426,822,0.342,823,0.495,824,0.474,825,0.495,826,0.495,827,1.226,828,0.495,829,1.682,830,1.517,831,0.382,832,0.474,833,2.259,834,1.593,835,1.593,836,1.689,837,0.44,838,0.983,839,0.52,840,1.372,841,0.594,842,0.594,843,1.854,844,0.594,845,0.52,846,0.862,847,0.782,848,0.456,849,4.877,850,1.146,851,0.426,852,0.806,853,2.357,854,1.927,855,0.594,856,0.74,857,0.594,858,1.617,859,0.474,860,1.331,861,0.495,862,0.495,863,0.495,864,0.495,865,0.495,866,0.936,867,0.456,868,0.76,869,0.44,870,1.043,871,3.138,872,0.594,873,0.52,874,1.123,875,0.426,876,0.495,877,0.594,878,0.594,879,0.936,880,1.043,881,0.983,882,0.594,883,0.551,884,0.594,885,0.594,886,0.594,887,0.594,888,0.495,889,0.862,890,0.474,891,0.391,892,1.502,893,0.456,894,0.896,895,0.52,896,0.52,897,0.551,898,0.551,899,0.551,900,0.551,901,0.594,902,1.082,903,0.551,904,0.594,905,0.594,906,0.594,907,2.21,908,0.594,909,0.551,910,0.594,911,0.594,912,0.495,913,0.594,914,0.983,915,1.484,916,0.594,917,0.594,918,0.594,919,0.594,920,1.123,921,2.013,922,1.123,923,0.594,924,1.598,925,0.594,926,0.52,927,1.113,928,0.551,929,0.594,930,0.52,931,0.495,932,0.52,933,1.123,934,1.399,935,0.594,936,1.617,937,1.556,938,0.983,939,0.52,940,0.413,941,0.594,942,0.594,943,0.594,944,1.883,945,0.551,946,0.594,947,0.594,948,0.594,949,0.52,950,0.474,951,1.043,952,0.594,953,1.123,954,0.594,955,0.594,956,0.594,957,0.52,958,2.706,959,2.013,960,0.594,961,0.52,962,0.52,963,0.936,964,0.832,965,0.495,966,0.52,967,0.52,968,0.52,969,0.52,970,2.826,971,0.551,972,1.123,973,1.043,974,0.52,975,1.775,976,1.399,977,1.043,978,0.551,979,0.594,980,0.594,981,0.551,982,0.456,983,0.594,984,0.594,985,0.551,986,0.594,987,1.123,988,0.551,989,0.52,990,0.551,991,0.52,992,0.474,993,0.52,994,0.594,995,1.123,996,0.594,997,0.594,998,0.594,999,0.594,1000,0.594,1001,0.983,1002,0.52,1003,0.594,1004,0.594,1005,0.594,1006,0.983,1007,0.832,1008,0.594,1009,0.474,1010,0.474,1011,0.551,1012,0.52,1013,0.413,1014,0.495,1015,0.551,1016,0.551,1017,0.495,1018,0.551,1019,0.594,1020,0.594,1021,0.594,1022,0.495,1023,0.551,1024,0.551,1025,0.983,1026,0.551,1027,0.551,1028,0.52,1029,1.043,1030,0.551,1031,0.52,1032,1.043,1033,0.551,1034,0.413,1035,0.551,1036,0.551,1037,0.594,1038,1.043,1039,0.402,1040,0.594,1041,0.52,1042,0.594,1043,0.52,1044,0.456,1045,0.594,1046,0.936,1047,0.551,1048,0.495,1049,0.551,1050,0.52,1051,0.456,1052,0.474,1053,0.594,1054,0.594,1055,0.456,1056,0.594,1057,1.123,1058,0.594,1059,0.426,1060,0.52,1061,1.043,1062,1.331,1063,0.551,1064,0.495,1065,0.52,1066,0.551,1067,0.896,1068,0.594,1069,0.658,1070,0.52,1071,0.658,1072,0.658,1073,0.474,1074,0.52,1075,0.658,1076,0.402,1077,0.364]],["t/134",[0,1.092,13,2.758,17,1.278,22,3.475,23,1.678,45,3.785,96,2.554,128,3.518,129,1.924,181,2.309,215,3.365,228,4.155,268,3.6,287,4.107,311,4.375,373,4.107,385,3.085,428,3.365,446,2.274,492,2.816,500,4.357,507,3.365,509,3.6,539,6.003,653,4.499,681,3.908,683,3.365,727,3.6,1039,3.175,1078,5.659,1079,3.742,1080,2.945,1081,5.199,1082,6.474,1083,4.107,1084,3.475,1085,4.357,1086,5.199,1087,5.199,1088,6.464,1089,4.357,1090,3.175,1091,4.691,1092,5.199,1093,6.464,1094,3.908,1095,5.199,1096,5.199,1097,4.357,1098,5.199,1099,3.742]],["t/136",[17,1.294,45,3.806,123,2.829,198,2.907,200,2.829,342,4.314,378,3.499,385,3.124,449,7.458,491,4.626,495,5.022,678,5.73,707,3.929,1080,4.108,1100,7.252,1101,3.929,1102,6.078,1103,5.452]],["t/138",[3,2.384,4,3.725,5,2.091,45,2.94,56,2.788,123,2.9,125,3.652,143,2.305,182,3.303,198,2.98,200,2.9,270,4.314,340,4.971,681,5.59,1080,4.212,1104,7.436,1105,6.232,1106,7.436]],["t/140",[0,1.014,45,3.333,97,3.767,123,2.594,130,3.001,163,2.864,182,2.954,198,2.666,200,2.594,217,3.956,358,4.787,379,4.911,430,4.999,626,4.177,693,3.391,709,4.999,725,5.254,812,4.062,1080,3.767,1107,5.573,1108,6.65,1109,5.254,1110,5.573,1111,6.001,1112,5.573,1113,4.999,1114,6.65,1115,6.001,1116,6.65,1117,6.65]],["t/142",[0,1.292,10,4.798,23,1.569,30,4.64,35,3.233,45,3.672,91,2.844,123,2.614,125,3.291,132,5.616,143,2.077,198,2.686,200,2.614,274,5.039,451,6.097,478,5.616,491,3.484,517,4.093,518,5.037,708,3.71,1080,3.796,1102,5.616,1103,5.037,1118,5.294,1119,4.823,1120,5.294]],["t/144",[0,1.262,5,1.816,17,1.151,45,3.27,91,2.739,92,2.39,125,3.171,132,5.41,187,3.618,188,3.23,195,3.657,247,2.781,274,3.84,296,3.563,299,2.624,369,4.482,479,4.647,495,4.47,517,3.943,631,4.055,638,6.218,647,5.1,678,5.1,871,4.178,1101,3.497,1103,4.853,1112,5.41,1121,4.178,1122,4.316,1123,6.455,1124,4.178]],["t/146",[0,1.154,45,3.877,123,2.95,135,6.339,144,5.976,198,3.032,200,2.95,378,3.649,385,3.258,455,3.932,1080,4.284,1122,5.056,1125,6.339,1126,6.339,1127,6.825]],["t/148",[91,3.478,104,5.149,123,3.197,198,3.285,299,3.331,336,3.887,1128,5.48,1129,6.162]],["t/150",[11,2.485,25,1.626,45,3.241,433,4.101,533,7.397,804,5.006,1130,8.197,1131,8.197]],["t/152",[0,1.298,4,2.306,5,1.899,11,1.12,23,1.31,25,1.339,28,3.767,42,2.852,44,1.723,45,3.365,56,1.385,87,2.098,91,2.374,92,1.368,117,2.002,125,3.698,129,1.368,130,1.667,161,2.321,200,1.441,215,3.621,225,1.481,263,2.919,270,2.143,273,4.205,321,2.659,335,2.47,379,1.96,391,2.257,411,2.321,422,2.47,446,1.616,451,4.027,455,2.908,457,2.699,491,2.908,492,2.002,507,3.621,517,3.417,564,2.391,568,2.257,588,3.097,627,4.688,634,3.097,638,2.777,676,4.42,682,2.321,692,4.205,707,2.002,708,2.046,725,4.42,732,2.919,797,2.659,804,2.257,851,2.391,939,2.919,1039,2.257,1059,2.391,1101,2.002,1113,2.777,1118,2.919,1122,4.513,1125,3.097,1127,3.334,1132,2.919,1133,5.048,1134,3.334,1135,3.169,1136,3.695,1137,2.47,1138,3.334,1139,3.695,1140,2.919,1141,2.257,1142,2.919,1143,3.695,1144,5.594,1145,2.558,1146,3.695,1147,2.321,1148,2.321,1149,3.334,1150,3.334,1151,3.695,1152,3.334,1153,2.919,1154,2.919,1155,2.659,1156,2.919,1157,3.695,1158,2.777,1159,4.42,1160,3.695,1161,2.143,1162,3.334,1163,3.695]],["t/154",[23,1.727,45,3.554,78,3.558,92,2.73,118,1.948,128,3.622,129,2.73,184,3.622,216,3.496,219,4.386,260,4.929,435,6.18,455,3.834,587,5.543,653,4.632,1132,5.826,1164,6.654,1165,4.929,1166,6.18]],["t/156",[15,4.612,17,1.705,91,3.028,192,3.951,200,2.783,511,2.453,532,3.443,578,3.383,818,4.244,1124,4.618,1156,5.637,1167,7.135,1168,7.135,1169,7.135,1170,6.618,1171,7.135,1172,4.94,1173,7.135]],["t/158",[0,1.388,5,2.316,17,1.143,25,1.271,28,3.206,45,3.255,87,2.403,91,3.494,96,3.148,122,2.434,234,3.332,270,3.718,289,4.437,329,3.472,331,4.776,350,2.939,378,3.092,433,3.206,455,3.332,492,3.472,1110,5.371,1124,4.148,1132,5.063,1141,3.914,1172,4.437,1174,3.63,1175,5.783,1176,6.408,1177,6.408,1178,5.371,1179,5.371,1180,6.408]],["t/160",[5,2.203,24,2.203,25,1.554,45,3.097,118,2.07,125,3.847,246,4.544,270,4.544,289,5.423,433,3.918,518,5.888,1179,6.564,1181,7.832]],["t/162",[0,1.244,5,1.776,17,1.127,21,4.374,45,3.775,92,3.02,126,3.16,186,3.284,205,3.284,229,3.757,303,3.16,331,4.732,360,3.422,463,3.422,495,4.374,505,2.604,574,2.806,585,4.089,619,2.721,625,4.748,665,4.374,679,4.223,684,4.982,812,3.858,1041,4.99,1101,3.422,1124,5.28,1145,4.374,1166,5.294,1182,4.99,1183,4.547,1184,6.317]],["t/164",[0,1.174,4,3.172,17,1.373,45,3.042,91,3.266,118,2.034,289,5.329,433,3.85,892,5.145,1124,4.981,1178,6.45,1179,6.45,1185,7.696,1186,7.696,1187,7.696]],["t/166",[0,0.864,23,2.006,25,1.7,45,3.773,78,2.734,87,2.125,90,2.405,123,2.21,129,2.098,130,2.557,172,2.336,188,2.835,193,5.114,198,2.271,200,2.21,223,2.02,274,3.371,335,3.788,378,2.734,385,2.441,455,2.946,491,2.946,492,3.07,495,3.924,589,5.114,615,3.788,638,5.709,665,3.924,693,2.889,856,3.371,871,3.668,1039,3.461,1080,3.21,1122,5.077,1134,5.114,1135,3.21,1150,5.114,1188,5.667,1189,5.667,1190,5.667,1191,5.667,1192,5.114,1193,4.26,1194,5.667,1195,5.667,1196,5.667]],["t/168",[5,1.388,15,3.334,23,1.156,25,1.371,28,2.47,32,1.804,42,2.517,45,1.952,87,1.851,115,1.739,121,2.425,123,1.925,161,3.101,172,2.035,198,1.979,200,1.925,215,3.195,217,2.936,235,2.936,270,5.274,294,3.022,299,2.006,331,4.009,377,3.9,378,3.847,422,3.3,446,2.159,455,2.567,475,1.925,480,3.9,491,3.593,492,2.674,638,3.711,692,5.194,830,2.796,856,2.936,1090,3.015,1107,5.791,1118,3.9,1122,5.33,1161,2.864,1162,4.455,1197,6.91,1198,6.91,1199,4.937,1200,4.937,1201,4.937,1202,4.455,1203,4.937,1204,4.455,1205,3.711,1206,3.9,1207,4.937,1208,4.137,1209,4.937,1210,4.137,1211,4.937,1212,4.937,1213,4.937,1214,2.864,1215,4.455,1216,4.937]],["t/170",[11,1.306,17,0.769,23,1.009,25,1.244,42,2.197,45,1.704,56,2.351,91,1.829,93,2.24,118,1.657,121,2.117,123,1.681,165,3.472,172,2.585,187,2.742,198,1.727,199,1.751,200,1.681,214,1.829,216,2.043,223,1.536,235,2.563,257,3.611,270,2.5,296,3.184,303,2.156,329,2.334,331,2.5,369,4.005,455,3.26,475,2.446,504,3.102,530,2.386,546,2.563,574,2.785,676,3.404,692,7.596,740,2.707,772,2.984,809,3.939,830,2.441,847,2.707,902,4.959,1007,4.942,1122,4.942,1147,5.656,1149,5.659,1202,3.888,1205,3.239,1217,4.309,1218,4.309,1219,4.309,1220,5.659,1221,3.404,1222,3.611,1223,4.309,1224,2.984,1225,4.309,1226,4.309,1227,4.309,1228,4.309,1229,4.309,1230,4.309,1231,4.309,1232,4.309,1233,3.611]],["t/172",[91,3.478,123,3.197,198,3.285,574,3.641,692,6.162,1007,5.48,1128,5.48,1129,6.162]],["t/174",[0,0.302,2,0.992,5,0.951,17,0.603,23,0.464,25,1.354,45,1.749,58,2.988,72,1.373,75,6.027,88,2.322,123,0.773,128,1.661,143,0.614,162,0.992,171,0.854,184,2.173,192,1.873,198,1.773,203,1.098,205,1.031,216,3.687,223,0.707,228,1.15,230,3.052,234,2.718,235,4.765,238,4.137,239,3.866,241,1.123,247,0.854,258,1.373,282,0.924,285,1.179,299,0.806,309,1.245,331,2.566,350,0.909,351,1.661,377,3.495,435,1.661,457,0.957,494,2.134,527,3.052,614,1.85,620,1.427,629,1.179,633,2.213,649,2.435,727,2.342,809,1.245,829,1.245,830,3.866,902,1.211,926,1.566,1031,3.495,1063,1.661,1064,1.49,1070,1.566,1083,1.566,1090,2.066,1093,1.789,1122,2.261,1132,1.566,1206,1.566,1234,1.789,1235,3.708,1236,1.982,1237,1.982,1238,3.383,1239,3.383,1240,3.383,1241,7.191,1242,1.982,1243,1.789,1244,1.982,1245,7.191,1246,4.637,1247,7.191,1248,1.982,1249,1.982,1250,1.982,1251,1.982,1252,1.661,1253,1.982,1254,1.982,1255,1.982,1256,1.982,1257,1.982,1258,1.982,1259,1.982,1260,1.982,1261,1.982,1262,1.982,1263,4.424,1264,1.982,1265,1.982,1266,1.982,1267,1.982,1268,1.982,1269,1.982,1270,1.982,1271,1.982,1272,4.131,1273,3.052,1274,3.383,1275,3.052,1276,3.383,1277,1.962,1278,3.992,1279,1.982,1280,1.566,1281,3.184,1282,1.661,1283,1.789,1284,1.982,1285,1.982,1286,1.566,1287,1.49,1288,3.708,1289,1.789]],["t/176",[0,0.917,4,2.479,5,2.222,11,1.824,23,2.067,25,1.859,45,2.378,87,2.963,118,1.589,146,3.778,205,3.127,247,2.591,350,3.623,455,3.127,467,3.893,532,2.902,599,2.902,605,5.428,706,5.077,773,5.114,804,3.674,930,4.752,1122,5.282,1124,3.893,1147,3.778,1165,4.021,1290,4.521,1291,6.015,1292,6.015,1293,6.015,1294,5.114,1295,6.015,1296,4.752]],["t/178",[91,3.478,104,5.149,123,3.197,198,3.285,299,3.331,336,3.887,1128,5.48,1129,6.162]],["t/180",[91,3.478,104,5.149,123,3.197,198,3.285,299,3.331,336,3.887,1128,5.48,1129,6.162]],["t/182",[91,3.478,104,5.149,123,3.197,198,3.285,299,3.331,336,3.887,1128,5.48,1129,6.162]],["t/184",[13,1.823,14,4.436,17,1.151,23,1.834,25,1.281,30,2.379,31,1.993,40,2.158,48,3.061,52,2.509,56,1.288,62,3.425,71,2.098,90,2.246,105,2.714,125,1.687,128,1.687,130,1.55,186,1.786,198,2.121,216,1.629,227,4.181,257,2.879,259,2.224,298,2.098,305,2.379,311,2.098,313,2.158,316,2.867,322,4.217,341,3.356,360,1.861,378,1.658,396,2.379,422,2.297,446,1.502,462,2.098,463,1.861,483,3.538,486,4.469,491,3.356,494,1.658,497,4.693,505,2.181,507,2.224,511,1.819,514,2.582,518,2.582,574,2.35,578,1.629,599,1.658,622,3.1,651,2.043,670,2.714,685,2.879,693,1.752,707,2.867,712,3.978,717,1.602,749,2.879,774,2.879,852,3.425,1076,5.263,1088,3.1,1113,3.978,1153,2.714,1208,2.879,1297,5.196,1298,3.1,1299,3.435,1300,3.435,1301,3.435,1302,3.435,1303,3.1,1304,3.435,1305,3.435,1306,2.879,1307,3.1,1308,3.1,1309,2.582,1310,2.582,1311,5.409,1312,3.435,1313,3.435,1314,3.1,1315,7.066,1316,2.879,1317,3.435,1318,3.435,1319,3.435,1320,3.435,1321,3.435,1322,2.473,1323,5.099,1324,2.879,1325,3.435]],["t/186",[16,4.174,23,0.995,25,0.843,48,2.014,52,2.014,58,2.746,114,2.839,125,2.086,129,2.297,130,1.916,164,2.526,172,1.751,185,2.526,187,1.857,200,1.656,299,2.522,310,3.79,314,3.192,316,2.301,336,2.014,431,3.192,441,3.559,463,2.301,475,2.42,483,2.839,497,4.016,530,2.351,673,3.355,712,3.192,812,2.594,1101,2.301,1107,5.2,1135,2.406,1214,2.464,1297,2.668,1323,5.792,1324,7.753,1326,6.144,1327,7.74,1328,4.247,1329,3.057,1330,4.247,1331,4.247,1332,4.247,1333,4.247,1334,7.331,1335,4.247,1336,4.247,1337,4.902,1338,4.902,1339,4.247,1340,3.559,1341,3.832,1342,6.205,1343,3.355,1344,2.839,1345,4.247,1346,6.205,1347,4.247,1348,3.559,1349,4.247,1350,4.247,1351,3.832,1352,3.832,1353,3.192]],["t/188",[10,2.877,17,1.257,23,1.189,36,2.312,42,2.589,62,5.659,125,2.495,145,2.877,177,2.752,178,2.541,200,1.981,204,2.812,223,1.811,282,2.368,285,3.021,299,3.554,320,3.517,321,3.656,354,3.021,411,3.19,463,2.752,486,3.517,517,3.102,520,3.395,574,3.883,624,7.698,681,3.818,797,3.656,850,3.287,1076,5.954,1287,3.818,1310,3.818,1354,5.079,1355,3.656,1356,5.079,1357,2.946,1358,4.257,1359,6.36,1360,5.079,1361,8.095,1362,3.656,1363,5.079,1364,5.079,1365,4.583,1366,5.079,1367,5.907,1368,4.257,1369,5.079,1370,4.583]],["t/190",[14,2.093,17,0.659,23,1.31,25,1.11,31,4.693,32,2.045,36,2.986,58,1.84,60,3.097,62,4.874,71,4.123,88,1.641,93,1.921,96,1.815,97,2.093,116,3.169,125,1.815,128,1.815,129,2.071,186,2.908,205,1.921,223,1.317,227,2.919,282,2.608,311,4.123,322,1.884,337,2.659,341,1.921,358,2.659,385,1.591,396,3.874,417,5.66,446,1.616,467,5.236,492,2.002,497,4.874,511,1.27,548,2.919,555,2.47,568,2.257,574,2.485,578,1.752,665,2.558,693,1.884,695,4.016,712,2.777,809,2.321,891,2.198,1076,3.417,1084,2.47,1101,2.002,1109,2.919,1128,3.74,1306,5.658,1310,2.777,1322,2.659,1324,7.133,1326,4.688,1327,6.092,1352,3.334,1353,2.777,1355,2.659,1357,2.143,1371,3.695,1372,3.695,1373,5.594,1374,2.919,1375,3.695,1376,3.695,1377,3.334,1378,3.695,1379,3.334,1380,2.558,1381,7.53,1382,4.675,1383,3.334,1384,3.695,1385,3.695,1386,3.695,1387,2.558]],["t/192",[0,1.274,128,4.102,263,6.599,322,4.258,679,5.584,1080,4.731]],["t/194",[17,1.482,23,1.523,24,1.829,42,3.316,78,3.138,90,3.527,115,3.226,122,2.47,138,5.868,191,3.972,262,4.347,322,4.67,357,4.503,440,3.523,447,4.503,490,6.248,491,4.321,500,5.45,578,3.084,584,5.868,619,2.801,1135,3.684,1147,4.085,1161,3.773,1388,5.868,1389,6.503,1390,6.503,1391,4.888]],["t/196",[0,1.211,11,2.406,17,1.08,24,1.703,25,1.575,35,3.83,56,2.271,93,3.149,225,2.427,299,3.226,322,4.79,357,5.496,358,4.359,390,4.552,440,3.281,490,4.552,491,4.126,505,2.496,950,6.373,964,4.049,1147,3.804,1148,3.804,1161,4.604,1357,3.513,1392,5.465,1393,7.937,1394,5.465,1395,6.056,1396,6.056,1397,6.056,1398,5.076,1399,5.076]],["t/199",[0,1.452,11,1.902,15,3.026,16,2.83,17,1.119,23,2.31,59,3.081,97,3.553,104,3.939,131,3.83,176,4.399,216,2.974,285,3.731,299,2.549,303,3.138,379,3.327,486,5.622,492,3.398,576,4.193,585,4.059,693,3.198,720,3.724,812,3.83,1101,3.398,1128,4.193,1135,3.553,1400,3.83,1401,5.659,1402,6.415,1403,4.514]],["t/201",[0,1.022,11,2.031,16,3.513,17,1.195,19,3.023,21,3.272,23,1.107,25,0.937,31,4.516,32,2.449,36,1.55,58,1.288,88,2.099,89,2.968,90,3.304,93,2.456,94,2.676,97,2.676,116,2.676,122,1.795,176,2.56,181,2.099,185,3.985,217,2.81,225,2.685,316,4.217,336,3.177,345,3.058,354,2.81,378,2.28,417,3.552,446,2.066,486,5.39,578,2.24,651,2.81,695,4.63,714,2.409,720,3.57,766,3.058,1099,3.401,1109,3.733,1214,2.741,1290,5.036,1359,4.264,1382,3.272,1404,6.15,1405,3.96,1406,3.401,1407,3.733,1408,4.725,1409,4.725,1410,4.725,1411,3.554,1412,5.036,1413,4.725,1414,3.401,1415,4.725,1416,4.725,1417,4.264,1418,4.725]],["t/203",[19,1.503,23,1.21,24,1.633,25,0.661,31,2.532,32,1.218,36,1.432,52,0.923,58,1.725,71,1.189,79,1.261,89,1.223,97,1.103,121,0.957,128,0.957,133,1.402,137,1.223,146,5.681,163,0.839,176,1.805,181,1.48,185,2.597,186,1.012,203,1.078,228,2.532,229,1.158,262,1.302,277,1.012,282,0.908,299,1.354,311,1.189,336,0.923,378,1.607,379,1.033,457,0.94,481,1.402,507,1.261,511,0.669,532,0.94,568,1.189,585,1.261,599,0.94,625,1.464,642,1.189,665,1.348,695,2.597,717,0.908,720,1.528,818,1.982,891,1.158,1010,1.402,1039,1.189,1073,1.402,1084,1.302,1094,1.464,1099,1.402,1103,6.621,1109,1.539,1141,2.035,1147,1.223,1159,1.539,1214,1.13,1382,2.307,1404,3.449,1405,1.632,1411,1.033,1414,7.24,1417,1.757,1419,1.464,1420,1.539,1421,1.757,1422,1.632,1423,1.947,1424,1.757,1425,1.947,1426,1.947,1427,3.939,1428,1.757,1429,1.539,1430,3.006,1431,1.464,1432,1.757,1433,1.302,1434,1.947,1435,8.932,1436,10.13,1437,1.947,1438,9.044,1439,8.673,1440,1.757,1441,1.947,1442,1.947,1443,1.947,1444,2.093,1445,1.947,1446,1.947,1447,1.947,1448,1.947,1449,1.947,1450,1.947,1451,3.331,1452,1.947,1453,1.947,1454,8.673,1455,8.808,1456,1.947,1457,1.947,1458,1.947,1459,1.947,1460,1.947,1461,1.947,1462,1.947,1463,1.947,1464,1.947,1465,1.947,1466,1.947,1467,1.947,1468,1.947,1469,1.947,1470,1.947,1471,1.947,1472,1.947,1473,1.947,1474,1.947,1475,1.947,1476,1.947,1477,1.947,1478,1.947,1479,1.947,1480,1.947,1481,1.947,1482,1.947,1483,1.947,1484,1.947,1485,1.947,1486,1.947,1487,1.947]],["t/205",[17,0.93,19,1.521,23,1.681,24,0.948,30,2.333,31,1.955,33,2.119,36,2.091,45,1.332,58,0.918,87,1.263,96,1.655,97,2.953,105,2.662,106,2.426,121,1.655,123,1.314,128,2.561,133,2.426,164,2.004,170,4.74,172,1.389,181,1.497,186,1.752,191,3.184,194,2.426,205,1.752,216,3.024,219,2.004,223,1.201,225,1.351,228,3.699,247,1.451,251,2.181,252,1.28,260,2.253,281,2.117,292,2.004,299,2.119,336,1.598,468,2.058,475,1.314,509,2.333,511,2.668,512,2.181,517,2.058,520,2.253,525,2.333,548,5.67,563,2.608,599,1.626,609,4.005,648,3.61,695,2.004,698,2.058,766,2.181,775,3.024,936,2.426,1089,4.369,1103,3.919,1140,2.662,1290,4.793,1303,3.041,1322,2.426,1338,2.662,1344,2.253,1402,2.662,1404,5.67,1411,3.383,1421,3.041,1424,5.754,1427,4.705,1488,6.376,1489,6.376,1490,2.662,1491,3.37,1492,3.37,1493,3.041,1494,5.214,1495,3.041,1496,5.214,1497,3.37,1498,3.041,1499,3.37,1500,3.37,1501,5.214,1502,5.214,1503,3.37,1504,3.37,1505,3.37,1506,3.37,1507,2.824,1508,4.705,1509,5.214,1510,3.041,1511,5.214,1512,5.214,1513,3.041,1514,3.37,1515,3.37,1516,3.37,1517,2.253,1518,3.37,1519,2.824,1520,3.37,1521,3.37,1522,3.041]],["t/207",[34,5.777,56,2.742,225,2.931,250,5.777,299,2.972,316,3.962,379,3.879,475,3.489,565,5.777,576,4.889,609,4.593,851,4.733,1089,6.128,1297,4.593,1402,5.777,1523,6.128,1524,5.777,1525,7.313,1526,7.313,1527,7.313]],["t/209",[8,4.482,16,3.975,48,3.383,92,2.641,103,4.244,115,2.513,277,3.709,331,4.139,433,3.569,513,5.136,625,5.363,777,5.136,879,5.363,1414,5.136,1524,5.637,1528,7.135,1529,6.622,1530,5.98,1531,7.135,1532,4.358,1533,6.438,1534,7.135]],["t/211",[119,5.009,252,3.029,433,3.989,559,6.3,567,5.74,1522,7.196,1535,6.683,1536,7.974,1537,6.683,1538,7.974,1539,5.994]],["t/213",[11,1.787,17,1.051,25,1.169,31,4.523,36,1.933,52,2.795,58,2.381,96,2.895,123,2.299,187,2.578,251,5.046,278,4.657,369,3.193,413,6.16,526,5.861,568,3.6,678,4.657,693,3.005,695,4.638,1113,4.431,1148,3.702,1275,5.319,1382,4.081,1414,4.243,1490,4.657,1540,5.894,1541,5.894,1542,5.894,1543,5.894,1544,4.94,1545,7.797,1546,7.797,1547,5.894,1548,5.894,1549,7.797,1550,5.894,1551,5.894,1552,5.319,1553,5.894,1554,5.894]],["t/218",[204,3.951,223,2.544,420,5.363,475,2.783,526,5.363,1039,4.358,1215,6.438,1297,4.482,1402,6.96,1403,5.136,1507,5.98,1524,5.637,1555,7.135,1556,7.135,1557,7.135,1558,7.135,1559,7.135,1560,7.135,1561,7.135,1562,7.135,1563,6.438,1564,7.135,1565,7.135]],["t/220",[1524,6.927]],["t/222",[278,6.416,1566,8.121,1567,8.121,1568,8.121,1569,8.121,1570,8.121,1571,8.121,1572,8.121,1573,8.121]],["t/224",[1574,8.432,1575,8.432,1576,8.432,1577,8.432,1578,8.432]],["t/226",[42,4.141,44,3.786,46,6.416,101,4.4,354,4.831,591,6.105,708,4.497,1287,6.105,1579,7.328]],["t/228",[0,1.079,48,4.157,140,4.516,178,4.385,187,3.095,192,3.919,341,3.68,391,6.079,422,4.732,442,8.594,456,4.732,530,3.919,1287,5.32,1580,5.932,1581,5.094,1582,7.078]],["t/231",[0,1.222,14,3.478,15,2.963,19,2.771,24,1.727,25,1.589,56,2.302,71,3.75,79,5.769,92,2.273,129,2.965,172,2.531,192,3.4,219,3.653,455,3.192,456,4.105,488,4.252,653,3.857,868,3.75,1010,5.765,1135,3.478,1170,4.252,1192,5.541,1214,3.562,1221,4.851,1329,4.42,1388,5.541,1394,7.227,1419,6.021,1420,4.851,1517,4.105,1583,5.546,1584,6.141,1585,4.851,1586,4.616]],["t/233",[0,1.311,32,2.085,36,1.871,40,3.583,48,3.617,58,1.554,93,2.965,137,3.583,160,3.949,176,3.09,221,3.949,229,3.392,342,3.392,436,4.506,447,6.623,455,3.966,494,3.68,512,3.692,520,3.813,540,3.949,555,3.813,563,2.853,599,3.68,600,4.287,651,3.392,653,4.791,667,3.949,1348,4.78,1490,6.79,1581,4.105,1587,5.703,1588,5.703,1589,5.703,1590,5.703,1591,5.703,1592,5.703,1593,5.703,1594,5.703,1595,5.703,1596,5.703,1597,5.703,1598,5.703]],["t/235",[17,1.058,25,1.177,43,2.587,44,1.863,56,1.498,71,4.322,78,1.928,96,1.963,106,4.271,116,2.264,123,1.559,126,3.918,170,2.441,172,1.647,177,2.165,205,2.078,214,1.696,216,1.895,223,2.115,275,4.687,292,2.377,299,1.624,304,2.51,311,5.109,316,2.165,354,2.377,360,2.165,385,2.556,391,2.441,394,3.606,396,6.283,417,3.004,420,5.886,446,1.748,491,2.078,505,1.647,509,2.767,574,2.635,579,2.877,626,2.51,629,2.377,672,3.349,720,3.245,812,2.441,868,3.624,1074,3.157,1076,6.005,1080,2.264,1119,2.877,1161,2.318,1314,3.606,1355,4.271,1380,4.108,1382,2.767,1387,2.767,1431,3.004,1539,4.46,1579,3.606,1583,6.808,1599,3.349,1600,2.767,1601,3.004,1602,3.996,1603,3.157,1604,4.687,1605,3.996,1606,5.354,1607,3.996]],["t/237",[17,0.792,25,1.861,30,3.074,32,1.623,43,4.147,52,2.105,71,2.711,96,2.18,123,1.731,128,2.18,129,1.643,137,2.788,171,2.76,184,2.18,187,1.941,192,3.548,223,1.583,229,2.641,275,3.507,278,5.062,292,2.641,299,1.804,305,3.074,311,3.914,316,2.405,388,2.575,446,1.941,475,1.731,477,2.873,483,2.968,507,2.873,517,3.914,524,3.195,574,2.846,613,3.195,659,2.788,819,3.811,891,2.641,927,4.025,1009,3.195,1076,4.592,1078,3.507,1097,3.72,1119,4.612,1135,2.515,1145,3.074,1159,3.507,1161,3.717,1214,2.575,1287,3.337,1297,2.788,1355,3.195,1382,5.206,1401,6.785,1405,3.72,1517,2.968,1539,3.337,1583,6.045,1608,3.72,1609,3.507,1610,4.006,1611,4.439,1612,7.519,1613,4.439,1614,4.439,1615,3.72,1616,5.062,1617,4.439,1618,4.439]],["t/239",[0,0.873,1,1.941,11,1.154,17,1.02,27,1.979,36,1.249,37,2.718,44,1.775,88,2.541,96,2.81,116,3.241,125,1.87,126,1.904,136,3.007,165,3.168,170,2.325,188,1.904,189,3.19,192,4.232,215,2.464,216,1.805,222,2.391,223,2.04,246,3.988,251,2.464,259,3.703,261,2.545,294,1.665,296,1.64,298,2.325,300,2.636,314,2.861,322,1.941,369,2.062,378,2.76,410,2.917,411,2.391,447,2.636,468,2.325,505,1.569,511,1.309,529,3.241,532,2.76,574,2.541,606,4.52,626,2.391,633,1.904,717,1.775,867,2.636,1076,5.611,1090,2.325,1137,2.545,1153,3.007,1161,2.208,1210,3.19,1214,2.208,1290,2.861,1294,2.464,1297,2.391,1316,3.19,1382,2.636,1398,3.19,1399,3.19,1444,2.391,1517,2.545,1583,6.183,1603,3.007,1619,3.435,1620,3.435,1621,3.806,1622,2.861,1623,3.435,1624,3.806,1625,3.806,1626,5.721,1627,3.806,1628,3.806,1629,5.721,1630,6.874,1631,5.721,1632,3.806,1633,3.806,1634,3.806,1635,3.806,1636,3.19,1637,3.435,1638,3.435,1639,2.636,1640,3.435,1641,5.721,1642,3.435,1643,3.806]],["t/241",[0,0.843,1,4.312,17,0.985,23,1.294,25,1.481,33,3.035,44,2.576,56,2.071,71,3.374,97,3.129,121,2.714,130,2.493,247,2.38,284,8.174,342,3.286,385,2.38,455,2.872,462,3.374,497,4.833,566,4.365,567,3.977,576,3.693,834,4.441,949,4.365,1076,3.374,1101,2.993,1183,3.977,1278,4.985,1308,4.985,1398,4.63,1399,6.257,1403,3.977,1539,4.153,1623,4.985,1644,4.63,1645,5.525,1646,5.525,1647,7.466,1648,5.525,1649,5.525,1650,5.525,1651,5.525,1652,5.525,1653,5.525,1654,4.985,1655,3.977,1656,5.525,1657,5.525,1658,4.985]],["t/243",[0,0.456,2,1.497,11,0.907,43,1.937,71,4.107,88,2.987,90,1.27,123,1.167,125,1.47,131,1.828,137,4.224,170,1.828,205,2.469,216,2.252,217,1.78,221,4.09,222,1.88,223,2.106,247,1.289,277,1.556,294,1.309,298,1.828,311,5.843,316,1.621,325,2.508,328,3.981,337,2.154,354,1.78,378,1.444,430,2.249,446,1.309,475,2.623,481,2.154,488,2.072,491,2.469,507,3.074,512,1.937,515,4.95,516,2.249,563,1.497,564,1.937,568,3.607,574,1.329,576,2,578,2.252,579,2.154,626,1.88,649,2.154,652,2.508,667,2.072,682,1.88,683,4.748,709,2.249,720,1.372,766,1.937,812,2.901,851,3.823,891,2.825,909,6.543,939,4.666,1082,2.364,1084,2,1090,1.828,1094,2.249,1101,3.2,1113,3.571,1133,2.7,1135,1.695,1137,2,1158,2.249,1161,2.755,1277,3.901,1297,1.88,1348,2.508,1377,2.7,1380,2.072,1400,1.828,1429,2.364,1430,2.7,1517,5.847,1519,3.981,1601,6.382,1603,3.753,1610,4.286,1616,4.666,1659,4.75,1660,4.75,1661,2.992,1662,2.992,1663,2.992,1664,2.364,1665,2.992,1666,2.992,1667,2.992,1668,2.992,1669,2.072,1670,2.992,1671,2.992,1672,2.992,1673,2.992,1674,2.992,1675,2.7,1676,4.95,1677,2.992,1678,2.992,1679,2.992,1680,2.992,1681,2.249,1682,2.992,1683,2.992]],["t/245",[0,0.491,13,1.709,14,1.825,16,1.454,17,1.25,20,2.422,31,1.869,33,1.31,36,1.057,52,1.528,56,1.208,59,1.583,71,4.642,78,1.555,91,2.137,92,1.193,93,1.675,97,1.825,106,2.319,126,3.1,184,2.473,187,2.202,191,1.968,204,2.788,205,1.675,215,2.085,216,1.528,225,1.291,251,4.011,300,2.231,311,1.968,316,4.118,322,2.567,345,2.085,354,1.916,369,1.746,378,2.99,396,3.486,422,2.154,475,1.964,482,2.422,486,3.486,491,1.675,492,1.746,505,1.328,511,1.731,574,2.236,579,3.624,599,1.555,619,1.388,626,2.024,644,2.7,651,2.995,653,2.024,695,1.916,708,1.784,719,2.907,720,1.478,725,2.546,740,2.024,769,2.231,809,2.024,833,2.618,852,2.085,891,1.916,1076,3.785,1084,2.154,1121,2.085,1128,2.154,1135,2.852,1137,2.154,1140,2.546,1206,2.546,1290,2.422,1297,5.061,1311,2.7,1316,5.194,1322,2.319,1323,2.546,1357,1.869,1403,2.319,1495,2.907,1523,2.7,1583,4.291,1601,3.785,1604,5.535,1606,2.907,1615,2.7,1644,2.7,1684,3.222,1685,6.197,1686,2.7,1687,3.222,1688,6.197,1689,6.059,1690,2.907,1691,2.907,1692,2.907,1693,3.978,1694,5.194,1695,2.546,1696,3.222,1697,3.222,1698,3.222,1699,3.222,1700,3.222,1701,2.907,1702,4.543,1703,3.222,1704,3.222,1705,3.222,1706,2.907,1707,2.907,1708,2.907]],["t/247",[0,1.028,2,1.502,10,1.701,11,0.91,13,3.898,14,1.701,16,3.528,17,0.849,23,0.703,24,1.339,25,1.78,32,2.164,36,1.562,58,2.948,59,1.475,88,1.334,90,1.274,115,1.057,121,1.475,126,1.502,164,1.786,182,1.334,187,1.313,223,1.07,224,2.161,225,1.203,277,2.476,281,1.886,294,1.313,304,2.992,322,4.573,336,1.424,341,3.82,386,2.079,396,2.079,433,2.961,472,2.372,511,1.032,532,2.298,543,2.372,578,1.424,599,1.449,642,1.834,659,1.886,706,1.627,707,1.627,750,2.161,777,3.428,1083,5.323,1118,2.372,1141,1.834,1161,1.742,1311,4.961,1337,2.372,1355,2.161,1357,1.742,1374,4.677,1400,2.909,1411,2.527,1412,3.58,1431,2.257,1529,5.065,1532,2.909,1585,3.763,1689,3.428,1709,3.002,1710,2.516,1711,2.516,1712,1.786,1713,3.002,1714,3.002,1715,3.002,1716,2.992,1717,3.002,1718,3.002,1719,2.516,1720,3.002,1721,3.002,1722,3.002,1723,4.298,1724,3.002,1725,3.002,1726,3.002,1727,3.002,1728,3.002,1729,3.002,1730,3.002,1731,3.002]],["t/249",[0,0.974,11,1.339,24,2.109,25,1.267,32,1.614,36,2.094,58,2.983,79,2.859,93,2.296,146,2.774,177,2.393,178,2.21,203,2.446,228,2.562,238,2.859,252,2.425,299,2.595,313,2.774,451,3.179,475,1.723,524,4.595,532,2.131,609,2.774,630,3.32,891,2.627,1010,3.179,1014,3.32,1076,2.698,1141,2.698,1214,2.562,1309,3.32,1367,6.284,1374,3.49,1403,3.179,1419,3.32,1420,3.49,1422,3.702,1532,2.698,1583,3.058,1689,3.179,1710,3.702,1711,3.702,1732,3.986,1733,4.417,1734,3.986,1735,3.702,1736,3.986,1737,3.32,1738,3.986,1739,3.986,1740,3.986,1741,3.986,1742,6.766,1743,3.702,1744,3.986,1745,3.32,1746,3.49,1747,3.986]],["t/251",[0,0.69,2,1.022,10,1.157,11,0.619,16,1.565,17,0.807,21,1.414,23,1.521,24,1.272,25,0.688,26,1.062,32,1.268,36,1.138,52,0.968,58,2.839,59,1.003,79,1.322,90,1.472,92,1.284,96,1.003,115,0.719,121,1.003,125,1.704,126,1.022,145,2.562,146,2.841,172,1.43,185,1.215,187,0.893,200,1.353,203,2.504,204,2.504,213,1.185,221,1.414,222,2.179,223,0.728,228,2.012,238,2.245,239,1.157,250,1.613,252,1.318,277,1.062,285,1.215,298,1.247,299,3.088,319,1.322,336,0.968,369,1.106,390,1.535,475,2.08,491,1.062,505,0.842,511,0.702,524,1.47,532,0.985,563,1.022,576,1.365,578,0.968,579,2.497,585,1.322,606,1.613,609,2.179,626,2.179,630,1.535,647,1.613,679,1.365,693,1.041,712,1.535,713,1.843,714,2.306,716,1.613,762,1.613,769,1.414,809,2.841,891,3.863,1010,1.47,1014,2.608,1064,1.535,1073,1.47,1076,3.966,1077,1.131,1082,1.613,1101,1.106,1137,1.365,1141,1.247,1148,1.283,1154,1.613,1205,1.535,1210,1.712,1220,1.843,1246,2.741,1277,1.185,1343,1.613,1344,1.365,1351,3.13,1367,2.907,1370,5.39,1374,1.613,1380,2.402,1403,1.47,1404,1.613,1411,2.399,1412,2.608,1414,1.47,1419,1.535,1420,1.613,1422,1.712,1493,1.843,1517,1.365,1532,1.247,1539,1.535,1583,3.692,1601,1.535,1604,2.741,1681,1.535,1686,1.712,1689,5.977,1693,1.613,1706,1.843,1710,1.712,1711,1.712,1712,1.215,1732,1.843,1734,1.843,1735,1.712,1736,1.843,1737,2.608,1738,1.843,1741,1.843,1742,5.39,1743,1.712,1744,4.081,1745,3.399,1746,2.741,1747,1.843,1748,3.469,1749,2.042,1750,2.042,1751,2.042,1752,2.042,1753,2.042,1754,2.042,1755,3.469,1756,1.843,1757,1.535,1758,1.712,1759,2.042,1760,2.042,1761,1.535,1762,5.332,1763,7.288,1764,2.042,1765,1.843,1766,1.843,1767,2.042,1768,2.042,1769,2.042,1770,3.469,1771,3.469,1772,2.042,1773,3.469,1774,2.042,1775,2.042,1776,3.469,1777,2.042,1778,3.469,1779,3.469,1780,2.042,1781,2.042,1782,2.042,1783,2.042,1784,1.613,1785,2.042,1786,1.322]],["t/253",[16,4.119,58,2.673,336,3.587,1411,4.843,1412,7.655,1689,5.444,1694,7.651,1712,4.499,1787,7.564]],["t/255",[2,2.074,10,1.432,13,2.796,14,2.349,16,3.263,17,0.451,32,0.924,58,2.947,78,1.22,90,2.237,92,0.936,104,1.588,125,2.589,172,1.042,187,2.305,214,1.073,216,1.199,223,1.478,277,3.499,281,2.605,299,1.028,300,1.751,304,1.588,305,2.871,314,1.901,316,2.246,341,1.315,436,1.998,441,6.681,475,0.986,507,1.637,509,1.751,530,1.4,585,1.637,600,3.117,619,2.626,626,1.588,633,1.265,777,2.985,818,1.504,1034,1.588,1073,3.794,1083,4.164,1090,1.544,1135,1.432,1145,1.751,1155,1.82,1159,1.998,1297,1.588,1298,4.756,1323,1.998,1329,1.82,1338,1.998,1340,2.119,1341,2.282,1344,1.69,1380,1.751,1400,1.544,1411,2.2,1529,4.583,1530,3.475,1532,3.724,1585,1.998,1608,5.64,1689,1.82,1690,7.448,1694,2.119,1788,2.529,1789,4.146,1790,1.998,1791,2.529,1792,1.998,1793,2.529,1794,2.529,1795,5.271,1796,2.282,1797,4.146,1798,5.271,1799,2.529,1800,2.529,1801,2.529,1802,2.529,1803,5.271,1804,2.529,1805,2.529,1806,2.529,1807,2.529,1808,6.097,1809,2.529,1810,2.529,1811,2.529,1812,2.529,1813,2.529,1814,3.475,1815,4.146,1816,4.146,1817,4.146,1818,6.097,1819,6.097,1820,2.529,1821,6.097,1822,2.529,1823,2.529,1824,2.529,1825,5.271,1826,2.529,1827,2.529,1828,2.529]],["t/257",[0,0.812,1,2.715,2,2.664,3,2.86,4,2.195,5,1.497,6,3.016,7,4.207,9,3.446,44,3.395,101,2.885,110,3.167,125,2.615,134,3.832,141,3.559,143,1.65,170,4.447,223,1.898,342,3.167,346,5.473,378,2.569,464,3.559,505,2.195,540,3.687,684,3.252,804,3.252,831,3.089,1013,3.344,1243,4.805,1296,4.207,1829,5.324,1830,5.324,1831,3.832,1832,4.002,1833,4.805,1834,4.207,1835,7.281,1836,5.324,1837,6.57,1838,7.281,1839,5.324,1840,5.324,1841,5.324,1842,4.805,1843,4.805,1844,5.324,1845,5.324,1846,5.324,1847,5.324,1848,5.324,1849,5.324,1850,5.324,1851,5.324,1852,5.324,1853,5.324,1854,5.324,1855,5.324]],["t/259",[3,1.388,10,2.453,88,2.795,92,1.603,116,3.565,118,2.459,123,1.689,125,2.127,128,3.091,130,1.954,143,1.342,162,2.166,235,2.576,321,3.117,352,2.251,360,2.346,379,2.297,425,3.421,481,3.117,483,2.895,493,3.421,516,3.255,574,1.923,575,3.844,592,2.72,613,3.117,614,3.772,747,3.421,809,2.72,827,4.358,830,2.453,876,4.731,889,2.998,893,2.998,1013,5.43,1059,2.803,1094,3.255,1105,3.629,1277,3.651,1281,3.117,1288,5.274,1517,2.895,1636,3.629,1675,3.907,1692,3.907,1856,5.267,1857,6.69,1858,3.629,1859,3.117,1860,3.907,1861,4.33,1862,4.33,1863,3.907,1864,5.274,1865,4.33,1866,4.33,1867,3.255,1868,4.33,1869,3.255,1870,4.53,1871,4.33,1872,4.33,1873,3.421,1874,4.33,1875,3.255,1876,4.33,1877,4.33,1878,4.33,1879,4.33,1880,2.998,1881,4.33,1882,3.907,1883,4.33,1884,4.33]],["t/261",[0,0.985,1,3.291,2,3.23,4,3.41,5,2.326,6,3.657,11,1.957,24,1.816,25,1.281,44,3.01,109,4.647,128,4.063,184,3.171,217,3.84,282,3.01,288,5.41,633,3.23,740,4.055,749,5.41,1115,5.825,1156,5.1,1277,3.745,1792,5.1,1885,5.825,1886,5.825,1887,6.455,1888,7.465,1889,6.455,1890,6.455,1891,5.825,1892,6.455,1893,6.455,1894,6.455]],["t/263",[0,0.627,3,1.676,4,2.964,5,2.575,7,1.975,8,1.57,10,2.327,11,0.758,25,1.037,44,1.166,48,1.948,56,1.54,88,1.11,92,0.925,101,1.354,109,1.799,115,0.88,117,2.225,118,1.085,122,0.95,123,0.975,128,2.018,134,1.799,143,2.355,162,2.055,163,2.252,176,1.354,178,1.251,182,1.11,186,1.3,238,1.618,241,2.962,243,1.799,247,1.077,251,2.659,252,0.95,270,1.45,274,1.487,298,1.527,299,1.67,303,1.251,319,1.618,331,3.033,347,1.618,350,1.146,354,1.487,378,1.206,381,1.527,386,1.731,425,1.975,446,1.796,456,1.671,464,1.671,475,0.975,477,2.659,479,1.799,481,1.799,505,1.031,506,1.799,520,1.671,525,3.621,529,1.416,554,1.799,578,1.185,672,2.095,676,1.975,684,1.527,710,1.975,715,2.256,716,1.975,717,1.166,739,1.975,740,1.57,769,1.731,809,1.57,830,1.416,847,1.57,1024,2.095,1043,1.975,1067,2.957,1090,2.509,1091,2.256,1101,1.354,1121,1.618,1138,2.256,1156,1.975,1164,2.256,1206,1.975,1277,1.45,1281,4.815,1294,3.384,1387,1.731,1392,2.256,1440,2.256,1530,3.443,1563,2.256,1581,1.799,1637,2.256,1639,4.193,1757,1.879,1761,1.879,1790,3.245,1792,1.975,1832,1.879,1870,1.799,1875,3.088,1880,1.731,1882,3.707,1885,2.256,1886,5.464,1891,2.256,1895,3.443,1896,2.095,1897,2.5,1898,1.975,1899,2.5,1900,2.256,1901,2.5,1902,2.256,1903,4.108,1904,2.5,1905,2.5,1906,2.256,1907,2.5,1908,2.095,1909,2.5,1910,2.5,1911,2.5,1912,2.5,1913,2.5,1914,2.5,1915,4.108,1916,4.108,1917,2.5,1918,1.799,1919,2.5,1920,2.095,1921,2.5,1922,2.095,1923,4.108,1924,2.5,1925,2.5,1926,2.5,1927,2.256,1928,2.5,1929,2.5,1930,4.108,1931,2.5,1932,2.256,1933,2.5,1934,2.095,1935,2.5,1936,2.256,1937,2.5,1938,2.095,1939,2.5,1940,2.5,1941,2.5,1942,2.5,1943,2.5,1944,2.5,1945,5.229,1946,2.5,1947,2.5,1948,2.5,1949,2.5,1950,2.5,1951,2.5,1952,2.5,1953,2.5,1954,1.879,1955,2.256,1956,2.5,1957,2.256,1958,2.256,1959,2.5,1960,2.5,1961,2.5,1962,2.5]],["t/265",[3,3.173,4,2.871,56,2.612,104,4.375,241,3.946,1182,5.503,1691,6.286,1842,6.286,1843,6.286,1963,6.966,1964,6.966,1965,6.966,1966,6.966,1967,6.286,1968,6.966,1969,6.966,1970,6.966,1971,6.966,1972,6.966,1973,6.966,1974,6.966,1975,6.966,1976,6.966,1977,6.966]],["t/268",[3,2.494,5,2.339,10,2.233,17,1.048,25,0.782,92,1.459,118,1.042,122,2.666,123,2.291,143,2.176,162,1.972,165,2.183,178,1.972,184,1.937,187,1.724,198,1.58,204,2.183,225,1.58,274,2.345,331,2.287,344,5.384,346,5.847,347,4.544,348,2.838,350,1.808,351,3.304,388,4.072,455,2.05,462,3.587,464,3.927,468,2.408,483,2.636,516,2.964,517,3.587,525,2.73,529,2.233,614,1.649,679,2.636,707,2.136,708,2.183,710,3.115,837,2.636,876,2.964,881,3.115,1070,3.115,1079,2.838,1119,2.838,1135,2.233,1161,2.287,1174,2.233,1272,3.115,1309,2.964,1391,2.964,1586,2.964,1616,3.115,1695,3.115,1757,2.964,1870,4.228,1906,3.558,1918,2.838,1938,3.304,1978,3.943,1979,3.943,1980,3.558,1981,3.943,1982,3.558,1983,3.558,1984,3.943,1985,3.943,1986,3.943,1987,3.943,1988,3.558,1989,3.943,1990,3.115,1991,3.558,1992,3.943,1993,3.943,1994,3.558,1995,3.558,1996,3.558,1997,3.304,1998,3.304,1999,4.923,2000,3.943,2001,3.943,2002,3.943,2003,3.943,2004,3.943,2005,3.943,2006,3.943,2007,3.943,2008,3.943,2009,3.304,2010,3.943,2011,3.943]],["t/270",[0,1.286,22,5.637,140,3.998,682,5.296,2012,6.662]],["t/272",[4,2.514,5,2.65,10,3.454,11,1.849,17,1.088,23,1.428,24,1.715,25,1.21,56,2.989,92,2.257,102,3.83,123,2.378,137,3.83,198,2.444,223,2.174,247,2.627,296,2.627,340,4.077,344,5.75,352,3.17,388,3.538,509,4.223,567,4.389,611,4.584,619,3.434,682,3.83,693,3.109,1084,4.077,1158,4.584,1214,3.538,1277,3.538,1990,4.818,2013,5.111,2014,6.098,2015,6.098,2016,6.098,2017,6.098,2018,6.098]],["t/274",[0,1.195,11,2.375,16,4.206,28,3.918,30,5.423,31,4.544,32,2.863,33,3.183,113,5.638,131,4.784,512,5.07,578,3.714]],["t/276",[0,1.134,5,2.091,32,2.718,58,2.653,130,3.355,143,2.305,299,3.022,344,4.813,693,3.791,821,4.813,875,4.813,2019,6.71,2020,6.71,2021,6.232,2022,6.232,2023,6.232,2024,7.436]],["t/278",[5,1.274,23,1.061,24,1.274,25,0.899,32,1.656,58,2.862,213,3.772,235,3.868,241,2.566,247,1.951,296,1.951,310,3.971,336,3.083,343,6.863,350,2.078,356,5.449,360,2.454,505,3.135,699,6.965,821,2.932,875,4.923,1400,2.767,1737,3.406,2021,3.797,2022,5.449,2023,3.797,2025,4.531,2026,4.531,2027,4.531,2028,4.531,2029,4.531,2030,4.531,2031,4.531,2032,4.531,2033,4.531,2034,4.531,2035,4.531,2036,4.531,2037,4.531,2038,6.965,2039,4.531,2040,3.579,2041,4.531,2042,4.531,2043,4.531,2044,4.531,2045,4.531,2046,4.531,2047,4.531,2048,4.531,2049,4.531,2050,4.531,2051,6.502,2052,4.531,2053,6.502,2054,4.531,2055,4.531,2056,4.531,2057,4.531,2058,4.531]],["t/280",[6,2.371,11,1.269,13,4.249,17,1.428,19,3.614,20,3.147,22,2.799,32,1.53,48,1.985,52,1.985,58,2.67,78,2.962,93,2.176,130,1.889,140,3.448,173,3.013,177,2.268,183,3.508,223,1.492,277,2.176,285,2.49,309,2.63,316,2.268,341,2.176,385,2.645,388,3.562,440,3.326,444,4.615,455,2.176,471,3.147,477,2.71,488,2.899,497,2.71,506,3.013,508,3.508,529,2.371,566,3.307,567,4.419,599,2.02,619,3.132,645,2.899,696,3.778,707,2.268,763,3.508,812,2.557,875,4.706,949,3.307,1067,4.419,1340,3.508,1344,2.799,1406,4.419,1636,3.508,1655,3.013,2038,5.146,2059,4.186,2060,4.186,2061,4.186,2062,4.186,2063,4.186,2064,4.186,2065,4.186,2066,4.186,2067,4.186,2068,4.186,2069,6.14,2070,4.186,2071,4.186,2072,4.186,2073,4.186,2074,4.186,2075,3.778,2076,4.186,2077,4.186,2078,3.508,2079,3.778,2080,3.508,2081,4.186]],["t/282",[40,5.197,41,5.355,47,6.219,48,3.923,50,5.053,101,4.482,107,6.537]],["t/284",[9,5.51,10,4.823,2082,7.682,2083,7.682]],["t/286",[0,1.184,5,2.183,22,5.19,129,2.874,140,3.681,225,3.112,316,4.206,367,4.206,368,4.877,369,4.206,682,4.877,892,5.19,1174,4.398,2012,6.134]],["t/288",[0,0.446,14,1.656,17,1.293,37,1.156,58,2.697,79,1.892,88,1.298,96,1.436,116,1.656,121,1.436,122,3.513,140,1.386,143,1.803,177,2.526,188,1.462,200,1.14,208,1.583,213,1.696,214,1.978,219,1.739,224,2.104,225,1.171,247,1.259,285,1.739,292,1.739,298,1.785,311,4.053,347,3.018,360,3.928,363,5.989,364,6.795,365,4.207,368,1.836,388,1.696,440,1.583,479,2.104,491,2.424,492,1.583,505,2.736,529,1.656,531,2.309,563,1.462,611,3.504,626,1.836,699,7.457,717,3.094,812,1.785,821,3.764,834,2.773,837,3.117,840,2.847,907,4.186,1085,3.907,1090,1.785,1135,1.656,1161,1.696,1174,1.656,1337,2.309,1338,2.309,1368,3.907,1586,4.371,1716,1.836,1786,1.892,1920,3.907,2021,5.562,2022,4.874,2038,3.907,2040,3.683,2084,4.207,2085,4.662,2086,6.636,2087,4.662,2088,5.815,2089,4.662,2090,4.662,2091,4.662,2092,4.662,2093,4.662,2094,4.662,2095,4.662,2096,4.662,2097,7.251,2098,2.197,2099,5.815,2100,2.923,2101,2.923,2102,2.923,2103,2.923,2104,2.923,2105,2.923]],["t/290",[17,0.933,22,3.496,37,2.843,51,2.896,90,2.219,94,2.962,122,4.003,128,4.038,184,2.569,188,2.616,200,2.04,214,2.219,282,2.438,303,4.113,354,3.111,364,4.383,368,3.285,369,2.833,385,4.311,440,2.833,504,3.764,619,3.098,747,4.132,759,3.764,800,4.132,950,3.764,1007,4.808,1101,2.833,1161,3.034,1178,4.383,1205,3.931,1322,3.764,1380,3.621,1552,4.719,1616,4.132,1864,4.383,2084,4.719,2098,3.931,2106,5.23,2107,5.23,2108,4.132,2109,4.719,2110,5.23]],["t/292",[35,1.645,37,1.348,58,2.99,122,1.998,129,1.262,162,1.705,188,1.705,204,1.888,329,2.85,341,1.772,369,1.847,431,4.828,477,2.206,514,2.563,526,2.563,592,2.141,614,1.426,704,2.36,868,2.082,892,3.517,1870,2.454,2111,2.082,2112,3.409,2113,3.409,2114,3.409,2115,5.26,2116,3.409,2117,3.409,2118,9.107,2119,3.409,2120,3.409,2121,10.169,2122,3.409,2123,3.409,2124,3.409,2125,3.409,2126,3.409,2127,3.409,2128,7.803,2129,3.409,2130,3.409,2131,3.409,2132,3.409,2133,3.409,2134,3.409,2135,3.409,2136,3.409,2137,3.409,2138,3.409,2139,3.409,2140,3.409,2141,3.409,2142,3.409,2143,3.409,2144,3.409,2145,3.409,2146,3.409,2147,3.409,2148,3.409,2149,3.409,2150,3.409,2151,3.409,2152,3.409,2153,3.409,2154,3.409,2155,3.409,2156,3.409,2157,3.409,2158,3.076,2159,3.409,2160,3.409,2161,3.409,2162,3.409,2163,3.409,2164,3.409,2165,3.409,2166,3.409]],["t/294",[188,4.259,619,3.667,633,4.259,2167,8.513]],["t/296",[3,2.446,17,1.637,122,2.898,246,4.426,329,4.133,506,5.491,611,5.735,619,3.953,633,3.817,1983,6.884,2075,6.884,2158,6.884,2168,6.027,2169,7.629]],["t/298",[355,6.792,432,6.462,433,4.301]],["t/300",[43,5.305,56,3.073,90,4.064,564,5.305,851,5.305,875,5.305,1099,5.9]],["t/302",[0,1.195,11,2.375,16,4.206,28,3.918,30,5.423,31,4.544,32,2.863,33,3.183,113,5.638,131,4.784,512,5.07,578,3.714]],["t/304",[39,6.537,40,5.197,47,6.219,48,3.923,50,5.053,101,4.482,107,6.537]],["t/306",[9,5.51,10,4.823,2082,7.682,2083,7.682]],["t/308",[23,2.033,875,5.619]],["t/310",[0,1.25,23,1.92,143,2.968,822,4.978,875,6.198]],["t/312",[0,0.518,3,1.089,4,1.4,17,0.606,24,0.955,25,0.674,26,2.727,32,1.241,49,2.074,66,2.133,92,1.941,115,1.196,119,2.133,129,1.941,143,1.986,145,4.861,157,2.133,163,1.463,164,2.02,199,2.604,213,3.042,214,3.058,216,1.61,228,1.97,239,1.924,252,1.29,258,2.351,266,2.27,267,2.444,268,5.701,296,1.463,313,2.133,322,3.267,327,4.437,350,1.557,385,4.135,494,2.53,511,2.678,532,1.638,599,1.638,614,3.257,619,1.463,695,3.12,706,4.649,707,2.841,714,2.674,734,5.187,818,3.12,819,5.71,820,2.553,821,2.198,822,1.765,823,2.553,824,2.444,825,2.553,826,2.553,827,4.437,828,2.553,829,4.527,830,2.971,831,1.97,834,2.02,840,2.074,858,3.775,859,2.444,860,3.942,861,2.553,862,2.553,863,2.553,864,2.553,865,2.553,866,3.942,867,2.351,868,2.074,869,2.27,875,3.395,894,2.444,2020,3.064,2023,2.846,2170,3.064]],["t/314",[5,1.899,24,1.899,25,1.34,35,4.971,51,3.739,101,3.658,104,4.241,118,1.784,119,4.241,121,3.317,147,4.37,344,4.37,360,3.658,446,2.953,472,5.335,578,3.202,879,5.076,1080,4.822,1141,4.124,1235,5.659,1655,4.86,1927,6.093,2171,6.752,2172,6.752,2173,6.752]],["t/316",[23,1.994,24,2.394,25,1.689,163,3.667]],["t/318",[0,1.216,23,1.868,24,2.65,25,1.582,28,3.989,143,2.472,163,3.435,171,3.435,822,4.899]],["t/320",[0,0.272,3,0.31,4,0.399,5,1.267,11,0.293,17,0.729,24,0.699,25,0.718,26,0.928,32,0.909,33,0.726,37,0.383,44,0.451,45,0.383,49,0.591,56,0.67,57,0.728,58,1.502,66,0.608,87,1.828,88,0.43,89,2.275,92,0.358,94,0.548,115,0.875,118,0.957,119,0.608,122,0.944,126,0.484,127,0.647,129,1.928,141,0.647,142,0.647,143,0.77,144,0.765,145,2.551,147,1.156,153,0.728,154,1.342,155,0.728,156,0.765,157,0.608,162,2.045,163,0.769,164,1.062,166,2.831,167,0.697,168,3.23,171,1.332,172,0.399,173,0.697,174,1.408,175,2.067,176,1.347,178,2.605,181,1.104,188,0.484,195,0.548,197,1.721,199,1.257,203,0.536,206,0.697,208,3.133,210,0.811,213,1.442,214,3.774,216,3.755,223,0.345,225,0.996,228,0.561,234,1.607,235,1.478,239,0.548,241,1.011,246,1.036,247,0.417,252,0.368,258,1.236,266,0.647,267,0.697,268,4.178,295,0.608,296,2.872,303,0.484,310,0.591,313,0.608,319,0.626,322,1.576,327,2.141,335,0.647,336,0.459,344,0.626,350,1.418,352,0.503,368,1.561,369,1.347,385,4.237,388,0.561,410,1.267,440,0.524,444,0.728,446,0.423,459,2.828,463,0.967,475,0.696,477,1.156,494,0.862,495,0.67,511,1.405,512,0.626,521,0.697,529,0.548,532,0.467,546,1.062,551,2.154,552,1.561,599,0.467,609,0.608,614,1.883,620,0.697,629,0.576,631,0.608,642,0.591,645,0.67,648,0.67,695,1.062,706,2.641,707,0.967,714,0.91,717,1.688,720,0.444,734,2.225,735,0.765,764,0.811,766,1.156,772,0.67,795,2.001,809,0.608,818,1.062,819,4.978,820,0.728,821,0.626,822,0.503,823,0.728,824,0.697,825,0.728,826,0.728,827,1.721,828,0.728,829,1.942,830,1.751,831,0.561,832,0.697,833,2.341,834,1.839,835,1.062,836,2.324,837,0.647,838,1.411,839,0.765,840,1.888,841,0.873,842,0.873,843,1.236,844,0.873,845,0.765,846,0.67,847,0.608,848,0.67,849,4.742,850,1.609,851,0.626,852,1.156,853,2.612,854,2.225,855,0.873,856,1.062,857,0.873,858,2.225,859,0.697,860,1.868,861,0.728,862,0.728,863,0.728,864,0.728,865,0.728,866,1.342,867,0.67,868,0.591,869,0.647,870,0.811,871,3.566,872,0.873,873,0.765,874,1.611,875,0.626,876,0.728,877,0.873,878,0.873,879,0.728,880,0.811,881,0.765,882,0.873,883,0.811,884,0.873,885,0.873,886,0.873,887,0.873,888,0.728,889,1.236,890,0.697,891,0.576,892,2.067,893,0.67,894,1.285,895,0.765,896,0.765,897,0.811,898,0.811,899,0.811,900,0.811,903,0.811,904,0.873,905,0.873,906,0.873,907,2.225,908,0.873,909,0.811,910,0.873,911,0.873,912,0.728,913,0.873,914,0.765,915,2.083,916,0.873,917,0.873,918,0.873,919,0.873,920,1.611,921,2.324,922,1.611,923,0.873,924,2.243,925,0.873,926,0.765,927,1.122,928,0.811,929,0.873,930,0.765,931,0.728,932,0.765,933,1.611,934,1.964,935,0.873,936,1.285,937,1.236,938,1.411,939,0.765,940,0.608,941,0.873,942,0.873,943,0.873,945,0.811,946,0.873,947,0.873,948,0.873,949,0.765,950,0.697,951,1.496,952,0.873,953,1.611,954,0.873,955,0.873,956,0.873,957,0.765,958,3.508,959,2.722,961,0.765,962,0.765,963,1.342,964,1.194,965,0.728,966,0.765,967,0.765,968,0.765,969,0.765,970,3.664,971,0.811,972,1.611,973,1.496,974,0.765,975,2.443,976,1.964,977,1.496,978,0.811,979,0.873,980,0.873,981,0.811,982,0.67,983,0.873,984,0.873,985,0.811,986,0.873,987,1.611,988,0.811,989,0.765,990,0.811,991,0.765,992,0.697,2174,0.873,2175,0.968,2176,0.811]],["t/322",[0,0.452,3,0.95,5,1.325,24,2.053,25,1.542,36,1.545,43,1.917,58,2.97,87,2.737,89,1.861,90,1.999,96,1.455,97,1.678,116,1.678,118,1.55,125,1.455,129,1.096,136,2.34,157,4.2,162,2.935,163,1.276,165,1.64,166,2.051,194,2.132,198,1.889,214,3.59,215,3.05,234,1.54,252,2.229,277,1.54,299,1.204,310,1.809,328,5.604,381,1.809,391,1.809,410,4.555,456,1.98,475,1.155,491,1.54,505,1.221,511,2.509,517,1.809,545,1.482,546,1.762,563,1.482,614,1.97,619,1.276,642,4.458,683,1.917,732,2.34,740,1.861,851,1.917,1059,3.05,1078,2.34,1158,2.227,1288,3.949,1387,2.051,1600,2.051,1676,2.482,1833,2.673,1834,2.34,1870,2.132,2177,1.98,2178,2.962,2179,2.962,2180,4.712,2181,2.962,2182,2.962,2183,2.962,2184,4.252,2185,2.962,2186,2.962,2187,2.962,2188,2.962,2189,2.962,2190,4.252,2191,2.962,2192,2.962,2193,4.712,2194,4.712,2195,2.962,2196,3.723,2197,2.962,2198,2.962,2199,2.962]],["t/324",[0,0.684,5,1.261,11,1.36,24,1.261,25,1.281,42,2.286,51,2.483,58,1.222,76,3.758,87,2.42,90,1.903,91,1.903,101,2.43,115,1.579,118,1.185,123,1.749,157,2.817,163,1.932,165,2.483,181,2.867,198,1.797,203,2.483,223,1.599,252,3.329,277,2.331,391,5.052,446,1.961,482,3.371,507,2.903,518,4.852,545,3.229,578,2.126,579,3.228,642,4.619,683,4.178,706,4.097,741,3.162,797,3.228,798,3.758,902,5.353,928,3.758,1090,2.739,1120,3.543,1153,3.543,1158,3.371,1283,4.047,1600,3.105,1664,3.543,1676,7.346,1695,3.543,1701,4.047,1867,3.371,1957,4.047,2098,3.371,2177,2.998,2184,4.047,2190,4.047,2200,4.484,2201,4.047,2202,4.484,2203,4.484,2204,4.484,2205,4.484,2206,6.455,2207,4.484,2208,5.825,2209,4.484,2210,4.484]],["t/326",[0,0.977,43,4.148,110,3.812,123,2.5,125,3.148,130,2.892,143,1.986,171,2.76,172,2.642,174,3.63,186,3.332,234,4.73,270,3.718,322,3.267,352,4.281,354,3.812,405,3.914,406,4.284,446,2.803,492,3.472,555,4.284,729,5.783,804,3.914,812,3.914,851,4.148,992,4.613,1099,4.613,1137,4.284,1214,3.718,1681,4.817,1790,5.063,2040,5.063,2211,4.817,2212,5.063,2213,6.408]],["t/328",[0,1.097,142,4.809,143,2.23,147,4.656,153,5.407,155,5.407,174,4.075,181,3.195,208,3.897,422,4.809,505,2.965,968,5.683,973,6.028,974,5.683,976,5.683,977,6.028,981,6.028,985,6.028,988,6.028,989,5.683,990,6.028,991,5.683,992,5.177]],["t/330",[0,0.539,3,1.733,11,1.071,23,1.538,24,0.993,25,1.922,32,1.291,35,2.608,37,1.396,96,1.735,114,2.361,115,1.904,122,2.053,123,1.378,130,1.594,143,2.035,147,5.413,166,2.446,171,2.328,172,2.707,174,4.491,175,4.918,181,1.569,184,2.655,187,1.545,194,2.542,198,1.416,200,1.378,208,1.913,217,2.101,218,2.96,221,2.446,234,4.965,243,2.542,252,2.494,274,2.101,282,1.647,299,2.99,329,1.913,333,2.79,334,2.96,337,2.542,345,2.286,352,2.81,357,2.446,360,3.986,369,1.913,457,1.704,491,1.836,492,2.928,509,2.446,559,2.79,659,2.219,684,2.157,698,2.157,717,1.647,741,1.477,763,2.96,816,2.96,927,2.219,970,2.655,1079,2.542,1080,2.001,1102,2.96,1233,2.96,1272,2.79,1277,2.049,1309,2.655,1600,2.446,1654,3.187,1880,2.446,1898,2.79,1980,3.187,1994,3.187,2019,3.187,2211,4.063,2214,3.532,2215,3.532,2216,3.532,2217,5.405,2218,3.532,2219,3.532,2220,3.532,2221,3.532,2222,3.532,2223,2.96,2224,3.532,2225,2.655,2226,3.532,2227,2.96,2228,3.532,2229,3.532,2230,2.96]],["t/332",[0,0.66,3,2.017,8,2.72,11,1.313,17,0.772,24,1.218,25,1.847,29,2.645,32,1.583,37,1.712,52,2.053,56,1.624,114,2.895,122,1.645,126,2.166,129,1.603,143,2.298,147,2.803,166,6.731,167,3.117,171,2.711,172,1.785,174,2.453,175,4.207,187,1.894,192,2.398,194,3.117,195,2.453,198,2.522,199,1.76,200,1.689,201,3.117,202,3.907,208,2.346,229,2.576,234,2.251,246,2.512,296,1.865,320,2.998,352,2.251,357,2.998,361,3.255,381,2.645,428,2.803,446,1.894,578,2.053,619,1.865,648,2.998,649,3.117,667,2.998,698,2.645,706,2.346,717,2.019,722,3.907,741,1.811,950,3.117,958,3.117,1154,4.972,1165,2.895,1175,3.907,1204,3.907,1224,2.998,1642,3.907,1693,3.421,1745,3.255,1786,2.803,1880,2.998,1896,3.629,1918,3.117,2168,3.421,2211,3.255,2231,5.679,2232,4.33,2233,4.33,2234,4.33,2235,3.629,2236,4.33,2237,3.629,2238,4.33,2239,4.33,2240,3.629,2241,4.33]],["t/334",[17,1.669,24,1.914,25,1.35,56,3.207,116,3.854,143,2.109,163,2.931,198,2.727,234,3.538,252,3.249,350,3.12,371,6.758,406,5.718,488,4.712,591,5.115,755,5.376,1090,4.156,1831,4.898,1875,5.115,2227,5.703,2242,6.14,2243,6.804,2244,6.804,2245,6.804]],["t/336",[3,1.215,25,1.131,49,2.315,56,2.138,62,2.453,96,1.862,110,2.254,143,2.364,178,1.896,182,1.683,184,2.801,197,3.949,204,2.099,225,1.519,229,2.254,234,3.965,252,2.604,342,3.392,352,2.965,386,2.624,406,4.583,427,5.746,430,2.849,467,3.691,492,3.714,493,2.994,501,5.458,517,2.315,526,2.849,573,3.176,615,3.812,679,2.534,683,2.453,736,3.42,755,4.505,774,3.176,803,3.42,831,3.308,852,2.453,891,2.254,932,2.994,940,2.381,982,3.949,1044,2.624,1078,2.994,1079,4.105,1224,2.624,1379,3.42,1428,3.42,1431,2.849,1581,2.728,1655,4.105,1664,2.994,1832,2.849,1858,5.746,1869,2.849,1938,3.176,1982,3.42,2013,3.176,2225,2.849,2242,5.146,2246,2.994,2247,3.176,2248,3.79,2249,7.627,2250,7.045,2251,6.856,2252,3.79,2253,3.79,2254,3.79,2255,3.79,2256,2.994,2257,3.79,2258,3.79,2259,3.79,2260,5.703,2261,3.79,2262,5.703,2263,3.79,2264,3.79,2265,3.42,2266,3.79,2267,3.79]],["t/338",[56,2.86,160,3.949,172,2.351,188,4.3,252,2.897,303,2.853,309,3.583,329,4.656,352,4.771,371,4.506,385,2.457,405,4.659,494,2.752,501,5.112,648,5.282,723,4.937,850,4.937,927,3.583,951,4.78,1044,3.949,1059,5.563,1064,4.287,1224,3.949,1233,4.78,1234,5.147,1365,5.147,1600,3.949,1620,5.147,1875,4.287,1880,3.949,1896,4.78,2098,4.287,2211,4.287,2268,5.703,2269,3.949,2270,5.703,2271,7.628]],["t/340",[31,4.04,96,3.94,110,2.97,121,2.452,122,1.896,126,2.498,143,2.931,171,3,182,2.217,225,2.001,234,3.621,252,2.646,262,3.338,270,4.04,290,3.753,345,4.508,352,4.512,371,3.944,378,2.409,405,4.899,406,3.338,414,3.944,418,4.184,493,3.944,565,3.944,619,2.15,707,3.773,717,2.328,784,4.184,959,3.753,970,3.753,1121,3.231,1182,3.944,1294,4.508,1391,3.753,1600,3.457,1686,4.184,1858,4.184,1859,3.594,1880,4.823,2009,4.184,2013,4.184,2040,6.337,2211,3.753,2247,4.184,2272,8.021,2273,6.285,2274,4.993,2275,4.993,2276,4.993,2277,4.993]],["t/342",[0,0.736,1,3.469,5,1.913,24,2.405,25,1.789,87,3.207,90,2.887,110,5.363,118,1.798,175,3.228,197,5.922,208,5.676,225,1.935,295,3.033,296,2.93,367,2.616,368,3.033,388,2.801,391,2.949,457,2.33,459,2.801,551,4.047,709,3.63,741,2.019,969,3.815,975,3.815,1055,4.711,1084,3.228,1286,3.815,1294,3.125,1638,4.357,1639,3.343,2212,3.815,2278,4.828,2279,4.828,2280,4.828,2281,4.828,2282,4.828,2283,4.828,2284,4.828,2285,3.228,2286,4.828,2287,4.828,2288,4.828,2289,4.828,2290,4.828]],["t/344",[0,1.216,90,3.384,94,4.517,208,4.32,282,3.718,431,5.994,619,3.435,992,5.74,1286,6.3,1585,6.3,2291,7.974]],["t/346",[5,1.516,23,1.262,87,2.753,118,1.424,123,2.102,126,3.673,137,4.612,163,2.321,169,4.517,217,3.206,223,2.617,259,3.488,260,5.582,296,2.321,320,3.732,331,3.127,341,2.802,396,3.732,444,4.051,463,2.92,614,2.254,633,2.696,747,4.258,797,3.879,853,4.259,893,5.084,902,3.292,1022,5.519,1070,4.258,1121,4.752,1137,3.603,1387,3.732,1609,4.258,1707,4.863,1832,4.051,1860,6.625,1870,5.285,1995,4.863,2227,4.517,2256,4.258,2285,3.603,2292,5.389,2293,5.389,2294,5.389,2295,5.389,2296,4.863,2297,5.389,2298,5.389,2299,5.389,2300,6.625,2301,5.389]],["t/348",[0,1.262,23,1.512,87,3.423,96,3.171,118,2.186,178,3.23,296,2.781,340,4.316,459,3.745,475,2.518,492,3.497,614,3.818,617,5.1,633,3.23,741,2.7,750,4.647,835,3.84,853,5.585,873,5.1,1013,4.055,1121,4.178,1142,5.1,2230,5.41,2302,6.455,2303,6.455,2304,8.272,2305,6.455]],["t/350",[0,1.425,3,1.707,5,1.497,17,0.95,23,1.705,24,2.048,25,1.056,33,2.164,35,2.569,59,2.615,78,2.569,96,2.615,117,2.885,118,1.924,122,2.766,123,2.077,143,1.65,172,3.001,181,3.685,246,4.224,262,4.868,276,3.016,347,3.446,366,4.805,418,4.462,488,3.687,508,4.462,633,2.664,645,3.687,693,2.715,717,2.482,834,3.167,847,3.344,853,5.175,888,4.002,940,3.344,945,4.462,950,3.832,1022,4.002,1034,3.344,1121,3.446,1400,3.252,1609,4.207,1702,4.805,1784,4.207,2285,4.868,2306,5.324,2307,7.281]],["t/352",[0,1.344,3,2.287,5,2.007,11,2.163,12,4.94,23,2.063,24,2.007,25,1.748,26,3.709,28,3.569,87,2.675,92,3.261,115,2.513,145,4.042,224,5.136,457,3.443,581,6.438,1080,4.042,1099,5.136,1400,4.358]],["t/354",[0,1.134,11,2.254,16,3.355,17,0.979,24,2.371,25,1.475,26,3.865,28,2.747,33,2.231,35,3.587,36,2.765,37,3.333,42,2.799,78,2.649,115,2.618,129,2.032,143,2.8,181,3.744,187,2.401,200,2.141,214,2.33,218,4.601,282,3.93,319,3.554,329,2.974,446,3.251,455,2.854,483,3.67,494,2.649,501,3.266,530,3.04,575,5.149,613,3.952,659,3.449,708,3.04,1867,4.127,2111,3.353,2240,4.601]],["t/356",[3,2.533,5,2.223,53,5.688,87,2.963,92,2.925,171,3.404,208,4.281,296,3.404,459,4.584,937,5.472,1867,5.941,2308,7.131]],["t/358",[11,2.001,17,1.645,25,1.31,36,2.165,52,3.13,87,2.475,100,6.039,145,3.739,165,3.655,511,2.884,546,5.487,620,4.751,720,4.23,741,2.76,752,4.962,775,3.829,819,3.926,894,4.751,937,4.57,1009,4.751,2309,5.532,2310,6.6,2311,6.6,2312,5.956,2313,5.956,2314,6.6]],["t/360",[0,1.164,24,2.146,25,1.514,32,2.788,93,3.966,115,2.687,130,3.442,181,3.388,182,3.388,511,2.623,546,4.538,741,3.19,775,4.426,931,5.735,2315,6.884,2316,4.938]],["t/362",[3,1.865,17,1.87,101,5.215,115,3.39,181,4.276,285,5.726,459,3.374,546,5.726,564,3.765,934,4.595,1172,4.027,2317,8.679,2318,9.248,2319,5.816,2320,4.372,2321,5.816,2322,4.372,2323,5.249]],["t/364",[0,0.862,1,1.634,3,0.597,4,0.767,5,1.41,17,0.332,23,0.75,24,1.737,25,0.837,28,0.931,32,2.417,36,1.051,41,1.205,48,0.882,50,1.137,51,1.031,62,2.074,78,1.546,87,2.119,89,2.013,97,1.054,102,1.169,115,1.128,117,1.008,118,0.492,122,1.217,128,0.914,143,1.554,162,1.603,163,0.802,164,1.107,165,1.031,170,1.137,171,0.802,173,2.306,174,1.054,181,0.827,182,0.827,187,0.814,199,3.818,200,0.726,208,1.736,214,1.79,222,1.169,233,2.531,234,3.631,235,4.344,238,3.997,239,1.054,241,3.498,244,1.34,252,0.707,276,1.054,295,1.169,296,1.38,350,3.033,357,3.471,358,1.34,361,1.399,405,1.957,410,0.949,426,1.679,431,1.399,446,0.814,494,0.898,530,1.031,551,1.107,578,0.882,586,1.56,614,2.582,642,1.957,698,2.577,706,1.736,714,0.949,723,2.074,726,1.679,727,1.289,731,1.679,833,1.666,853,1.08,854,1.34,871,1.205,883,1.56,915,2.685,931,2.409,937,1.289,982,2.219,1044,2.219,1084,1.244,1101,1.008,1120,1.47,1183,2.306,1252,1.56,1400,1.137,1433,1.244,1875,1.399,1954,1.399,2177,1.244,2235,1.56,2237,1.56,2250,2.531,2269,1.289,2315,2.891,2324,2.891,2325,1.861,2326,1.861,2327,1.861,2328,8.407,2329,8.407,2330,1.679,2331,1.679,2332,1.679,2333,1.679,2334,1.679,2335,1.47,2336,1.679,2337,1.679,2338,1.679,2339,1.679,2340,1.679,2341,1.679,2342,1.679,2343,1.679,2344,2.891,2345,1.679,2346,1.679,2347,1.679,2348,1.679,2349,1.679,2350,1.679,2351,1.679,2352,1.679,2353,1.679,2354,1.679,2355,1.679,2356,1.679,2357,1.679,2358,1.679,2359,1.679,2360,1.679,2361,1.679,2362,1.679,2363,1.679,2364,1.679,2365,1.679,2366,1.679,2367,1.679,2368,1.679,2369,5.175,2370,1.679,2371,1.679,2372,1.679,2373,1.679,2374,1.679,2375,1.679,2376,1.679,2377,1.679,2378,1.679,2379,2.685,2380,1.679,2381,1.679,2382,1.679,2383,1.679,2384,1.679,2385,1.679,2386,2.891,2387,1.679,2388,1.679,2389,1.679,2390,1.679,2391,1.679,2392,1.679,2393,1.679,2394,1.679,2395,1.679,2396,1.679,2397,1.679,2398,1.679,2399,1.679,2400,1.679,2401,1.679,2402,1.679,2403,3.807,2404,1.679,2405,1.679,2406,1.679,2407,1.679,2408,1.679,2409,1.679,2410,1.679,2411,1.679,2412,1.679,2413,1.679,2414,1.679,2415,1.679,2416,1.861,2417,1.861,2418,1.861,2419,1.861,2420,1.861,2421,1.861,2422,1.399,2423,1.861,2424,1.861]],["t/366",[2,2.15,3,1.378,5,0.743,8,2.7,11,0.801,17,0.471,24,2.076,25,1.785,26,1.374,27,2.235,32,2.288,36,0.867,37,1.045,40,1.66,51,1.463,58,0.72,59,1.298,78,2.074,88,1.174,110,3.232,117,1.432,118,0.698,122,2.616,123,1.031,128,1.298,129,0.978,137,1.66,141,3.632,162,4.195,163,2.696,172,1.089,181,1.909,184,1.298,195,1.497,206,3.094,219,1.572,222,2.7,223,0.942,225,1.059,237,1.572,241,1.497,246,2.493,251,1.71,259,1.71,276,1.497,282,1.232,347,4.778,350,4.125,369,1.432,389,2.214,398,2.214,410,1.347,425,2.088,436,2.088,440,2.329,447,1.83,459,1.533,468,1.614,475,1.676,503,2.214,520,1.766,529,2.435,566,2.088,609,2.7,614,1.105,629,2.557,665,2.976,667,1.83,671,2.384,693,2.191,714,1.347,740,1.66,773,1.71,775,1.533,784,4.553,795,4.051,818,2.557,832,4.505,833,1.374,834,3.723,836,4.705,838,4.292,840,5.121,845,2.088,846,1.83,847,1.66,848,1.83,1067,1.902,1094,1.986,1120,2.088,1155,1.902,1174,1.497,1214,1.533,1277,1.533,1280,3.396,1406,1.902,1419,1.986,1433,1.766,1498,2.384,1580,2.214,1639,2.976,1719,2.214,1761,3.231,1784,2.088,1831,1.902,1908,3.602,2177,4.184,2208,2.384,2296,2.384,2422,1.986,2425,2.642,2426,2.384,2427,2.642,2428,2.642,2429,2.642,2430,2.642,2431,2.642,2432,3.879,2433,2.384,2434,2.642,2435,2.642,2436,2.642,2437,2.642,2438,2.642,2439,2.642,2440,2.642,2441,2.642,2442,2.642,2443,2.642,2444,2.642,2445,2.214]],["t/368",[0,0.573,11,0.852,17,0.286,24,1.057,25,1.124,33,1.142,42,0.816,58,1.024,62,1.819,66,1.006,69,1.342,72,3.129,87,1.694,88,0.711,91,0.679,103,0.952,118,0.423,122,1.068,123,1.096,124,1.445,127,1.07,128,1.381,133,1.152,146,2.36,161,1.006,162,0.801,163,1.211,170,0.978,181,0.711,192,0.886,195,1.592,198,1.127,199,3.75,200,1.096,203,2.081,216,1.333,222,1.006,233,2.969,234,4.514,235,5.443,238,5.544,239,1.592,241,4.702,244,1.152,247,1.211,256,1.445,266,1.07,299,0.651,350,4.077,378,0.772,410,0.816,428,1.036,457,0.772,462,0.978,475,0.624,505,0.66,529,0.907,551,1.672,552,1.006,553,2.113,554,1.152,565,1.265,568,0.978,578,0.759,614,3.582,633,2.834,649,3.702,665,1.946,704,2.602,706,2.036,804,0.978,818,0.952,829,1.766,830,1.592,840,2.295,896,6.438,902,0.978,912,1.203,982,1.946,1044,1.946,1126,1.342,1183,3.702,1286,2.221,1433,3.021,1523,2.356,1615,1.342,1739,1.445,1796,1.445,1898,1.265,1932,1.445,2250,2.221,2369,6.536,2379,4.31,2446,1.601,2447,1.601,2448,1.445,2449,8.149,2450,1.601,2451,1.601,2452,2.811,2453,2.811,2454,2.811,2455,2.811,2456,2.811,2457,1.601,2458,1.601,2459,2.811,2460,1.601,2461,2.811,2462,1.601,2463,1.601,2464,2.811,2465,2.811,2466,2.811,2467,2.811,2468,2.811,2469,1.601,2470,1.601,2471,1.601,2472,1.601,2473,1.601,2474,1.601,2475,1.601,2476,1.601,2477,1.601,2478,1.601,2479,1.601,2480,1.601,2481,1.601,2482,1.601,2483,1.601,2484,1.601,2485,1.601,2486,1.601,2487,1.601,2488,1.601,2489,1.601,2490,1.601,2491,1.601,2492,1.601,2493,1.601,2494,1.601,2495,1.601,2496,1.601,2497,1.601,2498,1.601,2499,1.601,2500,1.601,2501,1.601,2502,5.666,2503,2.356,2504,1.601,2505,1.601,2506,1.601,2507,1.601,2508,1.601,2509,1.601,2510,1.601,2511,2.811,2512,2.811,2513,2.811,2514,1.601,2515,1.601,2516,1.601,2517,1.601,2518,1.601,2519,1.601,2520,1.601,2521,1.601,2522,1.601,2523,1.601,2524,1.601,2525,1.601,2526,1.601,2527,2.811,2528,1.601,2529,1.601,2530,1.601,2531,1.601,2532,1.601,2533,1.601,2534,1.601,2535,1.601]],["t/370",[0,0.822,3,1.728,24,2.065,25,1.657,32,1.97,56,2.021,59,2.647,87,2.021,90,2.287,96,2.647,130,2.432,136,4.258,143,1.671,162,3.673,163,3.162,172,2.222,191,3.292,225,2.16,234,2.802,252,2.047,285,3.206,299,2.19,329,3.978,337,3.879,346,4.051,350,4.439,360,2.92,361,4.051,379,2.859,410,2.748,464,3.603,515,4.517,559,4.258,560,4.863,633,2.696,720,2.471,740,3.385,832,3.879,839,4.258,840,3.292,848,3.732,1193,4.051,1214,3.127,1294,3.488,1599,4.517,1740,4.863,1895,4.517,1918,3.879,1954,4.051,2316,3.488,2445,4.517,2536,4.863,2537,5.389]],["t/372",[2,1.636,4,1.348,5,0.92,10,3.544,25,1.679,32,1.195,49,3.821,56,1.91,83,4.268,92,2.316,116,1.852,118,1.346,125,2.502,126,1.636,128,2.502,129,1.21,141,2.186,143,2.189,160,2.264,162,3.533,163,2.695,169,2.74,198,1.311,204,1.811,238,2.116,266,2.186,299,1.329,333,2.583,341,1.7,342,1.945,346,5.308,347,4.571,360,3.826,446,1.43,475,1.986,504,2.354,540,2.264,574,2.262,609,3.199,614,1.367,629,1.945,633,1.636,679,2.186,680,2.951,683,2.116,693,1.667,710,4.024,717,1.524,723,2.116,735,2.583,756,2.951,759,2.354,773,2.116,795,4.571,827,2.264,836,5.308,848,2.264,876,3.828,907,2.354,1090,1.997,1105,4.268,1277,2.955,1296,6.047,1306,2.74,1310,2.458,1406,2.354,1432,2.951,1580,2.74,1581,2.354,1586,2.458,1639,3.527,1695,2.583,1761,3.828,1790,2.583,1792,2.583,1831,2.354,1856,4.954,1857,5.645,1863,2.951,1918,2.354,1922,2.74,1954,2.458,1958,2.951,1996,2.951,1999,2.74,2247,2.74,2273,2.951,2316,2.116,2445,2.74,2538,5.093,2539,5.093,2540,3.27,2541,3.27,2542,3.27,2543,3.27,2544,3.27,2545,3.27,2546,3.27,2547,3.27,2548,4.268,2549,3.27,2550,3.27,2551,3.27,2552,3.27,2553,3.27,2554,3.27,2555,3.27,2556,3.27]],["t/375",[4,2.549,24,1.739,25,1.948,49,3.777,56,2.319,113,4.451,130,2.79,143,1.917,162,4.025,204,3.424,225,3.225,241,3.503,252,2.349,299,2.513,350,4.344,360,3.35,613,4.451,716,4.885,739,4.885,831,3.587,840,5.462,848,4.282,1193,4.648,1272,4.885,1510,5.58,1544,5.182,1681,4.648,1757,4.648,1831,4.451,2269,4.282,2316,4.002,2557,6.184]],["t/377",[8,3.83,24,2.242,25,1.582,32,2.229,43,3.947,87,2.989,161,3.83,163,2.627,182,2.708,194,4.389,252,2.316,299,2.478,329,3.304,350,4.074,410,3.109,464,4.077,475,2.378,614,3.715,633,3.051,1125,5.111,1126,5.111,1193,4.584,1294,5.161,1296,6.299,1297,3.83,1599,5.111,1880,4.223,1895,5.111,1918,4.389,2111,4.869,2269,6.151,2316,3.947,2558,6.098]],["t/379",[24,1.829,25,1.817,90,2.76,113,4.681,130,2.934,133,4.681,143,2.016,160,4.503,162,3.253,182,2.888,188,3.253,299,2.643,336,3.084,350,3.811,410,3.316,614,3.476,629,4.944,633,3.253,739,5.138,773,6.248,848,4.503,851,4.209,1193,4.888,1544,5.45,2256,5.138,2536,5.868,2559,6.503,2560,6.503]],["t/381",[25,1.281,91,2.739,172,2.661,225,2.587,252,3.142,341,3.356,350,3.793,401,5.41,462,3.943,596,5.825,614,3.459,630,4.853,769,4.47,829,4.055,835,3.84,840,5.575,1013,4.055,1043,5.1,1135,3.657,1145,4.47,1174,5.171,1222,5.41,1507,5.41,1669,4.47,1999,5.41,2269,4.47,2316,4.178,2561,6.455,2562,6.455,2563,6.455]],["t/383",[0,1.205,17,1.409,24,1.365,25,0.963,32,3.302,101,2.63,115,1.71,116,2.75,128,2.385,143,2.117,160,3.362,161,3.05,181,2.156,188,3.417,205,2.524,223,1.731,234,2.524,241,2.75,298,2.965,299,1.973,303,2.429,305,3.362,350,4.581,385,2.091,406,3.246,411,3.05,504,3.495,529,2.75,578,2.302,613,4.916,614,2.856,619,2.091,697,3.836,740,3.05,773,4.421,798,4.069,830,2.75,832,3.495,838,3.836,839,3.836,840,2.965,845,3.836,958,3.495,1112,4.069,1137,3.246,1277,2.816,1280,3.836,1490,3.836,1603,3.836,1619,4.381,2269,3.362,2316,5.549,2564,4.855,2565,3.495,2566,4.855,2567,4.855,2568,4.855,2569,4.855]],["t/385",[23,2.149,24,2.146,25,1.821,143,2.365,147,4.938,174,5.198,176,4.133,223,2.72,225,3.058,378,3.681,379,4.047,1669,5.283,2223,6.394]],["t/387",[0,0.363,3,0.762,4,0.98,17,0.424,26,2.05,33,0.967,49,1.453,56,0.892,58,1.376,66,1.494,88,1.056,115,1.388,119,1.494,129,1.459,143,1.565,145,4.211,147,3.268,153,1.788,154,1.788,155,1.788,156,1.879,157,1.494,163,1.024,164,2.345,166,4.509,167,1.712,168,4.64,171,1.698,174,3.327,175,2.636,178,1.19,185,1.415,199,2.052,208,3.182,213,1.38,214,3.621,216,3.329,225,0.953,228,1.38,234,1.237,239,1.347,252,0.903,258,1.647,262,2.636,266,1.59,267,1.712,268,5.76,313,1.494,319,1.539,322,2.574,327,3.496,385,4.298,494,1.902,511,2.413,532,1.148,551,3.494,552,3.172,599,1.148,614,2.723,648,1.647,695,2.345,706,4.027,707,2.136,714,2.01,717,2.738,734,4.228,818,1.415,819,5.522,820,1.788,821,1.539,822,1.237,823,1.788,824,1.712,825,1.788,826,1.788,827,3.496,828,1.788,829,3.689,830,2.233,831,1.38,833,2.625,849,3.496,858,2.838,859,1.712,860,2.964,861,1.788,862,1.788,863,1.788,864,1.788,865,1.788,866,2.964,867,1.647,868,1.453,869,1.59,871,3.268,912,1.788,957,1.879,958,5.053,959,1.788,961,1.879,968,1.879,969,1.879,970,4.415,971,1.993,974,1.879,975,3.989,976,1.879,978,1.993,989,1.879,991,1.879,992,1.712,2176,1.993,2570,2.378,2571,2.378,2572,2.378]],["t/390",[0,1.25,14,4.643,42,4.179,411,5.149,462,5.006,1080,4.643,1716,5.149,2573,8.197]],["t/392",[0,1.35,8,3.285,12,3.621,13,2.774,15,4.9,16,2.36,17,1.283,18,2.896,19,2.36,23,1.925,35,2.523,36,1.715,48,2.48,59,2.569,103,3.111,127,3.496,182,2.323,199,2.923,289,5.692,294,2.287,319,3.385,341,2.719,381,3.194,446,2.287,457,2.523,465,3.931,467,4.655,471,5.406,473,3.621,494,2.523,501,3.111,585,3.385,659,3.285,762,4.132,831,3.034,1073,3.764,1166,4.383,1170,5.692,1716,3.285,1743,4.383,2265,6.49,2574,5.23,2575,4.719,2576,3.931,2577,5.23,2578,7.192]],["t/395",[0,1.084,2,2.571,16,3.965,17,1.567,23,1.664,25,1.616,52,2.436,58,1.4,59,4,129,2.63,130,2.318,187,3.107,199,2.088,214,3.456,341,4.96,355,7.537,391,4.339,411,3.227,432,6.122,433,2.571,505,2.118,530,3.934,563,2.571,619,2.213,633,3.555,708,3.934,733,3.698,831,2.981,837,3.435,1622,3.862,1669,3.558,1765,4.637,2579,8.787,2580,5.138,2581,5.138,2582,5.138,2583,5.138]],["t/397",[0,1.154,13,4.013,33,3.074,103,4.499,473,5.237,531,5.976,532,3.649,574,3.359,777,5.444,1529,6.863,1532,4.619,1716,4.751,2576,6.863,2584,7.564,2585,7.564]],["t/399",[0,1.195,11,2.375,16,4.206,22,5.236,23,1.834,36,2.569,121,3.847,140,3.714,271,5.07,386,5.423,433,3.918,818,4.659]],["t/401",[13,5.164,23,1.975,140,3.998,433,4.218]],["t/403",[0,1.429,17,1.41,36,2.592,137,4.964,198,3.167,200,3.082,243,5.688,446,3.456,585,5.115,651,4.701,1073,5.688]],["t/405",[11,2.079,13,3.638,16,3.878,23,1.606,25,1.36,36,2.249,48,3.252,92,2.538,140,4.076,304,4.307,316,3.715,428,4.438,433,3.431,438,6.188,599,3.309,708,3.797,846,4.748,1148,4.307,1533,6.188,2548,5.747,2586,6.857,2587,8.595,2588,6.857,2589,6.857,2590,6.857,2591,6.857]],["t/407",[2,3.485,13,3.695,14,3.946,15,3.361,16,4.266,17,1.548,26,3.621,59,3.421,163,3,206,5.014,292,4.143,329,4.702,630,5.236,804,4.254,1039,4.254,1165,4.657,1337,5.503,1406,5.014,1639,4.823,2422,5.236,2592,6.966,2593,6.966,2594,6.966]],["t/409",[0,1.262,4,2.661,5,2.567,15,3.115,18,3.574,19,2.913,26,3.356,28,3.23,36,2.117,58,2.624,87,3.102,115,2.273,130,2.913,187,2.823,217,3.84,309,4.055,385,2.781,619,2.781,644,5.41,708,3.574,812,3.943,816,5.41,869,4.316,1121,4.178,1145,4.47,1693,5.1,1786,4.178,1902,5.825,2595,6.455,2596,6.455]],["t/411",[0,1.007,1,3.365,5,1.856,8,4.146,9,4.272,17,1.177,19,2.978,23,1.546,46,5.215,48,3.13,50,4.031,87,2.475,92,2.443,101,3.576,103,3.926,105,5.215,106,4.751,107,5.215,108,5.532,109,4.751,110,3.926,111,5.956,112,5.532,115,2.955,143,2.046,270,3.829,320,4.57,336,3.13,348,4.751,457,3.185,831,3.829,2597,6.6,2598,6.6]],["t/413",[15,3.779,17,1.397,18,5.162,19,3.534,25,1.554,131,4.784,243,5.638,457,4.498,694,7.068,1007,5.236,1391,5.888]],["t/415",[0,1.038,5,2.406,12,4.712,25,1.35,58,1.855,104,4.274,129,3.166,130,3.07,176,4.634,390,5.115,804,4.156,850,4.404,856,5.564,891,4.047,963,5.115,964,5.718,965,6.43,1307,6.14,2230,5.703,2599,6.804,2600,6.804,2601,6.804,2602,6.14]],["t/417",[0,1.216,5,2.243,24,2.243,25,1.582,35,3.848,37,3.153,96,3.917,115,2.808,118,2.107,122,3.029,856,4.743]],["t/419",[5,1.351,17,1.401,25,0.953,32,1.755,37,1.899,52,2.277,53,3.456,56,1.801,97,2.72,117,2.602,118,1.269,123,1.873,127,3.21,129,2.907,167,3.456,171,2.068,176,4.875,178,3.391,181,3.01,198,3.148,206,3.456,246,2.786,252,2.983,296,2.068,322,3.455,347,3.108,377,3.794,514,3.61,529,2.72,578,2.277,602,3.456,693,2.448,706,2.602,709,3.61,717,2.239,741,2.008,743,4.025,769,3.325,804,4.139,834,4.031,850,4.387,852,3.108,856,4.031,859,3.456,871,4.387,962,5.354,964,5.704,965,3.61,1277,2.786,1362,4.878,1581,3.456,1601,3.61,1745,3.61,1757,3.61,2602,4.333,2603,4.802,2604,4.802,2605,4.802,2606,4.802]],["t/421",[5,1.68,17,1.066,23,1.399,25,1.185,66,3.753,117,3.237,129,2.912,176,3.237,181,2.653,186,3.106,192,3.308,214,2.535,221,5.447,222,3.753,247,2.573,252,3.341,259,3.867,494,2.882,683,3.867,693,3.046,772,6.09,850,3.867,856,3.553,867,4.137,868,3.649,921,4.491,927,3.753,963,4.491,964,3.994,966,6.215,967,4.72,1289,5.391,1362,5.662,1433,5.259,1508,5.391,1664,4.72,2607,7.866,2608,5.391]],["t/423",[1,3.667,2,3.599,10,4.075,25,1.427,59,3.533,187,3.146,273,5.407,379,3.816,428,4.656,456,4.809,475,2.806,530,3.983,552,4.518,553,5.407,679,4.809,856,4.279,1079,5.177,1135,4.075,2177,4.809,2609,7.193,2610,7.193,2611,7.193,2612,7.193]],["t/425",[0,1.079,15,3.415,19,3.955,24,1.99,25,1.404,29,4.323,33,2.877,44,3.3,109,6.31,191,4.323,457,4.23,551,4.21,554,5.094,556,6.387,557,6.387,698,4.323,837,5.86,1165,4.732,1315,6.387,2613,7.078,2614,7.078]],["t/427",[0,1.504,16,2.83,23,1.902,24,1.764,25,1.244,32,2.292,103,3.731,115,2.209,199,2.549,208,3.398,214,2.661,219,3.731,410,3.198,462,4.959,511,2.791,552,5.982,567,4.514,698,3.83,856,3.731,1174,3.553,1537,5.256,2176,5.256,2615,6.272,2616,6.272,2617,6.272,2618,8.12,2619,6.272,2620,6.272,2621,6.272,2622,6.272]],["t/429",[2,3.628,16,3.272,93,3.77,103,4.314,247,3.124,252,2.755,427,6.078,462,4.429,551,4.314,552,4.555,553,6.689,755,5.73,856,4.314,1329,5.22,2623,7.252,2624,7.252,2625,7.252,2626,7.252,2627,7.252,2628,7.252,2629,7.252]],["t/431",[0,0.893,5,2.183,24,1.647,27,3.044,33,2.38,56,2.195,82,4.907,118,2.301,142,3.914,165,3.242,171,2.522,172,2.414,173,4.214,176,3.172,204,3.242,225,2.347,276,4.397,295,3.678,296,3.343,303,2.929,388,4.503,440,3.172,488,4.054,492,3.172,501,3.483,592,5.47,614,2.449,619,2.522,652,4.907,741,2.449,833,3.044,964,3.914,1062,4.401,1155,4.214,1221,4.626,1281,4.214,1600,4.054,2212,4.626,2630,5.855,2631,5.855,2632,5.855,2633,5.855,2634,5.855]],["t/433",[0,1.054,5,1.388,17,1.232,27,4.898,33,2.006,35,2.382,37,1.952,115,1.739,118,2.107,122,1.875,129,2.558,165,2.733,171,2.126,181,3.069,186,2.567,214,2.095,216,2.341,222,3.101,276,5.149,282,3.717,350,2.264,410,2.517,468,3.015,505,2.035,540,3.418,555,3.3,625,3.711,693,2.517,741,3.94,772,3.418,830,2.796,835,4.11,902,3.015,914,3.9,921,3.711,1060,3.9,1061,4.137,1062,7.082,1065,5.459,1066,4.137,1111,4.455,1147,3.101,1148,3.101,1222,4.137,1433,3.3,2168,3.9,2223,4.137,2635,4.937,2636,4.455,2637,4.937]],["t/437",[0,0.968,3,2.479,4,2.136,5,2.01,11,1.571,12,2.316,15,2.501,17,1.275,18,2.87,19,1.509,23,0.783,25,1.259,26,1.739,28,1.673,29,2.042,33,2.106,40,2.101,51,1.852,53,4.568,56,1.254,58,2.326,59,1.643,87,2.379,102,5.139,110,1.989,112,2.803,118,0.884,122,1.27,126,1.673,131,5.53,172,1.379,178,1.673,182,1.485,198,2.077,199,1.359,208,1.812,225,1.34,289,2.316,329,1.812,342,1.989,381,3.165,388,1.94,432,2.514,455,1.739,457,3.062,459,1.94,463,2.808,473,2.316,517,3.165,564,2.165,576,2.236,614,1.399,619,1.44,685,2.803,714,1.705,804,2.042,822,1.739,833,3.299,854,2.407,868,2.042,1039,2.042,1059,2.165,1080,1.894,1124,2.165,1165,2.236,1172,2.316,1357,3.007,1391,2.514,1658,3.018,1708,3.018,1716,2.101,1856,3.355,1888,3.018,2009,2.803,2012,4.095,2212,2.642,2320,2.514,2322,2.514,2422,2.514,2576,2.514,2638,3.896,2639,3.344,2640,3.344,2641,4.095,2642,3.344,2643,3.344,2644,3.344,2645,3.018,2646,3.344,2647,3.018,2648,3.344,2649,3.344,2650,3.344,2651,2.803,2652,4.095,2653,3.018,2654,3.018,2655,3.018,2656,4.677,2657,2.803,2658,3.018,2659,4.677,2660,3.018,2661,3.018,2662,3.344,2663,3.018]],["t/439",[0,1.427,9,5.536,44,3.172,50,5.713,51,4.736,58,1.855,109,4.898,411,5.373,578,3.227,619,2.931,720,3.12,831,3.947,833,4.864,982,4.712,1954,5.115,2231,7.718,2664,6.804,2665,6.804,2666,7.718]],["t/441",[0,0.876,3,1.84,9,3.716,11,1.74,15,2.77,16,2.59,23,2.155,25,1.139,28,3.833,32,2.098,33,3.114,50,3.506,58,1.565,89,3.606,92,2.125,97,4.34,100,4.132,118,1.517,122,2.91,131,3.506,432,4.315,463,3.11,486,3.975,564,3.716,833,3.983,1082,6.053,1383,5.18,1400,3.506,1644,6.421,1832,4.315,1856,3.716,1864,4.811,1934,4.811,1988,5.18,2256,4.535,2638,4.315,2645,5.18,2651,6.421,2667,5.741,2668,5.741,2669,5.741,2670,5.741,2671,5.741]],["t/443",[16,3.936,17,1.252,26,3.65,28,4.364,32,2.566,45,2.776,59,3.449,131,4.288,457,4.209,636,6.336,759,5.054,833,3.65,1101,4.726,1141,4.288,1586,5.278,2201,6.336,2636,6.336,2657,5.884,2672,7.021,2673,7.021,2674,5.884,2675,7.021]],["t/445",[57,4.027,58,1.46,59,2.631,60,4.489,61,6.598,62,4.732,63,4.834,64,6.598,65,6.598,66,3.365,67,4.834,68,4.834,69,4.489,70,4.834,71,3.272,72,3.709,73,7.495,74,6.128,75,4.489,76,4.489,77,4.834,78,4.016,79,5.388,80,6.576,81,4.834,82,4.489,83,6.128,84,6.598,85,6.598,86,6.598,91,2.273,106,3.856,199,2.177,222,3.365,279,3.709,519,4.232,529,3.034,568,3.272,683,3.467,727,3.709,847,3.365,1358,4.489,2638,4.027,2676,5.357,2677,5.357,2678,4.834,2679,4.489]],["t/448",[0,0.819,2,1.753,15,4.43,16,3.762,18,2.975,21,2.426,23,1.53,33,2.184,35,1.691,36,1.149,45,1.385,58,2.554,92,1.297,93,2.793,97,1.985,102,2.201,103,3.196,121,1.721,125,1.721,176,1.898,182,1.556,184,1.721,185,2.084,189,4.503,191,2.14,200,1.367,223,1.249,336,3.474,456,2.342,459,3.117,475,1.367,501,3.196,538,3.162,544,2.936,592,2.201,649,2.522,651,2.084,777,2.522,833,2.793,1119,2.522,1141,2.14,1170,2.426,1182,2.768,1326,4.503,1343,4.245,1357,2.033,1411,4.971,1412,6.267,1513,3.162,1529,4.912,1532,2.14,1609,2.768,1712,2.084,1716,2.201,1735,2.936,1745,2.634,1766,3.162,1967,3.162,2111,2.14,2576,2.634,2638,4.039,2680,3.504,2681,5.372,2682,3.504,2683,3.504,2684,3.504,2685,3.504,2686,3.504,2687,3.504,2688,3.504,2689,3.504,2690,3.504,2691,3.504,2692,5.372,2693,3.504,2694,3.162,2695,3.504,2696,3.504,2697,3.504,2698,3.504,2699,3.504,2700,3.504,2701,3.504,2702,3.504,2703,3.504,2704,2.268,2705,5.372,2706,3.504,2707,3.504,2708,5.372,2709,3.504,2710,3.504,2711,3.504]],["t/451",[0,1.437,18,5.217,19,3.598,92,2.952,281,5.009,511,2.741,629,4.743,698,4.87,1532,4.87]],["t/453",[0,0.864,5,1.594,21,3.924,53,4.079,58,2.494,87,2.125,92,2.098,100,4.079,145,3.21,171,2.441,191,4.639,208,4.115,217,3.371,244,4.079,296,2.441,325,4.749,459,3.287,544,4.749,546,5.444,574,2.517,714,2.889,720,2.599,894,4.079,931,5.709,932,6,934,6,936,5.467,937,3.924,940,3.559,1009,4.079,1055,3.924,1097,4.749,1343,4.477,1357,3.287,1407,4.477,1746,4.477,2308,6.854,2309,4.749,2312,5.114,2313,5.114,2422,4.26,2712,5.667,2713,5.667]],["t/455",[23,1.658,58,1.929,115,2.493,118,1.87,143,2.194,505,3.614,511,2.433,757,5.592,775,4.106,936,5.094,1009,5.094,1077,3.919,1142,5.592,1444,4.446,1712,4.21,1859,5.094,2170,6.387,2309,5.932,2704,4.581,2714,8.766,2715,5.32,2716,4.732,2717,4.581]],["t/457",[3,2.315,21,3.643,23,1.931,42,2.682,58,1.434,92,1.947,115,2.904,118,2.345,129,3.052,143,1.631,177,2.85,182,2.337,214,2.232,225,2.109,247,2.266,335,3.517,410,2.682,563,3.613,614,2.2,651,3.129,714,2.682,717,4.337,775,3.052,800,4.156,889,5.71,890,5.198,893,5,938,4.156,1013,3.304,1018,4.409,1034,4.536,1077,2.913,1142,5.705,1362,3.787,1444,3.304,1712,3.129,1869,3.955,2285,5.513,2704,3.405,2716,3.517,2717,3.405,2718,4.747,2719,4.747,2720,4.747,2721,5.261]],["t/459",[1,2.782,11,1.654,17,1.32,23,1.734,37,2.157,42,3.775,57,4.101,58,1.487,115,1.922,118,1.956,129,3.111,177,2.956,199,2.218,225,2.187,237,3.245,247,2.35,261,4.949,276,3.091,614,2.282,631,3.427,775,3.165,815,4.924,853,3.165,893,3.778,1034,5.278,1077,3.021,1444,3.427,1608,4.573,1712,3.245,1837,4.924,1856,3.532,2111,3.332,2285,5.618,2651,6.205,2704,3.532,2716,3.648,2717,3.532,2722,5.456,2723,5.456,2724,5.456,2725,5.456,2726,7.404,2727,7.404,2728,5.456,2729,5.456,2730,5.456,2731,5.456,2732,5.456]],["t/461",[5,2.04,17,1.587,19,3.272,34,5.73,36,2.379,78,3.499,92,2.685,115,2.554,143,2.758,160,5.022,184,3.562,261,4.848,410,3.698,511,3.059,619,3.124,1998,6.078,2733,7.458,2734,6.078]],["t/463",[1,3.823,17,1.62,27,3.899,28,3.752,56,2.812,143,2.324,171,3.23,177,4.063,184,3.683,457,3.618,511,2.578,653,4.711,822,3.899,2715,5.637,2735,7.499,2736,7.612]],["t/465",[17,1.489,37,2.59,42,3.34,117,3.549,118,1.731,171,2.822,177,4.524,187,2.865,199,2.663,223,2.336,237,3.897,282,3.054,285,3.897,511,2.252,530,3.628,631,4.115,651,3.897,653,4.115,757,5.176,834,3.897,852,4.24,1034,4.115,1622,4.925,2225,6.91,2285,4.38,2694,5.912,2737,5.912,2738,6.551,2739,6.551,2740,6.551,2741,6.551]],["t/467",[0,1.355,15,2.942,17,1.68,18,3.377,19,2.752,56,2.989,58,1.662,59,2.995,214,2.588,341,4.618,422,4.077,468,3.724,473,5.521,505,2.514,511,2.096,575,3.724,633,3.051,705,4.223,714,3.109,762,6.299,1039,3.724,1140,4.818,1170,4.223,1716,5.58,1859,5.739,2575,5.503,2576,4.584,2742,6.098,2743,6.098,2744,6.098,2745,6.098,2746,6.098]],["t/469",[0,0.624,2,3.019,8,2.569,17,1.279,24,1.697,25,0.811,29,2.497,34,3.231,37,1.617,52,2.862,58,1.114,59,2.964,88,1.816,90,1.735,94,2.316,110,2.432,117,3.269,122,2.724,141,2.734,143,1.267,161,3.791,163,2.599,182,2.68,199,1.662,214,1.735,223,1.458,225,1.639,237,2.432,241,2.316,246,4.161,282,2.813,347,5.125,348,2.943,350,4.192,398,3.427,494,1.973,512,2.647,614,1.71,629,2.432,684,2.497,705,4.179,717,1.906,773,2.647,775,2.372,795,2.647,818,2.432,832,2.943,834,3.59,836,3.074,837,4.034,840,5.851,940,2.569,1077,2.264,1161,2.372,1174,4.063,1357,2.372,1433,2.734,1444,2.569,1639,2.831,1655,2.943,1669,2.831,1712,2.432,1737,3.074,1761,3.074,1859,2.943,1867,3.074,1869,3.074,1908,5.058,1922,3.427,2012,3.231,2111,2.497,2316,2.647,2426,3.69,2432,3.69,2704,2.647,2716,2.734,2717,2.647,2747,4.089]],["t/471",[0,0.784,3,1.647,5,2.471,11,2.154,17,0.916,35,4.718,36,3.208,37,2.031,42,3.622,52,2.436,58,1.4,93,2.671,101,2.784,115,1.809,129,1.902,186,2.671,199,2.088,214,2.18,224,3.698,237,3.056,261,5.445,411,4.463,447,3.558,457,2.479,511,1.766,513,5.114,564,3.326,568,3.138,575,3.138,631,3.227,651,3.056,766,4.599,775,2.981,940,3.227,1007,4.75,1077,2.845,1172,3.558,1444,3.227,1655,3.698,1712,3.056,1900,4.637,2111,3.138,2320,3.862,2322,3.862,2323,4.637,2704,3.326,2716,3.435,2717,3.326,2748,4.637]],["t/473",[23,1.92,37,3.241,42,4.179,118,2.166,199,3.331,237,4.876,1119,5.9,1622,6.162]],["t/475",[0,0.911,17,1.066,18,4.356,23,1.399,52,2.833,58,1.628,90,2.535,118,2.079,185,3.553,186,4.09,187,2.613,199,2.428,294,3.846,390,4.491,475,2.33,511,3.023,530,3.308,532,2.882,574,2.653,775,3.466,833,3.106,1017,4.491,1051,6.09,1052,5.662,1074,4.72,1077,3.308,1444,3.753,1532,3.649,1712,3.553,2111,3.649,2196,4.72,2704,5.091,2715,4.491,2716,3.994,2717,3.867,2749,6.592]],["t/477",[0,1.301,11,1.269,17,1.521,18,2.318,19,1.889,35,2.02,36,2.923,42,3.13,118,1.622,121,2.056,131,2.557,177,2.268,182,2.727,191,3.75,195,2.371,199,2.495,200,1.633,229,2.49,237,2.49,247,2.645,292,2.49,329,2.268,440,2.268,457,2.02,511,3.166,532,4.115,543,5.744,545,4.266,629,2.49,631,2.63,705,2.899,720,2.816,741,2.568,833,2.176,1141,2.557,1148,2.63,1155,3.013,1357,2.428,1407,3.307,1411,3.257,1535,3.508,1786,2.71,1814,3.508,1856,2.71,2196,4.851,2652,3.307,2734,5.146,2750,3.778,2751,3.778,2752,8.528,2753,3.778,2754,3.013,2755,4.186,2756,4.186,2757,3.778,2758,5.54,2759,3.778,2760,3.778,2761,3.778,2762,3.778,2763,5.54,2764,3.778,2765,4.851,2766,3.778]],["t/479",[0,1.178,5,0.73,11,0.787,17,1.217,18,2.972,19,1.911,23,0.992,35,1.252,36,2.401,37,1.675,42,2.16,52,1.231,58,0.707,66,1.63,88,2.384,90,1.101,92,0.961,94,1.47,117,1.406,118,2.318,121,2.081,128,1.275,129,2.71,177,1.406,182,2.384,184,1.275,185,1.544,186,2.202,187,1.135,191,2.587,195,1.47,199,1.722,200,1.012,205,1.349,223,1.913,225,1.04,229,2.52,237,1.544,247,2.312,281,1.63,292,1.544,294,2.347,360,1.406,381,1.585,414,3.347,457,2.044,475,1.012,511,2.946,532,4.134,543,4.24,545,4.287,568,1.585,574,3.031,629,1.544,631,1.63,720,1.943,741,1.085,775,1.506,833,1.349,940,1.63,1017,1.951,1051,5.769,1052,4.912,1074,2.051,1077,1.437,1141,1.585,1148,1.63,1155,1.868,1357,3.113,1387,1.797,1407,2.051,1411,3.286,1444,1.63,1532,2.587,1535,2.175,1537,2.175,1669,1.797,1712,1.544,1786,2.742,1814,3.55,1856,1.68,2111,2.587,2196,4.24,2503,2.175,2652,2.051,2704,2.742,2715,1.951,2716,1.735,2717,1.68,2734,3.55,2749,3.55,2750,2.342,2751,2.342,2753,2.342,2754,1.868,2757,2.342,2758,3.823,2759,2.342,2760,2.342,2761,2.342,2762,2.342,2763,3.823,2764,2.342,2765,3.347,2766,2.342,2767,2.175,2768,5.367,2769,4.236,2770,4.236,2771,3.823,2772,6.824,2773,2.175,2774,2.596,2775,2.596,2776,2.342]],["t/481",[0,0.612,1,2.047,17,1.4,18,2.223,19,1.811,23,1.394,28,2.978,37,1.587,42,2.047,56,2.232,58,1.094,98,3.623,115,1.414,118,1.573,143,1.244,165,2.223,177,3.225,181,1.783,182,1.783,186,2.087,199,1.632,214,1.704,216,2.823,223,2.122,237,2.388,239,4.748,329,2.175,410,2.047,457,2.872,511,2.047,574,1.783,575,3.636,580,3.623,583,3.365,631,2.522,673,3.172,698,3.636,714,2.047,720,3.254,741,3.282,752,3.018,757,3.172,766,2.598,773,2.598,775,2.329,796,3.172,822,2.087,833,2.087,927,2.522,940,2.522,1077,2.223,1147,2.522,1357,2.329,1444,2.522,1712,2.388,1786,2.598,1859,2.89,2111,2.452,2174,7.922,2652,3.172,2704,2.598,2715,4.475,2716,2.684,2717,2.598,2733,3.365,2736,4.989,2767,3.365,2771,3.623,2776,3.623,2777,7.016,2778,3.623,2779,4.015,2780,4.015,2781,3.623,2782,4.015,2783,4.015,2784,4.015,2785,7.848,2786,4.015,2787,4.015]],["t/483",[0,1.11,3,0.822,5,2.553,11,0.778,17,1.299,18,4.031,19,2.775,23,1.247,24,1.907,25,1.346,26,3.785,32,0.938,36,2.017,58,0.699,59,1.26,87,2.73,88,2.364,94,1.453,115,0.903,116,3.016,118,2.31,121,2.061,129,2.277,130,1.158,143,2.257,145,3.016,157,4.573,170,1.567,182,1.139,199,1.043,223,1.496,247,1.105,252,2.765,281,1.611,294,3.629,320,2.905,446,1.122,457,1.238,475,1.001,542,2.315,545,3.393,564,1.66,574,1.864,583,2.15,599,2.024,647,2.027,714,1.308,723,2.716,741,1.073,821,3.446,822,4.168,858,1.847,902,1.567,1034,1.611,1101,2.273,1124,4.712,1172,2.905,1174,1.453,1235,2.15,1532,1.567,1622,1.928,1669,2.905,1756,3.786,1758,7.153,1786,4.974,2285,1.715,2320,3.154,2322,3.154,2503,2.15,2647,2.315,2777,1.928,2788,8.017,2789,6.57,2790,6.57,2791,2.315,2792,2.565,2793,2.565,2794,2.315,2795,4.804,2796,2.315,2797,2.565,2798,2.565,2799,2.315,2800,2.565,2801,2.565]],["t/485",[0,0.807,5,1.721,15,2.553,17,1.425,19,1.88,23,1.793,24,1.172,25,0.827,33,1.034,36,1.736,37,3.636,40,1.597,52,1.206,58,2.178,87,0.954,88,1.13,90,1.079,92,1.959,115,1.864,116,2.36,117,2.257,118,1.617,122,2.564,129,1.542,130,1.148,141,1.7,143,2.092,145,3.466,157,1.597,164,2.478,171,1.095,177,2.867,205,1.322,214,1.768,219,1.513,223,1.485,237,2.478,247,1.095,252,0.966,274,1.513,281,3.324,283,2.009,294,1.112,299,2.487,319,1.646,336,1.206,440,2.257,447,2.885,451,2.999,457,2.01,497,1.646,511,1.819,529,1.441,532,2.01,545,1.272,575,1.553,600,3.132,627,2.131,645,1.761,653,1.597,659,1.597,670,2.009,698,1.553,708,2.93,730,2.009,733,1.831,759,2.999,766,1.646,769,1.761,822,2.166,831,1.475,834,2.478,835,1.513,853,2.417,873,2.009,892,2.785,902,1.553,927,1.597,930,2.009,940,2.617,1034,1.597,1085,2.131,1124,1.646,1154,2.009,1170,2.885,1172,1.761,1294,1.646,1355,1.831,1400,1.553,1411,1.349,1681,1.912,1723,2.295,1737,3.132,1758,2.131,2225,1.912,2285,1.7,2300,2.295,2320,1.912,2322,1.912,2674,2.131,2679,2.131,2717,1.646,2733,4.435,2736,3.491,2737,2.295,2748,2.295,2749,2.131,2777,1.912,2781,2.295,2789,2.295,2790,2.295,2791,2.295,2794,4.775,2795,3.759,2796,2.295,2799,4.775,2802,2.543,2803,2.543,2804,2.543,2805,2.543,2806,2.543,2807,2.543,2808,2.543,2809,8.271,2810,2.543,2811,2.543,2812,2.543,2813,2.543,2814,2.543,2815,2.543,2816,4.166,2817,2.543,2818,2.543,2819,2.543,2820,2.543]],["t/487",[15,4.405,17,1.349,36,2.481,91,3.21,185,5.43,294,3.992,599,3.649,704,5.237,1014,6.863,1310,5.686,1411,4.013,2821,7.564,2822,7.564]],["t/489",[11,2.283,15,4.393,17,1.343,36,1.835,91,3.195,181,3.344,216,3.571,228,3.246,294,4.28,548,5.949,578,2.653,599,4.107,651,4.479,704,5.214,706,5.509,796,4.42,835,3.328,837,3.74,868,3.417,1145,5.214,1147,3.514,1280,4.42,1411,4.516,1719,4.689,1746,5.949,2823,5.595,2824,5.595,2825,6.795]],["t/491",[0,0.369,5,1.124,23,0.566,24,1.124,25,0.48,32,2.401,62,2.586,87,1.498,118,0.639,122,0.918,162,1.999,170,1.477,171,1.041,174,1.369,199,3.996,200,0.943,229,1.438,233,1.91,234,3.893,235,4.829,238,4.58,239,1.369,241,4.008,276,1.369,295,1.519,296,1.041,350,3.245,357,4.108,358,1.74,405,2.441,551,1.438,614,2.959,642,2.441,667,1.674,723,2.586,833,2.078,853,1.402,854,1.74,871,1.565,982,2.767,1044,2.767,1101,1.31,1183,2.876,1252,2.026,1433,1.616,2177,1.616,2235,2.026,2237,2.026,2250,3.157,2269,1.674,2328,8.872,2329,8.872,2330,2.182,2331,2.182,2332,2.182,2333,2.182,2334,2.182,2335,1.91,2336,2.182,2337,2.182,2338,2.182,2339,2.182,2340,2.182,2341,2.182,2342,2.182,2343,2.182,2344,3.606,2345,2.182,2346,2.182,2347,2.182,2348,2.182,2349,2.182,2350,2.182,2351,2.182,2352,2.182,2353,2.182,2354,2.182,2355,2.182,2356,2.182,2357,2.182,2358,2.182,2359,2.182,2360,2.182,2361,2.182,2362,2.182,2363,2.182,2364,2.182,2365,2.182,2366,2.182,2367,2.182,2368,2.182,2369,5.93,2370,2.182,2371,2.182,2372,2.182,2373,2.182,2374,2.182,2375,2.182,2376,2.182,2377,2.182,2378,2.182,2379,3.349,2380,2.182,2381,2.182,2382,2.182,2383,2.182,2384,2.182,2385,2.182,2386,3.606,2387,2.182,2388,2.182,2389,2.182,2390,2.182,2391,2.182,2392,2.182,2393,2.182,2394,2.182,2395,2.182,2396,2.182,2397,2.182,2398,2.182,2399,2.182,2400,2.182,2401,2.182,2402,2.182,2403,4.609,2404,2.182,2405,2.182,2406,2.182,2407,2.182,2408,2.182,2409,2.182,2410,2.182,2411,2.182,2412,2.182,2413,2.182,2414,2.182,2415,2.182]],["t/493",[0,0.751,5,0.88,15,1.51,18,1.733,19,1.413,23,1.153,24,2.342,25,1.579,33,1.272,36,1.027,37,1.238,87,1.174,88,2.186,91,1.328,118,2.487,130,1.413,161,1.966,163,2.12,171,2.62,182,1.39,199,4.042,200,1.92,203,1.733,229,1.862,247,1.348,250,2.473,285,1.862,310,1.912,350,1.436,475,1.221,494,1.51,505,1.29,545,2.463,615,3.291,642,1.912,667,2.168,706,3.296,723,2.026,741,1.309,759,2.253,797,2.253,822,1.627,835,1.862,843,2.168,1052,2.253,1174,2.788,1281,3.543,1282,4.125,1411,1.661,2109,2.825,2177,2.093,2335,2.473,2826,4.922,2827,8.899,2828,8.899,2829,2.825,2830,2.825,2831,2.825,2832,2.825,2833,2.825,2834,2.825,2835,2.825,2836,2.825,2837,4.442,2838,2.825,2839,5.489,2840,2.825,2841,2.825,2842,2.825,2843,2.825,2844,2.825,2845,2.825,2846,4.442,2847,2.825,2848,2.825,2849,2.825,2850,2.825,2851,2.825,2852,2.825,2853,5.489,2854,2.825,2855,2.825,2856,2.825,2857,2.825,2858,2.825,2859,2.825,2860,2.825,2861,2.825,2862,4.442,2863,2.825,2864,2.825,2865,3.13]],["t/495",[15,4.42,17,1.16,23,1.523,36,2.133,88,2.888,123,2.536,182,2.888,185,3.868,203,4.602,223,2.318,261,4.347,279,4.503,294,4.535,524,6.593,599,4.658,814,5.868,1148,4.085,1214,3.773,1368,5.45,1411,4.409,2765,5.138]],["t/498",[0,0.713,3,1.499,9,3.026,11,1.417,23,1.095,25,0.927,48,2.217,50,2.855,51,2.588,58,2.109,78,2.256,79,5.456,80,5.253,90,1.984,91,3.284,176,2.533,229,2.781,251,3.026,314,3.514,350,2.144,411,2.936,494,2.256,501,2.781,519,3.693,520,3.125,521,3.365,529,2.648,578,2.217,619,2.014,708,2.588,717,2.179,720,2.144,854,3.365,1077,2.588,1183,3.365,1205,3.514,1273,4.218,1357,2.712,1358,5.573,1400,2.855,1411,4.106,1414,3.365,1517,3.125,1604,3.693,1991,4.218,2433,6,2638,3.514,2666,4.218,2678,4.218,2679,3.918,2866,4.675,2867,6.649,2868,4.675,2869,4.675,2870,6.649,2871,4.675,2872,6.649,2873,6.649,2874,6.649,2875,7.739,2876,7.739,2877,7.739,2878,4.675,2879,4.675,2880,4.675,2881,4.675]],["t/500",[0,0.837,5,1.544,15,4.359,17,1.504,18,4.117,19,3.355,23,1.286,36,2.765,90,2.33,91,2.33,146,4.67,185,4.422,203,4.117,294,4.578,336,2.603,360,2.974,524,6.503,555,3.67,599,4.802,1148,4.67,1170,5.148,1246,5.874,1411,3.944,1786,3.554,2765,5.874]],["t/502",[17,1.209,78,2.317,118,1.269,122,1.824,126,3.391,131,2.933,171,2.068,198,3.743,204,3.753,252,1.824,255,4.333,272,4.025,321,3.456,475,1.873,502,4.333,563,2.402,578,2.277,693,2.448,743,4.025,795,3.108,847,3.016,912,3.61,1059,3.108,1121,3.108,1152,4.333,1165,4.531,1387,3.325,1834,3.794,1955,4.333,2111,4.139,2448,6.116,2653,4.333,2654,4.333,2655,4.333,2656,7.699,2657,4.025,2658,6.116,2659,8.119,2660,4.333,2661,6.116,2663,4.333,2882,4.802,2883,4.802,2884,4.802,2885,7.854,2886,4.802,2887,4.802,2888,4.802,2889,4.802,2890,4.802,2891,4.802,2892,4.802,2893,4.802,2894,4.802,2895,4.802,2896,4.802,2897,6.777,2898,4.333,2899,4.802,2900,4.802,2901,4.802]],["t/504",[5,1.856,17,1.177,56,3.146,115,2.324,118,2.217,129,3.106,184,3.242,195,3.739,225,2.646,511,2.884,563,3.302,606,5.215,684,5.124,697,5.215,714,3.365,741,3.509,795,4.272,853,3.829,889,4.57,890,4.751,902,4.031,1006,5.215,1012,5.215,1013,4.146,1015,5.532,2641,5.215,2902,6.6,2903,6.6]],["t/506",[213,3.664,214,3.462,239,3.578,575,5.518,843,4.374,853,5.241,907,4.547,1006,7.544,1023,6.837,1025,4.99,1028,4.99,2719,8.153,2904,6.317,2905,6.317,2906,8.157,2907,6.317,2908,9.035,2909,9.035,2910,6.317,2911,6.317,2912,6.317,2913,6.317,2914,6.317,2915,6.317]],["t/508",[0,1.088,32,2.608,35,3.443,37,2.821,115,3.366,172,2.941,181,3.169,199,2.9,246,4.139,262,4.77,296,3.073,511,3.029,993,5.637,1011,5.98,1012,5.637,1013,5.534,1224,4.94,2316,4.618,2916,7.135,2917,7.135]],["t/510",[5,2.371,23,1.975,117,4.568,118,2.228,223,3.006]],["t/512",[11,2.146,36,2.875,78,3.415,87,2.654,118,2.792,282,3.3,505,3.614,563,3.541,1055,6.07,1077,3.919,1344,4.732,1873,6.926,2918,7.078,2919,5.592,2920,4.901]],["t/515",[0,1.205,5,2.223,23,1.851,78,3.813,118,2.476,143,2.449,223,2.817,532,3.813,545,3.954,822,4.109,2921,7.903]],["t/517",[0,0.19,1,0.634,3,0.399,4,0.513,5,0.631,13,0.66,17,1.071,23,0.526,24,1.057,25,0.745,26,1.167,27,2.258,33,0.506,37,0.492,49,0.76,56,0.466,58,1.184,66,0.781,87,0.842,89,0.781,91,0.528,92,0.46,100,0.895,115,0.791,118,1.587,119,0.781,122,0.853,126,0.622,127,0.832,129,1.607,143,0.951,145,2.992,154,1.688,157,0.781,163,0.536,164,2.235,171,0.967,176,1.662,178,2.834,186,0.647,188,1.123,192,0.689,195,2.128,199,1.247,208,1.216,213,0.722,214,3.773,216,2.298,223,1.094,225,0.499,228,0.722,239,0.705,246,0.722,252,0.472,258,0.861,259,1.453,260,1.501,266,0.832,267,0.895,268,3.658,276,2.128,279,0.861,282,1.431,290,0.935,292,0.74,294,0.544,296,2.275,309,1.41,310,1.371,313,0.781,322,1.564,327,2.125,335,0.832,367,1.662,384,2.209,385,4.175,388,0.722,391,3.226,410,1.916,440,0.674,459,0.722,494,1.083,506,0.895,511,2.064,525,0.861,532,1.083,545,1.123,547,0.935,551,2.235,552,1.927,563,0.622,575,1.371,592,1.41,599,0.6,602,0.895,612,1.688,614,3.105,615,0.832,616,1.042,617,0.983,620,0.895,659,0.781,682,0.781,684,1.371,693,0.634,695,1.335,706,2.862,707,1.216,714,1.145,717,1.431,733,0.895,734,2.704,741,2.944,746,1.042,750,0.895,752,0.935,772,1.555,795,0.805,805,0.983,818,0.74,819,5.33,820,0.935,821,0.805,822,0.647,823,0.935,824,0.895,825,0.935,826,0.935,827,2.125,828,0.935,829,2.36,830,1.738,831,0.722,833,2.519,834,0.74,835,1.825,843,2.125,846,0.861,847,0.781,849,4.554,850,1.453,853,2.18,856,0.74,858,1.616,859,0.895,860,1.688,861,0.935,862,0.935,863,0.935,864,0.935,865,0.935,866,1.688,867,0.861,868,1.371,869,0.832,870,1.042,871,2.811,879,0.935,880,1.042,881,0.983,888,0.935,889,1.555,890,0.895,891,0.74,892,0.832,893,0.861,894,0.895,895,0.983,896,0.983,897,1.042,898,1.042,899,1.042,900,1.042,901,1.122,902,1.874,903,1.042,907,1.616,914,0.983,921,1.688,927,1.41,936,1.616,937,1.555,944,3.149,957,0.983,958,1.616,959,0.935,960,1.122,961,0.983,962,0.983,963,1.688,964,1.501,965,0.935,966,0.983,967,0.983,993,0.983,994,1.122,995,2.026,996,1.122,997,1.122,998,1.122,999,1.122,1000,1.122,1001,1.774,1002,0.983,1003,1.122,1004,1.122,1005,1.122,1006,1.774,1007,1.501,1008,1.122,1009,0.895,1010,0.895,1011,1.042,1012,0.983,1013,0.781,1014,0.935,1015,1.042,1016,1.042,1017,0.935,1018,1.042,1019,1.122,1020,1.122,1021,1.122,1022,0.935,1023,1.042,1024,1.042,1025,1.774,1026,1.042,1027,1.042,1028,0.983,1029,1.882,1030,1.042,1031,0.983,1032,1.882,1033,1.042,1034,0.781,1035,1.042,1036,1.042,1037,1.122,1038,1.882,1039,0.76,1040,1.122,1041,0.983,1042,1.122,1043,0.983,1044,0.861,1045,1.122,1046,1.688,1047,1.042,1048,0.935,1049,1.042,1050,0.983,1051,0.861,1052,0.895,1053,1.122,1054,1.122,1055,0.861,1056,1.122,1057,2.026,1058,1.122,1059,0.805,1060,0.983,1061,1.882,1062,2.307,1063,1.042,1064,0.935,1065,0.983,1066,1.042,1067,1.616,1068,1.122]],["t/519",[505,3.544,511,2.955,2922,6.792]],["t/521",[11,1.943,17,1.143,24,1.802,25,1.271,36,2.102,37,2.534,58,2.244,92,2.372,171,2.76,213,3.718,214,2.72,367,3.472,385,3.918,505,2.642,511,2.83,619,2.76,717,2.988,819,4.898,829,4.025,835,3.812,846,4.437,849,4.437,869,4.284,1001,6.505,1002,5.063,1055,4.437,1873,5.063,2078,5.371,2565,4.613,2922,5.063,2923,4.817,2924,5.783]],["t/523",[511,2.955,1344,5.747,2922,6.792]],["t/525",[11,1.799,17,1.058,24,1.669,25,1.177,27,3.085,36,1.946,37,2.346,58,2.134,92,2.197,171,2.556,213,3.442,214,2.518,252,2.254,367,3.215,385,4.015,511,2.692,619,2.556,717,2.766,741,2.481,819,5.214,829,3.727,835,3.53,846,4.109,849,4.109,869,3.967,1001,6.187,1002,4.688,1055,5.423,1344,5.235,1873,6.187,2078,4.973,2108,4.688,2565,4.271,2922,4.688,2923,4.461,2924,5.355,2925,4.688,2926,5.934]],["t/527",[0,1.054,3,2.216,5,1.944,29,4.221,35,3.335,118,1.826,122,2.625,123,2.696,181,3.07,188,3.457,201,4.974,223,2.464,274,4.111,329,3.744,505,3.56,532,4.546,545,3.457,720,3.169,741,2.89,1051,4.785,2240,5.792,2246,5.46,2754,4.974,2927,5.46,2928,6.911]],["t/529",[0,1.154,3,2.425,118,2.412,143,2.344,505,3.763,545,3.784,720,3.468,822,3.932,1046,5.686,1048,5.686,1856,4.896,2246,5.976,2754,5.444,2929,7.564,2930,7.564]],["t/531",[11,1.986,36,2.149,37,3.301,58,2.276,118,2.207,164,4.967,214,3.544,309,4.115,385,3.597,511,2.871,532,3.161,545,4.178,547,4.925,602,4.716,619,2.822,819,4.967,1046,6.277,1047,5.491,1048,4.925,1049,5.491,1050,5.176,1051,4.536,1052,4.716,2565,4.716,2923,4.925]],["t/533",[27,4.426,118,2.25,282,3.969,741,3.56]],["t/535",[0,1.239,27,4.222,118,2.517,282,4.44,505,3.348,741,3.396,2674,6.806]],["t/537",[118,2.45,122,2.949,129,2.874,172,3.2,379,4.119,505,3.2,852,5.025,1077,5.135,2108,6.134,2919,6.134,2925,7.326]],["t/539",[0,1.262,27,4.301,118,2.544,143,2.564,276,3.657,379,4.389,546,3.84,741,3.818,822,4.301,1060,5.1,1062,4.853,1065,5.1,1077,5.331,2919,7.606,2925,6.536,2931,8.687,2932,6.455]],["t/541",[11,2.047,27,3.51,36,2.215,37,2.669,47,5.076,122,2.565,192,3.739,214,2.865,216,3.202,237,4.016,244,4.86,385,4.015,619,2.908,633,3.378,741,2.824,819,4.016,830,4.822,849,4.675,1077,4.713,1353,5.076,2548,5.659,2565,4.86,2919,5.335,2923,5.076,2925,5.335,2933,6.752,2934,6.752]],["t/543",[87,3.388,118,2.388,122,2.825,172,3.065,379,3.945,563,4.52,591,5.59,705,5.149,708,4.117,852,4.813,1353,5.59,2108,5.875,2920,6.257,2935,7.573]],["t/545",[0,1.134,27,3.866,58,2.463,87,3.388,118,2.388,379,3.945,563,4.52,741,3.11,2920,6.257,2931,8.154,2935,6.232,2936,6.71,2937,6.71]],["t/547",[11,1.902,27,3.261,36,2.057,37,2.48,92,3.333,118,1.657,129,3.006,142,4.193,178,3.138,213,5.224,385,3.878,501,3.731,592,3.939,619,2.701,717,3.786,741,3.396,819,5.356,1017,4.714,1920,5.256,2565,4.514,2920,4.343,2923,4.714,2935,5.256,2936,5.659,2937,5.659,2938,9.004,2939,6.272,2940,6.272]],["t/549",[0,1.262,5,2.327,11,2.509,12,5.729,29,5.053,118,2.186,2941,8.274]],["t/551",[0,1.115,3,2.344,5,2.057,17,1.595,92,2.707,94,4.142,118,2.553,223,2.607,316,3.962,389,6.128,511,2.514,545,3.658,720,4.101,895,5.777,2777,5.497,2920,5.063,2942,7.313]],["t/553",[3,1.996,17,1.442,35,3.005,36,2.043,44,2.903,53,4.482,59,3.059,108,5.219,110,3.704,118,1.646,165,3.448,305,4.312,316,3.374,505,2.567,511,2.141,545,4.044,574,2.766,645,5.597,651,3.704,708,4.475,714,3.175,720,3.706,741,2.604,1329,4.482,1856,5.232,2098,4.681,2168,4.92,2246,4.92,2754,4.482,2777,6.076,2943,6.227,2944,6.227,2945,6.227,2946,6.227,2947,6.227]],["t/555",[0,0.97,17,1.277,32,2.325,36,2.086,37,2.832,88,1.491,90,1.425,94,1.902,116,1.902,117,1.819,118,2.447,122,1.275,128,1.649,146,3.265,172,1.384,181,1.491,184,1.649,186,1.745,199,1.364,201,2.416,203,2.878,223,1.197,225,2.083,263,2.652,274,3.784,281,4.867,282,2.423,294,1.468,329,4.439,367,2.816,410,2.65,414,4.107,489,2.813,497,4.117,505,4.208,511,2.817,545,4.957,547,4.782,555,2.244,574,1.491,591,2.523,612,2.523,698,2.05,714,1.712,730,2.652,741,3.427,1046,5.824,1050,5.026,1051,4.405,1079,2.416,1353,2.523,1380,2.324,2641,2.652,2778,5.74,2927,2.652,2948,3.357,2949,3.357,2950,3.357,2951,7.748,2952,7.748]],["t/557",[3,2.173,11,1.456,17,1.209,23,1.125,24,1.351,25,0.953,52,2.277,78,2.317,91,2.038,92,1.778,93,2.497,115,2.766,118,2.075,129,3.158,172,1.98,178,2.402,181,3.488,182,2.133,184,2.359,200,1.873,223,1.712,225,1.925,247,2.068,259,3.108,260,3.21,296,2.068,335,3.21,410,2.448,440,2.602,614,2.008,659,3.016,684,4.139,697,3.794,705,3.325,717,4.474,800,5.354,805,3.794,888,5.095,889,6.645,890,6.476,938,3.794,993,3.794,1013,4.933,1016,4.025,1147,3.016,1362,3.456,1869,3.61,2718,4.333,2720,6.116,2953,4.802,2954,4.802]],["t/559",[0,0.355,3,0.746,5,1.089,11,0.706,17,1.034,23,0.545,24,1.953,25,1.277,33,3.355,37,1.966,52,1.104,58,0.635,78,1.869,87,3.312,88,1.034,90,0.988,115,1.364,118,1.835,121,1.144,123,1.94,129,2.854,146,2.433,171,1.003,172,0.96,178,1.165,188,1.938,192,3.563,198,0.933,200,0.908,203,1.289,204,1.289,214,2.11,216,1.104,219,1.385,223,0.83,247,2.772,277,1.21,279,2.682,292,1.385,296,1.668,300,1.612,318,2.101,331,1.351,380,4.488,428,1.507,446,1.018,459,1.351,475,0.908,490,1.75,494,1.869,514,4.357,521,4.632,525,2.682,555,1.556,563,1.165,575,4.242,612,1.75,614,4.135,624,3.246,673,3.06,705,1.612,720,1.068,733,3.58,750,2.788,796,1.839,843,2.682,847,2.433,853,5.21,926,1.839,927,1.462,944,4.168,1007,1.556,1022,1.75,1025,3.929,1026,1.951,1027,1.951,1028,1.839,1029,1.951,1030,4.168,1031,3.06,1032,3.246,1033,6.919,1034,3.641,1035,1.951,1036,1.951,1038,3.246,1039,1.422,1041,1.839,1059,2.507,1067,1.676,1221,1.839,1246,1.839,1309,1.75,1322,1.676,1406,1.676,1640,3.495,1784,1.839,2225,3.738,2641,1.839,2767,3.246,2825,2.101,2898,3.495,2955,2.328,2956,2.328,2957,2.328,2958,2.328,2959,3.873,2960,2.328,2961,3.873,2962,3.873,2963,2.328,2964,2.328,2965,2.328,2966,2.328,2967,2.328,2968,3.873,2969,2.328,2970,2.328,2971,2.328,2972,2.328,2973,2.328,2974,2.328,2975,2.328]],["t/561",[3,3.004,17,1.073,24,2.482,26,4.108,28,4.869,51,3.33,135,5.041,143,1.864,163,3.801,182,2.671,379,3.191,464,4.021,504,4.329,717,2.804,822,4.588,824,5.687,1048,7.044,1329,4.329,1362,4.329,1834,6.243,2754,7.006,2976,6.015,2977,6.015,2978,6.015]],["t/563",[0,1.002,23,0.827,24,2.352,25,1.46,32,1.976,33,1.435,36,1.158,88,2.401,118,2.372,143,1.095,161,2.219,163,2.328,171,2.828,199,4.1,200,1.378,203,1.956,244,2.542,304,2.219,310,2.157,505,1.456,545,2.704,615,3.614,642,2.157,723,2.286,822,1.836,835,2.101,843,2.446,1174,3.062,1281,3.891,1282,4.53,2177,2.361,2324,3.187,2335,2.79,2827,9.103,2828,9.103,2829,3.187,2830,3.187,2831,3.187,2832,3.187,2833,3.187,2834,3.187,2835,3.187,2836,3.187,2837,4.878,2838,3.187,2839,5.926,2840,3.187,2841,3.187,2842,3.187,2843,3.187,2844,3.187,2845,3.187,2846,4.878,2847,3.187,2848,3.187,2849,3.187,2850,3.187,2851,3.187,2852,3.187,2853,5.926,2854,3.187,2855,3.187,2856,3.187,2857,3.187,2858,3.187,2859,3.187,2860,3.187,2861,3.187,2862,4.878,2863,3.187,2864,3.187]],["t/566",[0,1.106,17,1.294,48,3.439,58,2.425,341,3.77,463,3.929,588,6.078,615,4.848,633,3.628,727,5.022,1519,6.078,1716,6.047,1831,5.22,1934,6.078,1936,6.544,1998,6.078,2979,7.252,2980,7.252,2981,7.252]],["t/568",[16,3.194,17,1.262,27,3.68,51,4.854,58,2.389,143,2.194,463,3.834,511,2.433,513,5.094,574,3.143,727,4.901,850,4.581,1208,5.932,1277,4.106,1716,4.446,2608,6.387,2982,9.523,2983,7.078,2984,7.078,2985,7.078,2986,7.078]],["t/573",[352,3.966,404,7.25,405,6.237,406,6.135,413,7.25,416,6.884,420,6.898,2987,6.884,2988,7.629]],["t/575",[174,5.576,352,4.469]],["t/577",[14,4.177,114,4.929,252,2.801,303,4.497,313,4.632,384,5.307,386,5.106,421,6.654,423,6.18,1429,5.826,1997,7.534,2079,6.654,2080,7.534,2773,7.534,2989,7.374,2990,6.654]],["t/579",[3,2.424,4,3.117,11,1.707,25,1.117,29,3.439,56,2.111,58,2.595,165,3.118,201,6.854,301,6.338,367,3.05,378,3.649,392,5.081,393,5.081,545,3.783,546,4.498,592,4.75,707,3.05,720,2.582,741,3.571,1174,4.284,1224,3.899,1990,4.448,2920,6.321,2927,4.448,2991,9.128,2992,5.631,2993,5.081,2994,6.824,2995,6.824,2996,5.081]],["t/581",[0,1.115,3,2.867,4,3.014,6,5.066,13,3.879,17,1.304,22,4.889,35,3.528,44,3.409,140,4.241,568,4.466,1294,4.733,1431,5.497,1898,5.777,2997,7.313,2998,7.313,2999,7.313,3000,7.313]],["t/583",[0,0.832,3,3.114,4,3.884,5,2.534,6,3.091,17,1.499,20,4.101,23,1.278,24,1.534,44,2.544,115,1.922,129,2.02,143,1.691,163,2.35,225,2.187,271,3.532,295,3.427,296,3.189,310,3.332,311,3.332,316,4.011,322,2.782,331,3.165,344,4.792,362,4.924,367,2.956,368,3.427,369,2.956,384,3.927,385,3.62,475,2.128,599,2.633,611,4.101,645,3.778,656,4.924,682,3.427,730,4.311,740,3.427,892,3.648,1110,4.573,1165,3.648,1174,3.091,3001,5.456]],["t/586",[3,1.969,4,2.531,11,1.862,29,3.75,58,2.429,165,3.4,201,7.053,301,5.146,367,3.327,378,3.864,545,4.007,546,4.764,592,3.857,707,3.327,720,2.816,741,3.727,1174,3.478,1224,4.252,1990,4.851,2920,7.086,2927,4.851,2993,5.541,2994,7.227,2995,7.227,2996,5.541]],["t/588",[14,4.212,114,4.971,252,2.825,303,4.52,313,5.676,384,6.504,386,5.149,423,6.232,1429,5.875,1997,7.573,2080,7.573,2773,7.573,2990,6.71]],["t/590",[174,5.171,352,4.746,405,6.219,406,6.103,413,7.213,420,7.655,2987,6.825]]],"invertedIndex":[["",{"_index":58,"t":{"7":{"position":[[32,1]]},"19":{"position":[[372,1],[660,1],[684,1],[711,1],[736,1],[757,1],[774,1],[803,1],[1769,1],[1793,1],[1820,1],[1849,1],[1863,1],[1882,1],[1924,1],[1950,1],[2841,2],[3198,1],[3248,1],[3258,1],[3260,1],[3273,6],[3287,3],[3316,7],[3369,1],[3371,2],[3382,1],[3395,1],[3397,1]]},"81":{"position":[[0,1],[15,2]]},"85":{"position":[[0,1],[42,1],[78,1],[121,2],[181,2]]},"87":{"position":[[14,2],[52,2],[95,2],[133,2],[168,2],[219,2]]},"91":{"position":[[391,1]]},"95":{"position":[[442,1],[528,1]]},"97":{"position":[[69,2],[217,2],[333,2]]},"99":{"position":[[0,2]]},"107":{"position":[[617,1],[630,1],[1234,2],[1318,3],[1322,2]]},"109":{"position":[[832,1],[929,1]]},"132":{"position":[[2290,3],[2439,3],[2625,3],[3791,1],[3817,1],[3897,1],[3923,1],[6755,1],[6757,4],[6762,1],[8092,3],[8170,1],[8196,1],[9853,1],[9876,1]]},"174":{"position":[[238,99],[338,1],[345,1],[351,1],[358,1],[365,1],[374,1],[382,1],[393,1],[404,1],[413,1],[415,99],[515,1],[525,1],[531,1],[536,1],[547,1],[552,1],[556,1],[561,1],[568,1],[572,1],[574,1],[584,1],[590,1],[595,1],[606,1],[611,1],[615,1],[620,1],[627,1],[631,1],[633,1],[643,1],[649,1],[654,1],[665,1],[670,1],[674,1],[679,1],[686,1],[690,1],[692,1],[702,1],[708,1],[713,1],[724,1],[729,1],[733,1],[738,1],[745,1],[749,1],[751,1],[761,1],[767,1],[772,1],[783,1],[788,1],[792,1],[797,1],[804,1],[808,1],[810,1],[820,1],[826,1],[831,1],[842,1],[847,1],[857,1],[862,1],[869,1],[873,1],[875,1],[885,1],[891,1],[896,1],[907,1],[912,1],[922,1],[927,1],[934,1],[938,1],[940,1],[950,1],[956,1],[961,1],[973,1],[978,1],[988,1],[993,1],[1000,1],[1004,1],[1006,99],[1106,1],[1178,1],[1180,99]]},"186":{"position":[[502,1],[559,1],[579,1],[635,2],[647,1],[649,1],[712,1],[727,1],[786,1],[835,1],[859,1],[1008,1]]},"190":{"position":[[74,1],[176,1],[525,1]]},"201":{"position":[[343,1]]},"203":{"position":[[5,1],[25,1],[53,1],[99,1],[108,1],[2531,1]]},"205":{"position":[[1261,1]]},"213":{"position":[[329,3],[364,1],[491,2]]},"233":{"position":[[202,1]]},"247":{"position":[[42,3],[58,1],[60,3],[67,1],[69,3],[78,1],[80,3],[102,1],[104,3],[122,3],[135,3],[144,1],[261,1],[281,1],[303,1],[339,1],[404,1],[455,1],[502,1],[512,1],[555,1],[578,1],[600,1],[665,1],[733,1],[780,1],[846,1],[916,1],[976,1],[999,1],[1041,1],[1124,1],[1154,1],[1171,1],[1216,1],[1229,2],[1246,1],[1273,1],[1288,1],[1358,1],[1428,1],[1492,1],[1564,1],[1616,1]]},"249":{"position":[[0,1],[37,1],[57,1],[97,1],[109,1],[111,1],[142,1],[144,1],[157,1],[159,1],[187,1],[189,1],[232,1],[234,1],[243,1],[245,1],[274,1],[276,1],[278,1],[295,1],[297,1],[363,1],[445,1],[523,1],[529,1],[605,1],[614,1],[630,1],[645,1],[664,1],[676,1]]},"251":{"position":[[788,1],[825,1],[845,1],[862,1],[875,1],[877,1],[905,1],[907,1],[950,1],[952,1],[961,1],[963,1],[992,1],[994,1],[996,1],[1013,1],[1015,1],[1071,1],[1132,1],[1164,1],[1186,1],[1216,1],[1282,1],[1335,1],[1344,1],[1390,1],[1428,1],[1459,1],[1475,1],[1490,1],[1509,1],[1522,1],[1566,1],[1828,1],[1891,1],[1953,1],[2544,1],[2571,1],[2581,2],[2594,1],[2621,1],[2631,2],[2648,1],[2674,1]]},"253":{"position":[[0,1],[58,1],[80,1]]},"255":{"position":[[531,1],[589,1],[609,1],[638,1],[711,1],[762,1],[816,1],[859,1],[861,1],[891,1],[893,1],[926,1],[928,1],[951,1],[953,1],[975,1],[977,1],[985,1],[987,1],[1002,1],[1004,1],[1012,1],[1014,1],[1021,1],[1023,1],[1033,1],[1113,1],[1177,1],[1231,1],[1249,1],[1264,1],[1313,1],[1357,2],[1360,1],[1368,1],[1389,1],[1394,5],[1400,1],[1481,1],[1556,1],[1643,1],[1725,1],[1811,1],[1886,1],[1939,1],[1954,1],[1968,1],[1979,1],[2068,2],[2071,1],[2106,2],[2109,1],[2130,1],[2150,1],[2225,1]]},"276":{"position":[[90,1],[110,1],[165,1]]},"278":{"position":[[256,1],[366,1],[418,1],[475,1],[545,1],[632,1],[846,1],[909,2],[912,3],[916,2],[1105,2],[1108,1],[1187,3],[1285,2],[1288,1],[1371,3]]},"280":{"position":[[276,2],[942,2],[945,2],[948,1],[970,2],[973,1],[975,2],[1014,2],[1045,2],[1053,3]]},"288":{"position":[[241,1],[352,1],[400,1],[536,3],[551,1],[587,1],[649,1],[1660,1],[1771,1],[1819,1],[1978,3],[1993,1],[2029,1],[2091,1],[2263,1],[2283,1],[2344,1],[2397,1]]},"292":{"position":[[0,1],[14,1],[23,2],[257,2],[339,1],[365,1],[405,1],[447,1],[481,1],[517,1],[548,2],[563,1],[581,1],[599,2],[618,2],[648,1],[669,1],[695,1],[713,1],[743,1],[763,1],[790,1],[814,1],[851,1],[876,1],[902,1],[925,1],[942,1],[965,2],[981,2],[996,2],[1014,2],[1036,2],[1056,2],[1079,2],[1103,1],[1125,1],[1154,1],[1171,1],[1189,2],[1228,2],[1254,2],[1282,1],[1325,1],[1370,1],[1401,1],[1427,2],[1449,2]]},"320":{"position":[[2290,3],[2439,3],[2625,3],[3758,1],[3784,1],[3864,1],[3890,1],[6615,1],[6617,4],[6622,1]]},"322":{"position":[[698,1],[747,3],[773,1],[820,3],[847,3],[862,1],[891,3],[899,3],[916,3],[929,1],[964,1],[966,3],[981,3],[995,1],[1037,3],[1068,1],[1118,3],[1145,3],[1163,1],[1192,3],[1209,1],[1254,1],[1256,3],[1271,3],[1291,1],[1332,1],[1334,3],[1353,3],[1363,1],[1401,1],[1403,3],[1421,3],[1433,1],[1473,1],[1475,3],[1535,1],[1537,3],[1597,3],[1611,1],[1653,1],[1655,3],[1715,1],[1717,1],[1719,3],[1744,1],[1746,3],[1806,1],[1808,3],[1833,3],[1848,1],[1891,3]]},"324":{"position":[[274,1]]},"366":{"position":[[1125,1]]},"368":{"position":[[208,1],[220,1],[3262,1]]},"387":{"position":[[937,1],[939,4],[944,1]]},"395":{"position":[[392,2]]},"409":{"position":[[203,1],[224,1],[249,1],[293,1]]},"415":{"position":[[266,2]]},"437":{"position":[[748,1],[776,1],[802,1],[822,1],[836,1],[892,1],[1550,1]]},"439":{"position":[[134,3]]},"441":{"position":[[295,1]]},"445":{"position":[[459,1]]},"448":{"position":[[293,1],[471,1],[594,1],[596,3],[616,2],[653,1],[655,1],[702,1],[1296,1],[1298,2]]},"453":{"position":[[182,1],[195,1],[260,1],[437,2]]},"455":{"position":[[148,1]]},"457":{"position":[[732,1]]},"459":{"position":[[555,1]]},"467":{"position":[[424,2]]},"469":{"position":[[1149,1]]},"471":{"position":[[613,1]]},"475":{"position":[[443,1]]},"479":{"position":[[1221,1]]},"481":{"position":[[1205,1]]},"483":{"position":[[415,1]]},"485":{"position":[[99,1],[595,1],[1452,1],[1496,1],[2513,1],[2515,1],[2565,2],[2568,1]]},"498":{"position":[[454,1],[646,1],[796,3]]},"517":{"position":[[1672,3],[1750,1],[1776,1],[3926,1],[3949,1]]},"521":{"position":[[130,1],[156,1]]},"525":{"position":[[130,1],[156,1]]},"531":{"position":[[192,1],[215,1]]},"545":{"position":[[157,3],[182,3]]},"559":{"position":[[2696,1]]},"566":{"position":[[0,1],[112,2]]},"568":{"position":[[0,2],[64,2]]},"579":{"position":[[56,1],[65,1],[140,1],[149,1],[193,1]]},"586":{"position":[[34,1],[43,1],[76,1]]}}}],["0",{"_index":239,"t":{"19":{"position":[[2919,1]]},"21":{"position":[[209,1],[241,1],[280,1]]},"132":{"position":[[2112,1]]},"174":{"position":[[570,1],[629,1],[688,1],[747,1],[806,1],[871,1],[936,1]]},"251":{"position":[[1342,1]]},"312":{"position":[[1062,1]]},"320":{"position":[[2112,1]]},"364":{"position":[[2135,1]]},"368":{"position":[[406,1],[577,1]]},"387":{"position":[[1911,1]]},"481":{"position":[[776,1],[901,2],[1040,2],[1078,2],[1131,1]]},"491":{"position":[[1690,1]]},"506":{"position":[[308,3]]},"517":{"position":[[1062,1]]}}}],["0..0",{"_index":220,"t":{"19":{"position":[[2162,4]]}}}],["0..4",{"_index":2787,"t":{"481":{"position":[[1174,4]]}}}],["0..5",{"_index":2786,"t":{"481":{"position":[[818,4]]}}}],["0..7",{"_index":152,"t":{"19":{"position":[[731,4]]},"132":{"position":[[11336,6]]}}}],["0.0.0.0",{"_index":971,"t":{"132":{"position":[[6124,9]]},"320":{"position":[[5984,9]]},"387":{"position":[[644,9]]}}}],["0.03",{"_index":2731,"t":{"459":{"position":[[473,4]]}}}],["0.75",{"_index":1274,"t":{"174":{"position":[[1130,5],[1148,4]]}}}],["00:31",{"_index":1446,"t":{"203":{"position":[[1152,5]]}}}],["00:35",{"_index":1451,"t":{"203":{"position":[[1211,5],[1674,5]]}}}],["00:36",{"_index":1439,"t":{"203":{"position":[[1089,5],[1266,5],[1344,5],[1426,5],[1509,5],[1592,5],[1757,5],[1840,5],[1923,5],[2006,5],[2089,5],[2172,5],[2255,5],[2338,5],[2421,5]]}}}],["01",{"_index":2828,"t":{"493":{"position":[[329,2],[456,2],[555,2],[648,2],[694,2],[821,2],[948,2],[1015,2],[1080,2],[1174,2],[1282,2],[1522,2],[1711,2],[1900,2],[1965,2],[2038,2]]},"563":{"position":[[151,2],[278,2],[377,2],[470,2],[516,2],[643,2],[770,2],[837,2],[902,2],[996,2],[1104,2],[1344,2],[1533,2],[1722,2],[1787,2],[1860,2]]}}}],["03:06:35.048",{"_index":2829,"t":{"493":{"position":[[332,14]]},"563":{"position":[[154,14]]}}}],["03:06:35.050",{"_index":2833,"t":{"493":{"position":[[459,14]]},"563":{"position":[[281,14]]}}}],["03:06:35.697",{"_index":2835,"t":{"493":{"position":[[558,14]]},"563":{"position":[[380,14]]}}}],["03:06:35.698",{"_index":2839,"t":{"493":{"position":[[651,14],[697,14],[824,14]]},"563":{"position":[[473,14],[519,14],[646,14]]}}}],["03:06:35.732",{"_index":2842,"t":{"493":{"position":[[951,14]]},"563":{"position":[[773,14]]}}}],["03:09:23.813",{"_index":2844,"t":{"493":{"position":[[1018,14]]},"563":{"position":[[840,14]]}}}],["03:09:23.816",{"_index":2845,"t":{"493":{"position":[[1083,14]]},"563":{"position":[[905,14]]}}}],["03:09:23.818",{"_index":2846,"t":{"493":{"position":[[1177,14],[1285,14]]},"563":{"position":[[999,14],[1107,14]]}}}],["03:09:23.830",{"_index":2853,"t":{"493":{"position":[[1525,14],[1714,14],[1903,14]]},"563":{"position":[[1347,14],[1536,14],[1725,14]]}}}],["03:15:50.191",{"_index":2860,"t":{"493":{"position":[[1968,14]]},"563":{"position":[[1790,14]]}}}],["03:16:02.728",{"_index":2863,"t":{"493":{"position":[[2041,14]]},"563":{"position":[[1863,14]]}}}],["05",{"_index":1441,"t":{"203":{"position":[[1107,2]]}}}],["0755",{"_index":2686,"t":{"448":{"position":[[211,4]]}}}],["09",{"_index":1569,"t":{"222":{"position":[[122,2]]}}}],["0x",{"_index":2170,"t":{"312":{"position":[[1295,2]]},"455":{"position":[[82,2]]}}}],["0x0000000000000000000000000000000000000000",{"_index":903,"t":{"132":{"position":[[3194,44]]},"320":{"position":[[3147,44]]},"517":{"position":[[2485,44]]}}}],["0x00000000219ab540356cbb839cbe05303d7705fa",{"_index":2977,"t":{"561":{"position":[[232,42]]}}}],["0x0000…0000:0",{"_index":242,"t":{"19":{"position":[[2946,13]]}}}],["0x08b1",{"_index":2508,"t":{"368":{"position":[[2056,8]]}}}],["0x10ff",{"_index":2402,"t":{"364":{"position":[[2979,8]]},"491":{"position":[[2534,8]]}}}],["0x1234",{"_index":844,"t":{"132":{"position":[[1059,7]]},"320":{"position":[[1059,7]]}}}],["0x1234:100",{"_index":842,"t":{"132":{"position":[[948,10]]},"320":{"position":[[948,10]]}}}],["0x15fa",{"_index":1259,"t":{"174":{"position":[[774,8]]}}}],["0x17c6…71a7",{"_index":2511,"t":{"368":{"position":[[2177,11],[2339,11]]}}}],["0x1e00…6e6b:301062",{"_index":2394,"t":{"364":{"position":[[2721,18]]},"491":{"position":[[2276,18]]}}}],["0x2d6a",{"_index":2476,"t":{"368":{"position":[[1230,8]]}}}],["0x35de…1f0",{"_index":2400,"t":{"364":{"position":[[2938,11]]},"491":{"position":[[2493,11]]}}}],["0x3655…1658",{"_index":2483,"t":{"368":{"position":[[1388,11]]}}}],["0x4242424242424242424242424242424242424242",{"_index":2978,"t":{"561":{"position":[[365,42]]}}}],["0x44e4…20a4",{"_index":2491,"t":{"368":{"position":[[1584,11]]}}}],["0x4ceb",{"_index":2415,"t":{"364":{"position":[[3285,8]]},"491":{"position":[[2840,8]]}}}],["0x4f7e…0e3a",{"_index":2506,"t":{"368":{"position":[[2015,11]]}}}],["0x5516…ba12",{"_index":2413,"t":{"364":{"position":[[3244,11]]},"491":{"position":[[2799,11]]}}}],["0x58b1",{"_index":2384,"t":{"364":{"position":[[2501,8]]},"491":{"position":[[2056,8]]}}}],["0x5bc1",{"_index":2513,"t":{"368":{"position":[[2218,8],[2380,8]]}}}],["0x5cc0…3874:195764",{"_index":2467,"t":{"368":{"position":[[860,18],[1053,18]]}}}],["0x5cec…f5b8",{"_index":2464,"t":{"368":{"position":[[797,11],[990,11]]}}}],["0x6761520",{"_index":1453,"t":{"203":{"position":[[1280,9]]}}}],["0x67d1",{"_index":2409,"t":{"364":{"position":[[3132,8]]},"491":{"position":[[2687,8]]}}}],["0x6981…682f:195778",{"_index":2502,"t":{"368":{"position":[[1926,18],[2078,18],[2240,18],[2402,18],[2554,18],[2706,18]]}}}],["0x6f74",{"_index":2466,"t":{"368":{"position":[[838,8],[1031,8]]}}}],["0x7491…f63e",{"_index":2391,"t":{"364":{"position":[[2658,11]]},"491":{"position":[[2213,11]]}}}],["0x7844…3b3e",{"_index":2407,"t":{"364":{"position":[[3091,11]]},"491":{"position":[[2646,11]]}}}],["0x792f…f8aa",{"_index":2382,"t":{"364":{"position":[[2460,11]]},"491":{"position":[[2015,11]]}}}],["0x7fa2f0001060",{"_index":1457,"t":{"203":{"position":[[1358,14]]}}}],["0x7fcd80001060",{"_index":1459,"t":{"203":{"position":[[1440,14]]}}}],["0x7fcd84001060",{"_index":1461,"t":{"203":{"position":[[1523,14]]}}}],["0x7fcd88001060",{"_index":1463,"t":{"203":{"position":[[1606,14]]}}}],["0x7fcd8c001060",{"_index":1465,"t":{"203":{"position":[[1688,14]]}}}],["0x7fcd90000e60",{"_index":1467,"t":{"203":{"position":[[1771,14]]}}}],["0x7fcd94000e60",{"_index":1469,"t":{"203":{"position":[[1854,14]]}}}],["0x7fcd98000e60",{"_index":1471,"t":{"203":{"position":[[1937,14]]}}}],["0x7fcd9c000e60",{"_index":1473,"t":{"203":{"position":[[2020,14]]}}}],["0x7fcda0000e60",{"_index":1475,"t":{"203":{"position":[[2103,14]]}}}],["0x7fcda4000e60",{"_index":1477,"t":{"203":{"position":[[2186,14]]}}}],["0x7fcda8000e60",{"_index":1479,"t":{"203":{"position":[[2269,14]]}}}],["0x7fcdac000e60",{"_index":1481,"t":{"203":{"position":[[2352,14]]}}}],["0x7fcdb8000d60",{"_index":1483,"t":{"203":{"position":[[2435,14]]}}}],["0x7feb…c130:301045",{"_index":2372,"t":{"364":{"position":[[2238,18]]},"491":{"position":[[1793,18]]}}}],["0x8199",{"_index":1266,"t":{"174":{"position":[[898,8]]}}}],["0x88f8…5375:301063",{"_index":2403,"t":{"364":{"position":[[3001,18],[3154,18],[3307,18]]},"491":{"position":[[2556,18],[2709,18],[2862,18]]}}}],["0x8e41b969493454318c27ec6fac90645769331c07ebc8db5037",{"_index":2193,"t":{"322":{"position":[[1479,55],[1659,55]]}}}],["0x8f3f…2f81:195766",{"_index":2477,"t":{"368":{"position":[[1252,18]]}}}],["0x8f868e53bbe1451bcf6d42c9ab6d292cbd7fbfa09c59b6b99c1dd6a4977e2e7b4b752c328784ca2788dd6f63ffcbdb7",{"_index":2841,"t":{"493":{"position":[[845,98]]},"563":{"position":[[667,98]]}}}],["0x90ea…c655",{"_index":2499,"t":{"368":{"position":[[1863,11]]}}}],["0x9475…425a:195769",{"_index":2486,"t":{"368":{"position":[[1451,18]]}}}],["0x95c4",{"_index":1244,"t":{"174":{"position":[[538,8]]}}}],["0x9649",{"_index":2455,"t":{"368":{"position":[[483,8],[654,8]]}}}],["0x9cbd…ba83:195776",{"_index":2494,"t":{"368":{"position":[[1647,18]]}}}],["0x9d88…d02a",{"_index":2368,"t":{"364":{"position":[[2173,11]]},"491":{"position":[[1728,11]]}}}],["0x9d88…d02a:301047",{"_index":2385,"t":{"364":{"position":[[2523,18]]},"491":{"position":[[2078,18]]}}}],["0x9dfc",{"_index":1250,"t":{"174":{"position":[[597,8]]}}}],["0x[a",{"_index":897,"t":{"132":{"position":[[3033,5]]},"320":{"position":[[3019,5]]},"517":{"position":[[2324,5]]}}}],["0xa329f988c16993768299643d918a2694892c012765d896a16f",{"_index":2194,"t":{"322":{"position":[[1541,55],[1750,55]]}}}],["0xa329f988c16993768299643d918a2694892c012765d896a16f.json",{"_index":2199,"t":{"322":{"position":[[1895,57]]}}}],["0xa4855c83d868f772a579133d9f23818008417b743e8447e235d8eb78b1d8f8a9f63f98c551beb7de254400f89592314d",{"_index":2910,"t":{"506":{"position":[[312,101]]}}}],["0xa488",{"_index":2525,"t":{"368":{"position":[[2684,8]]}}}],["0xa6fcfca12e1db6c7341d82327010cd57224dc239d1c5e4fb18286cc32edb877d813c5af1c870d474aef7b3ff7ab927ea",{"_index":2840,"t":{"493":{"position":[[718,98]]},"563":{"position":[[540,98]]}}}],["0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c",{"_index":2905,"t":{"506":{"position":[[17,101]]}}}],["0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",{"_index":2907,"t":{"506":{"position":[[189,44]]}}}],["0xb5bf",{"_index":2520,"t":{"368":{"position":[[2532,8]]}}}],["0xb7576e9d314df41ec5506494293afb1bd5d3f65d",{"_index":2720,"t":{"457":{"position":[[456,43]]},"557":{"position":[[415,42],[535,43]]}}}],["0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",{"_index":2911,"t":{"506":{"position":[[429,44]]}}}],["0xbeae",{"_index":1256,"t":{"174":{"position":[[715,8]]}}}],["0xbf30…7e7c:195777",{"_index":2456,"t":{"368":{"position":[[505,18],[676,18]]}}}],["0xc9fd…28c5",{"_index":2518,"t":{"368":{"position":[[2491,11]]}}}],["0xca61",{"_index":2493,"t":{"368":{"position":[[1625,8]]}}}],["0xca9b",{"_index":2501,"t":{"368":{"position":[[1904,8]]}}}],["0xcc67…3345",{"_index":240,"t":{"19":{"position":[[2921,11]]}}}],["0xccaff4b99986a7b05e06738f1828a32e40799b277fd9f9ff069be55341fe0229",{"_index":2024,"t":{"276":{"position":[[184,68]]}}}],["0xcccccccccccccccccccccccccccccccccccccccc",{"_index":2914,"t":{"506":{"position":[[640,44]]}}}],["0xcec4",{"_index":2371,"t":{"364":{"position":[[2216,8]]},"491":{"position":[[1771,8]]}}}],["0xd4b2",{"_index":2393,"t":{"364":{"position":[[2699,8]]},"491":{"position":[[2254,8]]}}}],["0xd7ba…8386",{"_index":2533,"t":{"368":{"position":[[3677,11]]}}}],["0xd7ba…8386:189636",{"_index":2532,"t":{"368":{"position":[[3631,18]]}}}],["0xdafd",{"_index":2485,"t":{"368":{"position":[[1429,8]]}}}],["0xde91…d4cb",{"_index":2523,"t":{"368":{"position":[[2643,11]]}}}],["0xdf3f",{"_index":1253,"t":{"174":{"position":[[656,8]]}}}],["0xe0cf…9f3c",{"_index":2474,"t":{"368":{"position":[[1189,11]]}}}],["0xed93…7b0a",{"_index":2453,"t":{"368":{"position":[[440,11],[611,11]]}}}],["0xf00",{"_index":2931,"t":{"539":{"position":[[64,5],[134,5],[204,5],[381,5]]},"545":{"position":[[71,5],[134,5]]}}}],["0xf8ff",{"_index":1262,"t":{"174":{"position":[[833,8]]}}}],["0xf97e180c050e5ab072211ad2c213eb5aee4df134",{"_index":2094,"t":{"288":{"position":[[589,45],[2031,45]]}}}],["1",{"_index":146,"t":{"19":{"position":[[564,1],[1144,1],[2875,1],[3393,1]]},"93":{"position":[[294,1],[639,1]]},"176":{"position":[[256,1]]},"203":{"position":[[1060,1],[1128,1],[1237,1],[1316,1],[1399,1],[1481,1],[1564,1],[1647,1],[1729,1],[1812,1],[1895,1],[1978,1],[2061,1],[2144,1],[2227,1],[2310,1],[2393,1],[2476,1]]},"249":{"position":[[674,1]]},"251":{"position":[[1519,2],[2634,1],[2658,3]]},"368":{"position":[[888,1],[1081,1],[2174,2]]},"500":{"position":[[289,2],[415,2]]},"555":{"position":[[396,2],[1829,1]]},"559":{"position":[[1783,3],[2591,2]]}}}],["1.00",{"_index":1247,"t":{"174":{"position":[[563,4],[622,4],[681,4],[740,4],[799,4],[864,4],[1139,5],[1173,4]]}}}],["1.1",{"_index":2479,"t":{"368":{"position":[[1320,3]]}}}],["1.20",{"_index":1267,"t":{"174":{"position":[[929,4]]}}}],["1.20.0",{"_index":2062,"t":{"280":{"position":[[214,6]]}}}],["1.50",{"_index":1270,"t":{"174":{"position":[[995,4]]}}}],["1.6",{"_index":2471,"t":{"368":{"position":[[1121,3]]}}}],["10",{"_index":2825,"t":{"489":{"position":[[426,2],[456,2]]},"559":{"position":[[910,5]]}}}],["100",{"_index":843,"t":{"132":{"position":[[1039,3],[6874,3],[9145,6],[9162,6],[9339,5]]},"320":{"position":[[1039,3],[6734,3]]},"493":{"position":[[579,4]]},"506":{"position":[[541,5]]},"517":{"position":[[3218,6],[3235,6],[3412,5]]},"559":{"position":[[367,6],[384,6]]},"563":{"position":[[401,4]]}}}],["100%free",{"_index":2874,"t":{"498":{"position":[[510,9],[557,9]]}}}],["100*100/(100+percentag",{"_index":2970,"t":{"559":{"position":[[2474,25]]}}}],["100,000",{"_index":1666,"t":{"243":{"position":[[622,8]]}}}],["1000",{"_index":2528,"t":{"368":{"position":[[3264,5]]}}}],["10000/(100+25",{"_index":2973,"t":{"559":{"position":[[2681,14]]}}}],["1000hz",{"_index":1504,"t":{"205":{"position":[[693,7]]}}}],["100gb",{"_index":2676,"t":{"445":{"position":[[393,5]]}}}],["100hz",{"_index":1503,"t":{"205":{"position":[[684,5]]}}}],["10mbp",{"_index":85,"t":{"7":{"position":[[304,6],[342,7]]},"445":{"position":[[229,6],[267,7]]}}}],["11",{"_index":2386,"t":{"364":{"position":[[2551,2],[2592,2]]},"491":{"position":[[2106,2],[2147,2]]}}}],["12000",{"_index":922,"t":{"132":{"position":[[4029,5],[5157,5]]},"320":{"position":[[3996,5],[5032,5]]}}}],["123919",{"_index":1462,"t":{"203":{"position":[[1578,6]]}}}],["127.0.0.1",{"_index":154,"t":{"19":{"position":[[747,9]]},"132":{"position":[[2689,11],[5680,11],[7964,11]]},"320":{"position":[[2689,11],[5540,11]]},"387":{"position":[[2224,11]]},"517":{"position":[[1544,11],[5400,11]]}}}],["130",{"_index":77,"t":{"7":{"position":[[217,3]]},"445":{"position":[[142,3]]}}}],["13:35:27.967",{"_index":2330,"t":{"364":{"position":[[528,14]]},"491":{"position":[[83,14]]}}}],["13:35:28.344",{"_index":2334,"t":{"364":{"position":[[655,14]]},"491":{"position":[[210,14]]}}}],["13:35:49.828",{"_index":2337,"t":{"364":{"position":[[742,14]]},"491":{"position":[[297,14]]}}}],["13:35:51.955[chain",{"_index":2342,"t":{"364":{"position":[[954,19]]},"491":{"position":[[509,19]]}}}],["13:35:51.969[eth1",{"_index":2343,"t":{"364":{"position":[[1019,18]]},"491":{"position":[[574,18]]}}}],["13:35:51.975[execut",{"_index":2345,"t":{"364":{"position":[[1092,23]]},"491":{"position":[[647,23]]}}}],["13:35:51.977",{"_index":2346,"t":{"364":{"position":[[1173,14]]},"491":{"position":[[728,14]]}}}],["13:36:21.128[network",{"_index":2348,"t":{"364":{"position":[[1244,21]]},"491":{"position":[[799,21]]}}}],["13:36:21.727[network",{"_index":2349,"t":{"364":{"position":[[1320,21]]},"491":{"position":[[875,21]]}}}],["13:36:27.677[network",{"_index":2351,"t":{"364":{"position":[[1436,21]]},"491":{"position":[[991,21]]}}}],["13:36:28.134[network",{"_index":2356,"t":{"364":{"position":[[1782,21]]},"491":{"position":[[1337,21]]}}}],["13:36:28.137[metric",{"_index":2361,"t":{"364":{"position":[[1912,21]]},"491":{"position":[[1467,21]]}}}],["13:36:28.256[rest",{"_index":2363,"t":{"364":{"position":[[2005,18]]},"491":{"position":[[1560,18]]}}}],["13:36:28.257",{"_index":2365,"t":{"364":{"position":[[2089,14]]},"491":{"position":[[1644,14]]}}}],["13:36:36.461[execut",{"_index":2373,"t":{"364":{"position":[[2264,23]]},"491":{"position":[[1819,23]]}}}],["13:36:53.019",{"_index":2376,"t":{"364":{"position":[[2361,14]]},"491":{"position":[[1916,14]]}}}],["13:38:53.168",{"_index":2387,"t":{"364":{"position":[[2561,14]]},"491":{"position":[[2116,14]]}}}],["13:38:58.051[network",{"_index":2396,"t":{"364":{"position":[[2759,21]]},"491":{"position":[[2314,21]]}}}],["13:38:58.132[sync",{"_index":2397,"t":{"364":{"position":[[2824,18]]},"491":{"position":[[2379,18]]}}}],["13:39:05.001",{"_index":2398,"t":{"364":{"position":[[2886,14]]},"491":{"position":[[2441,14]]}}}],["13:39:17.000",{"_index":2405,"t":{"364":{"position":[[3039,14]]},"491":{"position":[[2594,14]]}}}],["13:39:29.000",{"_index":2411,"t":{"364":{"position":[[3192,14]]},"491":{"position":[[2747,14]]}}}],["14:17",{"_index":1486,"t":{"203":{"position":[[2500,5]]}}}],["15",{"_index":2441,"t":{"366":{"position":[[2148,4]]}}}],["152786",{"_index":1468,"t":{"203":{"position":[[1826,6]]}}}],["1552658472.json",{"_index":2766,"t":{"477":{"position":[[1183,15]]},"479":{"position":[[2293,15]]}}}],["15:13:41.298",{"_index":2459,"t":{"368":{"position":[[702,14],[897,14]]}}}],["15:13:53.151",{"_index":2470,"t":{"368":{"position":[[1090,14]]}}}],["15:14:05.425",{"_index":2478,"t":{"368":{"position":[[1289,14]]}}}],["15:14:53.001",{"_index":2487,"t":{"368":{"position":[[1488,14]]}}}],["15:15:01.443[network",{"_index":2495,"t":{"368":{"position":[[1684,21]]}}}],["15:15:01.446[sync",{"_index":2496,"t":{"368":{"position":[[1749,18]]}}}],["15:15:05.000",{"_index":2497,"t":{"368":{"position":[[1811,14]]}}}],["15:15:17.003",{"_index":2504,"t":{"368":{"position":[[1963,14]]}}}],["15:15:41.001",{"_index":2509,"t":{"368":{"position":[[2115,14]]}}}],["15:15:53.001",{"_index":2514,"t":{"368":{"position":[[2277,14]]}}}],["15:16:05.000",{"_index":2516,"t":{"368":{"position":[[2439,14]]}}}],["15:16:17.017",{"_index":2521,"t":{"368":{"position":[[2591,14]]}}}],["15:24:08.034",{"_index":2450,"t":{"368":{"position":[[360,14]]}}}],["15:24:17.000",{"_index":2457,"t":{"368":{"position":[[531,14]]}}}],["16",{"_index":75,"t":{"7":{"position":[[199,2]]},"174":{"position":[[558,2],[617,2],[676,2],[735,2],[794,2],[859,2],[924,2],[990,2]]},"445":{"position":[[124,2]]}}}],["1654128694.json",{"_index":2950,"t":{"555":{"position":[[162,17]]}}}],["1669713528",{"_index":150,"t":{"19":{"position":[[700,10],[1809,10]]}}}],["167991/6",{"_index":231,"t":{"19":{"position":[[2826,8]]}}}],["16uiu2hamaccmcexcgt3zctjl2rqjz2mvdjh6u6fe26hgd2fonrww",{"_index":2358,"t":{"364":{"position":[[1817,54]]},"491":{"position":[[1372,54]]}}}],["17/node",{"_index":1570,"t":{"222":{"position":[[125,7]]}}}],["180",{"_index":1516,"t":{"205":{"position":[[1424,3]]}}}],["183831",{"_index":1466,"t":{"203":{"position":[[1743,6]]}}}],["18550/tcp",{"_index":2284,"t":{"342":{"position":[[541,9]]}}}],["189636",{"_index":2534,"t":{"368":{"position":[[3698,6]]}}}],["1gb",{"_index":2203,"t":{"324":{"position":[[195,3]]}}}],["2",{"_index":203,"t":{"19":{"position":[[1633,1]]},"132":{"position":[[4130,1]]},"174":{"position":[[1002,1]]},"203":{"position":[[1183,1]]},"249":{"position":[[659,4]]},"251":{"position":[[1504,4],[2643,4],[2669,4]]},"320":{"position":[[4097,1]]},"324":{"position":[[161,1]]},"368":{"position":[[928,1],[1479,1],[2336,2]]},"493":{"position":[[672,1]]},"495":{"position":[[173,2],[313,2]]},"500":{"position":[[308,2],[434,2]]},"555":{"position":[[1425,2],[1774,2]]},"559":{"position":[[2746,2]]},"563":{"position":[[494,1]]}}}],["2**64",{"_index":2965,"t":{"559":{"position":[[1774,6]]}}}],["2,3,3,2",{"_index":1263,"t":{"174":{"position":[[849,7],[914,7],[980,7]]}}}],["2.0",{"_index":2083,"t":{"284":{"position":[[7,3]]},"306":{"position":[[7,3]]}}}],["2.32",{"_index":2378,"t":{"364":{"position":[[2411,4]]},"491":{"position":[[1966,4]]}}}],["2.5",{"_index":2460,"t":{"368":{"position":[[733,3]]}}}],["2.78",{"_index":2461,"t":{"368":{"position":[[752,4],[945,4]]}}}],["20",{"_index":896,"t":{"132":{"position":[[3015,2]]},"320":{"position":[[3001,2]]},"368":{"position":[[357,2],[528,2],[699,2],[894,2],[1087,2],[1286,2],[1485,2],[1681,2],[1746,2],[1808,2],[1960,2],[2112,2],[2274,2],[2436,2],[2588,2]]},"517":{"position":[[2306,2]]}}}],["200",{"_index":81,"t":{"7":{"position":[[244,3]]},"445":{"position":[[169,3]]}}}],["2000",{"_index":928,"t":{"132":{"position":[[4269,4]]},"320":{"position":[[4236,4]]},"324":{"position":[[263,5]]}}}],["200gb",{"_index":2867,"t":{"498":{"position":[[50,5],[366,6]]}}}],["2013",{"_index":1840,"t":{"257":{"position":[[334,4]]}}}],["2014",{"_index":1845,"t":{"257":{"position":[[401,5]]}}}],["2015",{"_index":1849,"t":{"257":{"position":[[444,5]]}}}],["2016",{"_index":1911,"t":{"263":{"position":[[500,5]]}}}],["2017",{"_index":1854,"t":{"257":{"position":[[531,4]]}}}],["2023",{"_index":1440,"t":{"203":{"position":[[1102,4]]},"263":{"position":[[1633,4]]}}}],["203172",{"_index":1456,"t":{"203":{"position":[[1330,6]]}}}],["2066257538",{"_index":2077,"t":{"280":{"position":[[1238,11]]}}}],["2085004",{"_index":1454,"t":{"203":{"position":[[1290,7],[1373,7],[1455,7],[1538,7],[1621,7],[1703,7],[1786,7],[1869,7],[1952,7],[2035,7],[2118,7],[2201,7],[2284,7],[2367,7],[2450,7]]}}}],["21",{"_index":1485,"t":{"203":{"position":[[2497,2]]}}}],["218473",{"_index":1472,"t":{"203":{"position":[[1992,6]]}}}],["22",{"_index":1438,"t":{"203":{"position":[[1086,2],[1149,2],[1208,2],[1263,2],[1341,2],[1423,2],[1506,2],[1589,2],[1671,2],[1754,2],[1837,2],[1920,2],[2003,2],[2086,2],[2169,2],[2252,2],[2335,2],[2418,2]]}}}],["22.log",{"_index":1442,"t":{"203":{"position":[[1110,6]]}}}],["2333",{"_index":2994,"t":{"579":{"position":[[337,4],[393,4]]},"586":{"position":[[209,4],[254,4]]}}}],["2334",{"_index":2995,"t":{"579":{"position":[[350,4],[406,4]]},"586":{"position":[[222,4],[267,4]]}}}],["2335",{"_index":2927,"t":{"527":{"position":[[24,4]]},"555":{"position":[[234,4]]},"579":{"position":[[233,4]]},"586":{"position":[[116,4]]}}}],["25",{"_index":2972,"t":{"559":{"position":[[2634,3]]}}}],["262333",{"_index":1470,"t":{"203":{"position":[[1909,6]]}}}],["2861242",{"_index":1452,"t":{"203":{"position":[[1251,7]]}}}],["297",{"_index":2482,"t":{"368":{"position":[[1383,4]]}}}],["2>&1",{"_index":1736,"t":{"249":{"position":[[290,4]]},"251":{"position":[[1008,4]]}}}],["2mb",{"_index":2205,"t":{"324":{"position":[[241,3]]}}}],["3",{"_index":1246,"t":{"174":{"position":[[554,1],[613,1],[672,1],[731,1],[790,1]]},"251":{"position":[[2577,3],[2627,3]]},"500":{"position":[[327,2],[453,2]]},"559":{"position":[[2917,2]]}}}],["3.12",{"_index":2589,"t":{"405":{"position":[[118,4]]}}}],["3.5mb",{"_index":1518,"t":{"205":{"position":[[1468,5]]}}}],["3.7",{"_index":2377,"t":{"364":{"position":[[2392,3]]},"491":{"position":[[1947,3]]}}}],["3.82",{"_index":2472,"t":{"368":{"position":[[1140,4]]}}}],["30",{"_index":1847,"t":{"257":{"position":[[436,2]]}}}],["300000",{"_index":2607,"t":{"421":{"position":[[272,6],[351,6]]}}}],["3000000",{"_index":2912,"t":{"506":{"position":[[494,9]]}}}],["30000000",{"_index":1023,"t":{"132":{"position":[[8865,8]]},"506":{"position":[[254,10],[705,10]]},"517":{"position":[[2796,8]]}}}],["30303/tcp+udp",{"_index":2279,"t":{"342":{"position":[[267,13]]}}}],["304917",{"_index":1476,"t":{"203":{"position":[[2158,6]]}}}],["30gb",{"_index":2202,"t":{"324":{"position":[[163,4]]}}}],["31",{"_index":2329,"t":{"364":{"position":[[525,2],[652,2],[739,2],[951,2],[1016,2],[1089,2],[1170,2],[1241,2],[1317,2],[1433,2],[1779,2],[1909,2],[2002,2],[2086,2],[2261,2],[2358,2],[2558,2],[2756,2],[2821,2],[2883,2],[3036,2],[3189,2]]},"491":{"position":[[80,2],[207,2],[294,2],[506,2],[571,2],[644,2],[725,2],[796,2],[872,2],[988,2],[1334,2],[1464,2],[1557,2],[1641,2],[1816,2],[1913,2],[2113,2],[2311,2],[2376,2],[2438,2],[2591,2],[2744,2]]}}}],["32",{"_index":100,"t":{"9":{"position":[[238,2]]},"132":{"position":[[8366,2]]},"358":{"position":[[27,2],[227,3]]},"441":{"position":[[379,2]]},"453":{"position":[[179,2]]},"517":{"position":[[1946,2]]}}}],["32bit",{"_index":1629,"t":{"239":{"position":[[628,5],[676,7]]}}}],["3450",{"_index":67,"t":{"7":{"position":[[139,4]]},"445":{"position":[[64,4]]}}}],["360",{"_index":2473,"t":{"368":{"position":[[1184,4]]}}}],["366788",{"_index":1474,"t":{"203":{"position":[[2075,6]]}}}],["381",{"_index":400,"t":{"65":{"position":[[113,3]]}}}],["4",{"_index":98,"t":{"9":{"position":[[225,1]]},"481":{"position":[[1136,2]]}}}],["4.01",{"_index":2388,"t":{"364":{"position":[[2610,4]]},"491":{"position":[[2165,4]]}}}],["4.33",{"_index":2480,"t":{"368":{"position":[[1339,4]]}}}],["4.4mb",{"_index":1520,"t":{"205":{"position":[[1510,6]]}}}],["420809",{"_index":1460,"t":{"203":{"position":[[1495,6]]}}}],["421",{"_index":1445,"t":{"203":{"position":[[1141,3]]}}}],["44",{"_index":2390,"t":{"364":{"position":[[2654,3]]},"491":{"position":[[2209,3]]}}}],["45",{"_index":2490,"t":{"368":{"position":[[1580,3]]}}}],["450675",{"_index":1480,"t":{"203":{"position":[[2324,6]]}}}],["4700",{"_index":70,"t":{"7":{"position":[[178,4]]},"445":{"position":[[103,4]]}}}],["4gb",{"_index":2207,"t":{"324":{"position":[[276,3]]}}}],["5",{"_index":66,"t":{"7":{"position":[[137,1]]},"132":{"position":[[2163,1]]},"312":{"position":[[1113,1]]},"320":{"position":[[2163,1]]},"368":{"position":[[1280,1]]},"387":{"position":[[1962,1]]},"421":{"position":[[318,1]]},"445":{"position":[[62,1]]},"479":{"position":[[2605,3]]},"517":{"position":[[1113,1]]}}}],["5.00",{"_index":2488,"t":{"368":{"position":[[1536,4]]}}}],["50",{"_index":2074,"t":{"280":{"position":[[1048,4]]}}}],["5062",{"_index":998,"t":{"132":{"position":[[7886,4]]},"517":{"position":[[1466,4]]}}}],["5062/tcp",{"_index":2283,"t":{"342":{"position":[[499,8]]}}}],["5064",{"_index":960,"t":{"132":{"position":[[5580,4]]},"517":{"position":[[5300,4]]}}}],["5064/tcp",{"_index":2288,"t":{"342":{"position":[[612,8]]}}}],["515",{"_index":2381,"t":{"364":{"position":[[2455,4]]},"491":{"position":[[2010,4]]}}}],["5375718",{"_index":236,"t":{"19":{"position":[[2885,7],[2902,8]]}}}],["559",{"_index":1484,"t":{"203":{"position":[[2489,3]]}}}],["56",{"_index":1245,"t":{"174":{"position":[[549,2],[608,2],[667,2],[726,2],[785,2],[844,2],[909,2],[975,2]]}}}],["576",{"_index":2367,"t":{"364":{"position":[[2168,4]]},"491":{"position":[[1723,4]]}}}],["586238",{"_index":1478,"t":{"203":{"position":[[2241,6]]}}}],["59",{"_index":2395,"t":{"364":{"position":[[2749,2]]},"491":{"position":[[2304,2]]}}}],["6",{"_index":2503,"t":{"368":{"position":[[1954,1],[2106,1]]},"479":{"position":[[2613,4]]},"483":{"position":[[1715,4]]}}}],["6.007",{"_index":232,"t":{"19":{"position":[[2835,5]]}}}],["6.4",{"_index":2637,"t":{"433":{"position":[[499,4]]}}}],["60",{"_index":1488,"t":{"205":{"position":[[42,2],[1219,2],[1488,2]]}}}],["60000",{"_index":967,"t":{"132":{"position":[[5968,5]]},"320":{"position":[[5828,5]]},"421":{"position":[[190,5]]},"517":{"position":[[5688,5]]}}}],["6045",{"_index":1598,"t":{"233":{"position":[[628,5]]}}}],["6262966",{"_index":2463,"t":{"368":{"position":[[789,7]]}}}],["6263965",{"_index":2469,"t":{"368":{"position":[[982,7]]}}}],["6264018",{"_index":2452,"t":{"368":{"position":[[432,7],[603,7]]}}}],["6264966",{"_index":2462,"t":{"368":{"position":[[773,7]]}}}],["6264967",{"_index":2468,"t":{"368":{"position":[[966,7],[1161,7]]}}}],["6264968",{"_index":2481,"t":{"368":{"position":[[1360,7]]}}}],["6264972",{"_index":2489,"t":{"368":{"position":[[1557,7]]}}}],["6264973",{"_index":2498,"t":{"368":{"position":[[1847,7]]}}}],["6264974",{"_index":2505,"t":{"368":{"position":[[1999,7]]}}}],["6264976",{"_index":2510,"t":{"368":{"position":[[2151,7]]}}}],["6264977",{"_index":2515,"t":{"368":{"position":[[2313,7]]}}}],["6264978",{"_index":2517,"t":{"368":{"position":[[2475,7]]}}}],["6264979",{"_index":2522,"t":{"368":{"position":[[2627,7]]}}}],["6265018",{"_index":2451,"t":{"368":{"position":[[416,7]]}}}],["6265019",{"_index":2458,"t":{"368":{"position":[[587,7]]}}}],["64",{"_index":2309,"t":{"358":{"position":[[35,3]]},"453":{"position":[[370,2]]},"455":{"position":[[62,2]]}}}],["68044",{"_index":1458,"t":{"203":{"position":[[1413,5]]}}}],["69",{"_index":2410,"t":{"364":{"position":[[3182,2]]},"491":{"position":[[2737,2]]}}}],["7",{"_index":69,"t":{"7":{"position":[[176,1]]},"368":{"position":[[2734,1]]},"445":{"position":[[101,1]]}}}],["70",{"_index":2404,"t":{"364":{"position":[[3029,2]]},"491":{"position":[[2584,2]]}}}],["72",{"_index":1243,"t":{"174":{"position":[[533,2]]},"257":{"position":[[455,2]]}}}],["73",{"_index":1249,"t":{"174":{"position":[[592,2]]}}}],["74",{"_index":1252,"t":{"174":{"position":[[651,2]]},"364":{"position":[[3335,2]]},"491":{"position":[[2890,2]]}}}],["75",{"_index":1255,"t":{"174":{"position":[[710,2]]}}}],["76",{"_index":1258,"t":{"174":{"position":[[769,2]]}}}],["768470",{"_index":1482,"t":{"203":{"position":[[2407,6]]}}}],["77",{"_index":1261,"t":{"174":{"position":[[828,2]]}}}],["777",{"_index":1514,"t":{"205":{"position":[[1302,3]]}}}],["778",{"_index":202,"t":{"19":{"position":[[1619,4]]},"332":{"position":[[93,3]]}}}],["78",{"_index":1265,"t":{"174":{"position":[[893,2]]}}}],["79",{"_index":1269,"t":{"174":{"position":[[958,2]]}}}],["8",{"_index":72,"t":{"7":{"position":[[190,1]]},"19":{"position":[[604,1],[682,1],[1791,1]]},"130":{"position":[[32,1],[88,1]]},"132":{"position":[[11257,1]]},"174":{"position":[[1409,1]]},"368":{"position":[[1675,1],[2268,1],[2430,1],[2582,1]]},"445":{"position":[[115,1]]}}}],["80",{"_index":2974,"t":{"559":{"position":[[2698,2]]}}}],["8008",{"_index":2176,"t":{"320":{"position":[[5440,4]]},"387":{"position":[[2124,4]]},"427":{"position":[[271,4]]}}}],["8008/tcp",{"_index":2287,"t":{"342":{"position":[[576,8]]}}}],["8080",{"_index":2105,"t":{"288":{"position":[[2406,4]]}}}],["8545",{"_index":2424,"t":{"364":{"position":[[4069,4]]}}}],["8545/tcp",{"_index":2289,"t":{"342":{"position":[[646,8]]}}}],["8551",{"_index":2308,"t":{"356":{"position":[[117,5]]},"453":{"position":[[155,5],[513,5]]}}}],["8551/tcp",{"_index":2290,"t":{"342":{"position":[[688,8]]}}}],["8gb",{"_index":1584,"t":{"231":{"position":[[59,3]]}}}],["8hw2gbkazdzmww3lshjfp_kdhi",{"_index":2354,"t":{"364":{"position":[[1694,26]]},"491":{"position":[[1249,26]]}}}],["9",{"_index":1739,"t":{"249":{"position":[[531,2]]},"368":{"position":[[1519,1]]}}}],["9/0",{"_index":1242,"t":{"174":{"position":[[527,3]]}}}],["9/1",{"_index":1248,"t":{"174":{"position":[[586,3]]}}}],["9/2",{"_index":1251,"t":{"174":{"position":[[645,3]]}}}],["9/3",{"_index":1254,"t":{"174":{"position":[[704,3]]}}}],["9/4",{"_index":1257,"t":{"174":{"position":[[763,3]]}}}],["9/5",{"_index":1260,"t":{"174":{"position":[[822,3]]}}}],["9/6",{"_index":1264,"t":{"174":{"position":[[887,3]]}}}],["9/7",{"_index":1268,"t":{"174":{"position":[[952,3]]}}}],["90",{"_index":2915,"t":{"506":{"position":[[751,4]]}}}],["9000",{"_index":156,"t":{"19":{"position":[[769,4]]},"132":{"position":[[6253,4]]},"320":{"position":[[6113,4]]},"387":{"position":[[710,4]]}}}],["9000/tcp+udp",{"_index":2280,"t":{"342":{"position":[[322,12]]}}}],["9001",{"_index":209,"t":{"19":{"position":[[1858,4]]}}}],["9090",{"_index":978,"t":{"132":{"position":[[6574,4]]},"320":{"position":[[6434,4]]},"387":{"position":[[853,4]]}}}],["9090/tcp+udp",{"_index":2281,"t":{"342":{"position":[[377,12]]}}}],["917504",{"_index":1450,"t":{"203":{"position":[[1197,6]]}}}],["94391",{"_index":1464,"t":{"203":{"position":[[1661,5]]}}}],["9596",{"_index":883,"t":{"132":{"position":[[2758,4]]},"320":{"position":[[2758,4]]},"364":{"position":[[4077,4]]}}}],["9596/tcp",{"_index":2282,"t":{"342":{"position":[[462,8]]}}}],["9597",{"_index":211,"t":{"19":{"position":[[1877,4]]}}}],["9634080",{"_index":2366,"t":{"364":{"position":[[2145,7]]},"491":{"position":[[1700,7]]}}}],["9634082",{"_index":2380,"t":{"364":{"position":[[2432,7]]},"491":{"position":[[1987,7]]}}}],["9634092",{"_index":2389,"t":{"364":{"position":[[2631,7]]},"491":{"position":[[2186,7]]}}}],["9634093",{"_index":2399,"t":{"364":{"position":[[2922,7]]},"491":{"position":[[2477,7]]}}}],["9634094",{"_index":2406,"t":{"364":{"position":[[3075,7]]},"491":{"position":[[2630,7]]}}}],["9634095",{"_index":2412,"t":{"364":{"position":[[3228,7]]},"491":{"position":[[2783,7]]}}}],["9701529",{"_index":1437,"t":{"203":{"position":[[1074,7]]}}}],["99",{"_index":1496,"t":{"205":{"position":[[498,2],[1136,2]]}}}],["997hz",{"_index":1502,"t":{"205":{"position":[[667,5],[1478,5]]}}}],["99hz",{"_index":1501,"t":{"205":{"position":[[659,4],[1415,4]]}}}],["9]{40",{"_index":900,"t":{"132":{"position":[[3045,9]]},"320":{"position":[[3031,8]]},"517":{"position":[[2336,9]]}}}],["_",{"_index":662,"t":{"107":{"position":[[807,1]]}}}],["__libc_start",{"_index":1547,"t":{"213":{"position":[[333,13]]}}}],["_byte",{"_index":688,"t":{"107":{"position":[[1753,6]]}}}],["_dirti",{"_index":664,"t":{"107":{"position":[[843,7]]}}}],["_second",{"_index":687,"t":{"107":{"position":[[1741,8]]}}}],["a+r",{"_index":2693,"t":{"448":{"position":[[357,3]]}}}],["a57ca19d47bb",{"_index":1558,"t":{"218":{"position":[[150,12]]}}}],["ab",{"_index":2811,"t":{"485":{"position":[[1521,4]]}}}],["abbrevi",{"_index":790,"t":{"120":{"position":[[453,14]]}}}],["abil",{"_index":2599,"t":{"415":{"position":[[17,7]]}}}],["abov",{"_index":94,"t":{"9":{"position":[[112,5]]},"21":{"position":[[145,6]]},"33":{"position":[[104,5]]},"91":{"position":[[167,5]]},"132":{"position":[[6807,5]]},"201":{"position":[[393,5]]},"290":{"position":[[407,5]]},"320":{"position":[[6667,5]]},"344":{"position":[[107,6]]},"469":{"position":[[1037,5]]},"479":{"position":[[2331,5]]},"483":{"position":[[2394,5]]},"551":{"position":[[95,5]]},"555":{"position":[[86,6]]}}}],["absolut",{"_index":2442,"t":{"366":{"position":[[2399,10]]}}}],["acceler",{"_index":2421,"t":{"364":{"position":[[3806,10]]}}}],["accept",{"_index":1640,"t":{"239":{"position":[[1173,7]]},"559":{"position":[[2386,6],[2606,6]]}}}],["access",{"_index":388,"t":{"61":{"position":[[128,6]]},"120":{"position":[[305,10]]},"132":{"position":[[2550,6],[8010,6]]},"237":{"position":[[31,6]]},"268":{"position":[[705,6],[809,9],[1036,10]]},"272":{"position":[[0,6]]},"280":{"position":[[546,6],[991,6]]},"288":{"position":[[1371,10]]},"320":{"position":[[2550,6]]},"342":{"position":[[203,6]]},"431":{"position":[[347,8],[513,6]]},"437":{"position":[[1048,6]]},"517":{"position":[[1590,6]]}}}],["accordingli",{"_index":811,"t":{"122":{"position":[[916,12]]}}}],["account",{"_index":2602,"t":{"415":{"position":[[297,7]]},"419":{"position":[[272,7]]}}}],["accur",{"_index":1950,"t":{"263":{"position":[[1904,8]]}}}],["accuraci",{"_index":2658,"t":{"437":{"position":[[1352,8]]},"502":{"position":[[150,9],[485,9]]}}}],["achiev",{"_index":1192,"t":{"166":{"position":[[294,7]]},"231":{"position":[[261,7]]}}}],["act",{"_index":2222,"t":{"330":{"position":[[751,3]]}}}],["action",{"_index":321,"t":{"39":{"position":[[74,7]]},"114":{"position":[[582,6]]},"152":{"position":[[861,10]]},"188":{"position":[[537,8]]},"259":{"position":[[639,7]]},"502":{"position":[[959,6]]}}}],["activ",{"_index":831,"t":{"132":{"position":[[525,10]]},"257":{"position":[[549,8]]},"312":{"position":[[525,10]]},"320":{"position":[[525,10]]},"336":{"position":[[1056,8],[1186,6]]},"375":{"position":[[332,11]]},"387":{"position":[[525,10]]},"392":{"position":[[59,9]]},"395":{"position":[[486,6]]},"411":{"position":[[3,8]]},"439":{"position":[[61,8]]},"485":{"position":[[2118,9]]},"517":{"position":[[525,10]]}}}],["active=2",{"_index":2859,"t":{"493":{"position":[[1943,9]]},"563":{"position":[[1765,9]]}}}],["actual",{"_index":298,"t":{"33":{"position":[[35,6]]},"55":{"position":[[159,6]]},"91":{"position":[[307,6]]},"93":{"position":[[135,6]]},"184":{"position":[[1789,8]]},"239":{"position":[[886,6]]},"243":{"position":[[1838,8]]},"251":{"position":[[2296,6]]},"263":{"position":[[1929,6]]},"288":{"position":[[751,6]]},"383":{"position":[[67,8]]}}}],["actuat",{"_index":1134,"t":{"152":{"position":[[135,7]]},"166":{"position":[[131,8]]}}}],["ad",{"_index":1147,"t":{"152":{"position":[[707,5]]},"170":{"position":[[123,5],[246,5],[312,5],[367,5],[771,5],[929,5]]},"176":{"position":[[449,5]]},"194":{"position":[[217,6]]},"196":{"position":[[77,6]]},"203":{"position":[[429,5]]},"433":{"position":[[308,6]]},"481":{"position":[[914,5]]},"489":{"position":[[242,6]]},"557":{"position":[[735,5]]}}}],["adapt",{"_index":1391,"t":{"194":{"position":[[192,5]]},"268":{"position":[[1119,9]]},"340":{"position":[[436,9]]},"413":{"position":[[16,5]]},"437":{"position":[[279,10]]}}}],["add",{"_index":93,"t":{"9":{"position":[[96,3]]},"21":{"position":[[75,3]]},"103":{"position":[[342,3]]},"107":{"position":[[1445,3],[1712,3]]},"109":{"position":[[492,3],[735,3]]},"170":{"position":[[199,3]]},"190":{"position":[[1170,3]]},"196":{"position":[[270,3]]},"201":{"position":[[485,3]]},"233":{"position":[[406,4]]},"245":{"position":[[1206,4]]},"249":{"position":[[525,3]]},"280":{"position":[[1302,3]]},"360":{"position":[[73,3]]},"429":{"position":[[119,3]]},"448":{"position":[[71,3],[390,3]]},"471":{"position":[[335,3]]},"557":{"position":[[464,3]]}}}],["addit",{"_index":262,"t":{"21":{"position":[[108,8]]},"103":{"position":[[809,10]]},"194":{"position":[[224,10]]},"203":{"position":[[580,8]]},"340":{"position":[[374,9]]},"350":{"position":[[137,10],[246,10]]},"387":{"position":[[871,10],[963,10]]},"508":{"position":[[96,10]]}}}],["address",{"_index":717,"t":{"112":{"position":[[359,9]]},"132":{"position":[[3024,8],[5611,7],[6052,7],[6390,7],[7511,9],[8111,9]]},"184":{"position":[[733,10]]},"203":{"position":[[486,10]]},"239":{"position":[[800,7]]},"263":{"position":[[2226,7]]},"288":{"position":[[579,7],[719,10],[2021,7],[2161,10]]},"320":{"position":[[3010,8],[5471,7],[5912,7],[6250,7],[7371,9]]},"330":{"position":[[285,10]]},"332":{"position":[[231,8]]},"340":{"position":[[801,11]]},"350":{"position":[[312,8]]},"372":{"position":[[73,10]]},"387":{"position":[[581,7],[742,7],[1380,9],[2155,7]]},"419":{"position":[[592,7]]},"457":{"position":[[195,8],[242,7],[309,7],[384,7],[448,7]]},"469":{"position":[[946,7]]},"498":{"position":[[302,7]]},"517":{"position":[[1691,9],[2315,8],[5331,7]]},"521":{"position":[[71,9]]},"525":{"position":[[71,9]]},"547":{"position":[[118,7],[297,7]]},"557":{"position":[[151,8],[204,8],[261,7],[343,7],[407,7],[682,7],[829,8]]},"561":{"position":[[134,7]]}}}],["address=http://0.0.0.0:9596",{"_index":2364,"t":{"364":{"position":[[2054,27]]},"491":{"position":[[1609,27]]}}}],["address=http://127.0.0.1:8008",{"_index":2362,"t":{"364":{"position":[[1968,29]]},"491":{"position":[[1523,29]]}}}],["adher",{"_index":375,"t":{"53":{"position":[[67,8]]},"103":{"position":[[193,8]]}}}],["adjust",{"_index":1508,"t":{"205":{"position":[[839,6],[1030,6]]},"421":{"position":[[18,6]]}}}],["admin",{"_index":1436,"t":{"203":{"position":[[1062,5],[1068,5],[1130,5],[1185,5],[1191,5],[1239,5],[1245,5],[1318,5],[1324,5],[1401,5],[1407,5],[1483,5],[1489,5],[1566,5],[1572,5],[1649,5],[1655,5],[1731,5],[1737,5],[1814,5],[1820,5],[1897,5],[1903,5],[1980,5],[1986,5],[2063,5],[2069,5],[2146,5],[2152,5],[2229,5],[2235,5],[2312,5],[2318,5],[2395,5],[2401,5],[2478,5]]}}}],["admin@12.34.56.78",{"_index":1424,"t":{"203":{"position":[[362,18]]},"205":{"position":[[1097,18],[1222,18],[1272,18]]}}}],["admin@12.34.56.78:/home/devops/beacon/out.perf",{"_index":1521,"t":{"205":{"position":[[1521,46]]}}}],["adopt",{"_index":1935,"t":{"263":{"position":[[1299,8]]}}}],["advanc",{"_index":2812,"t":{"485":{"position":[[1579,7]]}}}],["advantag",{"_index":1748,"t":{"251":{"position":[[77,10],[133,9]]}}}],["advers",{"_index":1940,"t":{"263":{"position":[[1544,11]]}}}],["advertis",{"_index":2220,"t":{"330":{"position":[[697,13]]}}}],["advic",{"_index":2655,"t":{"437":{"position":[[1314,7]]},"502":{"position":[[97,7]]}}}],["affect",{"_index":1506,"t":{"205":{"position":[[750,6]]}}}],["afford",{"_index":1917,"t":{"263":{"position":[[613,8]]}}}],["afterward",{"_index":1853,"t":{"257":{"position":[[517,10]]}}}],["again",{"_index":1759,"t":{"251":{"position":[[733,6]]}}}],["against",{"_index":525,"t":{"93":{"position":[[375,7]]},"132":{"position":[[9203,7]]},"205":{"position":[[948,8]]},"263":{"position":[[338,7],[1536,7],[2583,7]]},"268":{"position":[[308,7]]},"517":{"position":[[3276,7]]},"559":{"position":[[425,7],[2413,7]]}}}],["aggreg",{"_index":301,"t":{"33":{"position":[[83,9]]},"579":{"position":[[67,9],[151,9]]},"586":{"position":[[45,9]]}}}],["agreement",{"_index":594,"t":{"101":{"position":[[454,9]]}}}],["aid",{"_index":1313,"t":{"184":{"position":[[522,3]]}}}],["aim",{"_index":1126,"t":{"146":{"position":[[54,3]]},"368":{"position":[[29,4]]},"377":{"position":[[277,3]]}}}],["alchemi",{"_index":2169,"t":{"296":{"position":[[179,8]]}}}],["alert",{"_index":2611,"t":{"423":{"position":[[96,8]]}}}],["alia",{"_index":733,"t":{"112":{"position":[[915,5]]},"132":{"position":[[4847,5]]},"395":{"position":[[368,5]]},"485":{"position":[[928,5]]},"517":{"position":[[2819,5]]},"559":{"position":[[1086,5],[1311,5],[1722,5]]}}}],["alloc",{"_index":1604,"t":{"235":{"position":[[737,9],[905,9]]},"245":{"position":[[523,11],[1191,10],[1424,11],[1615,12]]},"251":{"position":[[270,11],[3051,12]]},"498":{"position":[[390,10]]}}}],["allocations/d",{"_index":1751,"t":{"251":{"position":[[255,14]]}}}],["allow",{"_index":225,"t":{"19":{"position":[[2589,5]]},"122":{"position":[[306,5]]},"132":{"position":[[2565,5],[5335,7],[7478,5],[8025,5]]},"152":{"position":[[736,5]]},"196":{"position":[[158,6]]},"201":{"position":[[527,5],[653,5]]},"205":{"position":[[296,5]]},"207":{"position":[[74,6]]},"245":{"position":[[1523,6]]},"247":{"position":[[947,5]]},"268":{"position":[[1227,5]]},"286":{"position":[[68,8]]},"288":{"position":[[1332,5]]},"320":{"position":[[2565,5],[5210,7],[7338,5]]},"336":{"position":[[1170,6]]},"340":{"position":[[354,6]]},"342":{"position":[[88,5]]},"366":{"position":[[664,5]]},"370":{"position":[[408,6]]},"375":{"position":[[43,6],[257,8]]},"381":{"position":[[48,6]]},"385":{"position":[[114,6]]},"387":{"position":[[1343,5]]},"431":{"position":[[152,6]]},"437":{"position":[[612,6]]},"457":{"position":[[97,6]]},"459":{"position":[[259,6]]},"469":{"position":[[300,6]]},"479":{"position":[[189,5]]},"504":{"position":[[248,5]]},"517":{"position":[[1605,5]]},"555":{"position":[[993,5],[1107,5]]},"557":{"position":[[69,6]]},"583":{"position":[[478,8]]}}}],["allowforcedupd",{"_index":2046,"t":{"278":{"position":[[848,19]]}}}],["alon",{"_index":1190,"t":{"166":{"position":[[230,5]]}}}],["along",{"_index":1145,"t":{"152":{"position":[[623,5]]},"162":{"position":[[377,5]]},"237":{"position":[[518,5]]},"255":{"position":[[195,5]]},"381":{"position":[[410,5]]},"409":{"position":[[274,5]]},"489":{"position":[[91,5],[224,5]]}}}],["alongsid",{"_index":2614,"t":{"425":{"position":[[248,9]]}}}],["alpha",{"_index":1015,"t":{"132":{"position":[[8558,5]]},"504":{"position":[[19,5]]},"517":{"position":[[2138,5]]}}}],["alphabet",{"_index":288,"t":{"27":{"position":[[131,12]]},"63":{"position":[[33,15]]},"261":{"position":[[239,12]]}}}],["alreadi",{"_index":224,"t":{"19":{"position":[[2462,7]]},"91":{"position":[[79,7]]},"247":{"position":[[701,7]]},"288":{"position":[[927,7]]},"352":{"position":[[213,7]]},"471":{"position":[[25,7]]}}}],["altair",{"_index":2010,"t":{"268":{"position":[[1180,6]]}}}],["alter",{"_index":2542,"t":{"372":{"position":[[399,8]]}}}],["altern",{"_index":2168,"t":{"296":{"position":[[149,12]]},"332":{"position":[[898,14]]},"433":{"position":[[631,14]]},"553":{"position":[[155,14]]}}}],["although",{"_index":1740,"t":{"249":{"position":[[567,8]]},"370":{"position":[[336,8]]}}}],["alway",{"_index":514,"t":{"93":{"position":[[14,6]]},"184":{"position":[[861,6]]},"292":{"position":[[262,6]]},"419":{"position":[[632,6]]},"559":{"position":[[1133,6],[1621,6],[2788,6],[3036,6]]}}}],["amd",{"_index":64,"t":{"7":{"position":[[127,3],[166,3]]},"445":{"position":[[52,3],[91,3]]}}}],["amd64",{"_index":2668,"t":{"441":{"position":[[152,5]]}}}],["amongst",{"_index":179,"t":{"19":{"position":[[1172,7]]}}}],["amount",{"_index":1664,"t":{"243":{"position":[[470,6]]},"324":{"position":[[130,8]]},"336":{"position":[[410,7]]},"421":{"position":[[468,7]]}}}],["analysi",{"_index":1297,"t":{"184":{"position":[[10,8],[241,8],[1033,9],[1158,9],[1356,8],[1768,9]]},"186":{"position":[[131,8]]},"207":{"position":[[90,8]]},"218":{"position":[[205,9]]},"237":{"position":[[201,8]]},"239":{"position":[[950,8]]},"243":{"position":[[0,8]]},"245":{"position":[[64,8],[167,9],[479,9],[692,8],[1730,9],[1821,8]]},"255":{"position":[[1870,8]]},"377":{"position":[[373,8]]}}}],["analyz",{"_index":1539,"t":{"211":{"position":[[127,9]]},"235":{"position":[[415,9],[1217,7]]},"237":{"position":[[71,9]]},"241":{"position":[[14,7]]},"251":{"position":[[2156,7]]}}}],["andrea",{"_index":1966,"t":{"265":{"position":[[67,7]]}}}],["annot",{"_index":339,"t":{"41":{"position":[[305,9],[344,9]]}}}],["announc",{"_index":2231,"t":{"332":{"position":[[507,8],[665,9]]},"439":{"position":[[203,13],[265,13]]}}}],["anomali",{"_index":2420,"t":{"364":{"position":[[3776,10]]}}}],["anoth",{"_index":1669,"t":{"243":{"position":[[879,7]]},"381":{"position":[[8,7]]},"385":{"position":[[158,8]]},"395":{"position":[[549,7]]},"469":{"position":[[120,7]]},"479":{"position":[[403,7]]},"483":{"position":[[1731,7],[1760,7]]}}}],["antonopoulo",{"_index":1968,"t":{"265":{"position":[[78,12]]}}}],["anyth",{"_index":1036,"t":{"132":{"position":[[9287,8]]},"517":{"position":[[3360,8]]},"559":{"position":[[509,8]]}}}],["apach",{"_index":2082,"t":{"284":{"position":[[0,6]]},"306":{"position":[[0,6]]}}}],["api",{"_index":296,"t":{"31":{"position":[[75,4]]},"61":{"position":[[231,3],[299,3]]},"87":{"position":[[684,4]]},"103":{"position":[[376,3]]},"109":{"position":[[140,4]]},"112":{"position":[[846,4]]},"132":{"position":[[607,4],[2193,3],[2278,4],[2599,3],[2663,3],[2732,3],[2803,3],[3145,4],[3869,3],[3991,3],[4104,3],[4243,3],[4560,5],[4815,4],[5014,3],[5119,3],[7568,3],[7663,3],[7784,3],[7860,3],[7938,3],[8066,3]]},"144":{"position":[[152,3],[332,3]]},"170":{"position":[[585,3],[636,3],[755,3]]},"239":{"position":[[1024,3]]},"272":{"position":[[148,3]]},"278":{"position":[[541,3]]},"312":{"position":[[1177,3]]},"320":{"position":[[607,4],[2193,3],[2278,4],[2599,3],[2663,3],[2732,3],[2803,3],[3836,3],[3958,3],[4071,3],[4210,3],[4527,5],[4782,4],[4889,3],[4994,3]]},"332":{"position":[[964,3]]},"342":{"position":[[490,3],[532,3]]},"346":{"position":[[703,4]]},"348":{"position":[[64,4]]},"356":{"position":[[58,3]]},"364":{"position":[[2043,3],[3946,4]]},"419":{"position":[[243,3]]},"431":{"position":[[371,3],[393,3]]},"453":{"position":[[143,3]]},"491":{"position":[[1598,3]]},"508":{"position":[[272,3]]},"517":{"position":[[1148,3],[1243,3],[1364,3],[1440,3],[1518,3],[1646,3],[2436,4]]},"557":{"position":[[964,4]]},"559":{"position":[[709,4],[2204,3]]},"583":{"position":[[322,3],[352,3]]}}}],["api'",{"_index":1188,"t":{"166":{"position":[[103,6]]}}}],["app",{"_index":2601,"t":{"415":{"position":[[262,3]]}}}],["appar",{"_index":1668,"t":{"243":{"position":[[835,8]]}}}],["appear",{"_index":2709,"t":{"448":{"position":[[1121,7]]}}}],["append",{"_index":1634,"t":{"239":{"position":[[911,7]]}}}],["appendix",{"_index":2677,"t":{"445":{"position":[[448,8]]}}}],["appli",{"_index":279,"t":{"25":{"position":[[169,7]]},"122":{"position":[[447,5],[634,7],[764,7]]},"132":{"position":[[9130,5]]},"445":{"position":[[413,7]]},"495":{"position":[[73,5]]},"517":{"position":[[3203,5]]},"559":{"position":[[352,5],[622,7]]}}}],["applic",{"_index":626,"t":{"103":{"position":[[701,10]]},"112":{"position":[[147,11],[392,11]]},"140":{"position":[[92,13]]},"235":{"position":[[801,12]]},"239":{"position":[[513,11]]},"243":{"position":[[1325,11]]},"245":{"position":[[885,11]]},"251":{"position":[[682,12],[1759,11]]},"255":{"position":[[2197,13]]},"288":{"position":[[943,11]]}}}],["applications/kde/heaptrack_gui.app",{"_index":1828,"t":{"255":{"position":[[2237,35]]}}}],["appreci",{"_index":1505,"t":{"205":{"position":[[738,11]]}}}],["approach",{"_index":679,"t":{"107":{"position":[[1508,10]]},"162":{"position":[[407,9]]},"192":{"position":[[30,10]]},"251":{"position":[[114,9]]},"268":{"position":[[797,8]]},"336":{"position":[[1161,8]]},"372":{"position":[[1044,8]]},"423":{"position":[[105,9]]}}}],["appropri",{"_index":1221,"t":{"170":{"position":[[507,11]]},"231":{"position":[[153,11]]},"431":{"position":[[455,11]]},"559":{"position":[[1003,11]]}}}],["apr",{"_index":2449,"t":{"368":{"position":[[353,3],[524,3],[695,3],[890,3],[1083,3],[1282,3],[1481,3],[1677,3],[1742,3],[1804,3],[1956,3],[2108,3],[2270,3],[2432,3],[2584,3]]}}}],["apt",{"_index":1412,"t":{"201":{"position":[[244,3],[304,3]]},"247":{"position":[[288,3],[310,3]]},"251":{"position":[[1171,3],[1193,3]]},"253":{"position":[[14,4],[19,3],[65,3],[87,3]]},"448":{"position":[[132,3],[152,3],[412,3],[789,3],[809,3],[899,3]]}}}],["aptitud",{"_index":1787,"t":{"253":{"position":[[30,8]]}}}],["arbitrag",{"_index":2294,"t":{"346":{"position":[[102,9]]}}}],["arbitrari",{"_index":744,"t":{"114":{"position":[[252,9]]}}}],["arch=$(dpkg",{"_index":2696,"t":{"448":{"position":[[478,12]]}}}],["architectur",{"_index":2697,"t":{"448":{"position":[[499,13]]}}}],["arg",{"_index":2801,"t":{"483":{"position":[[2304,6]]}}}],["args.sh",{"_index":2714,"t":{"455":{"position":[[16,7],[42,7]]}}}],["argument",{"_index":447,"t":{"85":{"position":[[246,10]]},"194":{"position":[[235,9]]},"233":{"position":[[9,9],[141,10],[172,8],[212,10],[351,9]]},"239":{"position":[[371,9]]},"366":{"position":[[1048,9]]},"471":{"position":[[350,9]]},"485":{"position":[[748,8],[2140,9]]}}}],["aris",{"_index":2892,"t":{"502":{"position":[[698,7]]}}}],["aros",{"_index":1943,"t":{"263":{"position":[[1703,5]]}}}],["around",{"_index":1431,"t":{"203":{"position":[[877,6]]},"235":{"position":[[1144,6]]},"247":{"position":[[1485,6]]},"336":{"position":[[698,6]]},"581":{"position":[[224,6]]}}}],["array",{"_index":1616,"t":{"237":{"position":[[795,7],[899,6]]},"243":{"position":[[663,5],[678,5],[742,5]]},"268":{"position":[[1139,5]]},"290":{"position":[[562,5]]}}}],["arriv",{"_index":1285,"t":{"174":{"position":[[2194,6]]}}}],["arsen",{"_index":1670,"t":{"243":{"position":[[900,7]]}}}],["art",{"_index":1659,"t":{"243":{"position":[[23,3],[2028,3]]}}}],["articl",{"_index":2659,"t":{"437":{"position":[[1388,7],[1483,8]]},"502":{"position":[[5,7],[243,8],[559,7],[751,7],[811,8]]}}}],["artifact",{"_index":1724,"t":{"247":{"position":[[1189,9]]}}}],["ascii",{"_index":745,"t":{"114":{"position":[[287,5]]}}}],["ask",{"_index":591,"t":{"101":{"position":[[418,5]]},"226":{"position":[[83,5]]},"334":{"position":[[217,3]]},"543":{"position":[[128,3]]},"555":{"position":[[925,3]]}}}],["aspect",{"_index":770,"t":{"116":{"position":[[304,6]]}}}],["ass",{"_index":1146,"t":{"152":{"position":[[640,5]]}}}],["assault",{"_index":1914,"t":{"263":{"position":[[576,8]]}}}],["assemblyscript",{"_index":2990,"t":{"577":{"position":[[167,14]]},"588":{"position":[[134,14]]}}}],["assert",{"_index":692,"t":{"109":{"position":[[496,9],[571,9],[666,9],[704,9]]},"152":{"position":[[687,12],[1479,11]]},"168":{"position":[[321,10],[435,10]]},"170":{"position":[[100,10],[184,10],[228,10],[352,10],[481,10],[554,10],[668,6],[784,9],[840,8],[909,10],[1277,10],[1306,10]]},"172":{"position":[[61,11]]}}}],["asset",{"_index":2573,"t":{"390":{"position":[[68,6]]}}}],["assign",{"_index":2902,"t":{"504":{"position":[[126,6]]}}}],["assist",{"_index":112,"t":{"13":{"position":[[173,6]]},"411":{"position":[[416,6]]},"437":{"position":[[942,6]]}}}],["associ",{"_index":1581,"t":{"228":{"position":[[57,10]]},"233":{"position":[[493,10]]},"263":{"position":[[888,10]]},"336":{"position":[[291,10]]},"372":{"position":[[1091,10]]},"419":{"position":[[562,9]]}}}],["assum",{"_index":1400,"t":{"199":{"position":[[11,7]]},"243":{"position":[[1458,7]]},"247":{"position":[[0,6],[657,7]]},"255":{"position":[[471,7]]},"278":{"position":[[25,6]]},"350":{"position":[[730,7]]},"352":{"position":[[196,7]]},"364":{"position":[[128,6]]},"441":{"position":[[11,7]]},"485":{"position":[[240,8]]},"498":{"position":[[322,8]]}}}],["async",{"_index":2051,"t":{"278":{"position":[[1082,5],[1260,5]]}}}],["async_hook",{"_index":510,"t":{"91":{"position":[[420,13]]}}}],["att",{"_index":1271,"t":{"174":{"position":[[1108,3]]}}}],["attach",{"_index":1756,"t":{"251":{"position":[[618,9]]},"483":{"position":[[269,9],[608,10]]}}}],["attack",{"_index":1639,"t":{"239":{"position":[[1152,7]]},"263":{"position":[[398,7],[490,6],[922,7],[2618,8]]},"342":{"position":[[218,7]]},"366":{"position":[[193,9],[231,6]]},"372":{"position":[[562,9],[1118,8]]},"407":{"position":[[144,8]]},"469":{"position":[[550,8]]}}}],["attcount",{"_index":1239,"t":{"174":{"position":[[384,8],[2001,9]]}}}],["attempt",{"_index":1958,"t":{"263":{"position":[[2213,9]]},"372":{"position":[[1603,7]]}}}],["attent",{"_index":2775,"t":{"479":{"position":[[2564,9]]}}}],["attest",{"_index":1281,"t":{"174":{"position":[[2025,12],[2140,13],[2160,12]]},"259":{"position":[[734,12]]},"263":{"position":[[1714,12],[1788,13],[2002,12],[2136,12],[2277,13]]},"431":{"position":[[286,13]]},"493":{"position":[[1999,12],[2072,12]]},"563":{"position":[[1821,12],[1894,12]]}}}],["attestationparticipationassert",{"_index":1227,"t":{"170":{"position":[[1023,33]]}}}],["attestationscountassert",{"_index":1226,"t":{"170":{"position":[[996,26]]}}}],["attester_slash",{"_index":537,"t":{"93":{"position":[[708,17]]}}}],["authent",{"_index":937,"t":{"132":{"position":[[4498,14],[4757,14],[7632,14],[7788,14]]},"320":{"position":[[4465,14],[4724,14]]},"356":{"position":[[27,14]]},"358":{"position":[[91,12]]},"364":{"position":[[3983,14]]},"453":{"position":[[494,13]]},"517":{"position":[[1212,14],[1368,14]]}}}],["author",{"_index":2656,"t":{"437":{"position":[[1326,6],[1404,6]]},"502":{"position":[[109,6],[381,6],[599,6],[1020,6]]}}}],["authrpc.jwtsecret",{"_index":2317,"t":{"362":{"position":[[27,17],[402,17],[523,17]]}}}],["auto",{"_index":1040,"t":{"132":{"position":[[9430,4]]},"517":{"position":[[3503,4]]}}}],["automat",{"_index":555,"t":{"95":{"position":[[574,13]]},"190":{"position":[[1028,13]]},"233":{"position":[[392,13]]},"326":{"position":[[14,13]]},"433":{"position":[[235,13]]},"500":{"position":[[125,13]]},"555":{"position":[[1303,13]]},"559":{"position":[[220,13]]}}}],["aux",{"_index":1741,"t":{"249":{"position":[[610,3]]},"251":{"position":[[1455,3]]}}}],["avail",{"_index":78,"t":{"7":{"position":[[224,9],[251,9]]},"85":{"position":[[223,9]]},"95":{"position":[[280,9]]},"154":{"position":[[41,9]]},"166":{"position":[[607,9]]},"194":{"position":[[141,9]]},"235":{"position":[[199,9]]},"245":{"position":[[1770,9]]},"255":{"position":[[1442,9]]},"280":{"position":[[628,9],[790,9]]},"350":{"position":[[355,9]]},"354":{"position":[[392,9]]},"364":{"position":[[158,9],[248,9]]},"366":{"position":[[378,9],[548,9]]},"445":{"position":[[149,9],[176,9],[298,9]]},"461":{"position":[[170,9]]},"498":{"position":[[708,9]]},"502":{"position":[[793,9]]},"512":{"position":[[31,9]]},"515":{"position":[[48,9]]},"557":{"position":[[935,9]]},"559":{"position":[[1917,10],[2849,9]]}}}],["averag",{"_index":1283,"t":{"174":{"position":[[2076,7]]},"324":{"position":[[68,7]]}}}],["avoid",{"_index":735,"t":{"114":{"position":[[0,5]]},"132":{"position":[[1206,5]]},"320":{"position":[[1206,5]]},"372":{"position":[[1557,5]]}}}],["await",{"_index":2038,"t":{"278":{"position":[[634,5],[758,5],[801,5],[953,5]]},"280":{"position":[[726,5],[862,5]]},"288":{"position":[[651,5],[2093,5]]}}}],["awar",{"_index":2436,"t":{"366":{"position":[[1428,5]]}}}],["away",{"_index":1498,"t":{"205":{"position":[[536,4]]},"366":{"position":[[2452,4]]}}}],["awk",{"_index":1744,"t":{"249":{"position":[[647,3]]},"251":{"position":[[1492,3],[2573,3],[2623,3]]}}}],["b",{"_index":2584,"t":{"397":{"position":[[82,1]]}}}],["back",{"_index":1128,"t":{"148":{"position":[[6,4]]},"172":{"position":[[6,4]]},"178":{"position":[[6,4]]},"180":{"position":[[6,4]]},"182":{"position":[[6,4]]},"190":{"position":[[858,4],[1226,4]]},"199":{"position":[[419,4]]},"245":{"position":[[1317,4]]}}}],["backward",{"_index":2561,"t":{"381":{"position":[[208,9]]}}}],["bad",{"_index":1986,"t":{"268":{"position":[[260,4]]}}}],["bail",{"_index":523,"t":{"93":{"position":[[289,4],[634,4]]}}}],["balanc",{"_index":1920,"t":{"263":{"position":[[817,8]]},"288":{"position":[[641,7],[2083,7]]},"547":{"position":[[330,8]]}}}],["bandwidth",{"_index":2252,"t":{"336":{"position":[[476,10]]}}}],["bar",{"_index":1648,"t":{"241":{"position":[[242,3]]}}}],["bare",{"_index":1200,"t":{"168":{"position":[[174,4]]}}}],["base",{"_index":342,"t":{"41":{"position":[[436,5]]},"69":{"position":[[62,5]]},"89":{"position":[[64,5]]},"103":{"position":[[467,5]]},"107":{"position":[[1863,5]]},"136":{"position":[[55,6]]},"233":{"position":[[444,5]]},"241":{"position":[[172,5]]},"257":{"position":[[658,5]]},"336":{"position":[[375,5],[654,5]]},"372":{"position":[[450,5]]},"437":{"position":[[89,5]]}}}],["basi",{"_index":589,"t":{"101":{"position":[[351,6]]},"166":{"position":[[401,5]]}}}],["basic",{"_index":1099,"t":{"134":{"position":[[666,5]]},"201":{"position":[[513,5]]},"203":{"position":[[14,5]]},"300":{"position":[[73,5]]},"326":{"position":[[215,5]]},"352":{"position":[[62,5]]}}}],["batch",{"_index":2167,"t":{"294":{"position":[[27,5]]}}}],["be",{"_index":1277,"t":{"174":{"position":[[1333,5],[1555,5]]},"243":{"position":[[325,5],[861,5],[1933,5],[1994,5]]},"251":{"position":[[455,5]]},"259":{"position":[[275,5],[377,5]]},"261":{"position":[[82,5]]},"263":{"position":[[1439,5]]},"272":{"position":[[545,5]]},"330":{"position":[[1192,5]]},"366":{"position":[[978,5]]},"372":{"position":[[850,5],[1563,5]]},"383":{"position":[[632,5]]},"419":{"position":[[726,5]]},"568":{"position":[[195,5]]}}}],["beacon",{"_index":24,"t":{"5":{"position":[[199,6],[314,6]]},"19":{"position":[[115,6],[572,6],[883,6],[954,6],[2377,6]]},"29":{"position":[[88,6]]},"33":{"position":[[42,6],[151,6]]},"37":{"position":[[52,6],[126,6]]},"41":{"position":[[164,6]]},"55":{"position":[[71,6],[166,6],[269,6]]},"95":{"position":[[165,6],[204,6],[450,6],[475,6]]},"128":{"position":[[20,6]]},"130":{"position":[[15,6]]},"132":{"position":[[595,6],[819,6],[2343,9],[9113,6],[9522,6],[10163,6],[10304,6]]},"160":{"position":[[41,6]]},"194":{"position":[[252,6]]},"196":{"position":[[150,7]]},"203":{"position":[[101,6],[224,6],[276,6],[404,6],[1095,6]]},"205":{"position":[[1198,8]]},"231":{"position":[[29,6]]},"247":{"position":[[46,6],[242,6]]},"249":{"position":[[13,7],[42,9],[236,6]]},"251":{"position":[[801,7],[830,9],[954,6]]},"261":{"position":[[69,6]]},"272":{"position":[[13,6]]},"278":{"position":[[51,6]]},"312":{"position":[[1140,6]]},"314":{"position":[[193,6]]},"316":{"position":[[6,6]]},"318":{"position":[[6,6],[70,6]]},"320":{"position":[[595,6],[819,6],[2343,9]]},"322":{"position":[[85,6],[321,6],[360,6],[394,6],[805,6]]},"324":{"position":[[700,6]]},"330":{"position":[[1332,6]]},"332":{"position":[[952,6]]},"334":{"position":[[51,6]]},"342":{"position":[[337,6],[392,6],[473,6],[587,6]]},"350":{"position":[[40,6],[391,6]]},"352":{"position":[[173,6]]},"354":{"position":[[199,6],[245,6],[502,6]]},"360":{"position":[[28,6]]},"364":{"position":[[22,7],[58,6],[366,6],[776,6],[3926,6],[4030,6]]},"366":{"position":[[366,6],[526,6],[675,6],[790,6],[1066,6],[1322,6]]},"368":{"position":[[13,6],[3068,6],[3804,6]]},"370":{"position":[[322,6],[385,6]]},"375":{"position":[[188,6]]},"377":{"position":[[221,6],[319,6]]},"379":{"position":[[161,6]]},"383":{"position":[[584,6]]},"385":{"position":[[49,6]]},"417":{"position":[[66,6]]},"425":{"position":[[269,6]]},"427":{"position":[[382,6]]},"431":{"position":[[300,6]]},"469":{"position":[[312,6],[732,6]]},"483":{"position":[[183,6],[433,6],[737,6],[1017,6],[1322,6]]},"485":{"position":[[1771,6],[2342,6]]},"491":{"position":[[5,6],[331,6]]},"493":{"position":[[972,6],[1064,6],[1123,6],[1217,6],[1564,6],[1753,6],[2190,6]]},"517":{"position":[[3186,6],[3595,6],[4236,6],[4377,6]]},"521":{"position":[[218,6]]},"525":{"position":[[218,6]]},"557":{"position":[[719,6]]},"559":{"position":[[21,6],[163,6],[335,6],[637,6],[702,6],[1502,6]]},"561":{"position":[[113,6],[202,6],[335,6]]},"563":{"position":[[794,6],[886,6],[945,6],[1039,6],[1386,6],[1575,6]]},"583":{"position":[[371,6]]}}}],["beacon\",\"config\",\"debug\",\"events\",\"node\",\"validator\",\"lightcli",{"_index":877,"t":{"132":{"position":[[2452,69]]},"320":{"position":[[2452,69]]}}}],["beacon.log",{"_index":2181,"t":{"322":{"position":[[851,10]]}}}],["beacon/perf.out",{"_index":1515,"t":{"205":{"position":[[1306,17]]}}}],["beacon/valid",{"_index":2817,"t":{"485":{"position":[[2157,16]]}}}],["beacon_lodestar.log",{"_index":1293,"t":{"176":{"position":[[258,20]]}}}],["beacon_run.sh",{"_index":1447,"t":{"203":{"position":[[1158,13]]}}}],["beaconapiurl",{"_index":2020,"t":{"276":{"position":[[114,12]]},"312":{"position":[[1117,13]]}}}],["beaconcha.in",{"_index":965,"t":{"132":{"position":[[5820,13]]},"320":{"position":[[5680,13]]},"415":{"position":[[144,13],[209,12]]},"419":{"position":[[225,13]]},"517":{"position":[[5540,13]]}}}],["beaconchain_current_finalized_epoch",{"_index":2629,"t":{"429":{"position":[[388,35]]}}}],["beaconchain_current_slot",{"_index":2628,"t":{"429":{"position":[[363,24]]}}}],["beaconchain_p",{"_index":2627,"t":{"429":{"position":[[345,17]]}}}],["beaconnod",{"_index":1001,"t":{"132":{"position":[[8098,12],[8135,10]]},"517":{"position":[[1678,12],[1715,10]]},"521":{"position":[[58,12],[95,10]]},"525":{"position":[[58,12],[95,10]]}}}],["beaconurl",{"_index":2104,"t":{"288":{"position":[[2348,10]]}}}],["bearer",{"_index":995,"t":{"132":{"position":[[7625,6],[7750,6]]},"517":{"position":[[1205,6],[1330,6]]}}}],["becom",{"_index":1695,"t":{"245":{"position":[[612,6]]},"268":{"position":[[1022,8]]},"324":{"position":[[430,6]]},"372":{"position":[[707,7]]}}}],["befor",{"_index":463,"t":{"87":{"position":[[490,6]]},"91":{"position":[[365,6]]},"93":{"position":[[464,6]]},"116":{"position":[[314,7]]},"120":{"position":[[111,6]]},"132":{"position":[[3309,6]]},"162":{"position":[[171,6]]},"184":{"position":[[222,7]]},"186":{"position":[[665,6]]},"188":{"position":[[0,6]]},"320":{"position":[[3096,6],[3262,6]]},"346":{"position":[[234,6]]},"437":{"position":[[1188,6],[1564,6]]},"441":{"position":[[101,6]]},"566":{"position":[[169,6]]},"568":{"position":[[206,6]]}}}],["begin",{"_index":559,"t":{"97":{"position":[[16,5]]},"211":{"position":[[121,5]]},"330":{"position":[[177,6]]},"370":{"position":[[715,7]]}}}],["behavior",{"_index":1085,"t":{"134":{"position":[[313,8]]},"288":{"position":[[899,8],[1518,8]]},"485":{"position":[[1274,8]]}}}],["behind",{"_index":1286,"t":{"174":{"position":[[2220,6]]},"342":{"position":[[17,6]]},"344":{"position":[[43,6]]},"368":{"position":[[3112,6],[3207,6]]}}}],["below",{"_index":121,"t":{"19":{"position":[[198,5]]},"27":{"position":[[87,5]]},"63":{"position":[[0,5]]},"116":{"position":[[415,5]]},"122":{"position":[[385,6]]},"168":{"position":[[446,5]]},"170":{"position":[[1288,6]]},"203":{"position":[[260,6]]},"205":{"position":[[18,5]]},"241":{"position":[[477,6]]},"247":{"position":[[151,5]]},"251":{"position":[[1885,5]]},"288":{"position":[[103,5]]},"314":{"position":[[99,5]]},"340":{"position":[[89,5]]},"399":{"position":[[84,5]]},"448":{"position":[[459,6]]},"477":{"position":[[577,6]]},"479":{"position":[[1645,6],[2485,6]]},"483":{"position":[[1701,5],[2476,6]]},"559":{"position":[[1284,6]]}}}],["belt",{"_index":1305,"t":{"184":{"position":[[295,5]]}}}],["ben",{"_index":1963,"t":{"265":{"position":[[36,3]]}}}],["benchmark",{"_index":1114,"t":{"140":{"position":[[263,9]]}}}],["benefici",{"_index":1544,"t":{"213":{"position":[[236,11]]},"375":{"position":[[363,10]]},"379":{"position":[[61,10]]}}}],["benefit",{"_index":1783,"t":{"251":{"position":[[2930,8]]}}}],["best",{"_index":576,"t":{"99":{"position":[[53,4]]},"107":{"position":[[1666,4]]},"199":{"position":[[288,4]]},"207":{"position":[[11,4]]},"241":{"position":[[6,4]]},"243":{"position":[[54,4]]},"251":{"position":[[2806,4]]},"437":{"position":[[1137,4]]}}}],["besu",{"_index":2320,"t":{"362":{"position":[[263,5]]},"437":{"position":[[797,4]]},"471":{"position":[[506,4]]},"483":{"position":[[1100,4],[1193,4]]},"485":{"position":[[444,5]]}}}],["better",{"_index":1696,"t":{"245":{"position":[[783,7]]}}}],["between",{"_index":927,"t":{"132":{"position":[[4183,7],[5895,7],[10836,7]]},"237":{"position":[[578,7],[709,7]]},"320":{"position":[[4150,7],[5755,7]]},"330":{"position":[[204,7]]},"338":{"position":[[212,7]]},"421":{"position":[[38,7]]},"481":{"position":[[638,7]]},"485":{"position":[[327,7]]},"517":{"position":[[4909,7],[5615,7]]},"559":{"position":[[3076,7]]}}}],["beyond",{"_index":2555,"t":{"372":{"position":[[1630,6]]}}}],["bid",{"_index":2726,"t":{"459":{"position":[[287,3],[386,3]]}}}],["binari",{"_index":14,"t":{"5":{"position":[[47,9]]},"45":{"position":[[56,9]]},"85":{"position":[[135,6]]},"184":{"position":[[1082,6],[1234,6],[1312,6],[1581,6],[1742,6]]},"190":{"position":[[99,6]]},"231":{"position":[[375,6]]},"245":{"position":[[863,7]]},"247":{"position":[[924,6]]},"255":{"position":[[59,6],[1857,8]]},"288":{"position":[[2207,7]]},"390":{"position":[[0,8]]},"407":{"position":[[87,8]]},"577":{"position":[[76,6]]},"588":{"position":[[54,6]]}}}],["bind",{"_index":397,"t":{"65":{"position":[[77,9]]}}}],["bindaddr4=/ip4/0.0.0.0/udp/9000",{"_index":2237,"t":{"332":{"position":[[866,31]]},"364":{"position":[[1743,31]]},"491":{"position":[[1298,31]]}}}],["bit",{"_index":1159,"t":{"152":{"position":[[1394,3],[1531,4]]},"203":{"position":[[740,3]]},"237":{"position":[[947,3]]},"255":{"position":[[86,3]]}}}],["bitcoin",{"_index":1839,"t":{"257":{"position":[[237,8]]}}}],["bl",{"_index":2920,"t":{"512":{"position":[[210,3]]},"543":{"position":[[9,3],[187,3]]},"545":{"position":[[8,3],[98,3]]},"547":{"position":[[199,3]]},"551":{"position":[[32,3]]},"579":{"position":[[47,3],[131,3],[206,3],[306,3]]},"586":{"position":[[0,3],[25,3],[55,3],[89,3],[135,3],[178,3],[227,3]]}}}],["blank",{"_index":2425,"t":{"366":{"position":[[37,5]]}}}],["blend",{"_index":2258,"t":{"336":{"position":[[943,5]]}}}],["blind",{"_index":616,"t":{"103":{"position":[[415,7]]},"132":{"position":[[9654,7]]},"517":{"position":[[3727,7]]}}}],["blindedloc",{"_index":1045,"t":{"132":{"position":[[9608,13]]},"517":{"position":[[3681,13]]}}}],["blob",{"_index":910,"t":{"132":{"position":[[3420,5]]},"320":{"position":[[3373,5]]}}}],["block",{"_index":614,"t":{"103":{"position":[[398,5],[423,5]]},"109":{"position":[[888,5]]},"122":{"position":[[164,7]]},"132":{"position":[[344,5],[387,5],[421,5],[465,5],[505,5],[1048,5],[2965,5],[8341,6],[8903,5],[9097,5],[9177,5],[9221,6],[9409,5],[9453,6],[9549,5],[9645,5]]},"174":{"position":[[2413,5],[2494,5],[2575,5]]},"259":{"position":[[253,7],[407,6],[453,5],[544,6],[674,5],[1012,5]]},"268":{"position":[[592,5]]},"292":{"position":[[314,5]]},"312":{"position":[[344,5],[387,5],[421,5],[465,5],[505,5]]},"320":{"position":[[344,5],[387,5],[421,5],[465,5],[505,5],[1048,5],[2951,5]]},"322":{"position":[[281,6],[372,6]]},"346":{"position":[[318,5]]},"348":{"position":[[267,5],[313,5],[369,7]]},"364":{"position":[[2192,6],[2479,6],[2677,6],[2957,6],[3110,6],[3263,6]]},"366":{"position":[[913,5]]},"368":{"position":[[249,5],[459,6],[630,6],[816,6],[1009,6],[1208,6],[1407,6],[1603,6],[1882,6],[2034,6],[2196,6],[2358,6],[2510,6],[2662,6],[2955,6],[3280,5],[3337,5],[3448,5]]},"372":{"position":[[997,6]]},"377":{"position":[[40,6],[64,5],[120,6]]},"379":{"position":[[28,6],[221,6]]},"381":{"position":[[201,6],[360,5]]},"383":{"position":[[625,6],[754,6]]},"387":{"position":[[344,5],[387,5],[421,5],[465,5],[505,5]]},"431":{"position":[[307,7]]},"437":{"position":[[1074,7]]},"457":{"position":[[164,7]]},"459":{"position":[[333,5]]},"469":{"position":[[855,5]]},"491":{"position":[[1747,6],[2034,6],[2232,6],[2512,6],[2665,6],[2818,6]]},"517":{"position":[[344,5],[387,5],[421,5],[465,5],[505,5],[1921,6],[2256,5],[2976,5],[3170,5],[3250,5],[3294,6],[3482,5],[3526,6],[3622,5],[3718,5]]},"557":{"position":[[120,7]]},"559":{"position":[[123,5],[319,5],[399,5],[443,6],[895,5],[1167,6],[1383,6],[1559,5],[1655,5],[1817,6],[1843,5],[1879,5],[2117,5],[2177,5],[2225,5],[2403,5],[2439,5],[2623,5],[2674,6],[2822,6],[2867,5],[2896,5],[3070,5],[3127,5]]}}}],["blockchain",{"_index":346,"t":{"43":{"position":[[82,10]]},"257":{"position":[[114,10],[272,10]]},"268":{"position":[[81,10],[329,11],[532,11],[1078,10]]},"370":{"position":[[58,10]]},"372":{"position":[[159,10],[408,10],[654,10],[1356,10]]}}}],["blockresult",{"_index":700,"t":{"109":{"position":[[803,11]]}}}],["blockresult.id",{"_index":703,"t":{"109":{"position":[[894,17]]}}}],["blockroot>:_.log",{"_index":1292,"t":{"176":{"position":[[212,19]]}}}],["typescript",{"_index":6,"t":{"3":{"position":[[57,10]]},"5":{"position":[[173,10]]},"31":{"position":[[25,10]]},"51":{"position":[[31,10]]},"65":{"position":[[27,10]]},"67":{"position":[[49,10]]},"71":{"position":[[40,10]]},"87":{"position":[[201,10]]},"107":{"position":[[732,10]]},"257":{"position":[[647,10]]},"261":{"position":[[302,12]]},"280":{"position":[[1067,12]]},"581":{"position":[[37,10],[185,10]]},"583":{"position":[[220,10]]}}}],["typic",{"_index":1167,"t":{"156":{"position":[[12,7]]}}}],["typo",{"_index":561,"t":{"97":{"position":[[80,6]]}}}],["ubuntu",{"_index":2638,"t":{"437":{"position":[[82,6],[675,6]]},"441":{"position":[[125,6]]},"445":{"position":[[368,6]]},"448":{"position":[[721,7],[756,6]]},"498":{"position":[[22,6]]}}}],["udp",{"_index":970,"t":{"132":{"position":[[6078,3],[6177,3],[6279,3],[6416,3],[6497,3],[6601,3],[7272,3],[7448,3]]},"320":{"position":[[5938,3],[6037,3],[6139,3],[6276,3],[6357,3],[6461,3],[7132,3],[7308,3]]},"330":{"position":[[1014,3]]},"340":{"position":[[610,3]]},"387":{"position":[[666,3],[809,3],[1201,3],[1313,3]]}}}],["ui",{"_index":764,"t":{"116":{"position":[[158,2]]},"132":{"position":[[2796,2]]},"320":{"position":[[2796,2]]}}}],["uid",{"_index":767,"t":{"116":{"position":[[204,3]]}}}],["ulimit",{"_index":1354,"t":{"188":{"position":[[62,6]]}}}],["unam",{"_index":1413,"t":{"201":{"position":[[332,6]]}}}],["unassign",{"_index":570,"t":{"97":{"position":[[249,10]]}}}],["under",{"_index":411,"t":{"69":{"position":[[104,5]]},"152":{"position":[[550,5]]},"188":{"position":[[463,5]]},"239":{"position":[[86,5]]},"383":{"position":[[93,5]]},"390":{"position":[[58,5]]},"395":{"position":[[543,5]]},"439":{"position":[[128,5],[249,5]]},"471":{"position":[[257,5],[298,5]]},"498":{"position":[[786,5]]}}}],["undergo",{"_index":2979,"t":{"566":{"position":[[21,9]]}}}],["underscor",{"_index":1915,"t":{"263":{"position":[[585,12],[2513,11]]}}}],["understand",{"_index":43,"t":{"5":{"position":[[408,10]]},"114":{"position":[[99,10]]},"235":{"position":[[1199,10]]},"237":{"position":[[95,13],[151,10]]},"243":{"position":[[2056,13]]},"300":{"position":[[79,13]]},"322":{"position":[[598,10]]},"326":{"position":[[221,13]]},"377":{"position":[[355,13]]}}}],["understood",{"_index":1614,"t":{"237":{"position":[[737,11]]}}}],["undesir",{"_index":2003,"t":{"268":{"position":[[920,10]]}}}],["unfilt",{"_index":1543,"t":{"213":{"position":[[218,10]]}}}],["unforgiv",{"_index":1108,"t":{"140":{"position":[[14,11]]}}}],["unfortun",{"_index":2075,"t":{"280":{"position":[[1135,13]]},"296":{"position":[[79,14]]}}}],["uniqu",{"_index":2954,"t":{"557":{"position":[[784,6]]}}}],["unit",{"_index":449,"t":{"87":{"position":[[40,4]]},"107":{"position":[[1459,4],[1720,4],[1901,4]]},"136":{"position":[[160,4],[180,4]]}}}],["unknown",{"_index":1490,"t":{"205":{"position":[[145,8]]},"213":{"position":[[427,14]]},"233":{"position":[[0,8],[164,7],[204,7]]},"383":{"position":[[124,7]]}}}],["unless",{"_index":673,"t":{"107":{"position":[[1255,6]]},"186":{"position":[[213,6]]},"481":{"position":[[49,6]]},"559":{"position":[[1390,6],[1824,6]]}}}],["unlik",{"_index":1996,"t":{"268":{"position":[[462,6]]},"372":{"position":[[179,6]]}}}],["unlimit",{"_index":1356,"t":{"188":{"position":[[72,9]]}}}],["unpin",{"_index":469,"t":{"87":{"position":[[753,8]]},"109":{"position":[[209,8]]}}}],["unpkg",{"_index":2064,"t":{"280":{"position":[[299,5]]}}}],["unrealist",{"_index":2556,"t":{"372":{"position":[[1665,15]]}}}],["unrecogn",{"_index":789,"t":{"120":{"position":[[431,12]]}}}],["unsaf",{"_index":2779,"t":{"481":{"position":[[155,7]]}}}],["unstabl",{"_index":762,"t":{"116":{"position":[[110,8]]},"251":{"position":[[641,8]]},"392":{"position":[[205,8]]},"467":{"position":[[106,8],[457,8]]}}}],["unsur",{"_index":558,"t":{"97":{"position":[[0,6]]}}}],["until",{"_index":630,"t":{"103":{"position":[[908,5]]},"249":{"position":[[396,5]]},"251":{"position":[[1313,5]]},"381":{"position":[[234,5]]},"407":{"position":[[153,5]]}}}],["untim",{"_index":1959,"t":{"263":{"position":[[2268,8]]}}}],["unus",{"_index":2649,"t":{"437":{"position":[[1082,6]]}}}],["unverifiedwhitelist",{"_index":2115,"t":{"292":{"position":[[131,19],[176,19]]}}}],["unwant",{"_index":2278,"t":{"342":{"position":[[194,8]]}}}],["unzip",{"_index":2616,"t":{"427":{"position":[[68,5]]}}}],["up",{"_index":130,"t":{"19":{"position":[[328,2],[512,2]]},"21":{"position":[[7,2]]},"89":{"position":[[55,2]]},"93":{"position":[[572,2]]},"95":{"position":[[198,2],[417,2]]},"140":{"position":[[157,2]]},"152":{"position":[[1443,2]]},"166":{"position":[[13,2]]},"184":{"position":[[124,2]]},"186":{"position":[[814,2]]},"241":{"position":[[278,2]]},"259":{"position":[[151,2]]},"276":{"position":[[24,2]]},"280":{"position":[[854,2]]},"326":{"position":[[372,2]]},"330":{"position":[[245,3]]},"360":{"position":[[14,2]]},"370":{"position":[[223,2]]},"375":{"position":[[150,2]]},"379":{"position":[[131,2]]},"395":{"position":[[524,2]]},"409":{"position":[[159,2]]},"415":{"position":[[183,2]]},"483":{"position":[[1617,2]]},"485":{"position":[[1676,2]]},"493":{"position":[[2226,3]]}}}],["updat",{"_index":336,"t":{"41":{"position":[[228,8]]},"97":{"position":[[130,8]]},"112":{"position":[[646,8]]},"116":{"position":[[456,7]]},"120":{"position":[[38,8]]},"148":{"position":[[64,8]]},"178":{"position":[[64,8]]},"180":{"position":[[64,8]]},"182":{"position":[[64,8]]},"186":{"position":[[445,8]]},"201":{"position":[[148,8],[415,6]]},"203":{"position":[[160,8]]},"205":{"position":[[363,6]]},"247":{"position":[[296,6]]},"251":{"position":[[1179,6]]},"253":{"position":[[73,6]]},"278":{"position":[[1141,8],[1323,8]]},"320":{"position":[[3067,6]]},"379":{"position":[[283,7]]},"411":{"position":[[25,6]]},"448":{"position":[[140,6],[714,6],[740,7],[797,6]]},"485":{"position":[[2483,6]]},"500":{"position":[[3,6]]}}}],["updateheadersonforcedupd",{"_index":2047,"t":{"278":{"position":[[874,28]]}}}],["upgrad",{"_index":1182,"t":{"162":{"position":[[187,8]]},"265":{"position":[[14,9]]},"340":{"position":[[400,9]]},"448":{"position":[[817,7]]}}}],["upload",{"_index":86,"t":{"7":{"position":[[311,6],[350,6]]},"445":{"position":[[236,6],[275,6]]}}}],["upnp",{"_index":2291,"t":{"344":{"position":[[26,5]]}}}],["upon",{"_index":2548,"t":{"372":{"position":[[960,4],[1390,4]]},"405":{"position":[[62,4]]},"541":{"position":[[79,4]]}}}],["uppercase_with_underscor",{"_index":657,"t":{"107":{"position":[[585,27]]}}}],["upsid",{"_index":1754,"t":{"251":{"position":[[474,7]]}}}],["url",{"_index":834,"t":{"132":{"position":[[583,3],[3566,4],[3837,4],[4990,3],[10393,3]]},"241":{"position":[[238,3],[313,3]]},"288":{"position":[[431,5],[1850,5]]},"312":{"position":[[1131,3]]},"320":{"position":[[583,3],[3533,4],[3804,4],[4865,3]]},"350":{"position":[[200,4]]},"366":{"position":[[622,3],[1120,4],[1405,4],[1474,3]]},"419":{"position":[[104,4],[670,3]]},"465":{"position":[[211,3]]},"469":{"position":[[909,4],[1018,4]]},"485":{"position":[[613,4],[2194,3]]},"517":{"position":[[4466,3]]}}}],["url=http://localhost:8661",{"_index":2347,"t":{"364":{"position":[[1211,25]]},"491":{"position":[[766,25]]}}}],["urls=http://127.0.0.1:9596",{"_index":2843,"t":{"493":{"position":[[984,26]]},"563":{"position":[[806,26]]}}}],["urls=http://localhost:8551",{"_index":2344,"t":{"364":{"position":[[1058,26],[1139,26]]},"491":{"position":[[613,26],[694,26]]}}}],["us",{"_index":17,"t":{"5":{"position":[[91,3],[128,3]]},"19":{"position":[[174,4],[408,4],[1280,6],[1440,4],[2476,3]]},"25":{"position":[[205,4]]},"35":{"position":[[78,4]]},"39":{"position":[[34,4],[137,3]]},"49":{"position":[[113,5]]},"53":{"position":[[58,4]]},"55":{"position":[[114,4],[236,4],[321,4]]},"71":{"position":[[112,4]]},"77":{"position":[[82,4]]},"83":{"position":[[5,5]]},"87":{"position":[[786,4]]},"89":{"position":[[112,4]]},"93":{"position":[[267,3],[402,3]]},"105":{"position":[[138,5]]},"107":{"position":[[25,5],[391,3],[613,3],[726,5],[902,3],[1230,3],[1314,3],[1882,3]]},"109":{"position":[[242,4]]},"114":{"position":[[336,3]]},"116":{"position":[[431,3]]},"120":{"position":[[360,3],[425,5]]},"128":{"position":[[57,3]]},"132":{"position":[[1823,3],[3117,5],[3155,4],[3689,3],[4441,4],[4603,4],[4748,4],[7029,4],[7763,4],[8251,3],[8826,4],[10139,3],[10507,4],[10715,4]]},"134":{"position":[[473,6],[655,3]]},"136":{"position":[[125,4]]},"144":{"position":[[292,5]]},"156":{"position":[[147,4],[211,4],[275,4]]},"158":{"position":[[161,5]]},"162":{"position":[[292,4]]},"164":{"position":[[93,3]]},"170":{"position":[[660,4]]},"174":{"position":[[23,5],[1405,3]]},"184":{"position":[[1020,3],[1377,6],[1471,5]]},"188":{"position":[[602,3],[736,3]]},"190":{"position":[[939,3]]},"194":{"position":[[32,3],[349,5]]},"196":{"position":[[390,3]]},"199":{"position":[[250,3]]},"201":{"position":[[0,3],[556,7]]},"205":{"position":[[655,3],[909,4]]},"213":{"position":[[134,7]]},"235":{"position":[[403,6],[790,3]]},"237":{"position":[[193,3]]},"239":{"position":[[198,3],[1454,3]]},"241":{"position":[[217,5]]},"245":{"position":[[139,4],[624,7],[813,5],[1855,3]]},"247":{"position":[[341,5],[514,3]]},"251":{"position":[[461,5],[763,3],[2266,4]]},"255":{"position":[[215,6]]},"268":{"position":[[743,5],[1148,3]]},"272":{"position":[[516,3]]},"280":{"position":[[15,3],[128,3],[732,4],[834,3]]},"288":{"position":[[8,3],[90,3],[838,3],[911,6],[1290,6]]},"290":{"position":[[363,5]]},"296":{"position":[[3,3],[173,5]]},"312":{"position":[[773,3]]},"320":{"position":[[1823,3],[3656,3],[4408,4],[4570,4],[4715,4],[6889,4]]},"332":{"position":[[495,3]]},"334":{"position":[[64,3],[105,4],[200,4]]},"350":{"position":[[439,4]]},"354":{"position":[[311,3]]},"358":{"position":[[83,4],[136,3],[242,3]]},"362":{"position":[[17,3],[98,3],[144,3],[229,3],[269,3],[350,3],[392,3],[473,3],[513,3],[594,3]]},"364":{"position":[[282,3]]},"366":{"position":[[1853,4]]},"368":{"position":[[3891,3]]},"383":{"position":[[159,4],[713,3],[815,4]]},"387":{"position":[[1622,3]]},"392":{"position":[[494,3],[617,3]]},"395":{"position":[[99,3],[399,3],[473,3],[576,5]]},"403":{"position":[[33,4]]},"407":{"position":[[81,5],[210,3]]},"411":{"position":[[94,4]]},"413":{"position":[[83,3]]},"419":{"position":[[343,6],[476,3],[639,3]]},"421":{"position":[[400,6]]},"433":{"position":[[670,3],[790,3]]},"437":{"position":[[114,5],[225,3],[443,4],[570,5]]},"443":{"position":[[235,5]]},"459":{"position":[[65,3],[309,3]]},"461":{"position":[[5,5],[187,3]]},"463":{"position":[[68,4],[81,3]]},"465":{"position":[[54,3],[367,3]]},"467":{"position":[[54,5],[90,3],[278,3],[447,5]]},"469":{"position":[[20,3],[426,5],[1003,3]]},"471":{"position":[[154,6]]},"475":{"position":[[130,4]]},"477":{"position":[[343,5],[444,3],[570,3],[832,5],[1119,5]]},"479":{"position":[[933,4],[1521,5],[1638,3],[1928,5],[2229,5]]},"481":{"position":[[16,3],[33,3],[1056,3],[1152,3]]},"483":{"position":[[771,6],[1051,6],[1364,6],[1693,3],[1851,6],[2437,5]]},"485":{"position":[[691,5],[921,3],[1181,3],[1413,5],[1481,5],[1699,5],[1845,5],[2178,3]]},"487":{"position":[[64,5]]},"489":{"position":[[152,5],[385,5]]},"495":{"position":[[39,5]]},"500":{"position":[[200,5],[355,5],[480,5]]},"502":{"position":[[739,3],[886,4]]},"504":{"position":[[180,5]]},"517":{"position":[[773,3],[1343,4],[1831,3],[2408,5],[2446,4],[2757,4],[4212,3],[4580,4],[4788,4]]},"521":{"position":[[231,3]]},"525":{"position":[[231,3]]},"551":{"position":[[45,3],[174,5]]},"553":{"position":[[35,5],[210,3]]},"555":{"position":[[288,4],[490,5],[1386,3],[1731,5]]},"557":{"position":[[272,5],[597,3]]},"559":{"position":[[72,3],[1174,5],[2065,4],[2445,5]]},"561":{"position":[[7,3]]},"566":{"position":[[128,5]]},"568":{"position":[[201,4]]},"581":{"position":[[69,4]]},"583":{"position":[[8,6],[102,6],[114,4]]}}}],["usabl",{"_index":1697,"t":{"245":{"position":[[932,7]]}}}],["usag",{"_index":292,"t":{"29":{"position":[[57,5]]},"73":{"position":[[119,5]]},"132":{"position":[[9381,5]]},"205":{"position":[[764,5]]},"235":{"position":[[1246,6]]},"237":{"position":[[88,6]]},"288":{"position":[[959,5]]},"407":{"position":[[32,6]]},"477":{"position":[[646,5]]},"479":{"position":[[1714,5]]},"517":{"position":[[3454,5]]},"559":{"position":[[1274,5]]}}}],["useless",{"_index":1698,"t":{"245":{"position":[[969,7]]}}}],["useproduceblockv3",{"_index":1037,"t":{"132":{"position":[[9347,18]]},"517":{"position":[[3420,18]]}}}],["useproduceblockv3=deneb",{"_index":2848,"t":{"493":{"position":[[1329,25]]},"563":{"position":[[1151,25]]}}}],["user",{"_index":708,"t":{"112":{"position":[[101,5],[221,6],[754,5]]},"114":{"position":[[198,4]]},"142":{"position":[[77,4]]},"152":{"position":[[1021,4]]},"226":{"position":[[92,5]]},"245":{"position":[[309,4]]},"268":{"position":[[45,5]]},"354":{"position":[[550,6]]},"395":{"position":[[493,5],[557,5]]},"405":{"position":[[287,4]]},"409":{"position":[[60,5]]},"485":{"position":[[1185,4],[1587,5],[1661,5]]},"498":{"position":[[80,5]]},"543":{"position":[[136,4]]},"553":{"position":[[107,5],[186,4]]}}}],["usernam",{"_index":601,"t":{"103":{"position":[[99,8]]}}}],["users/ninja_user/.nvm/versions/node/v22.1.0/lib/node_modules/llnode/llnode.dylib",{"_index":1352,"t":{"186":{"position":[[887,83]]},"190":{"position":[[404,83]]}}}],["users/ninja_user/coredumps/node.coredump",{"_index":1373,"t":{"190":{"position":[[211,41],[320,43]]}}}],["usr/lib/heaptrack/libheaptrack_preload.so",{"_index":1772,"t":{"251":{"position":[[1691,42]]}}}],["usr/src/lodestar/packages/cli/bin/lodestar",{"_index":1421,"t":{"203":{"position":[[55,43]]},"205":{"position":[[1153,44]]}}}],["usual",{"_index":1153,"t":{"152":{"position":[[1056,7]]},"184":{"position":[[432,7]]},"239":{"position":[[581,7]]},"324":{"position":[[338,7]]}}}],["utf8",{"_index":746,"t":{"114":{"position":[[296,4]]},"132":{"position":[[8355,4]]},"517":{"position":[[1935,4]]}}}],["util",{"_index":29,"t":{"5":{"position":[[243,7]]},"53":{"position":[[20,4],[42,7]]},"59":{"position":[[33,9]]},"332":{"position":[[55,8]]},"425":{"position":[[125,9]]},"437":{"position":[[32,7]]},"469":{"position":[[350,9]]},"527":{"position":[[255,8]]},"549":{"position":[[43,9]]},"579":{"position":[[276,7]]},"586":{"position":[[148,7]]}}}],["utmost",{"_index":2446,"t":{"368":{"position":[[60,6]]}}}],["uv_",{"_index":1548,"t":{"213":{"position":[[347,4]]}}}],["v",{"_index":1743,"t":{"249":{"position":[[638,1]]},"251":{"position":[[1483,1]]},"392":{"position":[[358,1]]}}}],["v0",{"_index":2118,"t":{"292":{"position":[[341,2],[367,2],[650,2],[671,2],[1105,2],[1173,2],[1192,2],[1430,2],[1452,2]]}}}],["v1",{"_index":2128,"t":{"292":{"position":[[565,2],[715,2],[745,2],[944,2],[1127,2]]}}}],["v1.4",{"_index":2725,"t":{"459":{"position":[[253,5]]}}}],["v2",{"_index":2121,"t":{"292":{"position":[[407,2],[449,2],[483,2],[519,2],[583,2],[697,2],[765,2],[792,2],[816,2],[853,2],[878,2],[904,2],[927,2],[1156,2],[1284,2],[1327,2],[1372,2],[1403,2]]}}}],["v22",{"_index":2580,"t":{"395":{"position":[[130,4]]}}}],["v22.04",{"_index":2645,"t":{"437":{"position":[[682,6]]},"441":{"position":[[139,6]]}}}],["v22.1.0",{"_index":1715,"t":{"247":{"position":[[570,7]]}}}],["v5",{"_index":403,"t":{"67":{"position":[[113,3]]}}}],["v8",{"_index":1382,"t":{"190":{"position":[[920,2],[1331,2],[1411,2]]},"201":{"position":[[713,2]]},"203":{"position":[[444,2],[2564,2]]},"213":{"position":[[61,2]]},"235":{"position":[[922,2]]},"237":{"position":[[18,2],[232,2],[966,4]]},"239":{"position":[[603,2]]}}}],["v8.log",{"_index":1455,"t":{"203":{"position":[[1298,6],[1381,6],[1463,6],[1546,6],[1629,6],[1711,6],[1794,6],[1877,6],[1960,6],[2043,6],[2126,6],[2209,6],[2292,6],[2375,6],[2458,6],[2533,6]]}}}],["v8::intern",{"_index":1550,"t":{"213":{"position":[[366,15]]}}}],["valgrind",{"_index":1685,"t":{"245":{"position":[[213,8],[398,9],[588,8]]}}}],["valid",{"_index":118,"t":{"19":{"position":[[142,11],[606,10],[1678,10],[1996,10],[2080,10],[2176,10]]},"29":{"position":[[104,10]]},"61":{"position":[[33,9],[160,9],[191,9],[326,9]]},"95":{"position":[[220,10]]},"103":{"position":[[715,9]]},"128":{"position":[[45,11]]},"130":{"position":[[42,10]]},"132":{"position":[[1449,9],[2426,12],[3103,9],[6940,9],[8212,10],[8470,9],[9497,11],[9782,9],[9818,10],[10485,9],[10671,8],[11020,9],[11207,10],[11292,10],[11475,9]]},"154":{"position":[[141,5]]},"160":{"position":[[57,9]]},"164":{"position":[[56,10]]},"170":{"position":[[805,11],[821,11]]},"176":{"position":[[374,9]]},"259":{"position":[[42,10],[105,10],[227,10],[482,10],[532,8],[569,11],[996,11]]},"263":{"position":[[804,10],[1775,8]]},"268":{"position":[[419,10]]},"314":{"position":[[209,9]]},"320":{"position":[[1449,9],[2426,12],[3048,9],[3080,9],[6800,9]]},"322":{"position":[[440,9],[1100,9],[1196,9]]},"324":{"position":[[209,9]]},"342":{"position":[[510,9],[623,9]]},"346":{"position":[[252,10]]},"348":{"position":[[143,9],[211,9]]},"350":{"position":[[218,9],[402,10]]},"364":{"position":[[790,5]]},"366":{"position":[[1584,8]]},"368":{"position":[[3371,5]]},"372":{"position":[[503,11],[1479,10]]},"417":{"position":[[82,9]]},"419":{"position":[[577,11]]},"431":{"position":[[163,9],[211,9],[534,9]]},"433":{"position":[[72,9],[154,9],[289,9]]},"437":{"position":[[1173,9]]},"441":{"position":[[400,9]]},"455":{"position":[[125,11]]},"457":{"position":[[27,11],[57,10],[277,9],[643,11]]},"459":{"position":[[36,10],[131,10]]},"465":{"position":[[29,10]]},"473":{"position":[[68,11]]},"475":{"position":[[202,11],[228,9]]},"477":{"position":[[21,10],[266,9]]},"479":{"position":[[31,10],[215,9],[255,9],[480,9],[548,9],[669,9],[827,9],[980,11],[1006,9],[1430,9],[2382,10]]},"481":{"position":[[63,10],[194,10]]},"483":{"position":[[203,10],[453,10],[754,9],[1034,9],[1339,9],[1631,9],[1655,9],[1739,9],[1775,9],[1799,9],[1826,9]]},"485":{"position":[[1396,9],[1688,10],[1828,9],[2398,10]]},"491":{"position":[[345,5]]},"493":{"position":[[29,11],[59,9],[95,9],[196,10],[278,9],[1139,9],[1233,9],[1319,9],[1546,9],[1735,9],[1924,9],[2167,9]]},"502":{"position":[[207,8]]},"504":{"position":[[100,9],[324,9]]},"510":{"position":[[20,9]]},"512":{"position":[[50,9],[69,9],[106,9],[143,9],[160,9],[175,9],[200,9]]},"515":{"position":[[8,9],[105,9]]},"517":{"position":[[1792,10],[2050,9],[2394,9],[3570,11],[3855,9],[3891,10],[4558,9],[4744,8],[5093,9]]},"527":{"position":[[55,9]]},"529":{"position":[[7,9],[95,9]]},"531":{"position":[[121,9],[157,10]]},"533":{"position":[[29,10]]},"535":{"position":[[9,9],[62,9]]},"537":{"position":[[45,10],[128,10]]},"539":{"position":[[33,9],[81,9],[173,9],[265,9]]},"543":{"position":[[45,9],[147,9]]},"545":{"position":[[40,9],[88,9]]},"547":{"position":[[69,9]]},"549":{"position":[[66,9]]},"551":{"position":[[0,10],[145,9],[193,9]]},"553":{"position":[[359,10]]},"555":{"position":[[12,9],[500,9],[614,9],[710,9],[1343,10],[1394,9],[1458,10],[1503,9],[1588,9],[1618,9]]},"557":{"position":[[29,10],[228,9],[847,9]]},"559":{"position":[[82,9],[571,9],[750,9],[2086,10],[2552,5],[3021,9]]},"563":{"position":[[20,9],[58,9],[961,9],[1055,9],[1141,9],[1368,9],[1557,9],[1746,9]]}}}],["valid(17088105",{"_index":2465,"t":{"368":{"position":[[823,14],[1016,14]]}}}],["valid(17088167",{"_index":2475,"t":{"368":{"position":[[1215,14]]}}}],["valid(17088231",{"_index":2484,"t":{"368":{"position":[[1414,14]]}}}],["valid(17088475",{"_index":2492,"t":{"368":{"position":[[1610,14]]}}}],["valid(17088521",{"_index":2500,"t":{"368":{"position":[[1889,14]]}}}],["valid(17088522",{"_index":2507,"t":{"368":{"position":[[2041,14]]}}}],["valid(17088524",{"_index":2512,"t":{"368":{"position":[[2203,14],[2365,14]]}}}],["valid(17088526",{"_index":2519,"t":{"368":{"position":[[2517,14]]}}}],["valid(17088527",{"_index":2524,"t":{"368":{"position":[[2669,14]]}}}],["valid(20426365",{"_index":2383,"t":{"364":{"position":[[2486,14]]},"491":{"position":[[2041,14]]}}}],["valid(20426841",{"_index":2392,"t":{"364":{"position":[[2684,14]]},"491":{"position":[[2239,14]]}}}],["valid(20426886",{"_index":2401,"t":{"364":{"position":[[2964,14]]},"491":{"position":[[2519,14]]}}}],["valid(20426887",{"_index":2408,"t":{"364":{"position":[[3117,14]]},"491":{"position":[[2672,14]]}}}],["valid(20426888",{"_index":2414,"t":{"364":{"position":[[3270,14]]},"491":{"position":[[2825,14]]}}}],["validator'",{"_index":1017,"t":{"132":{"position":[[8656,11]]},"475":{"position":[[94,11]]},"479":{"position":[[897,11]]},"517":{"position":[[2587,11]]},"547":{"position":[[318,11]]}}}],["validator(",{"_index":2612,"t":{"423":{"position":[[194,12]]}}}],["validator.log",{"_index":2186,"t":{"322":{"position":[[1149,13]]}}}],["validator_key",{"_index":2952,"t":{"555":{"position":[[649,16],[745,16],[883,14],[1148,14],[1646,16]]}}}],["validatorindex=1234567",{"_index":2854,"t":{"493":{"position":[[1577,23]]},"563":{"position":[[1399,23]]}}}],["validatorindex=1234568",{"_index":2856,"t":{"493":{"position":[[1766,23]]},"563":{"position":[[1588,23]]}}}],["validatormonitorlog",{"_index":855,"t":{"132":{"position":[[1423,21]]},"320":{"position":[[1423,21]]}}}],["validatorsdbdir",{"_index":2187,"t":{"322":{"position":[[1224,15]]}}}],["validatorset1",{"_index":2768,"t":{"479":{"position":[[337,13],[760,13],[806,13]]}}}],["validatorset2",{"_index":2769,"t":{"479":{"position":[[384,13],[2341,13]]}}}],["valu",{"_index":192,"t":{"19":{"position":[[1419,6],[1747,6],[1943,6],[2153,5],[2231,6],[2450,6]]},"107":{"position":[[703,5]]},"132":{"position":[[9183,5]]},"156":{"position":[[20,6]]},"174":{"position":[[1882,5],[2236,5]]},"228":{"position":[[83,5]]},"231":{"position":[[165,6]]},"237":{"position":[[652,6],[839,6]]},"239":{"position":[[734,5],[766,5],[815,5],[901,5]]},"332":{"position":[[152,5]]},"368":{"position":[[2773,7]]},"421":{"position":[[152,5]]},"517":{"position":[[3256,5]]},"541":{"position":[[126,5]]},"559":{"position":[[405,5],[931,5],[1015,5],[2504,5],[2643,5]]}}}],["var",{"_index":2733,"t":{"461":{"position":[[59,5],[207,6]]},"481":{"position":[[279,5]]},"485":{"position":[[543,5],[1924,4],[2059,4]]}}}],["var/lib/goethereum/geth/chaindata/383234.ldb",{"_index":2869,"t":{"498":{"position":[[228,46]]}}}],["vari",{"_index":1794,"t":{"255":{"position":[[252,5]]}}}],["variabl",{"_index":653,"t":{"107":{"position":[[504,9],[1772,9]]},"114":{"position":[[382,9]]},"134":{"position":[[291,9],[354,8]]},"154":{"position":[[203,9]]},"231":{"position":[[310,8]]},"233":{"position":[[57,9],[423,9]]},"245":{"position":[[1480,9]]},"463":{"position":[[27,9]]},"465":{"position":[[220,8]]},"485":{"position":[[2218,8]]}}}],["varieti",{"_index":1902,"t":{"263":{"position":[[269,7]]},"409":{"position":[[116,7]]}}}],["variou",{"_index":270,"t":{"25":{"position":[[25,7]]},"55":{"position":[[218,7]]},"59":{"position":[[25,7],[69,7]]},"138":{"position":[[63,7]]},"152":{"position":[[358,7]]},"158":{"position":[[167,7]]},"160":{"position":[[16,7]]},"168":{"position":[[237,7],[629,7],[764,7],[850,7],[904,7]]},"170":{"position":[[602,7]]},"263":{"position":[[849,7]]},"326":{"position":[[246,7]]},"340":{"position":[[221,7],[736,7]]},"411":{"position":[[121,7]]}}}],["verb",{"_index":1384,"t":{"190":{"position":[[1182,4]]}}}],["verbiag",{"_index":562,"t":{"97":{"position":[[95,8]]}}}],["verbos",{"_index":734,"t":{"112":{"position":[[924,8]]},"132":{"position":[[1625,9],[1718,10],[1882,9],[1971,10]]},"312":{"position":[[575,9],[668,10],[832,9],[921,10]]},"320":{"position":[[1625,9],[1718,10],[1882,9],[1971,10]]},"387":{"position":[[1424,9],[1517,10],[1681,9],[1770,10]]},"517":{"position":[[575,9],[668,10],[832,9],[921,10]]}}}],["veri",{"_index":507,"t":{"91":{"position":[[356,4]]},"134":{"position":[[468,4]]},"152":{"position":[[246,4],[410,4]]},"184":{"position":[[255,4]]},"203":{"position":[[638,4]]},"237":{"position":[[48,4]]},"243":{"position":[[423,4],[696,4]]},"255":{"position":[[156,4]]},"324":{"position":[[346,4]]}}}],["verif",{"_index":366,"t":{"49":{"position":[[58,12]]},"350":{"position":[[687,12]]}}}],["verifi",{"_index":1174,"t":{"158":{"position":[[79,8]]},"268":{"position":[[626,6]]},"286":{"position":[[80,6]]},"288":{"position":[[809,6]]},"366":{"position":[[955,6]]},"381":{"position":[[109,6],[264,9],[377,8]]},"427":{"position":[[497,6]]},"469":{"position":[[138,6],[638,9],[771,6]]},"483":{"position":[[551,8]]},"493":{"position":[[1104,8],[1198,8]]},"563":{"position":[[926,8],[1020,8]]},"579":{"position":[[58,6],[142,6]]},"583":{"position":[[490,6]]},"586":{"position":[[36,6]]}}}],["versa",{"_index":1186,"t":{"164":{"position":[[76,6]]}}}],["version",{"_index":341,"t":{"41":{"position":[[354,7]]},"87":{"position":[[762,8]]},"109":{"position":[[218,8]]},"122":{"position":[[814,7],[860,7]]},"184":{"position":[[908,7],[1494,7],[1662,7]]},"190":{"position":[[1004,8]]},"228":{"position":[[119,8]]},"247":{"position":[[528,7],[637,7],[682,7],[797,7],[848,7]]},"255":{"position":[[1065,7]]},"280":{"position":[[221,8]]},"292":{"position":[[306,7]]},"346":{"position":[[488,8]]},"372":{"position":[[639,7]]},"381":{"position":[[16,7]]},"392":{"position":[[412,7]]},"395":{"position":[[78,7],[111,7],[158,8],[307,7],[382,9],[422,7]]},"467":{"position":[[293,7],[343,8],[508,8]]},"566":{"position":[[161,7]]}}}],["version=v1.16.0/6ad9740",{"_index":2831,"t":{"493":{"position":[[379,24]]},"563":{"position":[[201,24]]}}}],["version=v1.21.0/ff35faa",{"_index":2332,"t":{"364":{"position":[[575,24]]},"491":{"position":[[130,24]]}}}],["version_codenam",{"_index":2701,"t":{"448":{"position":[[624,20]]}}}],["versu",{"_index":1705,"t":{"245":{"position":[[1413,6]]}}}],["vg/ubuntu",{"_index":2876,"t":{"498":{"position":[[532,9],[582,9],[627,9]]}}}],["via",{"_index":172,"t":{"19":{"position":[[1050,3],[1185,3],[2689,3],[3126,3]]},"43":{"position":[[121,3]]},"83":{"position":[[102,3]]},"89":{"position":[[165,3]]},"116":{"position":[[146,3]]},"132":{"position":[[3661,3]]},"166":{"position":[[140,3]]},"168":{"position":[[200,3]]},"170":{"position":[[581,3],[751,3]]},"186":{"position":[[488,3]]},"205":{"position":[[434,3]]},"231":{"position":[[277,3]]},"235":{"position":[[1083,3]]},"251":{"position":[[1771,3],[2039,3]]},"255":{"position":[[332,3]]},"320":{"position":[[3628,3]]},"326":{"position":[[158,3]]},"330":{"position":[[317,3],[1010,3],[1088,3]]},"332":{"position":[[675,3]]},"338":{"position":[[276,3]]},"350":{"position":[[127,3],[578,3]]},"366":{"position":[[241,3]]},"370":{"position":[[583,3]]},"381":{"position":[[157,3]]},"431":{"position":[[375,3]]},"437":{"position":[[187,3]]},"508":{"position":[[253,3]]},"537":{"position":[[70,3]]},"543":{"position":[[70,3]]},"555":{"position":[[53,3]]},"557":{"position":[[945,3]]},"559":{"position":[[1979,3]]}}}],["viabl",{"_index":2526,"t":{"368":{"position":[[2915,6]]}}}],["vice",{"_index":1185,"t":{"164":{"position":[[71,4]]}}}],["view",{"_index":34,"t":{"5":{"position":[[296,4]]},"207":{"position":[[163,4]]},"461":{"position":[[161,4]]},"469":{"position":[[694,4]]}}}],["viewer",{"_index":2239,"t":{"332":{"position":[[1017,6]]}}}],["virgil",{"_index":1973,"t":{"265":{"position":[[198,6]]}}}],["virtual",{"_index":1109,"t":{"140":{"position":[[26,7]]},"190":{"position":[[833,7]]},"201":{"position":[[574,7]]},"203":{"position":[[561,7]]}}}],["visual",{"_index":768,"t":{"116":{"position":[[225,8],[297,6]]}}}],["vital",{"_index":2552,"t":{"372":{"position":[[1436,5]]}}}],["vitalik",{"_index":1842,"t":{"257":{"position":[[353,7]]},"265":{"position":[[178,7]]}}}],["vitalik'",{"_index":2428,"t":{"366":{"position":[[286,9]]}}}],["vite",{"_index":2061,"t":{"280":{"position":[[108,5]]}}}],["vitest",{"_index":373,"t":{"53":{"position":[[30,6]]},"91":{"position":[[7,8],[595,7],[642,6],[682,6]]},"93":{"position":[[619,6]]},"134":{"position":[[659,6]]}}}],["vitest'",{"_index":522,"t":{"93":{"position":[[271,8],[406,8]]}}}],["vitest.spec.config.t",{"_index":535,"t":{"93":{"position":[[650,21]]}}}],["vm",{"_index":1405,"t":{"201":{"position":[[131,2]]},"203":{"position":[[845,2]]},"237":{"position":[[402,2]]}}}],["volum",{"_index":2679,"t":{"445":{"position":[[483,7]]},"485":{"position":[[69,8]]},"498":{"position":[[477,6]]}}}],["voluntari",{"_index":2919,"t":{"512":{"position":[[185,9]]},"537":{"position":[[11,9]]},"539":{"position":[[10,9],[91,9],[150,9],[275,9]]},"541":{"position":[[104,9]]}}}],["vote",{"_index":1288,"t":{"174":{"position":[[2394,5],[2473,5],[2554,5]]},"259":{"position":[[518,6],[710,6]]},"322":{"position":[[1723,6],[1812,6]]}}}],["vs",{"_index":490,"t":{"89":{"position":[[157,2]]},"93":{"position":[[132,2]]},"194":{"position":[[183,2],[294,2]]},"196":{"position":[[394,2]]},"559":{"position":[[138,3]]}}}],["vscode/launch.json",{"_index":1390,"t":{"194":{"position":[[99,19]]}}}],["vulner",{"_index":2982,"t":{"568":{"position":[[16,13],[117,14],[181,13]]}}}],["wagyu",{"_index":2946,"t":{"553":{"position":[[229,5]]}}}],["wait",{"_index":1737,"t":{"249":{"position":[[299,4]]},"251":{"position":[[1017,4],[1830,4]]},"278":{"position":[[919,4]]},"469":{"position":[[467,4]]},"485":{"position":[[979,5],[1158,4]]}}}],["walk",{"_index":1401,"t":{"199":{"position":[[59,4]]},"237":{"position":[[281,7],[442,5],[627,6]]}}}],["wallet",{"_index":2178,"t":{"322":{"position":[[209,6]]}}}],["want",{"_index":177,"t":{"19":{"position":[[1118,4]]},"97":{"position":[[324,8]]},"107":{"position":[[1281,4]]},"188":{"position":[[562,4]]},"235":{"position":[[43,4]]},"249":{"position":[[502,4]]},"280":{"position":[[7,4]]},"288":{"position":[[1013,4],[1115,4]]},"457":{"position":[[698,4]]},"459":{"position":[[443,4]]},"463":{"position":[[50,4]]},"465":{"position":[[102,4],[359,4]]},"477":{"position":[[7,4]]},"479":{"position":[[17,4]]},"481":{"position":[[180,4],[323,4]]},"485":{"position":[[393,4],[505,4],[1326,4]]}}}],["warn",{"_index":714,"t":{"112":{"position":[[302,5]]},"132":{"position":[[1702,7],[1955,7]]},"201":{"position":[[94,7]]},"251":{"position":[[555,7],[601,8],[755,7]]},"312":{"position":[[652,7],[905,7]]},"320":{"position":[[1702,7],[1955,7]]},"364":{"position":[[3887,7]]},"366":{"position":[[1410,7]]},"387":{"position":[[1501,7],[1754,7]]},"437":{"position":[[1223,7]]},"453":{"position":[[440,8]]},"457":{"position":[[0,7]]},"467":{"position":[[416,7]]},"481":{"position":[[0,7]]},"483":{"position":[[1590,7]]},"504":{"position":[[0,7]]},"517":{"position":[[652,7],[905,7]]},"553":{"position":[[298,7]]},"555":{"position":[[1704,7]]}}}],["warrant",{"_index":2882,"t":{"502":{"position":[[125,7]]}}}],["warranti",{"_index":2885,"t":{"502":{"position":[[303,8],[434,10],[468,10]]}}}],["way",{"_index":1135,"t":{"152":{"position":[[157,3],[633,3]]},"166":{"position":[[183,3]]},"186":{"position":[[110,3]]},"194":{"position":[[13,3]]},"199":{"position":[[193,5]]},"231":{"position":[[254,3]]},"237":{"position":[[528,4]]},"243":{"position":[[59,3]]},"245":{"position":[[1259,3],[1304,3]]},"255":{"position":[[205,3]]},"268":{"position":[[361,3]]},"288":{"position":[[40,5]]},"381":{"position":[[420,4]]},"423":{"position":[[158,3]]}}}],["we'r",{"_index":632,"t":{"105":{"position":[[0,5],[132,5]]}}}],["weak",{"_index":836,"t":{"132":{"position":[[621,4],[859,4],[992,4],[1166,4]]},"320":{"position":[[621,4],[859,4],[992,4],[1166,4]]},"366":{"position":[[121,4],[262,4],[325,4],[2123,4]]},"372":{"position":[[0,4],[689,4],[889,5],[1278,4]]},"469":{"position":[[264,4]]}}}],["web",{"_index":763,"t":{"116":{"position":[[154,3]]},"280":{"position":[[1094,3]]},"330":{"position":[[650,3]]}}}],["web3",{"_index":364,"t":{"49":{"position":[[22,4]]},"288":{"position":[[51,4],[125,4],[135,7],[546,4],[1544,4],[1554,7],[1988,4]]},"290":{"position":[[46,4]]}}}],["web3(provid",{"_index":2093,"t":{"288":{"position":[[557,15],[1999,15]]}}}],["web3.eth.getbalance(address",{"_index":2095,"t":{"288":{"position":[[657,28],[2099,28]]}}}],["web3.j",{"_index":2106,"t":{"290":{"position":[[208,8]]}}}],["web3.providers.httpprovider(\"https://lodestar",{"_index":2087,"t":{"288":{"position":[[247,45],[1666,45]]}}}],["web3sign",{"_index":2630,"t":{"431":{"position":[[61,11]]}}}],["webpack",{"_index":2060,"t":{"280":{"position":[[99,8]]}}}],["websit",{"_index":2018,"t":{"272":{"position":[[451,8]]}}}],["week",{"_index":1957,"t":{"263":{"position":[[2157,5]]},"324":{"position":[[172,4]]}}}],["weekli",{"_index":813,"t":{"124":{"position":[[49,6]]}}}],["welcom",{"_index":2171,"t":{"314":{"position":[[0,8]]}}}],["well",{"_index":305,"t":{"33":{"position":[[228,5]]},"107":{"position":[[261,6]]},"184":{"position":[[349,4]]},"237":{"position":[[732,4]]},"255":{"position":[[116,4],[161,5]]},"383":{"position":[[276,4]]},"553":{"position":[[373,4]]}}}],["went",{"_index":1846,"t":{"257":{"position":[[423,4]]}}}],["wherebi",{"_index":1897,"t":{"263":{"position":[[85,7]]}}}],["whether",{"_index":912,"t":{"132":{"position":[[3498,7]]},"320":{"position":[[3451,7]]},"368":{"position":[[3349,7]]},"387":{"position":[[1054,7]]},"502":{"position":[[945,7]]}}}],["whichev",{"_index":1714,"t":{"247":{"position":[[518,9]]}}}],["white",{"_index":675,"t":{"107":{"position":[[1385,5]]}}}],["whole",{"_index":30,"t":{"5":{"position":[[255,5]]},"142":{"position":[[118,5]]},"184":{"position":[[142,5]]},"205":{"position":[[546,5]]},"237":{"position":[[613,5]]},"274":{"position":[[71,5]]},"302":{"position":[[71,5]]}}}],["wide",{"_index":1906,"t":{"263":{"position":[[354,4]]},"268":{"position":[[1134,4]]}}}],["wild",{"_index":1139,"t":{"152":{"position":[[230,5]]}}}],["window",{"_index":949,"t":{"132":{"position":[[5196,6]]},"241":{"position":[[433,6]]},"280":{"position":[[530,7]]},"320":{"position":[[5071,6]]}}}],["window.addeventlistener(\"domcontentload",{"_index":2072,"t":{"280":{"position":[[898,43]]}}}],["window.ethereum",{"_index":2101,"t":{"288":{"position":[[1390,16]]}}}],["window.lodestar.lightcli",{"_index":2069,"t":{"280":{"position":[[568,28],[1017,27]]}}}],["window.lodestar.lightclient.transport",{"_index":2070,"t":{"280":{"position":[[664,38]]}}}],["wip",{"_index":901,"t":{"132":{"position":[[3076,5]]},"517":{"position":[[2367,5]]}}}],["wire",{"_index":1057,"t":{"132":{"position":[[10124,4],[10268,4]]},"517":{"position":[[4197,4],[4341,4]]}}}],["wish",{"_index":2784,"t":{"481":{"position":[[704,4]]}}}],["withdraw",{"_index":2938,"t":{"547":{"position":[[107,10],[141,11],[203,11]]}}}],["withdrawn",{"_index":2940,"t":{"547":{"position":[[357,10]]}}}],["within",{"_index":629,"t":{"103":{"position":[[839,6]]},"132":{"position":[[1159,6]]},"174":{"position":[[1483,6]]},"235":{"position":[[962,6]]},"320":{"position":[[1159,6]]},"366":{"position":[[695,6],[2112,6]]},"372":{"position":[[937,6]]},"379":{"position":[[35,6],[228,6]]},"451":{"position":[[42,6]]},"469":{"position":[[332,6]]},"477":{"position":[[926,6]]},"479":{"position":[[2036,6]]}}}],["withmevboost",{"_index":2796,"t":{"483":{"position":[[1293,12]]},"485":{"position":[[1937,12]]}}}],["without",{"_index":204,"t":{"19":{"position":[[1657,7]]},"93":{"position":[[62,7]]},"116":{"position":[[182,7]]},"188":{"position":[[673,7]]},"218":{"position":[[357,7]]},"245":{"position":[[977,7],[1048,7]]},"251":{"position":[[179,7],[2378,7],[2873,7]]},"268":{"position":[[735,7]]},"292":{"position":[[58,7]]},"336":{"position":[[458,7]]},"372":{"position":[[1199,7]]},"375":{"position":[[96,7]]},"431":{"position":[[191,7]]},"502":{"position":[[295,7],[361,7]]},"559":{"position":[[2565,7]]}}}],["withstand",{"_index":1913,"t":{"263":{"position":[[562,9]]}}}],["withtermin",{"_index":2791,"t":{"483":{"position":[[366,12]]},"485":{"position":[[795,12]]}}}],["withvalidatorkeystor",{"_index":2795,"t":{"483":{"position":[[1246,21],[1532,21],[2019,21]]},"485":{"position":[[1354,21],[1499,21]]}}}],["withvalidatormnemon",{"_index":2794,"t":{"483":{"position":[[956,21]]},"485":{"position":[[1455,22],[1707,21],[1786,21]]}}}],["wood",{"_index":1970,"t":{"265":{"position":[[101,4]]}}}],["word",{"_index":788,"t":{"120":{"position":[[375,4],[444,5],[486,4]]}}}],["work",{"_index":125,"t":{"19":{"position":[[249,5]]},"41":{"position":[[290,6]]},"138":{"position":[[138,4]]},"142":{"position":[[124,5]]},"144":{"position":[[175,4]]},"152":{"position":[[302,4],[390,4],[672,8],[1290,5]]},"160":{"position":[[78,7]]},"184":{"position":[[1693,4]]},"186":{"position":[[376,4]]},"188":{"position":[[422,5]]},"190":{"position":[[666,7]]},"239":{"position":[[1396,7]]},"243":{"position":[[1485,7]]},"251":{"position":[[2696,7],[2782,4]]},"255":{"position":[[150,5],[275,6],[481,7]]},"257":{"position":[[558,7]]},"259":{"position":[[86,4]]},"322":{"position":[[140,4]]},"326":{"position":[[279,4]]},"372":{"position":[[198,4],[473,4]]},"448":{"position":[[1135,7]]}}}],["workaround",{"_index":1340,"t":{"186":{"position":[[458,10]]},"255":{"position":[[1149,10]]},"280":{"position":[[1279,10]]}}}],["worker",{"_index":357,"t":{"45":{"position":[[88,6]]},"194":{"position":[[321,7]]},"196":{"position":[[211,7],[296,6]]},"330":{"position":[[1239,8]]},"332":{"position":[[795,6]]},"364":{"position":[[997,6],[1299,6],[1355,6],[1471,6]]},"491":{"position":[[552,6],[854,6],[910,6],[1026,6]]}}}],["workspac",{"_index":1179,"t":{"158":{"position":[[363,9]]},"160":{"position":[[104,9]]},"164":{"position":[[118,9]]}}}],["world",{"_index":1609,"t":{"237":{"position":[[259,5]]},"346":{"position":[[589,5]]},"350":{"position":[[572,5]]},"448":{"position":[[1031,5]]}}}],["worth",{"_index":1791,"t":{"255":{"position":[[121,5]]}}}],["wrapper",{"_index":394,"t":{"65":{"position":[[38,7]]},"235":{"position":[[1135,8]]}}}],["write",{"_index":314,"t":{"37":{"position":[[109,5]]},"186":{"position":[[551,7]]},"239":{"position":[[265,6]]},"255":{"position":[[15,7]]},"498":{"position":[[222,5]]}}}],["written",{"_index":606,"t":{"103":{"position":[[265,7]]},"239":{"position":[[1305,8],[1373,7]]},"251":{"position":[[1623,7]]},"504":{"position":[[216,7]]}}}],["wrong",{"_index":503,"t":{"91":{"position":[[234,5]]},"109":{"position":[[881,6]]},"366":{"position":[[1497,5]]}}}],["wscheckpoint",{"_index":2092,"t":{"288":{"position":[[500,13],[1919,13]]}}}],["wsscheckpoint",{"_index":838,"t":{"132":{"position":[[692,13],[798,14]]},"320":{"position":[[692,13],[798,14]]},"366":{"position":[[1128,13],[1274,14],[1598,13]]},"383":{"position":[[891,13]]}}}],["x",{"_index":1444,"t":{"203":{"position":[[1126,1],[1181,1]]},"239":{"position":[[1487,1]]},"455":{"position":[[150,1]]},"457":{"position":[[734,1]]},"459":{"position":[[557,1]]},"469":{"position":[[1151,1]]},"471":{"position":[[615,1]]},"475":{"position":[[445,1]]},"479":{"position":[[1223,1]]},"481":{"position":[[1207,1]]}}}],["x.json",{"_index":2758,"t":{"477":{"position":[[612,7],[710,6]]},"479":{"position":[[1680,7],[1778,6]]}}}],["x64",{"_index":2646,"t":{"437":{"position":[[695,3]]}}}],["x86_64",{"_index":1376,"t":{"190":{"position":[[364,8]]}}}],["xarg",{"_index":1747,"t":{"249":{"position":[[678,5]]},"251":{"position":[[2676,5]]}}}],["xcode",{"_index":1335,"t":{"186":{"position":[[240,5]]}}}],["xdg_data_home/lodestar/$network_nam",{"_index":2417,"t":{"364":{"position":[[3563,38]]}}}],["xr",{"_index":1449,"t":{"203":{"position":[[1178,2]]}}}],["xxxx",{"_index":2578,"t":{"392":{"position":[[420,5],[432,5]]}}}],["xxxxx.json",{"_index":2764,"t":{"477":{"position":[[1078,10]]},"479":{"position":[[2188,10]]}}}],["y",{"_index":1712,"t":{"247":{"position":[[319,1]]},"251":{"position":[[1210,1]]},"253":{"position":[[104,1]]},"448":{"position":[[826,1]]},"455":{"position":[[157,1]]},"457":{"position":[[741,1]]},"459":{"position":[[564,1]]},"469":{"position":[[1158,1]]},"471":{"position":[[622,1]]},"475":{"position":[[452,1]]},"479":{"position":[[1230,1]]},"481":{"position":[[1214,1]]}}}],["yaml",{"_index":1012,"t":{"132":{"position":[[8424,4]]},"504":{"position":[[227,4]]},"508":{"position":[[54,4]]},"517":{"position":[[2004,4]]}}}],["yamux",{"_index":416,"t":{"73":{"position":[[21,5],[73,5]]},"573":{"position":[[143,5]]}}}],["yarn",{"_index":433,"t":{"81":{"position":[[18,4]]},"85":{"position":[[48,4],[84,4]]},"87":{"position":[[21,4],[59,4],[102,4],[140,4],[175,4],[226,4],[465,4],[505,4]]},"91":{"position":[[677,4]]},"93":{"position":[[614,4]]},"101":{"position":[[225,5],[240,4]]},"107":{"position":[[444,4],[944,4],[1031,4]]},"120":{"position":[[172,4],[241,4]]},"150":{"position":[[74,4]]},"158":{"position":[[358,4]]},"160":{"position":[[99,4]]},"164":{"position":[[113,4]]},"209":{"position":[[274,4]]},"211":{"position":[[56,4]]},"247":{"position":[[1218,4],[1232,4],[1275,4]]},"298":{"position":[[13,4]]},"395":{"position":[[18,4]]},"399":{"position":[[123,4]]},"401":{"position":[[27,4]]},"405":{"position":[[92,5]]}}}],["ye",{"_index":2934,"t":{"541":{"position":[[244,4]]}}}],["year",{"_index":2206,"t":{"324":{"position":[[249,5],[284,5]]}}}],["you'r",{"_index":580,"t":{"101":{"position":[[10,6],[288,6]]},"481":{"position":[[56,6]]}}}],["you'v",{"_index":583,"t":{"101":{"position":[[158,6]]},"481":{"position":[[907,6]]},"483":{"position":[[544,6]]}}}],["young",{"_index":2418,"t":{"364":{"position":[[3604,5]]}}}],["your/home/directory/.nvm/versions/node/v20.10.0/bin/node_debug",{"_index":1722,"t":{"247":{"position":[[1060,63]]}}}],["yourself",{"_index":753,"t":{"114":{"position":[[466,8]]}}}],["zero",{"_index":869,"t":{"132":{"position":[[2114,6]]},"312":{"position":[[1064,6]]},"320":{"position":[[2114,6]]},"387":{"position":[[1913,6]]},"409":{"position":[[205,4]]},"517":{"position":[[1064,6]]},"521":{"position":[[237,4]]},"525":{"position":[[237,4]]}}}],["zip",{"_index":2617,"t":{"427":{"position":[[89,4]]}}}],["zoom",{"_index":1526,"t":{"207":{"position":[[103,7]]}}}],["zsh",{"_index":1349,"t":{"186":{"position":[[714,3]]}}}],["zshrc",{"_index":1346,"t":{"186":{"position":[[638,8],[718,8]]}}}],["zstd",{"_index":1811,"t":{"255":{"position":[[1016,4]]}}}]],"pipeline":["stemmer"]}}] \ No newline at end of file +[{"documents":[{"i":1,"t":"Doppelganger Detection","u":"/lodestar/contribution/advanced-topics/doppelganger-detection","b":[]},{"i":2,"t":"Home","u":"/lodestar/","b":[]},{"i":15,"t":"Migration From Other Clients","u":"/lodestar/contribution/advanced-topics/migrating-from-other-clients","b":[]},{"i":16,"t":"Block Exploration","u":"/lodestar/contribution/advanced-topics/block-exploration","b":[]},{"i":17,"t":"Slashing Protection","u":"/lodestar/contribution/advanced-topics/slashing-protection","b":[]},{"i":18,"t":"Setting-Up a Testnet","u":"/lodestar/contribution/advanced-topics/setting-up-a-testnet","b":["Contributing","Advanced Topics"]},{"i":22,"t":"bug-reports","u":"/lodestar/contribution/bug-reports","b":[]},{"i":23,"t":"Dependency Graph","u":"/lodestar/contribution/depgraph","b":["Contributing"]},{"i":78,"t":"dev CLI Command","u":"/lodestar/contribution/dev-cli","b":["Contributing","Development Tools"]},{"i":84,"t":"Contribution Guidelines","u":"/lodestar/contribution/getting-started","b":["Contributing"]},{"i":131,"t":"pr-submission","u":"/lodestar/contribution/pr-submission","b":[]},{"i":132,"t":"repo","u":"/lodestar/contribution/repo","b":[]},{"i":133,"t":"End-To-End Tests","u":"/lodestar/contribution/testing/end-to-end-tests","b":["Contributing","Testing"]},{"i":135,"t":"Integration Tests","u":"/lodestar/contribution/testing/integration-tests","b":["Contributing","Testing"]},{"i":137,"t":"Testing","u":"/lodestar/contribution/testing/","b":["Contributing","Testing"]},{"i":151,"t":"Performance Tests","u":"/lodestar/contribution/testing/performance-tests","b":["Contributing","Testing"]},{"i":153,"t":"Specification Tests","u":"/lodestar/contribution/testing/spec-tests","b":["Contributing","Testing"]},{"i":155,"t":"Simulation Tests","u":"/lodestar/contribution/testing/simulation-tests","b":["Contributing","Testing"]},{"i":181,"t":"Unit Tests","u":"/lodestar/contribution/testing/unit-tests","b":[]},{"i":183,"t":"Debugging","u":"/lodestar/contribution/tools/debugging","b":["Contributing","Development Tools"]},{"i":189,"t":"Core Dump Analysis","u":"/lodestar/contribution/tools/core-dumps","b":["Contributing","Development Tools"]},{"i":197,"t":"Generating Flamegraphs for a Running Node Service on Linux","u":"/lodestar/contribution/tools/flamegraphs","b":["Contributing","Development Tools"]},{"i":224,"t":"Heap Dump Analysis","u":"/lodestar/contribution/tools/heap-dumps","b":["Contributing","Development Tools"]},{"i":246,"t":"perf","u":"/lodestar/contribution/tools/perf","b":[]},{"i":247,"t":"Frequently Asked Questions","u":"/lodestar/faqs","b":[]},{"i":256,"t":"Introduction","u":"/lodestar/introduction","b":[]},{"i":266,"t":"using-the-api","u":"/lodestar/libraries/api/using-the-api","b":[]},{"i":267,"t":"Lodestar Light Client","u":"/lodestar/libraries/lightclient-prover/lightclient","b":["Developer Tools","Light Client"]},{"i":285,"t":"lightclient CLI Command","u":"/lodestar/libraries/lightclient-prover/lightclient-cli","b":["Developer Tools","Light Client"]},{"i":291,"t":"Lodestar Prover","u":"/lodestar/libraries/lightclient-prover/prover","b":["Developer Tools","Prover"]},{"i":313,"t":"Page relocated","u":"/lodestar/reference/cli","b":[]},{"i":315,"t":"beacon CLI Command","u":"/lodestar/run/beacon-management/beacon-cli","b":["Run A Node","Beacon Node"]},{"i":321,"t":"Data Retention","u":"/lodestar/run/beacon-management/data-retention","b":["Run A Node","Beacon Node"]},{"i":325,"t":"Beacon Management","u":"/lodestar/run/beacon-management/starting-a-node","b":["Run A Node","Beacon Node"]},{"i":343,"t":"MEV & Merge","u":"/lodestar/run/beacon-management/mev-and-builder-integration","b":["Run A Node","Beacon Node"]},{"i":349,"t":"Syncing","u":"/lodestar/run/beacon-management/syncing","b":["Run A Node","Beacon Node"]},{"i":364,"t":"Networking","u":"/lodestar/run/beacon-management/networking","b":["Run A Node","Beacon Node"]},{"i":384,"t":"Install Options","u":"/lodestar/run/getting-started/installation","b":["Run A Node"]},{"i":404,"t":"bootnode CLI Command","u":"/lodestar/run/bootnode/bootnode-cli","b":["Run A Node","Discv5 Bootnode"]},{"i":408,"t":"Lodestar Quick Start Scripts","u":"/lodestar/run/getting-started/quick-start","b":["Run A Node","Quick Start"]},{"i":414,"t":"Client Monitoring","u":"/lodestar/run/logging-and-metrics/client-monitoring","b":["Run A Node","Logging and Metrics"]},{"i":422,"t":"Prometheus and Grafana Setup","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","b":["Run A Node","Logging and Metrics"]},{"i":430,"t":"key-management","u":"/lodestar/run/validator-management/key-management","b":[]},{"i":431,"t":"Quick Start Custom Setup Guide","u":"/lodestar/run/getting-started/quick-start-custom-guide","b":["Run A Node","Quick Start"]},{"i":498,"t":"External Signer","u":"/lodestar/run/validator-management/external-signer","b":["Run A Node","Validator Client"]},{"i":502,"t":"multiple-and-fallback-validation","u":"/lodestar/run/validator-management/multiple-and-fallback-validation","b":[]},{"i":503,"t":"Proposer Configuration","u":"/lodestar/run/validator-management/proposer-config","b":["Run A Node","Validator Client"]},{"i":509,"t":"validator CLI Command","u":"/lodestar/run/validator-management/validator-cli","b":["Run A Node","Validator Client"]},{"i":548,"t":"withdrawals","u":"/lodestar/run/validator-management/withdrawals","b":[]},{"i":549,"t":"Validator Configuration","u":"/lodestar/run/validator-management/vc-configuration","b":["Run A Node","Validator Client"]},{"i":565,"t":"Supporting Libraries","u":"/lodestar/supporting-libraries/","b":[]},{"i":575,"t":"Lodestar libraries","u":"/lodestar/supporting-libraries/libraries","b":[]},{"i":586,"t":"Security Policy","u":"/lodestar/security","b":[]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,3.763,1,3.763]],["t/2",[2,4.644]],["t/15",[3,3.763,4,2.873]],["t/16",[5,3.763,6,3.763]],["t/17",[7,3.763,8,3.763]],["t/18",[9,3.163,10,3.163,11,3.163]],["t/22",[12,3.763,13,3.763]],["t/23",[14,3.763,15,3.763]],["t/78",[16,3.163,17,2.016,18,2.016]],["t/84",[19,3.763,20,3.763]],["t/131",[21,3.763,22,3.763]],["t/132",[23,4.644]],["t/133",[24,4.515,25,1.742]],["t/135",[25,2.073,26,3.763]],["t/137",[25,2.558]],["t/151",[25,2.073,27,3.763]],["t/153",[25,2.073,28,3.763]],["t/155",[25,2.073,29,3.763]],["t/181",[25,2.073,30,3.763]],["t/183",[31,4.644]],["t/189",[32,3.163,33,2.712,34,2.712]],["t/197",[35,2.139,36,2.139,37,2.139,38,2.139,39,2.139,40,2.139]],["t/224",[33,2.712,34,2.712,41,3.163]],["t/246",[42,4.644]],["t/247",[43,3.163,44,3.163,45,3.163]],["t/256",[46,4.644]],["t/266",[47,3.763,48,3.763]],["t/267",[4,2.415,49,2.193,50,3.163]],["t/285",[17,2.016,18,2.016,51,3.163]],["t/291",[49,2.609,52,3.763]],["t/313",[53,3.763,54,3.763]],["t/315",[17,2.016,18,2.016,55,2.712]],["t/321",[56,3.763,57,3.763]],["t/325",[55,3.227,58,3.227]],["t/343",[59,3.163,60,3.163,61,3.163]],["t/349",[62,4.644]],["t/364",[63,4.644]],["t/384",[64,3.763,65,3.763]],["t/404",[17,2.016,18,2.016,66,3.163]],["t/408",[49,1.892,67,2.339,68,2.339,69,2.728]],["t/414",[4,2.873,70,3.763]],["t/422",[71,3.163,72,3.163,73,2.712]],["t/430",[58,3.227,74,3.763]],["t/431",[67,2.056,68,2.056,73,2.056,75,2.398,76,2.398]],["t/498",[77,3.763,78,3.763]],["t/502",[79,3.163,80,3.163,81,2.415]],["t/503",[82,3.763,83,3.227]],["t/509",[17,2.016,18,2.016,81,2.415]],["t/548",[84,4.644]],["t/549",[81,2.873,83,3.227]],["t/565",[85,3.763,86,3.227]],["t/575",[49,2.609,86,3.227]],["t/586",[87,3.763,88,3.763]]],"invertedIndex":[["",{"_index":60,"t":{"343":{"position":[[4,1]]}}}],["analysi",{"_index":34,"t":{"189":{"position":[[10,8]]},"224":{"position":[[10,8]]}}}],["api",{"_index":48,"t":{"266":{"position":[[10,3]]}}}],["ask",{"_index":44,"t":{"247":{"position":[[11,5]]}}}],["beacon",{"_index":55,"t":{"315":{"position":[[0,6]]},"325":{"position":[[0,6]]}}}],["block",{"_index":5,"t":{"16":{"position":[[0,5]]}}}],["bootnod",{"_index":66,"t":{"404":{"position":[[0,8]]}}}],["bug",{"_index":12,"t":{"22":{"position":[[0,3]]}}}],["cli",{"_index":17,"t":{"78":{"position":[[4,3]]},"285":{"position":[[12,3]]},"315":{"position":[[7,3]]},"404":{"position":[[9,3]]},"509":{"position":[[10,3]]}}}],["client",{"_index":4,"t":{"15":{"position":[[21,7]]},"267":{"position":[[15,6]]},"414":{"position":[[0,6]]}}}],["command",{"_index":18,"t":{"78":{"position":[[8,7]]},"285":{"position":[[16,7]]},"315":{"position":[[11,7]]},"404":{"position":[[13,7]]},"509":{"position":[[14,7]]}}}],["configur",{"_index":83,"t":{"503":{"position":[[9,13]]},"549":{"position":[[10,13]]}}}],["contribut",{"_index":19,"t":{"84":{"position":[[0,12]]}}}],["core",{"_index":32,"t":{"189":{"position":[[0,4]]}}}],["custom",{"_index":75,"t":{"431":{"position":[[12,6]]}}}],["data",{"_index":56,"t":{"321":{"position":[[0,4]]}}}],["debug",{"_index":31,"t":{"183":{"position":[[0,9]]}}}],["depend",{"_index":14,"t":{"23":{"position":[[0,10]]}}}],["detect",{"_index":1,"t":{"1":{"position":[[13,9]]}}}],["dev",{"_index":16,"t":{"78":{"position":[[0,3]]}}}],["doppelgang",{"_index":0,"t":{"1":{"position":[[0,12]]}}}],["dump",{"_index":33,"t":{"189":{"position":[[5,4]]},"224":{"position":[[5,4]]}}}],["end",{"_index":24,"t":{"133":{"position":[[0,3],[7,3]]}}}],["explor",{"_index":6,"t":{"16":{"position":[[6,11]]}}}],["extern",{"_index":77,"t":{"498":{"position":[[0,8]]}}}],["fallback",{"_index":80,"t":{"502":{"position":[[13,8]]}}}],["flamegraph",{"_index":36,"t":{"197":{"position":[[11,11]]}}}],["frequent",{"_index":43,"t":{"247":{"position":[[0,10]]}}}],["gener",{"_index":35,"t":{"197":{"position":[[0,10]]}}}],["grafana",{"_index":72,"t":{"422":{"position":[[15,7]]}}}],["graph",{"_index":15,"t":{"23":{"position":[[11,5]]}}}],["guid",{"_index":76,"t":{"431":{"position":[[25,5]]}}}],["guidelin",{"_index":20,"t":{"84":{"position":[[13,10]]}}}],["heap",{"_index":41,"t":{"224":{"position":[[0,4]]}}}],["home",{"_index":2,"t":{"2":{"position":[[0,4]]}}}],["instal",{"_index":64,"t":{"384":{"position":[[0,7]]}}}],["integr",{"_index":26,"t":{"135":{"position":[[0,11]]}}}],["introduct",{"_index":46,"t":{"256":{"position":[[0,12]]}}}],["key",{"_index":74,"t":{"430":{"position":[[0,3]]}}}],["librari",{"_index":86,"t":{"565":{"position":[[11,9]]},"575":{"position":[[9,9]]}}}],["light",{"_index":50,"t":{"267":{"position":[[9,5]]}}}],["lightclient",{"_index":51,"t":{"285":{"position":[[0,11]]}}}],["linux",{"_index":40,"t":{"197":{"position":[[53,5]]}}}],["lodestar",{"_index":49,"t":{"267":{"position":[[0,8]]},"291":{"position":[[0,8]]},"408":{"position":[[0,8]]},"575":{"position":[[0,8]]}}}],["manag",{"_index":58,"t":{"325":{"position":[[7,10]]},"430":{"position":[[4,10]]}}}],["merg",{"_index":61,"t":{"343":{"position":[[6,5]]}}}],["mev",{"_index":59,"t":{"343":{"position":[[0,3]]}}}],["migrat",{"_index":3,"t":{"15":{"position":[[0,9]]}}}],["monitor",{"_index":70,"t":{"414":{"position":[[7,10]]}}}],["multipl",{"_index":79,"t":{"502":{"position":[[0,8]]}}}],["network",{"_index":63,"t":{"364":{"position":[[0,10]]}}}],["node",{"_index":38,"t":{"197":{"position":[[37,4]]}}}],["option",{"_index":65,"t":{"384":{"position":[[8,7]]}}}],["page",{"_index":53,"t":{"313":{"position":[[0,4]]}}}],["perf",{"_index":42,"t":{"246":{"position":[[0,4]]}}}],["perform",{"_index":27,"t":{"151":{"position":[[0,11]]}}}],["polici",{"_index":88,"t":{"586":{"position":[[9,6]]}}}],["pr",{"_index":21,"t":{"131":{"position":[[0,2]]}}}],["prometheu",{"_index":71,"t":{"422":{"position":[[0,10]]}}}],["propos",{"_index":82,"t":{"503":{"position":[[0,8]]}}}],["protect",{"_index":8,"t":{"17":{"position":[[9,10]]}}}],["prover",{"_index":52,"t":{"291":{"position":[[9,6]]}}}],["question",{"_index":45,"t":{"247":{"position":[[17,9]]}}}],["quick",{"_index":67,"t":{"408":{"position":[[9,5]]},"431":{"position":[[0,5]]}}}],["reloc",{"_index":54,"t":{"313":{"position":[[5,9]]}}}],["repo",{"_index":23,"t":{"132":{"position":[[0,4]]}}}],["report",{"_index":13,"t":{"22":{"position":[[4,7]]}}}],["retent",{"_index":57,"t":{"321":{"position":[[5,9]]}}}],["run",{"_index":37,"t":{"197":{"position":[[29,7]]}}}],["script",{"_index":69,"t":{"408":{"position":[[21,7]]}}}],["secur",{"_index":87,"t":{"586":{"position":[[0,8]]}}}],["servic",{"_index":39,"t":{"197":{"position":[[42,7]]}}}],["set",{"_index":9,"t":{"18":{"position":[[0,7]]}}}],["setup",{"_index":73,"t":{"422":{"position":[[23,5]]},"431":{"position":[[19,5]]}}}],["signer",{"_index":78,"t":{"498":{"position":[[9,6]]}}}],["simul",{"_index":29,"t":{"155":{"position":[[0,10]]}}}],["slash",{"_index":7,"t":{"17":{"position":[[0,8]]}}}],["specif",{"_index":28,"t":{"153":{"position":[[0,13]]}}}],["start",{"_index":68,"t":{"408":{"position":[[15,5]]},"431":{"position":[[6,5]]}}}],["submiss",{"_index":22,"t":{"131":{"position":[[3,10]]}}}],["support",{"_index":85,"t":{"565":{"position":[[0,10]]}}}],["sync",{"_index":62,"t":{"349":{"position":[[0,7]]}}}],["test",{"_index":25,"t":{"133":{"position":[[11,5]]},"135":{"position":[[12,5]]},"137":{"position":[[0,7]]},"151":{"position":[[12,5]]},"153":{"position":[[14,5]]},"155":{"position":[[11,5]]},"181":{"position":[[5,5]]}}}],["testnet",{"_index":11,"t":{"18":{"position":[[13,7]]}}}],["unit",{"_index":30,"t":{"181":{"position":[[0,4]]}}}],["up",{"_index":10,"t":{"18":{"position":[[8,2]]}}}],["us",{"_index":47,"t":{"266":{"position":[[0,5]]}}}],["valid",{"_index":81,"t":{"502":{"position":[[22,10]]},"509":{"position":[[0,9]]},"549":{"position":[[0,9]]}}}],["withdraw",{"_index":84,"t":{"548":{"position":[[0,11]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"Welcome to the Lodestar Documentation","u":"/lodestar/","h":"#welcome-to-the-lodestar-documentation","p":2},{"i":5,"t":"Getting Started","u":"/lodestar/","h":"#getting-started","p":2},{"i":7,"t":"Specifications","u":"/lodestar/","h":"#specifications","p":2},{"i":9,"t":"Execution Client","u":"/lodestar/","h":"#execution-client","p":2},{"i":11,"t":"About These Docs","u":"/lodestar/","h":"#about-these-docs","p":2},{"i":13,"t":"Need Assistance?","u":"/lodestar/","h":"#need-assistance","p":2},{"i":20,"t":"Post-Merge local testnet","u":"/lodestar/contribution/advanced-topics/setting-up-a-testnet","h":"#post-merge-local-testnet","p":18},{"i":24,"t":"Lodestar Dependency Graph","u":"/lodestar/contribution/depgraph","h":"#lodestar-dependency-graph","p":23},{"i":26,"t":"Lodestar Monorepo","u":"/lodestar/contribution/depgraph","h":"#lodestar-monorepo","p":23},{"i":28,"t":"@chainsafe/lodestar","u":"/lodestar/contribution/depgraph","h":"#chainsafelodestar","p":23},{"i":30,"t":"@lodestar/api","u":"/lodestar/contribution/depgraph","h":"#lodestarapi","p":23},{"i":32,"t":"@lodestar/beacon-node","u":"/lodestar/contribution/depgraph","h":"#lodestarbeacon-node","p":23},{"i":34,"t":"@lodestar/config","u":"/lodestar/contribution/depgraph","h":"#lodestarconfig","p":23},{"i":36,"t":"@lodestar/db","u":"/lodestar/contribution/depgraph","h":"#lodestardb","p":23},{"i":38,"t":"@lodestar/flare","u":"/lodestar/contribution/depgraph","h":"#lodestarflare","p":23},{"i":40,"t":"@lodestar/fork-choice","u":"/lodestar/contribution/depgraph","h":"#lodestarfork-choice","p":23},{"i":42,"t":"@lodestar/light-client","u":"/lodestar/contribution/depgraph","h":"#lodestarlight-client","p":23},{"i":44,"t":"@lodestar/logger","u":"/lodestar/contribution/depgraph","h":"#lodestarlogger","p":23},{"i":46,"t":"@lodestar/params","u":"/lodestar/contribution/depgraph","h":"#lodestarparams","p":23},{"i":48,"t":"@lodestar/prover","u":"/lodestar/contribution/depgraph","h":"#lodestarprover","p":23},{"i":50,"t":"@lodestar/reqresp","u":"/lodestar/contribution/depgraph","h":"#lodestarreqresp","p":23},{"i":52,"t":"@lodestar/spec-test-util","u":"/lodestar/contribution/depgraph","h":"#lodestarspec-test-util","p":23},{"i":54,"t":"@lodestar/state-transition","u":"/lodestar/contribution/depgraph","h":"#lodestarstate-transition","p":23},{"i":56,"t":"@lodestar/types","u":"/lodestar/contribution/depgraph","h":"#lodestartypes","p":23},{"i":58,"t":"@lodestar/utils","u":"/lodestar/contribution/depgraph","h":"#lodestarutils","p":23},{"i":60,"t":"@lodestar/validator","u":"/lodestar/contribution/depgraph","h":"#lodestarvalidator","p":23},{"i":62,"t":"External Dependencies","u":"/lodestar/contribution/depgraph","h":"#external-dependencies","p":23},{"i":64,"t":"@chainsafe/blst-ts","u":"/lodestar/contribution/depgraph","h":"#chainsafeblst-ts","p":23},{"i":66,"t":"@chainsafe/discv5","u":"/lodestar/contribution/depgraph","h":"#chainsafediscv5","p":23},{"i":68,"t":"@chainsafe/js-libp2p-gossipsub","u":"/lodestar/contribution/depgraph","h":"#chainsafejs-libp2p-gossipsub","p":23},{"i":70,"t":"@chainsafe/js-libp2p-noise","u":"/lodestar/contribution/depgraph","h":"#chainsafejs-libp2p-noise","p":23},{"i":72,"t":"@chainsafe/js-libp2p-yamux","u":"/lodestar/contribution/depgraph","h":"#chainsafejs-libp2p-yamux","p":23},{"i":74,"t":"@chainsafe/ssz","u":"/lodestar/contribution/depgraph","h":"#chainsafessz","p":23},{"i":76,"t":"@libp2p/js-libp2p","u":"/lodestar/contribution/depgraph","h":"#libp2pjs-libp2p","p":23},{"i":80,"t":"Examples","u":"/lodestar/contribution/dev-cli","h":"#examples","p":78},{"i":82,"t":"dev Options","u":"/lodestar/contribution/dev-cli","h":"#dev-options","p":78},{"i":86,"t":"Prerequisites","u":"/lodestar/contribution/getting-started","h":"#prerequisites","p":84},{"i":88,"t":"MacOS Specifics","u":"/lodestar/contribution/getting-started","h":"#macos-specifics","p":84},{"i":90,"t":"Getting Started","u":"/lodestar/contribution/getting-started","h":"#getting-started","p":84},{"i":92,"t":"Tests","u":"/lodestar/contribution/getting-started","h":"#tests","p":84},{"i":94,"t":"Devcontainer","u":"/lodestar/contribution/getting-started","h":"#devcontainer","p":84},{"i":96,"t":"Common Issues","u":"/lodestar/contribution/getting-started","h":"#common-issues","p":84},{"i":98,"t":"Debugging Spec Tests","u":"/lodestar/contribution/getting-started","h":"#debugging-spec-tests","p":84},{"i":100,"t":"Docker","u":"/lodestar/contribution/getting-started","h":"#docker","p":84},{"i":102,"t":"First Time Contributor?","u":"/lodestar/contribution/getting-started","h":"#first-time-contributor","p":84},{"i":104,"t":"Reporting A Bug?","u":"/lodestar/contribution/getting-started","h":"#reporting-a-bug","p":84},{"i":106,"t":"Contribution Process","u":"/lodestar/contribution/getting-started","h":"#contribution-process","p":84},{"i":108,"t":"Github Style Guide","u":"/lodestar/contribution/getting-started","h":"#github-style-guide","p":84},{"i":110,"t":"Lodestar Monorepo","u":"/lodestar/contribution/getting-started","h":"#lodestar-monorepo","p":84},{"i":112,"t":"Style Guide","u":"/lodestar/contribution/getting-started","h":"#style-guide","p":84},{"i":114,"t":"Tests style guide","u":"/lodestar/contribution/getting-started","h":"#tests-style-guide","p":84},{"i":116,"t":"Logging policy","u":"/lodestar/contribution/getting-started","h":"#logging-policy","p":84},{"i":117,"t":"Logging Levels","u":"/lodestar/contribution/getting-started","h":"#logging-levels","p":84},{"i":119,"t":"Logging guidelines","u":"/lodestar/contribution/getting-started","h":"#logging-guidelines","p":84},{"i":121,"t":"Contributing to Grafana dashboards","u":"/lodestar/contribution/getting-started","h":"#contributing-to-grafana-dashboards","p":84},{"i":123,"t":"Using Download Script","u":"/lodestar/contribution/getting-started","h":"#using-download-script","p":84},{"i":125,"t":"Contributing to Documentation","u":"/lodestar/contribution/getting-started","h":"#contributing-to-documentation","p":84},{"i":127,"t":"Label Guide","u":"/lodestar/contribution/getting-started","h":"#label-guide","p":84},{"i":129,"t":"Community","u":"/lodestar/contribution/getting-started","h":"#community","p":84},{"i":139,"t":"Unit Tests","u":"/lodestar/contribution/testing/","h":"#unit-tests","p":137},{"i":141,"t":"Spec Tests","u":"/lodestar/contribution/testing/","h":"#spec-tests","p":137},{"i":143,"t":"Performance Tests","u":"/lodestar/contribution/testing/","h":"#performance-tests","p":137},{"i":145,"t":"End-To-End Tests","u":"/lodestar/contribution/testing/","h":"#end-to-end-tests","p":137},{"i":147,"t":"Integration Tests","u":"/lodestar/contribution/testing/","h":"#integration-tests","p":137},{"i":149,"t":"Simulation Tests","u":"/lodestar/contribution/testing/","h":"#simulation-tests","p":137},{"i":157,"t":"Running Sim Tests","u":"/lodestar/contribution/testing/simulation-tests","h":"#running-sim-tests","p":155},{"i":159,"t":"Environment Variables","u":"/lodestar/contribution/testing/simulation-tests","h":"#environment-variables","p":155},{"i":161,"t":"test:sim:multifork","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimmultifork","p":155},{"i":163,"t":"test:sim:endpoints","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimendpoints","p":155},{"i":165,"t":"test:sim:deneb","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimdeneb","p":155},{"i":167,"t":"test:sim:mixedcleint","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimmixedcleint","p":155},{"i":169,"t":"Sim Test Infrastructure","u":"/lodestar/contribution/testing/simulation-tests","h":"#sim-test-infrastructure","p":155},{"i":171,"t":"Simulation Environment","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-environment","p":155},{"i":173,"t":"Simulation Assertions","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-assertions","p":155},{"i":175,"t":"Custom Assertions","u":"/lodestar/contribution/testing/simulation-tests","h":"#custom-assertions","p":155},{"i":177,"t":"Simulation Reports","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-reports","p":155},{"i":179,"t":"Simulation Logging","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-logging","p":155},{"i":185,"t":"VS Code launch config","u":"/lodestar/contribution/tools/debugging","h":"#vs-code-launch-config","p":183},{"i":187,"t":"Attach to running process","u":"/lodestar/contribution/tools/debugging","h":"#attach-to-running-process","p":183},{"i":191,"t":"Installing llnode","u":"/lodestar/contribution/tools/core-dumps","h":"#installing-llnode","p":189},{"i":193,"t":"Collecting a core dump","u":"/lodestar/contribution/tools/core-dumps","h":"#collecting-a-core-dump","p":189},{"i":195,"t":"Analyzing a core dump","u":"/lodestar/contribution/tools/core-dumps","h":"#analyzing-a-core-dump","p":189},{"i":199,"t":"Modifying Linux and Lodestar","u":"/lodestar/contribution/tools/flamegraphs","h":"#modifying-linux-and-lodestar","p":197},{"i":201,"t":"Example start_lodestar.sh","u":"/lodestar/contribution/tools/flamegraphs","h":"#example-start_lodestarsh","p":197},{"i":203,"t":"Capturing Stack Traces","u":"/lodestar/contribution/tools/flamegraphs","h":"#capturing-stack-traces","p":197},{"i":205,"t":"Rendering a Flamegraph","u":"/lodestar/contribution/tools/flamegraphs","h":"#rendering-a-flamegraph","p":197},{"i":207,"t":"Installation","u":"/lodestar/contribution/tools/flamegraphs","h":"#installation","p":197},{"i":209,"t":"Usage","u":"/lodestar/contribution/tools/flamegraphs","h":"#usage","p":197},{"i":211,"t":"Filtering Results","u":"/lodestar/contribution/tools/flamegraphs","h":"#filtering-results","p":197},{"i":213,"t":"Unfiltered","u":"/lodestar/contribution/tools/flamegraphs","h":"#unfiltered","p":197},{"i":214,"t":"Filtered","u":"/lodestar/contribution/tools/flamegraphs","h":"#filtered","p":197},{"i":215,"t":"References","u":"/lodestar/contribution/tools/flamegraphs","h":"#references","p":197},{"i":216,"t":"List of Web References","u":"/lodestar/contribution/tools/flamegraphs","h":"#list-of-web-references","p":197},{"i":218,"t":"Visualization Tools","u":"/lodestar/contribution/tools/flamegraphs","h":"#visualization-tools","p":197},{"i":220,"t":"Collecting on Linux","u":"/lodestar/contribution/tools/flamegraphs","h":"#collecting-on-linux","p":197},{"i":222,"t":"Collecting on MacOS","u":"/lodestar/contribution/tools/flamegraphs","h":"#collecting-on-macos","p":197},{"i":226,"t":"JavaScript Heap Dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#javascript-heap-dump","p":224},{"i":228,"t":"Creating a V8 heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#creating-a-v8-heap-dump","p":224},{"i":230,"t":"Viewing a V8 heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#viewing-a-v8-heap-dump","p":224},{"i":232,"t":"Analyzing a V8 heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#analyzing-a-v8-heap-dump","p":224},{"i":234,"t":"Native Heap Dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#native-heap-dump","p":224},{"i":236,"t":"Build collection tools","u":"/lodestar/contribution/tools/heap-dumps","h":"#build-collection-tools","p":224},{"i":238,"t":"Collect a heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#collect-a-heap-dump","p":224},{"i":240,"t":"Collecting a heap dump on a running process","u":"/lodestar/contribution/tools/heap-dumps","h":"#collecting-a-heap-dump-on-a-running-process","p":224},{"i":242,"t":"Installing heaptrack-gui on Linux","u":"/lodestar/contribution/tools/heap-dumps","h":"#installing-heaptrack-gui-on-linux","p":224},{"i":244,"t":"Installing heaptrack-gui on OSX","u":"/lodestar/contribution/tools/heap-dumps","h":"#installing-heaptrack-gui-on-osx","p":224},{"i":249,"t":"Tooling","u":"/lodestar/faqs","h":"#tooling","p":247},{"i":251,"t":"Troubleshooting Lodestar","u":"/lodestar/faqs","h":"#troubleshooting-lodestar","p":247},{"i":252,"t":"Running a beacon node","u":"/lodestar/faqs","h":"#running-a-beacon-node","p":247},{"i":254,"t":"Using Kubernetes","u":"/lodestar/faqs","h":"#using-kubernetes","p":247},{"i":258,"t":"Proof of Stake","u":"/lodestar/introduction","h":"#proof-of-stake","p":256},{"i":260,"t":"Consensus Clients","u":"/lodestar/introduction","h":"#consensus-clients","p":256},{"i":262,"t":"Why Client Diversity?","u":"/lodestar/introduction","h":"#why-client-diversity","p":256},{"i":264,"t":"Ethereum Reading List","u":"/lodestar/introduction","h":"#ethereum-reading-list","p":256},{"i":269,"t":"Prerequisites","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#prerequisites","p":267},{"i":271,"t":"Requirements for Running a Light-Client","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#requirements-for-running-a-light-client","p":267},{"i":273,"t":"Getting started","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#getting-started","p":267},{"i":275,"t":"Light-Client CLI Example","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#light-client-cli-example","p":267},{"i":277,"t":"Light-Client Programmatic Example","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#light-client-programmatic-example","p":267},{"i":279,"t":"Browser Integration","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#browser-integration","p":267},{"i":281,"t":"Contributors","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#contributors","p":267},{"i":283,"t":"License","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#license","p":267},{"i":287,"t":"Examples","u":"/lodestar/libraries/lightclient-prover/lightclient-cli","h":"#examples","p":285},{"i":289,"t":"lightclient Options","u":"/lodestar/libraries/lightclient-prover/lightclient-cli","h":"#lightclient-options","p":285},{"i":293,"t":"Usage","u":"/lodestar/libraries/lightclient-prover/prover","h":"#usage","p":291},{"i":295,"t":"How to detect a web3 provider","u":"/lodestar/libraries/lightclient-prover/prover","h":"#how-to-detect-a-web3-provider","p":291},{"i":297,"t":"Supported Web3 Methods","u":"/lodestar/libraries/lightclient-prover/prover","h":"#supported-web3-methods","p":291},{"i":299,"t":"Non-supported features","u":"/lodestar/libraries/lightclient-prover/prover","h":"#non-supported-features","p":291},{"i":301,"t":"Warnings","u":"/lodestar/libraries/lightclient-prover/prover","h":"#warnings","p":291},{"i":303,"t":"Prerequisites","u":"/lodestar/libraries/lightclient-prover/prover","h":"#prerequisites","p":291},{"i":305,"t":"What you need","u":"/lodestar/libraries/lightclient-prover/prover","h":"#what-you-need","p":291},{"i":307,"t":"Getting started","u":"/lodestar/libraries/lightclient-prover/prover","h":"#getting-started","p":291},{"i":309,"t":"Contributors","u":"/lodestar/libraries/lightclient-prover/prover","h":"#contributors","p":291},{"i":311,"t":"License","u":"/lodestar/libraries/lightclient-prover/prover","h":"#license","p":291},{"i":317,"t":"Examples","u":"/lodestar/run/beacon-management/beacon-cli","h":"#examples","p":315},{"i":319,"t":"beacon Options","u":"/lodestar/run/beacon-management/beacon-cli","h":"#beacon-options","p":315},{"i":323,"t":"Data Management","u":"/lodestar/run/beacon-management/data-retention","h":"#data-management","p":321},{"i":327,"t":"Connect to Mainnet or a Public Testnet","u":"/lodestar/run/beacon-management/starting-a-node","h":"#connect-to-mainnet-or-a-public-testnet","p":325},{"i":329,"t":"Configure the Lodestar JWT Authentication Token","u":"/lodestar/run/beacon-management/starting-a-node","h":"#configure-the-lodestar-jwt-authentication-token","p":325},{"i":331,"t":"Generate a Secret Key","u":"/lodestar/run/beacon-management/starting-a-node","h":"#generate-a-secret-key","p":325},{"i":333,"t":"Configure Lodestar to Locate the JWT Secret","u":"/lodestar/run/beacon-management/starting-a-node","h":"#configure-lodestar-to-locate-the-jwt-secret","p":325},{"i":335,"t":"Configure the Execution Client with the JWT Secret","u":"/lodestar/run/beacon-management/starting-a-node","h":"#configure-the-execution-client-with-the-jwt-secret","p":325},{"i":337,"t":"Run the Beacon Node","u":"/lodestar/run/beacon-management/starting-a-node","h":"#run-the-beacon-node","p":325},{"i":339,"t":"Checkpoint Sync","u":"/lodestar/run/beacon-management/starting-a-node","h":"#checkpoint-sync","p":325},{"i":341,"t":"Sync Log Guide","u":"/lodestar/run/beacon-management/starting-a-node","h":"#sync-log-guide","p":325},{"i":345,"t":"Lodestar and Builder API","u":"/lodestar/run/beacon-management/mev-and-builder-integration","h":"#lodestar-and-builder-api","p":343},{"i":347,"t":"Configure Lodestar setup for MEV","u":"/lodestar/run/beacon-management/mev-and-builder-integration","h":"#configure-lodestar-setup-for-mev","p":343},{"i":351,"t":"Weak Subjectivity","u":"/lodestar/run/beacon-management/syncing","h":"#weak-subjectivity","p":349},{"i":353,"t":"Syncing Methods","u":"/lodestar/run/beacon-management/syncing","h":"#syncing-methods","p":349},{"i":354,"t":"Checkpoint Sync","u":"/lodestar/run/beacon-management/syncing","h":"#checkpoint-sync","p":349},{"i":356,"t":"Historical Sync","u":"/lodestar/run/beacon-management/syncing","h":"#historical-sync","p":349},{"i":358,"t":"Range Sync","u":"/lodestar/run/beacon-management/syncing","h":"#range-sync","p":349},{"i":360,"t":"Backfill Sync","u":"/lodestar/run/beacon-management/syncing","h":"#backfill-sync","p":349},{"i":362,"t":"Syncing Lodestar","u":"/lodestar/run/beacon-management/syncing","h":"#syncing-lodestar","p":349},{"i":366,"t":"Networking Flags","u":"/lodestar/run/beacon-management/networking","h":"#networking-flags","p":364},{"i":368,"t":"Peer Discovery (Discv5)","u":"/lodestar/run/beacon-management/networking","h":"#peer-discovery-discv5","p":364},{"i":370,"t":"ENR","u":"/lodestar/run/beacon-management/networking","h":"#enr","p":364},{"i":372,"t":"Peer Communication (gossipsub and Req/Resp)","u":"/lodestar/run/beacon-management/networking","h":"#peer-communication-gossipsub-and-reqresp","p":364},{"i":374,"t":"Gossipsub","u":"/lodestar/run/beacon-management/networking","h":"#gossipsub","p":364},{"i":376,"t":"Req/Resp","u":"/lodestar/run/beacon-management/networking","h":"#reqresp","p":364},{"i":378,"t":"Data Transport (libp2p)","u":"/lodestar/run/beacon-management/networking","h":"#data-transport-libp2p","p":364},{"i":380,"t":"Firewall Management","u":"/lodestar/run/beacon-management/networking","h":"#firewall-management","p":364},{"i":382,"t":"NAT Traversal","u":"/lodestar/run/beacon-management/networking","h":"#nat-traversal","p":364},{"i":385,"t":"Binaries","u":"/lodestar/run/getting-started/installation","h":"#binaries","p":384},{"i":387,"t":"Docker Installation","u":"/lodestar/run/getting-started/installation","h":"#docker-installation","p":384},{"i":389,"t":"Build from Source","u":"/lodestar/run/getting-started/installation","h":"#build-from-source","p":384},{"i":390,"t":"Prerequisites","u":"/lodestar/run/getting-started/installation","h":"#prerequisites","p":384},{"i":392,"t":"Clone repository","u":"/lodestar/run/getting-started/installation","h":"#clone-repository","p":384},{"i":394,"t":"Install packages","u":"/lodestar/run/getting-started/installation","h":"#install-packages","p":384},{"i":396,"t":"Build source code","u":"/lodestar/run/getting-started/installation","h":"#build-source-code","p":384},{"i":398,"t":"Lodestar CLI","u":"/lodestar/run/getting-started/installation","h":"#lodestar-cli","p":384},{"i":400,"t":"Known Issues","u":"/lodestar/run/getting-started/installation","h":"#known-issues","p":384},{"i":402,"t":"Install from NPM [not recommended]","u":"/lodestar/run/getting-started/installation","h":"#install-from-npm-not-recommended","p":384},{"i":406,"t":"bootnode Options","u":"/lodestar/run/bootnode/bootnode-cli","h":"#bootnode-options","p":404},{"i":410,"t":"Support","u":"/lodestar/run/getting-started/quick-start","h":"#support","p":408},{"i":412,"t":"Customizations (Optional)","u":"/lodestar/run/getting-started/quick-start","h":"#customizations-optional","p":408},{"i":416,"t":"Configuration","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"#configuration","p":414},{"i":418,"t":"Remote endpoint URL","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"#remote-endpoint-url","p":414},{"i":420,"t":"Monitoring interval","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"#monitoring-interval","p":414},{"i":424,"t":"Localized Docker Metrics Script","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"#localized-docker-metrics-script","p":422},{"i":426,"t":"Prometheus Setup","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"#prometheus-setup","p":422},{"i":428,"t":"Grafana Setup","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"#grafana-setup","p":422},{"i":433,"t":"Support","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#support","p":431},{"i":435,"t":"Prerequisites","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#prerequisites","p":431},{"i":437,"t":"Testnet to Mainnet","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#testnet-to-mainnet","p":431},{"i":439,"t":"Hardware Requirements","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#hardware-requirements","p":431},{"i":441,"t":"Setup Machine & Repository","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#setup-machine--repository","p":431},{"i":442,"t":"Install Docker Engine & Docker Compose","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#install-docker-engine--docker-compose","p":431},{"i":444,"t":"Configure Lodestar Quick Scripts","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-lodestar-quick-scripts","p":431},{"i":445,"t":"Navigate to the root directory","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#navigate-to-the-root-directory","p":431},{"i":447,"t":"Create your own JWT Secret","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#create-your-own-jwt-secret","p":431},{"i":449,"t":"Input your JWT Secret into the import-args.sh script","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#input-your-jwt-secret-into-the-import-argssh-script","p":431},{"i":451,"t":"Configure feeRecipient","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-feerecipient","p":431},{"i":453,"t":"Set minimum bid for MEV-Boost validators","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#set-minimum-bid-for-mev-boost-validators","p":431},{"i":455,"t":"Configuring your Network","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configuring-your-network","p":431},{"i":457,"t":"Select your Network","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#select-your-network","p":431},{"i":459,"t":"Configure MEV-boost relays","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-mev-boost-relays","p":431},{"i":461,"t":"Configure Lodestar version","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-lodestar-version","p":431},{"i":463,"t":"Modify your weak subjectivity (checkpoint sync) provider","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#modify-your-weak-subjectivity-checkpoint-sync-provider","p":431},{"i":465,"t":"Modify other client parameters (For advanced users)","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#modify-other-client-parameters-for-advanced-users","p":431},{"i":467,"t":"Setup Validators","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#setup-validators","p":431},{"i":469,"t":"Create validator keystore password","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#create-validator-keystore-password","p":431},{"i":471,"t":"Option 1: Setup validators with keystores","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#option-1-setup-validators-with-keystores","p":431},{"i":473,"t":"Option 2: Setup multiple validator sets with keystores encrypted under different passwords","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#option-2-setup-multiple-validator-sets-with-keystores-encrypted-under-different-passwords","p":431},{"i":475,"t":"Option 3: Setup validators with mnemonic","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#option-3-setup-validators-with-mnemonic","p":431},{"i":477,"t":"Startup Quickstart Script","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#startup-quickstart-script","p":431},{"i":479,"t":"Quickstart Script Help","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#quickstart-script-help","p":431},{"i":481,"t":"Check Containers","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-containers","p":431},{"i":483,"t":"Check Container Logs","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-container-logs","p":431},{"i":485,"t":"Check beacon node is progressing","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-beacon-node-is-progressing","p":431},{"i":487,"t":"Check validators are detected and decrypted","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-validators-are-detected-and-decrypted","p":431},{"i":489,"t":"Stop Containers","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#stop-containers","p":431},{"i":491,"t":"Appendix","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"","p":431},{"i":492,"t":"Appendix A - Expanding the Logical Volume","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#appendix-a---expanding-the-logical-volume","p":431},{"i":494,"t":"Appendix B - Update client images","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#appendix-b---update-client-images","p":431},{"i":496,"t":"Full Disclaimer","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#full-disclaimer","p":431},{"i":500,"t":"Configuration","u":"/lodestar/run/validator-management/external-signer","h":"#configuration","p":498},{"i":505,"t":"Example proposer_config.yaml","u":"/lodestar/run/validator-management/proposer-config","h":"#example-proposer_configyaml","p":503},{"i":507,"t":"Enable Proposer Configuration","u":"/lodestar/run/validator-management/proposer-config","h":"#enable-proposer-configuration","p":503},{"i":511,"t":"Available Sub-Commands","u":"/lodestar/run/validator-management/validator-cli","h":"#available-sub-commands","p":509},{"i":513,"t":"Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#examples","p":509},{"i":514,"t":"Base validator command","u":"/lodestar/run/validator-management/validator-cli","h":"#base-validator-command","p":509},{"i":516,"t":"validator Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-options","p":509},{"i":518,"t":"validator slashing-protection import","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-import","p":509},{"i":520,"t":"validator slashing-protection import Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-import-options","p":509},{"i":522,"t":"validator slashing-protection export","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-export","p":509},{"i":524,"t":"validator slashing-protection export Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-export-options","p":509},{"i":526,"t":"validator import","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-import","p":509},{"i":528,"t":"validator import Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-import-examples","p":509},{"i":530,"t":"validator import Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-import-options","p":509},{"i":532,"t":"validator list","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-list","p":509},{"i":534,"t":"validator list Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-list-examples","p":509},{"i":536,"t":"validator voluntary-exit","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-voluntary-exit","p":509},{"i":538,"t":"validator voluntary-exit Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-voluntary-exit-examples","p":509},{"i":540,"t":"validator voluntary-exit Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-voluntary-exit-options","p":509},{"i":542,"t":"validator bls-to-execution-change","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-bls-to-execution-change","p":509},{"i":544,"t":"validator bls-to-execution-change Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-bls-to-execution-change-examples","p":509},{"i":546,"t":"validator bls-to-execution-change Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-bls-to-execution-change-options","p":509},{"i":551,"t":"Setup your validator","u":"/lodestar/run/validator-management/vc-configuration","h":"#setup-your-validator","p":549},{"i":553,"t":"Create a keystore","u":"/lodestar/run/validator-management/vc-configuration","h":"#create-a-keystore","p":549},{"i":555,"t":"Import a validator keystore to Lodestar","u":"/lodestar/run/validator-management/vc-configuration","h":"#import-a-validator-keystore-to-lodestar","p":549},{"i":557,"t":"Configuring the fee recipient address","u":"/lodestar/run/validator-management/vc-configuration","h":"#configuring-the-fee-recipient-address","p":549},{"i":559,"t":"Configure your builder selection and/or builder boost factor","u":"/lodestar/run/validator-management/vc-configuration","h":"#configure-your-builder-selection-andor-builder-boost-factor","p":549},{"i":561,"t":"Submit a validator deposit","u":"/lodestar/run/validator-management/vc-configuration","h":"#submit-a-validator-deposit","p":549},{"i":563,"t":"Run the validator","u":"/lodestar/run/validator-management/vc-configuration","h":"#run-the-validator","p":549},{"i":566,"t":"Networking","u":"/lodestar/supporting-libraries/","h":"#networking","p":565},{"i":567,"t":"LibP2P","u":"/lodestar/supporting-libraries/","h":"#libp2p","p":565},{"i":569,"t":"Discv5","u":"/lodestar/supporting-libraries/","h":"#discv5","p":565},{"i":571,"t":"Serialization and Hashing","u":"/lodestar/supporting-libraries/","h":"#serialization-and-hashing","p":565},{"i":573,"t":"BLS","u":"/lodestar/supporting-libraries/","h":"#bls","p":565},{"i":577,"t":"Monorepo libraries","u":"/lodestar/supporting-libraries/libraries","h":"#monorepo-libraries","p":575},{"i":579,"t":"Other libraries","u":"/lodestar/supporting-libraries/libraries","h":"#other-libraries","p":575},{"i":580,"t":"BLS Utilities","u":"/lodestar/supporting-libraries/libraries","h":"#bls-utilities","p":575},{"i":582,"t":"Hashing","u":"/lodestar/supporting-libraries/libraries","h":"#hashing","p":575},{"i":584,"t":"Networking","u":"/lodestar/supporting-libraries/libraries","h":"#networking","p":575},{"i":587,"t":"Supported Versions","u":"/lodestar/security","h":"#supported-versions","p":586},{"i":589,"t":"Reporting a Vulnerability","u":"/lodestar/security","h":"#reporting-a-vulnerability","p":586}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,4.705,1,2.571,2,4.238]],["t/5",[3,4.371,4,4.371]],["t/7",[5,6.112]],["t/9",[6,4.155,7,3.456]],["t/11",[8,6.786]],["t/13",[9,5.006,10,5.557]],["t/20",[11,4.08,12,4.08,13,3.675,14,3.408]],["t/24",[1,2.571,15,4.238,16,4.705]],["t/26",[1,3.036,17,4.642]],["t/28",[18,6.786]],["t/30",[19,6.786]],["t/32",[20,5.557,21,4.371]],["t/34",[22,6.786]],["t/36",[23,6.786]],["t/38",[24,6.786]],["t/40",[25,5.557,26,5.557]],["t/42",[7,3.456,27,5.557]],["t/44",[28,6.786]],["t/46",[29,6.786]],["t/48",[30,6.786]],["t/50",[31,6.786]],["t/52",[32,4.705,33,2.767,34,4.238]],["t/54",[35,5.557,36,5.557]],["t/56",[37,6.786]],["t/58",[38,6.786]],["t/60",[39,6.786]],["t/62",[15,5.006,40,5.557]],["t/64",[41,5.557,42,5.557]],["t/66",[43,6.786]],["t/68",[44,3.931,45,3.365,46,3.931]],["t/70",[44,3.931,45,3.365,47,4.705]],["t/72",[44,3.931,45,3.365,48,4.705]],["t/74",[49,6.786]],["t/76",[45,3.974,50,5.557]],["t/80",[51,3.991]],["t/82",[52,5.557,53,3.108]],["t/86",[54,5.073]],["t/88",[5,5.006,55,5.006]],["t/90",[3,4.371,4,4.371]],["t/92",[33,3.991]],["t/94",[56,6.786]],["t/96",[57,5.557,58,5.006]],["t/98",[33,2.767,59,4.705,60,4.238]],["t/100",[61,5.337]],["t/102",[62,4.705,63,4.705,64,3.931]],["t/104",[65,4.642,66,5.557]],["t/106",[67,4.642,68,4.642]],["t/108",[69,4.705,70,3.931,71,3.518]],["t/110",[1,3.036,17,4.642]],["t/112",[70,4.642,71,4.155]],["t/114",[33,2.767,70,3.931,71,3.518]],["t/116",[72,3.974,73,5.557]],["t/117",[72,3.974,74,5.557]],["t/119",[72,3.974,75,5.557]],["t/121",[67,3.931,76,4.238,77,4.705]],["t/123",[78,4.238,79,4.705,80,3.365]],["t/125",[2,5.006,67,4.642]],["t/127",[71,4.155,81,5.557]],["t/129",[82,6.112]],["t/139",[33,3.268,83,5.557]],["t/141",[33,3.268,60,5.006]],["t/143",[33,3.268,84,5.557]],["t/145",[33,2.767,85,6.648]],["t/147",[33,3.268,86,5.006]],["t/149",[33,3.268,87,4.155]],["t/157",[33,2.767,88,3.234,89,4.238]],["t/159",[90,5.006,91,5.557]],["t/161",[92,6.786]],["t/163",[93,6.786]],["t/165",[94,6.786]],["t/167",[95,6.786]],["t/169",[33,2.767,89,4.238,96,4.705]],["t/171",[87,4.155,90,5.006]],["t/173",[87,4.155,97,5.006]],["t/175",[97,5.006,98,5.006]],["t/177",[65,4.642,87,4.155]],["t/179",[72,3.974,87,4.155]],["t/185",[99,4.08,100,3.675,101,4.08,102,4.08]],["t/187",[68,3.931,88,3.234,103,4.705]],["t/191",[104,3.685,105,5.557]],["t/193",[106,3.365,107,4.238,108,3.018]],["t/195",[107,4.238,108,3.018,109,4.238]],["t/199",[1,2.571,110,3.931,111,3.931]],["t/201",[51,3.268,112,5.557]],["t/203",[113,4.705,114,4.705,115,4.705]],["t/205",[116,5.557,117,5.557]],["t/207",[104,4.499]],["t/209",[118,6.112]],["t/211",[119,5.006,120,5.557]],["t/213",[121,6.786]],["t/214",[119,6.112]],["t/215",[122,6.112]],["t/216",[122,4.238,123,3.701,124,4.705]],["t/218",[125,5.557,126,4.642]],["t/220",[106,3.974,111,4.642]],["t/222",[55,5.006,106,3.974]],["t/226",[108,3.018,127,4.705,128,3.234]],["t/228",[108,2.617,128,2.804,129,3.209,130,3.408]],["t/230",[108,2.617,128,2.804,130,3.408,131,4.08]],["t/232",[108,2.617,109,3.675,128,2.804,130,3.408]],["t/234",[108,3.018,128,3.234,132,4.705]],["t/236",[106,3.365,126,3.931,133,3.931]],["t/238",[106,3.365,108,3.018,128,3.234]],["t/240",[68,3.009,88,2.475,106,2.575,108,2.31,128,2.475]],["t/242",[104,2.705,111,3.408,134,3.675,135,3.675]],["t/244",[104,2.705,134,3.675,135,3.675,136,4.08]],["t/249",[126,5.669]],["t/251",[1,3.036,137,5.557]],["t/252",[21,3.701,88,3.234,138,3.701]],["t/254",[78,5.006,139,5.557]],["t/258",[140,5.557,141,5.557]],["t/260",[7,3.456,142,5.557]],["t/262",[7,3.456,143,5.557]],["t/264",[123,3.701,144,4.705,145,4.705]],["t/269",[54,5.073]],["t/271",[7,2.538,88,2.804,146,3.675,147,3.408]],["t/273",[3,4.371,4,4.371]],["t/275",[7,2.538,51,2.399,147,3.408,148,3.675]],["t/277",[7,2.538,51,2.399,147,3.408,149,4.08]],["t/279",[86,5.006,150,5.557]],["t/281",[64,5.669]],["t/283",[151,6.112]],["t/287",[51,3.991]],["t/289",[53,3.108,152,5.557]],["t/293",[118,6.112]],["t/295",[153,4.238,154,4.238,155,4.238]],["t/297",[154,4.238,156,3.518,157,4.238]],["t/299",[156,3.518,158,4.705,159,4.705]],["t/301",[160,6.786]],["t/303",[54,5.073]],["t/305",[9,6.112]],["t/307",[3,4.371,4,4.371]],["t/309",[64,5.669]],["t/311",[151,6.112]],["t/317",[51,3.991]],["t/319",[53,3.108,138,4.371]],["t/323",[161,5.006,162,5.006]],["t/327",[14,3.408,163,4.08,164,3.675,165,4.08]],["t/329",[1,1.967,166,2.014,167,2.692,168,3.601,169,3.601]],["t/331",[170,4.705,171,3.518,172,4.705]],["t/333",[1,1.967,166,2.014,167,2.692,171,2.692,173,3.601]],["t/335",[6,2.692,7,2.24,166,2.014,167,2.692,171,2.692]],["t/337",[21,3.701,88,3.234,138,3.701]],["t/339",[174,4.642,175,3.564]],["t/341",[71,3.518,72,3.365,175,3.018]],["t/345",[1,2.571,176,4.238,177,4.705]],["t/347",[1,2.229,166,2.282,178,2.617,179,3.408]],["t/351",[180,5.006,181,5.006]],["t/353",[157,5.006,175,3.564]],["t/354",[174,4.642,175,3.564]],["t/356",[175,3.564,182,5.557]],["t/358",[175,3.564,183,5.557]],["t/360",[175,3.564,184,5.557]],["t/362",[1,3.036,175,3.564]],["t/366",[185,4.155,186,5.557]],["t/368",[187,4.238,188,4.705,189,4.238]],["t/370",[190,6.786]],["t/372",[46,3.408,82,3.675,187,3.675,191,3.675]],["t/374",[46,5.669]],["t/376",[191,6.112]],["t/378",[45,3.365,161,4.238,192,4.705]],["t/380",[162,5.006,193,5.557]],["t/382",[194,5.557,195,5.557]],["t/385",[196,6.786]],["t/387",[61,4.371,104,3.685]],["t/389",[133,4.642,197,5.006]],["t/390",[54,5.073]],["t/392",[198,5.557,199,5.006]],["t/394",[104,3.685,200,5.557]],["t/396",[100,4.238,133,3.931,197,4.238]],["t/398",[1,3.036,148,5.006]],["t/400",[58,5.006,201,5.557]],["t/402",[104,3.12,202,4.705,203,4.705]],["t/406",[53,3.108,204,5.557]],["t/410",[156,5.073]],["t/412",[53,3.108,98,5.006]],["t/416",[166,3.795]],["t/418",[205,4.705,206,4.705,207,4.705]],["t/420",[208,5.557,209,5.557]],["t/424",[13,3.675,61,3.209,80,2.918,210,4.08]],["t/426",[178,3.564,211,5.557]],["t/428",[76,5.006,178,3.564]],["t/433",[156,5.073]],["t/435",[54,5.073]],["t/437",[14,4.642,164,5.006]],["t/439",[146,5.006,212,5.557]],["t/441",[178,2.617,199,3.675,213,4.08,214,3.675]],["t/442",[61,3.947,104,2.137,214,2.903,215,3.223,216,3.223]],["t/444",[1,2.229,80,2.918,166,2.282,217,4.08]],["t/445",[218,4.705,219,4.705,220,4.705]],["t/447",[129,3.701,167,3.518,171,3.518]],["t/449",[80,2.305,167,2.41,171,2.41,221,3.223,222,2.215,223,3.223]],["t/451",[166,3.108,224,5.557]],["t/453",[179,2.693,225,2.903,226,3.223,227,3.223,228,2.693,229,1.379]],["t/455",[166,3.108,185,4.155]],["t/457",[185,4.155,230,5.006]],["t/459",[166,2.282,179,3.408,228,3.408,231,4.08]],["t/461",[1,2.571,166,2.632,232,4.238]],["t/463",[110,2.693,155,2.903,174,2.693,175,2.067,180,2.903,181,2.903]],["t/465",[7,2.24,110,3.009,233,3.601,234,3.601,235,3.601]],["t/467",[178,3.564,229,2.378]],["t/469",[129,3.209,229,1.746,236,3.05,237,3.675]],["t/471",[53,2.014,178,2.31,229,1.541,236,2.692,238,3.601]],["t/473",[53,1.182,178,1.356,225,1.904,229,0.905,236,1.58,237,1.904,239,2.114,240,2.114,241,2.114,242,2.114,243,2.114]],["t/475",[53,2.014,178,2.31,229,1.541,244,3.601,245,3.601]],["t/477",[80,3.365,246,4.705,247,4.238]],["t/479",[80,3.365,247,4.238,248,4.705]],["t/481",[249,4.371,250,4.642]],["t/483",[72,3.365,249,3.701,250,3.931]],["t/485",[21,3.209,138,3.209,249,3.209,251,4.08]],["t/487",[153,3.675,229,1.746,249,3.209,252,4.08]],["t/489",[250,4.642,253,5.557]],["t/491",[254,5.669]],["t/492",[254,3.408,255,4.08,256,4.08,257,4.08]],["t/494",[7,2.24,254,3.009,258,3.601,259,3.601,260,3.601]],["t/496",[261,5.557,262,5.557]],["t/500",[166,3.795]],["t/505",[51,3.268,263,5.557]],["t/507",[166,2.632,264,4.705,265,4.705]],["t/511",[266,4.705,267,4.705,268,4.238]],["t/513",[51,3.991]],["t/514",[229,2.014,268,4.238,269,4.705]],["t/516",[53,3.108,229,2.378]],["t/518",[222,2.804,229,1.746,270,3.209,271,3.209]],["t/520",[53,2.014,222,2.475,229,1.541,270,2.833,271,2.833]],["t/522",[229,1.746,270,3.209,271,3.209,272,3.675]],["t/524",[53,2.014,229,1.541,270,2.833,271,2.833,272,3.244]],["t/526",[222,3.82,229,2.378]],["t/528",[51,2.767,222,3.234,229,2.014]],["t/530",[53,2.632,222,3.234,229,2.014]],["t/532",[123,4.371,229,2.378]],["t/534",[51,2.767,123,3.701,229,2.014]],["t/536",[229,2.014,273,3.931,274,3.931]],["t/538",[51,2.399,229,1.746,273,3.408,274,3.408]],["t/540",[53,2.282,229,1.746,273,3.408,274,3.408]],["t/542",[6,3.05,229,1.746,275,3.05,276,3.408]],["t/544",[6,2.692,51,2.118,229,1.541,275,2.692,276,3.009]],["t/546",[6,2.692,53,2.014,229,1.541,275,2.692,276,3.009]],["t/551",[178,3.564,229,2.378]],["t/553",[129,4.371,236,4.155]],["t/555",[1,2.229,222,2.804,229,1.746,236,3.05]],["t/557",[166,2.282,277,4.08,278,4.08,279,4.08]],["t/559",[166,1.631,176,4.179,228,2.437,230,2.627,280,2.917,281,2.917]],["t/561",[229,2.014,282,4.705,283,4.705]],["t/563",[88,3.82,229,2.378]],["t/566",[185,5.073]],["t/567",[45,4.853]],["t/569",[189,6.112]],["t/571",[284,5.557,285,5.006]],["t/573",[275,5.073]],["t/577",[17,4.642,286,5.006]],["t/579",[286,6.112]],["t/580",[34,5.006,275,4.155]],["t/582",[285,6.112]],["t/584",[185,5.073]],["t/587",[156,4.155,232,5.006]],["t/589",[65,4.642,287,5.557]]],"invertedIndex":[["",{"_index":214,"t":{"441":{"position":[[14,1]]},"442":{"position":[[22,1]]}}}],["1",{"_index":238,"t":{"471":{"position":[[7,2]]}}}],["2",{"_index":239,"t":{"473":{"position":[[7,2]]}}}],["3",{"_index":244,"t":{"475":{"position":[[7,2]]}}}],["address",{"_index":279,"t":{"557":{"position":[[30,7]]}}}],["advanc",{"_index":234,"t":{"465":{"position":[[36,8]]}}}],["analyz",{"_index":109,"t":{"195":{"position":[[0,9]]},"232":{"position":[[0,9]]}}}],["and/or",{"_index":280,"t":{"559":{"position":[[33,6]]}}}],["api",{"_index":177,"t":{"345":{"position":[[21,3]]}}}],["appendix",{"_index":254,"t":{"491":{"position":[[0,8]]},"492":{"position":[[0,8]]},"494":{"position":[[0,8]]}}}],["args.sh",{"_index":223,"t":{"449":{"position":[[38,7]]}}}],["assert",{"_index":97,"t":{"173":{"position":[[11,10]]},"175":{"position":[[7,10]]}}}],["assist",{"_index":10,"t":{"13":{"position":[[5,11]]}}}],["attach",{"_index":103,"t":{"187":{"position":[[0,6]]}}}],["authent",{"_index":168,"t":{"329":{"position":[[27,14]]}}}],["avail",{"_index":266,"t":{"511":{"position":[[0,9]]}}}],["b",{"_index":258,"t":{"494":{"position":[[9,1]]}}}],["backfil",{"_index":184,"t":{"360":{"position":[[0,8]]}}}],["base",{"_index":269,"t":{"514":{"position":[[0,4]]}}}],["beacon",{"_index":138,"t":{"252":{"position":[[10,6]]},"319":{"position":[[0,6]]},"337":{"position":[[8,6]]},"485":{"position":[[6,6]]}}}],["bid",{"_index":227,"t":{"453":{"position":[[12,3]]}}}],["binari",{"_index":196,"t":{"385":{"position":[[0,8]]}}}],["bl",{"_index":275,"t":{"542":{"position":[[10,3]]},"544":{"position":[[10,3]]},"546":{"position":[[10,3]]},"573":{"position":[[0,3]]},"580":{"position":[[0,3]]}}}],["boost",{"_index":228,"t":{"453":{"position":[[24,5]]},"459":{"position":[[14,5]]},"559":{"position":[[48,5]]}}}],["bootnod",{"_index":204,"t":{"406":{"position":[[0,8]]}}}],["browser",{"_index":150,"t":{"279":{"position":[[0,7]]}}}],["bug",{"_index":66,"t":{"104":{"position":[[12,4]]}}}],["build",{"_index":133,"t":{"236":{"position":[[0,5]]},"389":{"position":[[0,5]]},"396":{"position":[[0,5]]}}}],["builder",{"_index":176,"t":{"345":{"position":[[13,7]]},"559":{"position":[[15,7],[40,7]]}}}],["captur",{"_index":113,"t":{"203":{"position":[[0,9]]}}}],["chainsafe/blst",{"_index":41,"t":{"64":{"position":[[0,15]]}}}],["chainsafe/discv5",{"_index":43,"t":{"66":{"position":[[0,17]]}}}],["chainsafe/j",{"_index":44,"t":{"68":{"position":[[0,13]]},"70":{"position":[[0,13]]},"72":{"position":[[0,13]]}}}],["chainsafe/lodestar",{"_index":18,"t":{"28":{"position":[[0,19]]}}}],["chainsafe/ssz",{"_index":49,"t":{"74":{"position":[[0,14]]}}}],["chang",{"_index":276,"t":{"542":{"position":[[27,6]]},"544":{"position":[[27,6]]},"546":{"position":[[27,6]]}}}],["check",{"_index":249,"t":{"481":{"position":[[0,5]]},"483":{"position":[[0,5]]},"485":{"position":[[0,5]]},"487":{"position":[[0,5]]}}}],["checkpoint",{"_index":174,"t":{"339":{"position":[[0,10]]},"354":{"position":[[0,10]]},"463":{"position":[[30,11]]}}}],["choic",{"_index":26,"t":{"40":{"position":[[15,6]]}}}],["cli",{"_index":148,"t":{"275":{"position":[[13,3]]},"398":{"position":[[9,3]]}}}],["client",{"_index":7,"t":{"9":{"position":[[10,6]]},"42":{"position":[[16,6]]},"260":{"position":[[10,7]]},"262":{"position":[[4,6]]},"271":{"position":[[33,6]]},"275":{"position":[[6,6]]},"277":{"position":[[6,6]]},"335":{"position":[[24,6]]},"465":{"position":[[13,6]]},"494":{"position":[[20,6]]}}}],["clone",{"_index":198,"t":{"392":{"position":[[0,5]]}}}],["code",{"_index":100,"t":{"185":{"position":[[3,4]]},"396":{"position":[[13,4]]}}}],["collect",{"_index":106,"t":{"193":{"position":[[0,10]]},"220":{"position":[[0,10]]},"222":{"position":[[0,10]]},"236":{"position":[[6,10]]},"238":{"position":[[0,7]]},"240":{"position":[[0,10]]}}}],["command",{"_index":268,"t":{"511":{"position":[[14,8]]},"514":{"position":[[15,7]]}}}],["common",{"_index":57,"t":{"96":{"position":[[0,6]]}}}],["commun",{"_index":82,"t":{"129":{"position":[[0,9]]},"372":{"position":[[5,13]]}}}],["compos",{"_index":216,"t":{"442":{"position":[[31,7]]}}}],["config",{"_index":102,"t":{"185":{"position":[[15,6]]}}}],["configur",{"_index":166,"t":{"329":{"position":[[0,9]]},"333":{"position":[[0,9]]},"335":{"position":[[0,9]]},"347":{"position":[[0,9]]},"416":{"position":[[0,13]]},"444":{"position":[[0,9]]},"451":{"position":[[0,9]]},"455":{"position":[[0,11]]},"459":{"position":[[0,9]]},"461":{"position":[[0,9]]},"500":{"position":[[0,13]]},"507":{"position":[[16,13]]},"557":{"position":[[0,11]]},"559":{"position":[[0,9]]}}}],["connect",{"_index":163,"t":{"327":{"position":[[0,7]]}}}],["consensu",{"_index":142,"t":{"260":{"position":[[0,9]]}}}],["contain",{"_index":250,"t":{"481":{"position":[[6,10]]},"483":{"position":[[6,9]]},"489":{"position":[[5,10]]}}}],["contribut",{"_index":67,"t":{"106":{"position":[[0,12]]},"121":{"position":[[0,12]]},"125":{"position":[[0,12]]}}}],["contributor",{"_index":64,"t":{"102":{"position":[[11,12]]},"281":{"position":[[0,12]]},"309":{"position":[[0,12]]}}}],["core",{"_index":107,"t":{"193":{"position":[[13,4]]},"195":{"position":[[12,4]]}}}],["creat",{"_index":129,"t":{"228":{"position":[[0,8]]},"447":{"position":[[0,6]]},"469":{"position":[[0,6]]},"553":{"position":[[0,6]]}}}],["custom",{"_index":98,"t":{"175":{"position":[[0,6]]},"412":{"position":[[0,14]]}}}],["dashboard",{"_index":77,"t":{"121":{"position":[[24,10]]}}}],["data",{"_index":161,"t":{"323":{"position":[[0,4]]},"378":{"position":[[0,4]]}}}],["debug",{"_index":59,"t":{"98":{"position":[[0,9]]}}}],["decrypt",{"_index":252,"t":{"487":{"position":[[34,9]]}}}],["depend",{"_index":15,"t":{"24":{"position":[[9,10]]},"62":{"position":[[9,12]]}}}],["deposit",{"_index":283,"t":{"561":{"position":[[19,7]]}}}],["detect",{"_index":153,"t":{"295":{"position":[[7,6]]},"487":{"position":[[21,8]]}}}],["dev",{"_index":52,"t":{"82":{"position":[[0,3]]}}}],["devcontain",{"_index":56,"t":{"94":{"position":[[0,12]]}}}],["differ",{"_index":243,"t":{"473":{"position":[[71,9]]}}}],["directori",{"_index":220,"t":{"445":{"position":[[21,9]]}}}],["disclaim",{"_index":262,"t":{"496":{"position":[[5,10]]}}}],["discoveri",{"_index":188,"t":{"368":{"position":[[5,9]]}}}],["discv5",{"_index":189,"t":{"368":{"position":[[15,8]]},"569":{"position":[[0,6]]}}}],["divers",{"_index":143,"t":{"262":{"position":[[11,10]]}}}],["doc",{"_index":8,"t":{"11":{"position":[[12,4]]}}}],["docker",{"_index":61,"t":{"100":{"position":[[0,6]]},"387":{"position":[[0,6]]},"424":{"position":[[10,6]]},"442":{"position":[[8,6],[24,6]]}}}],["document",{"_index":2,"t":{"3":{"position":[[24,13]]},"125":{"position":[[16,13]]}}}],["download",{"_index":79,"t":{"123":{"position":[[6,8]]}}}],["dump",{"_index":108,"t":{"193":{"position":[[18,4]]},"195":{"position":[[17,4]]},"226":{"position":[[16,4]]},"228":{"position":[[19,4]]},"230":{"position":[[18,4]]},"232":{"position":[[20,4]]},"234":{"position":[[12,4]]},"238":{"position":[[15,4]]},"240":{"position":[[18,4]]}}}],["enabl",{"_index":264,"t":{"507":{"position":[[0,6]]}}}],["encrypt",{"_index":241,"t":{"473":{"position":[[55,9]]}}}],["end",{"_index":85,"t":{"145":{"position":[[0,3],[7,3]]}}}],["endpoint",{"_index":206,"t":{"418":{"position":[[7,8]]}}}],["engin",{"_index":215,"t":{"442":{"position":[[15,6]]}}}],["enr",{"_index":190,"t":{"370":{"position":[[0,3]]}}}],["environ",{"_index":90,"t":{"159":{"position":[[0,11]]},"171":{"position":[[11,11]]}}}],["ethereum",{"_index":144,"t":{"264":{"position":[[0,8]]}}}],["exampl",{"_index":51,"t":{"80":{"position":[[0,8]]},"201":{"position":[[0,7]]},"275":{"position":[[17,7]]},"277":{"position":[[26,7]]},"287":{"position":[[0,8]]},"317":{"position":[[0,8]]},"505":{"position":[[0,7]]},"513":{"position":[[0,8]]},"528":{"position":[[17,8]]},"534":{"position":[[15,8]]},"538":{"position":[[25,8]]},"544":{"position":[[34,8]]}}}],["execut",{"_index":6,"t":{"9":{"position":[[0,9]]},"335":{"position":[[14,9]]},"542":{"position":[[17,9]]},"544":{"position":[[17,9]]},"546":{"position":[[17,9]]}}}],["exit",{"_index":274,"t":{"536":{"position":[[20,4]]},"538":{"position":[[20,4]]},"540":{"position":[[20,4]]}}}],["expand",{"_index":255,"t":{"492":{"position":[[13,9]]}}}],["export",{"_index":272,"t":{"522":{"position":[[30,6]]},"524":{"position":[[30,6]]}}}],["extern",{"_index":40,"t":{"62":{"position":[[0,8]]}}}],["factor",{"_index":281,"t":{"559":{"position":[[54,6]]}}}],["featur",{"_index":159,"t":{"299":{"position":[[14,8]]}}}],["fee",{"_index":277,"t":{"557":{"position":[[16,3]]}}}],["feerecipi",{"_index":224,"t":{"451":{"position":[[10,12]]}}}],["filter",{"_index":119,"t":{"211":{"position":[[0,9]]},"214":{"position":[[0,8]]}}}],["firewal",{"_index":193,"t":{"380":{"position":[[0,8]]}}}],["first",{"_index":62,"t":{"102":{"position":[[0,5]]}}}],["flag",{"_index":186,"t":{"366":{"position":[[11,5]]}}}],["flamegraph",{"_index":117,"t":{"205":{"position":[[12,10]]}}}],["full",{"_index":261,"t":{"496":{"position":[[0,4]]}}}],["gener",{"_index":170,"t":{"331":{"position":[[0,8]]}}}],["get",{"_index":3,"t":{"5":{"position":[[0,7]]},"90":{"position":[[0,7]]},"273":{"position":[[0,7]]},"307":{"position":[[0,7]]}}}],["github",{"_index":69,"t":{"108":{"position":[[0,6]]}}}],["gossipsub",{"_index":46,"t":{"68":{"position":[[21,9]]},"372":{"position":[[19,10]]},"374":{"position":[[0,9]]}}}],["grafana",{"_index":76,"t":{"121":{"position":[[16,7]]},"428":{"position":[[0,7]]}}}],["graph",{"_index":16,"t":{"24":{"position":[[20,5]]}}}],["gui",{"_index":135,"t":{"242":{"position":[[21,3]]},"244":{"position":[[21,3]]}}}],["guid",{"_index":71,"t":{"108":{"position":[[13,5]]},"112":{"position":[[6,5]]},"114":{"position":[[12,5]]},"127":{"position":[[6,5]]},"341":{"position":[[9,5]]}}}],["guidelin",{"_index":75,"t":{"119":{"position":[[8,10]]}}}],["hardwar",{"_index":212,"t":{"439":{"position":[[0,8]]}}}],["hash",{"_index":285,"t":{"571":{"position":[[18,7]]},"582":{"position":[[0,7]]}}}],["heap",{"_index":128,"t":{"226":{"position":[[11,4]]},"228":{"position":[[14,4]]},"230":{"position":[[13,4]]},"232":{"position":[[15,4]]},"234":{"position":[[7,4]]},"238":{"position":[[10,4]]},"240":{"position":[[13,4]]}}}],["heaptrack",{"_index":134,"t":{"242":{"position":[[11,9]]},"244":{"position":[[11,9]]}}}],["help",{"_index":248,"t":{"479":{"position":[[18,4]]}}}],["histor",{"_index":182,"t":{"356":{"position":[[0,10]]}}}],["imag",{"_index":260,"t":{"494":{"position":[[27,6]]}}}],["import",{"_index":222,"t":{"449":{"position":[[31,6]]},"518":{"position":[[30,6]]},"520":{"position":[[30,6]]},"526":{"position":[[10,6]]},"528":{"position":[[10,6]]},"530":{"position":[[10,6]]},"555":{"position":[[0,6]]}}}],["infrastructur",{"_index":96,"t":{"169":{"position":[[9,14]]}}}],["input",{"_index":221,"t":{"449":{"position":[[0,5]]}}}],["instal",{"_index":104,"t":{"191":{"position":[[0,10]]},"207":{"position":[[0,12]]},"242":{"position":[[0,10]]},"244":{"position":[[0,10]]},"387":{"position":[[7,12]]},"394":{"position":[[0,7]]},"402":{"position":[[0,7]]},"442":{"position":[[0,7]]}}}],["integr",{"_index":86,"t":{"147":{"position":[[0,11]]},"279":{"position":[[8,11]]}}}],["interv",{"_index":209,"t":{"420":{"position":[[11,8]]}}}],["issu",{"_index":58,"t":{"96":{"position":[[7,6]]},"400":{"position":[[6,6]]}}}],["javascript",{"_index":127,"t":{"226":{"position":[[0,10]]}}}],["jwt",{"_index":167,"t":{"329":{"position":[[23,3]]},"333":{"position":[[33,3]]},"335":{"position":[[40,3]]},"447":{"position":[[16,3]]},"449":{"position":[[11,3]]}}}],["key",{"_index":172,"t":{"331":{"position":[[18,3]]}}}],["keystor",{"_index":236,"t":{"469":{"position":[[17,8]]},"471":{"position":[[32,9]]},"473":{"position":[[45,9]]},"553":{"position":[[9,8]]},"555":{"position":[[19,8]]}}}],["known",{"_index":201,"t":{"400":{"position":[[0,5]]}}}],["kubernet",{"_index":139,"t":{"254":{"position":[[6,10]]}}}],["label",{"_index":81,"t":{"127":{"position":[[0,5]]}}}],["launch",{"_index":101,"t":{"185":{"position":[[8,6]]}}}],["level",{"_index":74,"t":{"117":{"position":[[8,6]]}}}],["libp2p",{"_index":45,"t":{"68":{"position":[[14,6]]},"70":{"position":[[14,6]]},"72":{"position":[[14,6]]},"76":{"position":[[11,6]]},"378":{"position":[[15,8]]},"567":{"position":[[0,6]]}}}],["libp2p/j",{"_index":50,"t":{"76":{"position":[[0,10]]}}}],["librari",{"_index":286,"t":{"577":{"position":[[9,9]]},"579":{"position":[[6,9]]}}}],["licens",{"_index":151,"t":{"283":{"position":[[0,7]]},"311":{"position":[[0,7]]}}}],["light",{"_index":147,"t":{"271":{"position":[[27,5]]},"275":{"position":[[0,5]]},"277":{"position":[[0,5]]}}}],["lightclient",{"_index":152,"t":{"289":{"position":[[0,11]]}}}],["linux",{"_index":111,"t":{"199":{"position":[[10,5]]},"220":{"position":[[14,5]]},"242":{"position":[[28,5]]}}}],["list",{"_index":123,"t":{"216":{"position":[[0,4]]},"264":{"position":[[17,4]]},"532":{"position":[[10,4]]},"534":{"position":[[10,4]]}}}],["llnode",{"_index":105,"t":{"191":{"position":[[11,6]]}}}],["local",{"_index":13,"t":{"20":{"position":[[11,5]]},"424":{"position":[[0,9]]}}}],["locat",{"_index":173,"t":{"333":{"position":[[22,6]]}}}],["lodestar",{"_index":1,"t":{"3":{"position":[[15,8]]},"24":{"position":[[0,8]]},"26":{"position":[[0,8]]},"110":{"position":[[0,8]]},"199":{"position":[[20,8]]},"251":{"position":[[16,8]]},"329":{"position":[[14,8]]},"333":{"position":[[10,8]]},"345":{"position":[[0,8]]},"347":{"position":[[10,8]]},"362":{"position":[[8,8]]},"398":{"position":[[0,8]]},"444":{"position":[[10,8]]},"461":{"position":[[10,8]]},"555":{"position":[[31,8]]}}}],["lodestar/api",{"_index":19,"t":{"30":{"position":[[0,13]]}}}],["lodestar/beacon",{"_index":20,"t":{"32":{"position":[[0,16]]}}}],["lodestar/config",{"_index":22,"t":{"34":{"position":[[0,16]]}}}],["lodestar/db",{"_index":23,"t":{"36":{"position":[[0,12]]}}}],["lodestar/flar",{"_index":24,"t":{"38":{"position":[[0,15]]}}}],["lodestar/fork",{"_index":25,"t":{"40":{"position":[[0,14]]}}}],["lodestar/light",{"_index":27,"t":{"42":{"position":[[0,15]]}}}],["lodestar/logg",{"_index":28,"t":{"44":{"position":[[0,16]]}}}],["lodestar/param",{"_index":29,"t":{"46":{"position":[[0,16]]}}}],["lodestar/prov",{"_index":30,"t":{"48":{"position":[[0,16]]}}}],["lodestar/reqresp",{"_index":31,"t":{"50":{"position":[[0,17]]}}}],["lodestar/spec",{"_index":32,"t":{"52":{"position":[[0,14]]}}}],["lodestar/st",{"_index":35,"t":{"54":{"position":[[0,15]]}}}],["lodestar/typ",{"_index":37,"t":{"56":{"position":[[0,15]]}}}],["lodestar/util",{"_index":38,"t":{"58":{"position":[[0,15]]}}}],["lodestar/valid",{"_index":39,"t":{"60":{"position":[[0,19]]}}}],["log",{"_index":72,"t":{"116":{"position":[[0,7]]},"117":{"position":[[0,7]]},"119":{"position":[[0,7]]},"179":{"position":[[11,7]]},"341":{"position":[[5,3]]},"483":{"position":[[16,4]]}}}],["logic",{"_index":256,"t":{"492":{"position":[[27,7]]}}}],["machin",{"_index":213,"t":{"441":{"position":[[6,7]]}}}],["maco",{"_index":55,"t":{"88":{"position":[[0,5]]},"222":{"position":[[14,5]]}}}],["mainnet",{"_index":164,"t":{"327":{"position":[[11,7]]},"437":{"position":[[11,7]]}}}],["manag",{"_index":162,"t":{"323":{"position":[[5,10]]},"380":{"position":[[9,10]]}}}],["merg",{"_index":12,"t":{"20":{"position":[[5,5]]}}}],["method",{"_index":157,"t":{"297":{"position":[[15,7]]},"353":{"position":[[8,7]]}}}],["metric",{"_index":210,"t":{"424":{"position":[[17,7]]}}}],["mev",{"_index":179,"t":{"347":{"position":[[29,3]]},"453":{"position":[[20,3]]},"459":{"position":[[10,3]]}}}],["minimum",{"_index":226,"t":{"453":{"position":[[4,7]]}}}],["mnemon",{"_index":245,"t":{"475":{"position":[[32,8]]}}}],["modifi",{"_index":110,"t":{"199":{"position":[[0,9]]},"463":{"position":[[0,6]]},"465":{"position":[[0,6]]}}}],["monitor",{"_index":208,"t":{"420":{"position":[[0,10]]}}}],["monorepo",{"_index":17,"t":{"26":{"position":[[9,8]]},"110":{"position":[[9,8]]},"577":{"position":[[0,8]]}}}],["multipl",{"_index":240,"t":{"473":{"position":[[16,8]]}}}],["nat",{"_index":194,"t":{"382":{"position":[[0,3]]}}}],["nativ",{"_index":132,"t":{"234":{"position":[[0,6]]}}}],["navig",{"_index":218,"t":{"445":{"position":[[0,8]]}}}],["need",{"_index":9,"t":{"13":{"position":[[0,4]]},"305":{"position":[[9,4]]}}}],["network",{"_index":185,"t":{"366":{"position":[[0,10]]},"455":{"position":[[17,7]]},"457":{"position":[[12,7]]},"566":{"position":[[0,10]]},"584":{"position":[[0,10]]}}}],["node",{"_index":21,"t":{"32":{"position":[[17,4]]},"252":{"position":[[17,4]]},"337":{"position":[[15,4]]},"485":{"position":[[13,4]]}}}],["nois",{"_index":47,"t":{"70":{"position":[[21,5]]}}}],["non",{"_index":158,"t":{"299":{"position":[[0,3]]}}}],["npm",{"_index":202,"t":{"402":{"position":[[13,3]]}}}],["option",{"_index":53,"t":{"82":{"position":[[4,7]]},"289":{"position":[[12,7]]},"319":{"position":[[7,7]]},"406":{"position":[[9,7]]},"412":{"position":[[15,10]]},"471":{"position":[[0,6]]},"473":{"position":[[0,6]]},"475":{"position":[[0,6]]},"516":{"position":[[10,7]]},"520":{"position":[[37,7]]},"524":{"position":[[37,7]]},"530":{"position":[[17,7]]},"540":{"position":[[25,7]]},"546":{"position":[[34,7]]}}}],["osx",{"_index":136,"t":{"244":{"position":[[28,3]]}}}],["packag",{"_index":200,"t":{"394":{"position":[[8,8]]}}}],["paramet",{"_index":233,"t":{"465":{"position":[[20,10]]}}}],["password",{"_index":237,"t":{"469":{"position":[[26,8]]},"473":{"position":[[81,9]]}}}],["peer",{"_index":187,"t":{"368":{"position":[[0,4]]},"372":{"position":[[0,4]]}}}],["perform",{"_index":84,"t":{"143":{"position":[[0,11]]}}}],["polici",{"_index":73,"t":{"116":{"position":[[8,6]]}}}],["post",{"_index":11,"t":{"20":{"position":[[0,4]]}}}],["prerequisit",{"_index":54,"t":{"86":{"position":[[0,13]]},"269":{"position":[[0,13]]},"303":{"position":[[0,13]]},"390":{"position":[[0,13]]},"435":{"position":[[0,13]]}}}],["process",{"_index":68,"t":{"106":{"position":[[13,7]]},"187":{"position":[[18,7]]},"240":{"position":[[36,7]]}}}],["programmat",{"_index":149,"t":{"277":{"position":[[13,12]]}}}],["progress",{"_index":251,"t":{"485":{"position":[[21,11]]}}}],["prometheu",{"_index":211,"t":{"426":{"position":[[0,10]]}}}],["proof",{"_index":140,"t":{"258":{"position":[[0,5]]}}}],["propos",{"_index":265,"t":{"507":{"position":[[7,8]]}}}],["proposer_config.yaml",{"_index":263,"t":{"505":{"position":[[8,20]]}}}],["protect",{"_index":271,"t":{"518":{"position":[[19,10]]},"520":{"position":[[19,10]]},"522":{"position":[[19,10]]},"524":{"position":[[19,10]]}}}],["provid",{"_index":155,"t":{"295":{"position":[[21,8]]},"463":{"position":[[48,8]]}}}],["public",{"_index":165,"t":{"327":{"position":[[24,6]]}}}],["quick",{"_index":217,"t":{"444":{"position":[[19,5]]}}}],["quickstart",{"_index":247,"t":{"477":{"position":[[8,10]]},"479":{"position":[[0,10]]}}}],["rang",{"_index":183,"t":{"358":{"position":[[0,5]]}}}],["read",{"_index":145,"t":{"264":{"position":[[9,7]]}}}],["recipi",{"_index":278,"t":{"557":{"position":[[20,9]]}}}],["recommend",{"_index":203,"t":{"402":{"position":[[22,12]]}}}],["refer",{"_index":122,"t":{"215":{"position":[[0,10]]},"216":{"position":[[12,10]]}}}],["relay",{"_index":231,"t":{"459":{"position":[[20,6]]}}}],["remot",{"_index":205,"t":{"418":{"position":[[0,6]]}}}],["render",{"_index":116,"t":{"205":{"position":[[0,9]]}}}],["report",{"_index":65,"t":{"104":{"position":[[0,9]]},"177":{"position":[[11,7]]},"589":{"position":[[0,9]]}}}],["repositori",{"_index":199,"t":{"392":{"position":[[6,10]]},"441":{"position":[[16,10]]}}}],["req/resp",{"_index":191,"t":{"372":{"position":[[34,9]]},"376":{"position":[[0,8]]}}}],["requir",{"_index":146,"t":{"271":{"position":[[0,12]]},"439":{"position":[[9,12]]}}}],["result",{"_index":120,"t":{"211":{"position":[[10,7]]}}}],["root",{"_index":219,"t":{"445":{"position":[[16,4]]}}}],["run",{"_index":88,"t":{"157":{"position":[[0,7]]},"187":{"position":[[10,7]]},"240":{"position":[[28,7]]},"252":{"position":[[0,7]]},"271":{"position":[[17,7]]},"337":{"position":[[0,3]]},"563":{"position":[[0,3]]}}}],["script",{"_index":80,"t":{"123":{"position":[[15,6]]},"424":{"position":[[25,6]]},"444":{"position":[[25,7]]},"449":{"position":[[46,6]]},"477":{"position":[[19,6]]},"479":{"position":[[11,6]]}}}],["secret",{"_index":171,"t":{"331":{"position":[[11,6]]},"333":{"position":[[37,6]]},"335":{"position":[[44,6]]},"447":{"position":[[20,6]]},"449":{"position":[[15,6]]}}}],["select",{"_index":230,"t":{"457":{"position":[[0,6]]},"559":{"position":[[23,9]]}}}],["serial",{"_index":284,"t":{"571":{"position":[[0,13]]}}}],["set",{"_index":225,"t":{"453":{"position":[[0,3]]},"473":{"position":[[35,4]]}}}],["setup",{"_index":178,"t":{"347":{"position":[[19,5]]},"426":{"position":[[11,5]]},"428":{"position":[[8,5]]},"441":{"position":[[0,5]]},"467":{"position":[[0,5]]},"471":{"position":[[10,5]]},"473":{"position":[[10,5]]},"475":{"position":[[10,5]]},"551":{"position":[[0,5]]}}}],["sim",{"_index":89,"t":{"157":{"position":[[8,3]]},"169":{"position":[[0,3]]}}}],["simul",{"_index":87,"t":{"149":{"position":[[0,10]]},"171":{"position":[[0,10]]},"173":{"position":[[0,10]]},"177":{"position":[[0,10]]},"179":{"position":[[0,10]]}}}],["slash",{"_index":270,"t":{"518":{"position":[[10,8]]},"520":{"position":[[10,8]]},"522":{"position":[[10,8]]},"524":{"position":[[10,8]]}}}],["sourc",{"_index":197,"t":{"389":{"position":[[11,6]]},"396":{"position":[[6,6]]}}}],["spec",{"_index":60,"t":{"98":{"position":[[10,4]]},"141":{"position":[[0,4]]}}}],["specif",{"_index":5,"t":{"7":{"position":[[0,14]]},"88":{"position":[[6,9]]}}}],["stack",{"_index":114,"t":{"203":{"position":[[10,5]]}}}],["stake",{"_index":141,"t":{"258":{"position":[[9,5]]}}}],["start",{"_index":4,"t":{"5":{"position":[[8,7]]},"90":{"position":[[8,7]]},"273":{"position":[[8,7]]},"307":{"position":[[8,7]]}}}],["start_lodestar.sh",{"_index":112,"t":{"201":{"position":[[8,17]]}}}],["startup",{"_index":246,"t":{"477":{"position":[[0,7]]}}}],["stop",{"_index":253,"t":{"489":{"position":[[0,4]]}}}],["style",{"_index":70,"t":{"108":{"position":[[7,5]]},"112":{"position":[[0,5]]},"114":{"position":[[6,5]]}}}],["sub",{"_index":267,"t":{"511":{"position":[[10,3]]}}}],["subject",{"_index":181,"t":{"351":{"position":[[5,12]]},"463":{"position":[[17,12]]}}}],["submit",{"_index":282,"t":{"561":{"position":[[0,6]]}}}],["support",{"_index":156,"t":{"297":{"position":[[0,9]]},"299":{"position":[[4,9]]},"410":{"position":[[0,7]]},"433":{"position":[[0,7]]},"587":{"position":[[0,9]]}}}],["sync",{"_index":175,"t":{"339":{"position":[[11,4]]},"341":{"position":[[0,4]]},"353":{"position":[[0,7]]},"354":{"position":[[11,4]]},"356":{"position":[[11,4]]},"358":{"position":[[6,4]]},"360":{"position":[[9,4]]},"362":{"position":[[0,7]]},"463":{"position":[[42,5]]}}}],["test",{"_index":33,"t":{"52":{"position":[[15,4]]},"92":{"position":[[0,5]]},"98":{"position":[[15,5]]},"114":{"position":[[0,5]]},"139":{"position":[[5,5]]},"141":{"position":[[5,5]]},"143":{"position":[[12,5]]},"145":{"position":[[11,5]]},"147":{"position":[[12,5]]},"149":{"position":[[11,5]]},"157":{"position":[[12,5]]},"169":{"position":[[4,4]]}}}],["test:sim:deneb",{"_index":94,"t":{"165":{"position":[[0,14]]}}}],["test:sim:endpoint",{"_index":93,"t":{"163":{"position":[[0,18]]}}}],["test:sim:mixedcleint",{"_index":95,"t":{"167":{"position":[[0,20]]}}}],["test:sim:multifork",{"_index":92,"t":{"161":{"position":[[0,18]]}}}],["testnet",{"_index":14,"t":{"20":{"position":[[17,7]]},"327":{"position":[[31,7]]},"437":{"position":[[0,7]]}}}],["time",{"_index":63,"t":{"102":{"position":[[6,4]]}}}],["token",{"_index":169,"t":{"329":{"position":[[42,5]]}}}],["tool",{"_index":126,"t":{"218":{"position":[[14,5]]},"236":{"position":[[17,5]]},"249":{"position":[[0,7]]}}}],["trace",{"_index":115,"t":{"203":{"position":[[16,6]]}}}],["transit",{"_index":36,"t":{"54":{"position":[[16,10]]}}}],["transport",{"_index":192,"t":{"378":{"position":[[5,9]]}}}],["travers",{"_index":195,"t":{"382":{"position":[[4,9]]}}}],["troubleshoot",{"_index":137,"t":{"251":{"position":[[0,15]]}}}],["ts",{"_index":42,"t":{"64":{"position":[[16,2]]}}}],["under",{"_index":242,"t":{"473":{"position":[[65,5]]}}}],["unfilt",{"_index":121,"t":{"213":{"position":[[0,10]]}}}],["unit",{"_index":83,"t":{"139":{"position":[[0,4]]}}}],["updat",{"_index":259,"t":{"494":{"position":[[13,6]]}}}],["url",{"_index":207,"t":{"418":{"position":[[16,3]]}}}],["us",{"_index":78,"t":{"123":{"position":[[0,5]]},"254":{"position":[[0,5]]}}}],["usag",{"_index":118,"t":{"209":{"position":[[0,5]]},"293":{"position":[[0,5]]}}}],["user",{"_index":235,"t":{"465":{"position":[[45,6]]}}}],["util",{"_index":34,"t":{"52":{"position":[[20,4]]},"580":{"position":[[4,9]]}}}],["v8",{"_index":130,"t":{"228":{"position":[[11,2]]},"230":{"position":[[10,2]]},"232":{"position":[[12,2]]}}}],["valid",{"_index":229,"t":{"453":{"position":[[30,10]]},"467":{"position":[[6,10]]},"469":{"position":[[7,9]]},"471":{"position":[[16,10]]},"473":{"position":[[25,9]]},"475":{"position":[[16,10]]},"487":{"position":[[6,10]]},"514":{"position":[[5,9]]},"516":{"position":[[0,9]]},"518":{"position":[[0,9]]},"520":{"position":[[0,9]]},"522":{"position":[[0,9]]},"524":{"position":[[0,9]]},"526":{"position":[[0,9]]},"528":{"position":[[0,9]]},"530":{"position":[[0,9]]},"532":{"position":[[0,9]]},"534":{"position":[[0,9]]},"536":{"position":[[0,9]]},"538":{"position":[[0,9]]},"540":{"position":[[0,9]]},"542":{"position":[[0,9]]},"544":{"position":[[0,9]]},"546":{"position":[[0,9]]},"551":{"position":[[11,9]]},"555":{"position":[[9,9]]},"561":{"position":[[9,9]]},"563":{"position":[[8,9]]}}}],["variabl",{"_index":91,"t":{"159":{"position":[[12,9]]}}}],["version",{"_index":232,"t":{"461":{"position":[[19,7]]},"587":{"position":[[10,8]]}}}],["view",{"_index":131,"t":{"230":{"position":[[0,7]]}}}],["visual",{"_index":125,"t":{"218":{"position":[[0,13]]}}}],["volum",{"_index":257,"t":{"492":{"position":[[35,6]]}}}],["voluntari",{"_index":273,"t":{"536":{"position":[[10,9]]},"538":{"position":[[10,9]]},"540":{"position":[[10,9]]}}}],["vs",{"_index":99,"t":{"185":{"position":[[0,2]]}}}],["vulner",{"_index":287,"t":{"589":{"position":[[12,13]]}}}],["warn",{"_index":160,"t":{"301":{"position":[[0,8]]}}}],["weak",{"_index":180,"t":{"351":{"position":[[0,4]]},"463":{"position":[[12,4]]}}}],["web",{"_index":124,"t":{"216":{"position":[[8,3]]}}}],["web3",{"_index":154,"t":{"295":{"position":[[16,4]]},"297":{"position":[[10,4]]}}}],["welcom",{"_index":0,"t":{"3":{"position":[[0,7]]}}}],["yamux",{"_index":48,"t":{"72":{"position":[[21,5]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":4,"t":"Lodestar is an open-source Ethereum Consensus client and TypeScript ecosystem, maintained by ChainSafe Systems","s":"Welcome to the Lodestar Documentation","u":"/lodestar/","h":"#welcome-to-the-lodestar-documentation","p":2},{"i":6,"t":"Follow the instructions for build from source, binaries, or Docker to install Lodestar. Or use our Lodestar Quickstart scripts. Use Lodestar libraries in your next Ethereum TypeScript project. Run a beacon node on mainnet or a public testnet. Utilize the whole stack by starting a local testnet. View the Lodestar Beacon CLI commands and options Prospective contributors can read the contributing section to understand how we develop and test on Lodestar. If you have questions submit an issue or join us on Discord! Please note our security policy.","s":"Getting Started","u":"/lodestar/","h":"#getting-started","p":2},{"i":8,"t":"Hardware specifications minimum / recommended, to run the Lodestar client. Minimum Recommended Processor Intel Core i3–9100 or AMD Ryzen 5 3450 Intel Core i7–9700 or AMD Ryzen 7 4700 Memory 8 GB RAM 16 GB RAM Storage 130 GB available space SSD 200 GB available space SSD Internet Reliable broadband with 10mbps upload Reliable broadband with >10mbps upload","s":"Specifications","u":"/lodestar/","h":"#specifications","p":2},{"i":10,"t":"If you run the execution client on the same host, you will need to check their requirements and add them to the above requirements. Broadly, to run both an execution and a consensus client on the same machine, we recommend a 4 TB SSD and 32 GB RAM.","s":"Execution Client","u":"/lodestar/","h":"#execution-client","p":2},{"i":12,"t":"This documentation is open source, contribute on our Github Lodestar repository /docs.","s":"About These Docs","u":"/lodestar/","h":"#about-these-docs","p":2},{"i":14,"t":"If you have questions about this documentation, feel free to talk to us on our ChainSafe Discord or open an issue and a member of the team or our community will be happy to assist you.","s":"Need Assistance?","u":"/lodestar/","h":"#need-assistance","p":2},{"i":19,"t":"To quickly test and run Lodestar we recommend starting a local testnet. We recommend a simple configuration of two beacon nodes with multiple validators. The dev scripts can used for simplicity but below instructions provide more insights on how it works and include details about different configurations. note The testnet set up in this guide is meant to be short-lived / ephemeral and should primarily be used for development and testing. Please refer to Ethereum In a Box or Kurtosis ethereum package to set up a long-lived private network or devnet. Terminal 1 Run a beacon node as a bootnode, with 8 validators with the following command. ./lodestar dev \\ --genesisValidators 8 \\ --genesisTime 1669713528 \\ --startValidators 0..7 \\ --enr.ip 127.0.0.1 \\ --enr.udp 9000 \\ --dataDir \\ --reset --genesisValidators and --genesisTime define the genesis state of the beacon chain. --dataDir defines a path where Lodestar should store the beacon state. --enr.ip sets the ENR IP entry for the node (essential for second node to connect via enr) and --enr.udp exposes the Discv5 discovery service (if you want to connect more than 1 node and enable discovery amongst them via bootnode). Lastly the --reset flag ensures the state is cleared on each restart - which is useful when testing locally. Once the node has started, make a request to curl http://localhost:9596/eth/v1/node/identity and copy the enr value. This would be used to connect from the second node. ENR stands for Ethereum node records, which is a format for conveying p2p connectivity information for Ethereum nodes. For more info see EIP-778. Terminal 2 Start the second node without starting any validators and connect to the first node by supplying the copied enr value: ./lodestar dev \\ --genesisValidators 8 \\ --genesisTime 1669713528 \\ --dataDir \\ --port 9001 \\ --rest.port 9597 \\ --network.connectToDiscv5Bootnodes true \\ --bootnodes \\ --reset By default, Lodestar starts as many validators as the number supplied by --genesisValidators. In order to not start any validator, this is overridden by the --startValidators option. Passing a value of 0..0 means no validators should be started. Also, take note that the values of --genesisValidators and --genesisTime must be the same as the ones passed to the first node in order for the two nodes to have the same beacon chain. Also --port and --rest.port are supplied since the default values will already be in use by the first node. The --network.connectToDiscv5Bootnodes flags needs to be set to true as this is needed to allow connection to boot ENRs on local devnet. The exact ENR of node to connect to is then supplied via the --bootnodes flag. Once the second node starts, you should see an output similar to the following in either of the terminals: Eph 167991/6 6.007 [] info: Searching peers - peers: 1 - slot: 5375718 (skipped 5375718) - head: 0 0xcc67…3345 - finalized: 0x0000…0000:0 For further confirmation that both nodes are connected as peers, make a request to the /eth/v1/node/peers endpoint. For example, making the request on the first node via the following command: curl http://localhost:9596/eth/v1/node/peers | jq will give a result similar to the following: { \"data\": [ { \"peer_id\": \"...\", \"enr\": \"\", \"last_seen_p2p_address\": \"....\", \"direction\": \"inbound\", \"state\": \"connected\" } ], \"meta\": { \"count\": 1 } }","s":"Setting-Up a Testnet","u":"/lodestar/contribution/advanced-topics/setting-up-a-testnet","h":"","p":18},{"i":21,"t":"To set up a local testnet with a Post-Merge configuration, you may need to add the following parameters (in addition to the parameters described above) to your lodestar dev command: --params.ALTAIR_FORK_EPOCH 0 --params.BELLATRIX_FORK_EPOCH 0 --terminal-total-difficulty-override 0","s":"Post-Merge local testnet","u":"/lodestar/contribution/advanced-topics/setting-up-a-testnet","h":"#post-merge-local-testnet","p":18},{"i":25,"t":"This is a diagram of the various Lodestar packages in the monorepo, how they fit together and interact with major external dependencies: note This dependency graph only applies to dependencies as they are used in the src/ folders of each package, not in test/","s":"Lodestar Dependency Graph","u":"/lodestar/contribution/depgraph","h":"#lodestar-dependency-graph","p":23},{"i":27,"t":"For a list of all the packages in the monorepo and a description for each, click here. Below is a brief summary of each package in alphabetical order.","s":"Lodestar Monorepo","u":"/lodestar/contribution/depgraph","h":"#lodestar-monorepo","p":23},{"i":29,"t":"@chainsafe/lodestar combines everything together for CLI usage and configuration of the beacon node and validator.","s":"@chainsafe/lodestar","u":"/lodestar/contribution/depgraph","h":"#chainsafelodestar","p":23},{"i":31,"t":"@lodestar/api contains a TypeScript REST client for the Ethereum Consensus API.","s":"@lodestar/api","u":"/lodestar/contribution/depgraph","h":"#lodestarapi","p":23},{"i":33,"t":"@lodestar/beacon-node contains the actual beacon node process itself, which is the aggregate of all the above packages and the \"brain\" of the Lodestar beacon chain implementation. All of the node modules live in this package as well.","s":"@lodestar/beacon-node","u":"/lodestar/contribution/depgraph","h":"#lodestarbeacon-node","p":23},{"i":35,"t":"@lodestar/config combines @lodestar/params and @lodestar/types together to be used as a single config object across the other Lodestar packages.","s":"@lodestar/config","u":"/lodestar/contribution/depgraph","h":"#lodestarconfig","p":23},{"i":37,"t":"@lodestar/db is where all persistent data about the beacon node is stored. Any package that needs to read or write persistent beacon node data depends on @lodestar/db.","s":"@lodestar/db","u":"/lodestar/contribution/depgraph","h":"#lodestardb","p":23},{"i":39,"t":"@lodestar/flare is a command tool used for easily triggering non-standard actions and debugging for researchers, developers and testers. Use with care.","s":"@lodestar/flare","u":"/lodestar/contribution/depgraph","h":"#lodestarflare","p":23},{"i":41,"t":"@lodestar/fork-choice holds the methods for reading/writing the fork choice DAG. The @lodestar/beacon-node package is the sole consumer of this package because the beacon node itself is what controls when the fork choice DAG is updated. For a good explanation on how the fork choice itself works, see the annotated fork choice spec. This is an annotated version of the Ethereum Consensus fork choice spec which @lodestar/fork-choice is based on.","s":"@lodestar/fork-choice","u":"/lodestar/contribution/depgraph","h":"#lodestarfork-choice","p":23},{"i":43,"t":"@lodestar/light-client is our light client designed to interact with the Ethereum blockchain in a trust-minimized matter via the sync committee and the light-client protocol.","s":"@lodestar/light-client","u":"/lodestar/contribution/depgraph","h":"#lodestarlight-client","p":23},{"i":45,"t":"@lodestar/logger is a common NodeJS logger for Lodestar binaries, which is required for worker threads to instantiate new loggers with consistent settings.","s":"@lodestar/logger","u":"/lodestar/contribution/depgraph","h":"#lodestarlogger","p":23},{"i":47,"t":"@lodestar/params contains the parameters for configuring an Ethereum Consensus network. For example, the mainnet params.","s":"@lodestar/params","u":"/lodestar/contribution/depgraph","h":"#lodestarparams","p":23},{"i":49,"t":"@lodestar/prover is a web3 provider and a proxy to enable verification of JSON-RPC calls to the execution client using the light-client protocol.","s":"@lodestar/prover","u":"/lodestar/contribution/depgraph","h":"#lodestarprover","p":23},{"i":51,"t":"@lodestar/reqresp contains the TypeScript implementation of the Ethereum Consensus Req/Resp protocol.","s":"@lodestar/reqresp","u":"/lodestar/contribution/depgraph","h":"#lodestarreqresp","p":23},{"i":53,"t":"@lodestar/spec-test-util is a Vitest test utility harness used for adhering to the Ethereum Consensus specification tests.","s":"@lodestar/spec-test-util","u":"/lodestar/contribution/depgraph","h":"#lodestarspec-test-util","p":23},{"i":55,"t":"@lodestar/state-transition contains the Lodestar implementation of the beacon state transition function, which is used by @lodestar/beacon-node to perform the actual beacon state transition. This package also contains various functions used to calculate info about the beacon chain (such as computeEpochAtSlot) which are used by @lodestar/fork-choice and @lodestar/validator","s":"@lodestar/state-transition","u":"/lodestar/contribution/depgraph","h":"#lodestarstate-transition","p":23},{"i":57,"t":"@lodestar/types contains Ethereum Consensus ssz types and data structures.","s":"@lodestar/types","u":"/lodestar/contribution/depgraph","h":"#lodestartypes","p":23},{"i":59,"t":"@lodestar/utils contains various utilities that are common among the various Lodestar monorepo packages.","s":"@lodestar/utils","u":"/lodestar/contribution/depgraph","h":"#lodestarutils","p":23},{"i":61,"t":"@lodestar/validator contains the validator client. The sole consumer of this package is @chainsafe/lodestar, which provides CLI access to run and configure the validator client. However, the validator client communicates to a REST API that is contained in @lodestar/beacon-node (specifically in the api module) to perform the validator duties.","s":"@lodestar/validator","u":"/lodestar/contribution/depgraph","h":"#lodestarvalidator","p":23},{"i":63,"t":"Below is a brief summary, listed alphabetically, of each of our main external dependencies managed externally from our monorepo.","s":"External Dependencies","u":"/lodestar/contribution/depgraph","h":"#external-dependencies","p":23},{"i":65,"t":"@chainsafe/blst-ts` is our TypeScript wrapper for @supranational/blst native bindings, a highly performant BLS12-381 signature library.","s":"@chainsafe/blst-ts","u":"/lodestar/contribution/depgraph","h":"#chainsafeblst-ts","p":23},{"i":67,"t":"@chainsafe/discv5 is our monorepo containing our TypeScript implementation of the discv5 Node Discovery Protocol v5.","s":"@chainsafe/discv5","u":"/lodestar/contribution/depgraph","h":"#chainsafediscv5","p":23},{"i":69,"t":"@chainsafe/js-libp2p-gossipsub is an implementation of pubsub based on mmeshsub and floodsub. Specified under @libp2p/specs/pubsub/gossipsub.","s":"@chainsafe/js-libp2p-gossipsub","u":"/lodestar/contribution/depgraph","h":"#chainsafejs-libp2p-gossipsub","p":23},{"i":71,"t":"@chainsafe/js-libp2p-noise contains the TypeScript implementation of the Noise protocol, an encryption protocol used in @libp2p/specs/noise.","s":"@chainsafe/js-libp2p-noise","u":"/lodestar/contribution/depgraph","h":"#chainsafejs-libp2p-noise","p":23},{"i":73,"t":"@chainsafe/js-libp2p-yamux contains the JavaScript implementation of the Yamux multiplexer from Hashicorp designed for usage with js-libp2p.","s":"@chainsafe/js-libp2p-yamux","u":"/lodestar/contribution/depgraph","h":"#chainsafejs-libp2p-yamux","p":23},{"i":75,"t":"@chainsafe/ssz contains the packages as a monorepo related to the Simple Serialize.","s":"@chainsafe/ssz","u":"/lodestar/contribution/depgraph","h":"#chainsafessz","p":23},{"i":77,"t":"@libp2p/js-libp2p is the JavaScript implementation of the libp2p networking stack used in Ethereum's networking stack.","s":"@libp2p/js-libp2p","u":"/lodestar/contribution/depgraph","h":"#libp2pjs-libp2p","p":23},{"i":79,"t":"Quickly bootstrap a beacon node and multiple validators. Use for development and testing","s":"dev CLI Command","u":"/lodestar/contribution/dev-cli","h":"","p":78},{"i":81,"t":"Start a single beacon node with 8 interop validators ./lodestar dev --genesisValidators 8 --reset","s":"Examples","u":"/lodestar/contribution/dev-cli","h":"#examples","p":78},{"i":83,"t":"--dataDir​ Lodestar root data directory type: string --network​ Name of the Ethereum Consensus chain network to join type: string choices: \"mainnet\", \"gnosis\", \"sepolia\", \"holesky\", \"chiado\", \"ephemery\", \"mekong\", \"dev\" default: \"mainnet\" --paramsFile​ Network configuration file type: string --rcConfig​ RC file to supplement command line args, accepted formats: .yml, .yaml, .json type: string --terminal-total-difficulty-override​ Terminal PoW block TTD override type: string --terminal-block-hash-override​ Terminal PoW block hash override type: string --terminal-block-hash-epoch-override​ Terminal PoW block hash override activation epoch type: string --genesisStateFile​ Path or URL to download a genesis state file in ssz-encoded format type: string --checkpointSyncUrl​ Server url hosting Beacon Node APIs to fetch weak subjectivity state. Fetch latest finalized by default, else set --wssCheckpoint type: string --checkpointState​ Set a checkpoint state to start syncing from type: string --wssCheckpoint​ Start beacon node off a state at the provided weak subjectivity checkpoint, to be supplied in : format. For example, 0x1234:100 will sync and start off from the weak subjectivity state at checkpoint of epoch 100 with block root 0x1234. type: string --forceCheckpointSync​ Force syncing from checkpoint state even if db state is within weak subjectivity period. This helps to avoid long sync times after node has been offline for a while. type: boolean --ignoreWeakSubjectivityCheck​ Ignore the checkpoint sync state failing the weak subjectivity check. This is relevant in testnets where the weak subjectivity period is too small for even few epochs of non finalization causing last finalized to be out of range. This flag is not recommended for mainnet use. type: boolean --persistNetworkIdentity​ Whether to reuse the same peer-id across restarts type: boolean --private​ Do not send implementation details over p2p identify protocol and in builder, execution engine and eth1 requests type: boolean --validatorMonitorLogs​ Log validator monitor events as info. This requires metrics to be enabled. type: boolean --disableLightClientServer​ Disable light client server. type: boolean --logLevel​ Logging verbosity level for emitting logs to terminal type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"info\" --logFile​ Path to output all logs to a persistent log file, use 'none' to disable type: string --logFileLevel​ Logging verbosity level for emitting logs to file type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"debug\" --logFileDailyRotate​ Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation type: number default: 5 --rest​ Enable/disable HTTP API type: boolean default: true --rest.namespace​ Pick namespaces to expose for HTTP API. Set to '*' to enable all namespaces type: string[] choices: \"beacon\", \"config\", \"debug\", \"events\", \"lightclient\", \"lodestar\", \"node\", \"proof\", \"validator\", \"*\" default: [\"beacon\",\"config\",\"debug\",\"events\",\"node\",\"validator\",\"lightclient\"] --rest.cors​ Configures the Access-Control-Allow-Origin CORS header for HTTP API type: string default: \"*\" --rest.address​ Set host for HTTP API type: string default: \"127.0.0.1\" --rest.port​ Set port for HTTP API type: number default: 9596 --rest.swaggerUI​ Enable Swagger UI for API exploration at http://{address}:{port}/documentation type: boolean default: true --suggestedFeeRecipient​ Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$). It would be possible (WIP) to override this per validator key using config or key manager API. Only used post merge. type: string default: \"0x0000000000000000000000000000000000000000\" --emitPayloadAttributes​ Flag to SSE emit execution payloadAttributes before every slot type: boolean default: false --chain.archiveBlobEpochs​ Number of epochs to retain finalized blobs (minimum of MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS) type: number --eth1​ Whether to follow the eth1 chain type: boolean --eth1.providerUrls​ Urls to Eth1 node with enabled rpc. If not explicitly provided and execution endpoint provided via execution.urls, it will use execution.urls. Otherwise will try connecting on the specified default(s) type: string[] default: [ \"http://localhost:8545\" ] --execution.urls​ Urls to execution client engine API type: string[] default: [ \"http://localhost:8551\" ] --execution.timeout​ Timeout in milliseconds for execution engine API HTTP client type: number default: 12000 --execution.retries​ Number of retries when calling execution engine API type: number default: 2 --execution.retryDelay​ Delay time in milliseconds between retries when retrying calls to the execution engine API type: number default: 2000 --execution.engineMock​ Set the execution engine to mock mode (development only) type: boolean --jwtSecret​ File path to a shared hex-encoded jwt secret which will be used to generate and bundle HS256 encoded jwt tokens for authentication with the EL client's rpc server hosting engine apis. Secret to be exactly same as the one used by the corresponding EL client. type: string --jwtId​ An optional identifier to be set in the id field of the claims included in jwt tokens used for authentication with EL client's rpc server hosting engine apis type: string --builder​ An alias for --builder.selection default for the builder flow, ignored if --builder.selection is explicitly provided type: boolean --builder.url​ Url hosting the builder API type: string default: \"http://localhost:8661\" --builder.timeout​ Timeout in milliseconds for builder API HTTP client type: number default: 12000 --builder.faultInspectionWindow​ Window to inspect missed slots for enabling/disabling builder circuit breaker type: number --builder.allowedFaults​ Number of missed slots allowed in the faultInspectionWindow for builder circuit type: number --metrics​ Enable the Prometheus metrics HTTP server type: boolean default: false --metrics.port​ Listen TCP port for the Prometheus metrics HTTP server type: number default: 5064 --metrics.address​ Listen address for the Prometheus metrics HTTP server type: string default: \"127.0.0.1\" --monitoring.endpoint​ Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in) type: string --monitoring.interval​ Interval in milliseconds between sending client stats to the remote service type: number default: 60000 --discv5​ Enable discv5 type: boolean default: true --listenAddress​ The IPv4 address to listen for p2p UDP and TCP connections type: string default: \"0.0.0.0\" --port​ The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort flag. type: number default: 9000 --discoveryPort​ The UDP port that discovery will listen on. Defaults to port type: number default: port --listenAddress6​ The IPv6 address to listen for p2p UDP and TCP connections type: string --port6​ The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort6 flag. type: number default: 9090 --discoveryPort6​ The UDP port that discovery will listen on. Defaults to port6 type: number default: port6 --bootnodes​ Bootnodes for discv5 discovery type: string[] default: [ \"[]\" ] --targetPeers​ The target connected peers. Above this number peers will be disconnected type: number default: 100 --subscribeAllSubnets​ Subscribe to all subnets regardless of validator count type: boolean default: false --disablePeerScoring​ Disable peer scoring, used for testing on devnets type: boolean default: false --mdns​ Enable mdns local peer discovery type: boolean default: false --enr.ip​ Override ENR IP entry type: string --enr.tcp​ Override ENR TCP entry type: number --enr.udp​ Override ENR UDP entry type: number --enr.ip6​ Override ENR IPv6 entry type: string --enr.tcp6​ Override ENR (IPv6-specific) TCP entry type: number --enr.udp6​ Override ENR (IPv6-specific) UDP entry type: number --nat​ Allow configuration of non-local addresses type: boolean --keymanager​ Enable key manager API server type: boolean --keymanager.auth​ Enable token bearer authentication for key manager API server type: boolean default: true --keymanager.tokenFile​ Path to file containing bearer token used for key manager API authentication type: string --keymanager.port​ Set port for key manager API type: number default: 5062 --keymanager.address​ Set host for key manager API type: string default: \"127.0.0.1\" --keymanager.cors​ Configures the Access-Control-Allow-Origin CORS header for key manager API type: string default: \"*\" --beaconNodes​ Addresses to connect to BeaconNode type: string[] default: [ \"http://127.0.0.1:9596\" ] --force​ Open validators even if there's a lockfile. Use with caution type: boolean --graffiti​ Specify your custom graffiti to be included in blocks (plain UTF8 text, 32 characters max) type: string --proposerSettingsFile​ A yaml file to specify detailed default and per validator public key customized proposer configs. PS: This feature and its format is in alpha and subject to change type: string --strictFeeRecipientCheck​ Enable strict checking of the validator's feeRecipient with the one returned by engine type: boolean --defaultGasLimit​ Suggested gas limit to the engine/builder for building execution payloads. Only used post merge. type: number default: 30000000 --builder.selection​ Builder block selection strategy default, maxprofit, builderalways, builderonly, executionalways, or executiononly type: string default: \"executiononly\" --builder.boostFactor​ Percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if --builder.selection is set to anything other than maxprofit type: string default: \"100\" --useProduceBlockV3​ Enable/disable usage of produceBlockV3 for block production, is auto enabled on deneb+ blocks type: boolean --broadcastValidation​ Validations to be run by beacon node for the signed block prior to publishing type: string default: \"gossip\" --blindedLocal​ Request fetching local block in blinded format for produceBlockV3 type: boolean default: false --importKeystores​ Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators type: string[] default: [ \"./keystores/*.json\" ] --importKeystoresPassword​ Path to a file with password to decrypt all keystores from importKeystores option type: string default: \"./password.txt\" --doppelgangerProtection​ Enables Doppelganger protection type: boolean --http.requestWireFormat​ Wire format to use in HTTP requests to beacon node. Can be one of json or ssz type: string default: \"json\" --http.responseWireFormat​ Preferred wire format for HTTP responses from beacon node. Can be one of json or ssz type: string default: \"ssz\" --externalSigner.url​ URL to connect to an external signing server type: string --externalSigner.pubkeys​ List of validator public keys used by an external signer. May also provide a single string of comma-separated public keys type: string[] --externalSigner.fetch​ Fetch the list of public keys to validate from an external signer. Cannot be used in combination with --externalSigner.pubkeys type: boolean --externalSigner.fetchInterval​ Interval in milliseconds between fetching the list of public keys from external signer, once per epoch by default type: number --distributed​ Enables specific features required to run as part of a distributed validator cluster type: boolean --genesisEth1Hash​ If present it will create genesis with this eth1 hash. type: string --genesisValidators​ If present it will create genesis with interop validators and start chain. type: number default: 8 --startValidators​ Start interop validators in inclusive range with notation '0..7' type: string --genesisTime​ genesis_time to initialize interop genesis state type: number default: now --reset​ To delete chain and validator directories type: boolean --dumpTestnetFiles​ Dump testnet files and exit type: string","s":"dev Options","u":"/lodestar/contribution/dev-cli","h":"#dev-options","p":78},{"i":85,"t":"Thanks for your interest in contributing to Lodestar. It's people like you that push the Ethereum ecosystem forward.","s":"Contribution Guidelines","u":"/lodestar/contribution/getting-started","h":"","p":84},{"i":87,"t":"⚙ NodeJS (LTS) 🧰 Yarn","s":"Prerequisites","u":"/lodestar/contribution/getting-started","h":"#prerequisites","p":84},{"i":89,"t":"When using MacOS, there are a couple of extra prerequisites that are required. python coreutils (e.g. via brew install coreutils)","s":"MacOS Specifics","u":"/lodestar/contribution/getting-started","h":"#macos-specifics","p":84},{"i":91,"t":"⚙ Run corepack enable to enable Corepack. ⚙ Run yarn to install dependencies. ⚙ Run yarn build to build lib from source. 📦 A lodestar binary will be bundled in ./packages/cli/bin. 💻 Run ./lodestar --help to get a list of available commands and arguments.","s":"Getting Started","u":"/lodestar/contribution/getting-started","h":"#getting-started","p":84},{"i":93,"t":"To run tests: 🧪 Run yarn test:unit for unit tests. 🧪 Run yarn test:e2e for end-to-end tests. 🧪 Run yarn test:spec for spec tests. 🧪 Run yarn test to run all tests. 🧪 Run yarn check-types to check TypeScript types. 🧪 Run yarn lint to run the linter. Note that to run test:e2e, first ensure that the environment is correctly setup by running the run_e2e_env.sh script. This script requires a running docker engine. ./scripts/run_e2e_env.sh start Similarly, run yarn download-spec-tests before running yarn test:spec. Contributing to tests: Test must not depend on external live resources, such that running tests for a commit must be deterministic: Do not pull data from external APIs like execution JSON RPC (instead run a local node). Do not pull unpinned versions from DockerHub (use deterministic tag) or Github (checkout commit not branch). Carefully design tests that depend on timing sensitive events like p2p network e2e tests. Consider that Github runners are significantly less powerful than your development environment.","s":"Tests","u":"/lodestar/contribution/getting-started","h":"#tests","p":84},{"i":95,"t":"A devcontainer configuration is provided to help speed up linux based development environment setup. It will be used by GitHub Codespaces or directly inside VS Code via your local through this extension.","s":"Devcontainer","u":"/lodestar/contribution/getting-started","h":"#devcontainer","p":84},{"i":97,"t":"Error: [vitest] Cannot mock \"../../src/db/repositories/index.js\" because it is already loaded by \"src/db/beacon.ts\" If you observe any error in tests with matching to above error message, that implies you are loading the mocks in the wrong order. The correct order is to import the mocks first and then the actual module. We suggest to import the mocks on very top before any local modules. ✖ Error: Cannot find package 'async_hooks' imported from If you observe following error running any of the test files that means you are running a file which itself or any dependency of that file imports vitest, but you are not running that file with vitest runner. Try running it with yarn vitest command, not with node command.","s":"Common Issues","u":"/lodestar/contribution/getting-started","h":"#common-issues","p":84},{"i":99,"t":"To fix errors always focus on passing all minimal tests first without running mainnet tests. Spec tests often compare full expected vs actual states in JSON format. A single logical error can cause many spec tests to fail. To focus on a single test at a time you can use vitest's option --bail 1 to stop at the first failed test To then run only that failed test you can run against a specific file as use vitest's filters option -t to run only one case Before running the tests, make sure to switch to the package directory (e.g. packages/beacon-node) to speed up test execution LODESTAR_PRESET=minimal yarn vitest --run --bail 1 --config vitest.spec.config.ts test/spec/presets/sanity.test.ts -t attester_slashing","s":"Debugging Spec Tests","u":"/lodestar/contribution/getting-started","h":"#debugging-spec-tests","p":84},{"i":101,"t":"The docker-compose file requires that a .env file be present in this directory. The default.env file provides a template and can be copied .env: cp default.env .env Beacon node only​ docker-compose up -d Beacon node and validator​ First, you must have keystores and their secrets available locally at ./keystores and your password.txt in ./secrets docker-compose -f docker-compose.yml -f docker-compose.validator.yml up -d Dockerized metrics + local beacon node​ Run a local beacon with --metrics enabled. Then start Prometheus + Grafana with all dashboards in ./dashboards automatically loaded running: ./docker/docker-compose.local_dev.sh","s":"Docker","u":"/lodestar/contribution/getting-started","h":"#docker","p":84},{"i":103,"t":"Unsure where to begin contributing to Lodestar? Here are some ideas! ✏️ See any typos? See any verbiage that should be changed or updated? Go for it! Github makes it easy to make contributions right from the browser. 🔎 Look through our outstanding unassigned issues. (Hint: look for issues labeled good first issue or help-wanted!) 💬 Join our Discord chat!","s":"First Time Contributor?","u":"/lodestar/contribution/getting-started","h":"#first-time-contributor","p":84},{"i":105,"t":"🗒 Create a new issue! Select the type of issue that best fits, and please fill out as much of the information as you can.","s":"Reporting A Bug?","u":"/lodestar/contribution/getting-started","h":"#reporting-a-bug","p":84},{"i":107,"t":"Make sure you're familiar with our contribution guidelines (this document)! Create your own fork of this repository. Make your changes in your local fork. If you've made a code change, make sure to lint and test your changes (yarn lint and yarn test:unit). Make an open pull request when you're ready for it to be reviewed. We review PRs on a regular basis. See Pull request etiquette for more information. You may be asked to sign a Contributor License Agreement (CLA). We make it relatively painless with CLA-bot.","s":"Contribution Process","u":"/lodestar/contribution/getting-started","h":"#contribution-process","p":84},{"i":109,"t":"Branch Naming If you are contributing from this repository prefix the branch name with your Github username (i.e. myusername/short-description) Pull Request Naming Pull request titles must be: Adhering to the conventional commits spec Short and descriptive summary Written in imperative present tense Not end with a period For example: feat: add lodestar prover for execution api fix: ignore known block in publish blinded block flow refactor(reqresp)!: support byte based handlers Pull Request Etiquette Pull requests should remain as drafts when they are not ready for review by maintainers. Open pull requests signal to the maintainers that it's ready for review. If your pull request is no longer applicable or validated to fix an issue, close your pull request. If your pull request is fixable and needs additional changes or commits within a short period of time, switch your pull request into a draft until it's ready. Otherwise, close your pull request and create a new issue instead.","s":"Github Style Guide","u":"/lodestar/contribution/getting-started","h":"#github-style-guide","p":84},{"i":111,"t":"We're currently experimenting with hosting the majority of lodestar packages and support packages in this repository as a monorepo. We're using Lerna to manage the packages. See packages/ for a list of packages hosted in this repository.","s":"Lodestar Monorepo","u":"/lodestar/contribution/getting-started","h":"#lodestar-monorepo","p":84},{"i":113,"t":"Lodestar has migrated to using ES modules. Many module class constructors have the following signature: (options, dependencies) e.g.: public constructor(opts: IExampleOptions, {db, logger}: IExampleModules) Modules should be designed to \"do one thing and do it well!\" Consider the interface of a module -- events included, and make sure it is coherent Make sure your code is properly linted use an IDE that will show linter errors/warnings run yarn lint from the command line common rules: Functions and variables should be camelCase, classes should be PascalCase, constants should be UPPERCASE_WITH_UNDERSCORES. Use \" instead of ' All functions should have types declared for all parameters and return value You shouldn't be using TypeScript type any Private class properties should not be prefixed with a _ e.g.: private dirty;, not private _dirty; Make sure that your code is properly type checked: use an IDE that will show type errors run yarn check-types from the command line Make sure that the tests are still passing: run yarn test:unit from the command line Commenting: If your code does something that is not obvious or deviates from standards, leave a comment for other developers to explain your logic and reasoning. Use // commenting format unless it's a comment you want people to see in their IDE. Use /** */ commenting format for documenting a function/variable. Code white space can be helpful for reading complex code, please add some. For unit tests, we forbid import stubbing when other approaches are feasible. Metrics are a critical part of Lodestar, every large feature should be documented with metrics Metrics need to follow the Prometheus Best Practices For metric names, make sure to add the unit as suffix, e.g. _seconds or _bytes Metric code variables on the other hand should not be suffixed, i.e. Sec-suffix should be omitted Time-based metrics must use seconds as the unit","s":"Style Guide","u":"/lodestar/contribution/getting-started","h":"#style-guide","p":84},{"i":115,"t":"Test must not depend on external live resources, such that running tests for a commit must be deterministic: Do not pull data from external APIs like execution JSON RPC (instead run a local node). Do not pull unpinned versions from dockerhub (use deterministic tag) or Github (checkout commit not branch). Carefully design tests that depend on timing sensitive events like p2p network e2e tests. Consider that Github runners are significantly less powerful than your development environment. Add assertion messages where possible to ease fixing tests if they fail. If an assertion message is called from multiple times with the same stack trace, you MUST include an assertion message. For example, if an assertion is inside a for loop add some metadata to be able to locate the error source: for (const blockResult of blocksResult) { expect(blockResult.status).equals(\"processed\", `wrong block ${blockResult.id} result status`); }","s":"Tests style guide","u":"/lodestar/contribution/getting-started","h":"#tests-style-guide","p":84},{"i":118,"t":"Contributors must choose the log level carefully to ensure a consistent experience for every type of user: error: Critical issues that prevent the application from functioning correctly or cause significant disruption to users. Examples include failed network connections, crashes, or data corruption. warn: Situations that may lead to critical issues if not addressed but do not prevent the application from functioning. Examples include configuration issues, deprecated features, or temporary network disruptions. info: General sporadic informational about the node's state. Examples include initialization messages, infrequent periodic status updates, or high-level progress reports. debug: Detailed diagnostic information that can help developers or users troubleshoot specific issues. Examples include individual request logs for every REST API, networking interactions, or internal components status changes. Alias to verbose.","s":"Logging Levels","u":"/lodestar/contribution/getting-started","h":"#logging-levels","p":84},{"i":120,"t":"Avoid excessive logging. Log messages should be clear and concise, providing enough information to understand the context and severity of the issue. Do not log sensitive data, such as private keys, user credentials, or personal information. Do not log arbitrary data from the network as ASCII or UTF8 at levels higher or equal to info. Use clear and concise language. Prefer to log variables in JSON format log.debug(\"Action\", {slot}) instead of formatting the text yourself log.debug('slot=${slot}'). Include only relevant context in log messages, sufficient to debug the issue or action it refers to.","s":"Logging guidelines","u":"/lodestar/contribution/getting-started","h":"#logging-guidelines","p":84},{"i":122,"t":"To edit or extend an existing Grafana dashboard with minimal diff: Grab the .json dashboard file from current unstable Import the file to Grafana via the web UI at /dashboard/import without modifying the UID of the dashboard Visually edit the dashboard Once done make sure to leave the exact same visual aspect as before: same refresh interval, time range, etc. Save the dashboard (CTRL+S) Run download script, see below on how to use it Check git diff of updated dashboards, commit, push and open your PR","s":"Contributing to Grafana dashboards","u":"/lodestar/contribution/getting-started","h":"#contributing-to-grafana-dashboards","p":84},{"i":124,"t":"Create a file .secrets.env with envs GRAFANA_API_KEY=$token GRAFANA_URL=https://yourgrafanaapi.io Run script to download dashboards to ./dashboards folder node scripts/download_dashboards.mjs","s":"Using Download Script","u":"/lodestar/contribution/getting-started","h":"#using-download-script","p":84},{"i":126,"t":"When submitting PRs for documentation updates, build and run the documentation locally to ensure functionality before submission. First generate the CLI documentation with yarn docs:build. Then build and serve the documentation locally with yarn docs:serve. Your locally served documentation will then be accessible at http://localhost:3000/lodestar/. We also use a spelling word list as part of our documentation checks. If using unrecognized words or abbreviations, please extend the word list to pass checks. Make sure the list is sorted with ./scripts/wordlist_sort.sh and checked with ./scripts/wordlist_sort_check.sh for sorting and duplicates.","s":"Contributing to Documentation","u":"/lodestar/contribution/getting-started","h":"#contributing-to-documentation","p":84},{"i":128,"t":"Issues and pull requests are subject to the following labeling guidelines. PRs may have a status label to indicate deviation from the normal process such as status-blocked or status-do-not-merge Issues and PRs will be tagged with a scope and prio to indicate type and priority for triage. All other labels allow for further evaluation and organization. Label descriptions can be found below. status.* Issues and Pull Request Status​ Status labels apply to issues and pull requests which deviate from normal processes. scope.* Scope Indicator​ Scope is comparable to Module labels but less strict with the definition of components. It applies to both, issues and pull requests. prio.* Prioritization Indicator​ A simple indicator of issue prioritization. It mainly applies to issues. spec.* Ethereum Consensus Spec Version Target​ Issues that target a specific version of the Ethereum consensus spec, shall be tagged accordingly.","s":"Label Guide","u":"/lodestar/contribution/getting-started","h":"#label-guide","p":84},{"i":130,"t":"Come chat with us on Discord and join our public weekly planning meetings!","s":"Community","u":"/lodestar/contribution/getting-started","h":"#community","p":84},{"i":134,"t":"Check back soon for more information!! We are in the process of updating our docs.","s":"End-To-End Tests","u":"/lodestar/contribution/testing/end-to-end-tests","h":"","p":133},{"i":136,"t":"The following tests are found in packages/beacon-node test:sim:mergemock​ yarn test:sim:blobs​","s":"Integration Tests","u":"/lodestar/contribution/testing/integration-tests","h":"","p":135},{"i":138,"t":"Testing is critical to the Lodestar project and there are many types of tests that are run to build a product that is both effective AND efficient. This page will help to break down the different types of tests you will find in the Lodestar repo. There are few flags you can set through env variables to override behavior of testing and it's output. ENV variable Effect Impact TEST_COMPACT_DIFF All Will strip down the object difference rendered during test failures. Very useful for large object matching. TEST_QUIET_CONSOLE All Will strip down console output. Reduce console flickering. TEST_COMPACT_OUTPUT All Display a condensed summary of tests run. Use vitest basic reporter.","s":"Testing","u":"/lodestar/contribution/testing/","h":"","p":137},{"i":140,"t":"This is the most fundamental type of test in most code bases. In all instances mocks, stubs and other forms of isolation are used to test code on a functional, unit level. See the Unit Tests page for more information.","s":"Unit Tests","u":"/lodestar/contribution/testing/","h":"#unit-tests","p":137},{"i":142,"t":"The Ethereum Consensus Specifications are what ensure that the various consensus clients do not diverge on critical computations and will work harmoniously on the network. See the Spec Tests page for more information.","s":"Spec Tests","u":"/lodestar/contribution/testing/","h":"#spec-tests","p":137},{"i":144,"t":"Node.js is an unforgiving virtual machine when it comes to high performance, multi-threaded applications. In order to ensure that Lodestar can not only keep up with the chain, but to push the boundary of what is possible, there are lots of performance tests that benchmark programming paradigms and prevent regression. See the Performance Testing page for more information.","s":"Performance Tests","u":"/lodestar/contribution/testing/","h":"#performance-tests","p":137},{"i":146,"t":"E2E test are where Lodestar is run in its full form, often from the CLI as a user would to check that the system as a whole works as expected. These tests are meant to exercise the entire system in isolation and there is no network interaction, nor interaction with any other code outside of Lodestar. See the End-To-End Testing page for more information.","s":"End-To-End Tests","u":"/lodestar/contribution/testing/","h":"#end-to-end-tests","p":137},{"i":148,"t":"Integration tests are meant to test how Lodestar interacts with other clients, but are not considered full simulations. This is where Lodestar may make API calls or otherwise work across the process boundary, but there is required mocking, stubbing, or class isolation. An example of this is using the ExecutionEngine class to make API calls to a Geth instance to check that the http requests are properly formatted.","s":"Integration Tests","u":"/lodestar/contribution/testing/","h":"#integration-tests","p":137},{"i":150,"t":"These are the most comprehensive types of tests. They aim to test Lodestar in a fully functioning ephemeral devnet environment. See the Simulation Testing page for more information.","s":"Simulation Tests","u":"/lodestar/contribution/testing/","h":"#simulation-tests","p":137},{"i":152,"t":"Check back soon for more information!! We are in the process of updating our docs.","s":"Performance Tests","u":"/lodestar/contribution/testing/performance-tests","h":"","p":151},{"i":154,"t":"Check back soon for more information!! We are in the process of updating our docs.","s":"Specification Tests","u":"/lodestar/contribution/testing/spec-tests","h":"","p":153},{"i":156,"t":"\"Sim\" testing for Lodestar is the most comprehensive, and complex, testing that is run. The goal is to fully simulate a testnet and to actuate the code in a way that closely mimics what will happen when turning on Lodestar in the wild. This is a very complex task and requires a lot of moving parts to work together. The following sections will describe the various components and how they work together. At a very high level, simulation testing will setup a testnet from genesis and let proceed through \"normal\" execution exactly as the nodes would under production circumstances. To get feedback there are regular checks along the way to asses how the testnet nodes are working. These \"assertions\" can be added and removed at will to allow developers to check for specific conditions in a tightly controlled, reproducible, environment to get high quality and actionable feedback on how Lodestar performs. The end goal of these tests is to to run a full Lodestar client in an environment that is as close to what an end user would experience. These tests usually setup full testnets with multiple consensus clients and their paired execution node. In many instance we are looking to just exercise the Lodestar code but there are some places where there is also testing to see how Lodestar works in relation to the other consensus clients, like Lighthouse. As you can imagine, there is quite a bit of machinery that is responsible for setting up and managing the simulations and assertions. This section will help to go over those bits and pieces. Many, but not all, of these classes can be found in packages/cli/test/utils/simulation.","s":"Simulation Tests","u":"/lodestar/contribution/testing/simulation-tests","h":"","p":155},{"i":158,"t":"There are a number of sim tests that are available and each has a slightly different purpose. All are run by CI and must pass for a PR to be valid for merging. Most tests require a couple of environment variables to be set.","s":"Running Sim Tests","u":"/lodestar/contribution/testing/simulation-tests","h":"#running-sim-tests","p":155},{"i":160,"t":"To see what typical values for these are check out the .env.test file in the root directory. GETH_DOCKER_IMAGE: The geth docker image that will be used NETHERMIND_IMAGE: The nethermind docker image that will be used LIGHTHOUSE_IMAGE: The lighthouse docker image that will be used","s":"Environment Variables","u":"/lodestar/contribution/testing/simulation-tests","h":"#environment-variables","p":155},{"i":162,"t":"The multi-fork sim test checks most of the functionality Lodestar provides. Is verifies that Lodestar is capable of peering, moving through all of the forks and using various sync methods in a testnet environment. Lodestar is tested with both Geth and Nethermind as the execution client. It also checks a Lighthouse/Geth node for cross client compatibility. yarn workspace @chainsafe/lodestar test:sim:multifork","s":"test:sim:multifork","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimmultifork","p":155},{"i":164,"t":"This tests that various endpoints of the beacon node and validator client are working as expected. yarn workspace @chainsafe/lodestar test:sim:endpoints","s":"test:sim:endpoints","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimendpoints","p":155},{"i":166,"t":"This test is still included in our CI but is no longer as important as it once was. Lodestar is often the first client to implement new features and this test was created before geth was upgraded with the features required to support the Deneb fork. To test that Lodestar was ready this test uses mocked geth instances. It is left as a placeholder for when the next fork comes along that requires a similar approach.","s":"test:sim:deneb","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimdeneb","p":155},{"i":168,"t":"Checks that Lodestar is compatible with other consensus validators and vice-versa. All tests use Geth as the EL. yarn workspace @chainsafe/lodestar test:sim:mixedclient","s":"test:sim:mixedcleint","u":"/lodestar/contribution/testing/simulation-tests","h":"#testsimmixedcleint","p":155},{"i":170,"t":"When setting up and running the simulations, interactions with the nodes is through the published node API's. All functionality is actuated via http request and by \"plugging in\" this way it is possible to run the nodes in a stand-alone fashion, as they would be run in production, but to still achieve a tightly monitored and controlled environment. If code needs to be executed on a \"class by class\" basis or with mocking involved then the test is not a simulation test and would fall into one of the other testing categories. See the Testing Overview page for more information on the other types of tests available for Lodestar.","s":"Sim Test Infrastructure","u":"/lodestar/contribution/testing/simulation-tests","h":"#sim-test-infrastructure","p":155},{"i":172,"t":"The simulation environment has many pieces and those are orchestrated by the SimulationEnvironment class. The testnet nodes will be run as a mixture of Docker containers and bare metal code execution via Node.js. In order to monitor the various clients there is a SimulationTracker that's primary function is to register assertions that will track and gauge how the nodes are doing during the simulation. See the section on Simulation Assertions below for more information on them. There is an EpochClock that has helper functions related to timing of slots and epochs and there is also a Runner that will help to start/stop the various Docker container and spawn the Node.js child processes as necessary. The SimulationEnvironment is the orchestrator for all the various functions to great the test net and start it from genesis. It is also how the various forks are configured to exercise code through various fork transitions.","s":"Simulation Environment","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-environment","p":155},{"i":174,"t":"These are the secret sauce for making the simulation tests meaningful. There are several predefined assertions that can be added to a simulation tracker and one can also create custom assertions and add them to the environment. Assertions can be added per slot, per epoch, per fork or per node. They can even be added to check conditions across nodes. Assertions are added to the SimulationTracker with the register method and the tracker follows the environment to make sure that assertions are run at the appropriate times, and on the correct targets. Assertions are implemented via API calls to the various targets and meta from the API calls is stored and used to assert that the desired conditions were met. Any information that can be retrieved via API call can be added to the assertion stores for validation, and validations can be asserted at a specific time or on an interval. There are a number of assertions that are added to simulations by default. They are: inclusionDelayAssertion attestationsCountAssertion attestationParticipationAssertion connectedPeerCountAssertion finalizedAssertion headAssertion missedBlocksAssertion syncCommitteeParticipationAssertion Because of the flexibility, and complexity, there is a section specifically for how to create custom assertions below. See custom assertions for more info.","s":"Simulation Assertions","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-assertions","p":155},{"i":176,"t":"Check back soon for more information on how to create custom assertions.","s":"Custom Assertions","u":"/lodestar/contribution/testing/simulation-tests","h":"#custom-assertions","p":155},{"i":178,"t":"Sim tests that are run using the simulation framework output a table of information to the console. The table summarizes the state of all of the nodes and the network at each slot. Here is an example of the table and how to interpret it: ┼─────────────────────────────────────────────────────────────────────────────────────────────────┼ │ fork │ eph │ slot │ head │ finzed │ peers │ attCount │ incDelay │ errors │ ┼─────────────────────────────────────────────────────────────────────────────────────────────────┼ │ capella │ 9/0 │ 72 │ 0x95c4.. │ 56 │ 3 │ 16 │ 1.00 │ 0 │ │ capella │ 9/1 │ 73 │ 0x9dfc.. │ 56 │ 3 │ 16 │ 1.00 │ 0 │ │ capella │ 9/2 │ 74 │ 0xdf3f.. │ 56 │ 3 │ 16 │ 1.00 │ 0 │ │ capella │ 9/3 │ 75 │ 0xbeae.. │ 56 │ 3 │ 16 │ 1.00 │ 0 │ │ capella │ 9/4 │ 76 │ 0x15fa.. │ 56 │ 3 │ 16 │ 1.00 │ 0 │ │ capella │ 9/5 │ 77 │ 0xf8ff.. │ 56 │ 2,3,3,2 │ 16 │ 1.00 │ 0 │ │ capella │ 9/6 │ 78 │ 0x8199.. │ 56 │ 2,3,3,2 │ 16 │ 1.20 │ 0 │ │ capella │ 9/7 │ 79 │ different │ 56 │ 2,3,3,2 │ 16 │ 1.50 │ 2 │ ┼─────────────────────────────────────────────────────────────────────────────────────────────────┼ │ Att Participation: H: 0.75, S: 1.00, T: 0.75 - SC Participation: 1.00 │ ┼─────────────────────────────────────────────────────────────────────────────────────────────────┼ Slot Information​ fork: shows what fork is currently being tested eph: During simulation tests the Lodestar repo is setup to use 8 slot per epoch so what is shown is the epoch number and the slot number within that epoch as epoch/slot slot: The slot number that is currently being processed head: If all clients have the same head the first couple of bytes of the hash are shown. If all clients do not have the same head different is reported. finzed: Shows the number of the last finalized slot peers: The number of peers that each node is connected to. If all have the same number then only a single value is shown. If they do not have the same number of peers count for each node is reported in a comma-separated list attCount: The number of attestations that the node has seen. incDelay: The average number of slots inclusion delay was experienced for the attestations. Often attestations for the current head arrive more than one slot behind and this value tracks that errors: The number of errors that were encountered during the slot Epoch Information​ H: The percentage of nodes, at epoch transition, that voted for the head block S: The percentage of nodes, at epoch transition, that voted for the source block T: The percentage of nodes, at epoch transition, that voted for the target block SC Participation: The sync committee participation rate","s":"Simulation Reports","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-reports","p":155},{"i":180,"t":"The simulation environment will capture all of the logs from all nodes that are running. The logs can be found in the packages/cli/test-logs directory. The logs are named with the following convention: -_.log Some examples are: node-1-beacon_lodestar.log: The is the first node in the simulation. It is the consensus layer. It is running the lodestar validator client. range-sync-execution_geth.log: This is the node that was added to test pulling history in range sync mode. It was the execution layer and was running the geth execution client.","s":"Simulation Logging","u":"/lodestar/contribution/testing/simulation-tests","h":"#simulation-logging","p":155},{"i":182,"t":"Check back soon for more information!! We are in the process of updating our docs.","s":"Unit Tests","u":"/lodestar/contribution/testing/unit-tests","h":"","p":181},{"i":184,"t":"This page describes different approaches for debugging Lodestar.","s":"Debugging","u":"/lodestar/contribution/tools/debugging","h":"","p":183},{"i":186,"t":"The simplest way to debug is to use the provided launch.template.json configurations. Copy them as .vscode/launch.json and they will be made available in the Run and Debug section in VS Code. Adapt as needed, e.g. by adding additional arguments to the beacon configuration to match your needs. VS Code supports debugging Workers out of the box when using those configurations.","s":"VS Code launch config","u":"/lodestar/contribution/tools/debugging","h":"#vs-code-launch-config","p":183},{"i":188,"t":"Remote lodestar processes can also be debugged by leveraging node:inspector. Adding --inspect to the node CLI (e.g. NODE_OPTIONS=--inspect ./lodestar beacon) allows to debug the main thread. To debug a specific Worker, follow those steps: remove --inspect from node CLI add following code to the worker import inspector from \"node:inspector\"; inspector.open(); inspector.waitForDebugger(); Use VS Code or Chrome devtools to debug those processes.","s":"Attach to running process","u":"/lodestar/contribution/tools/debugging","h":"#attach-to-running-process","p":183},{"i":190,"t":"Core dump analysis is some ninja level stuff. Once you get the hang of it you will feel like you have super powers. It will up your game to a whole new level because you will be able to debug issues that seemed impossible before. Post-crash analysis is a very powerful tool to have in your tool belt. A core dump has all of the objects in memory as well as all of the stack frame information at the exact moment the dump was taken, usually when a hard crash occurs. It is important to note that debug symbols will greatly aid you in your debugging for issues related to native code like C/C++. When compiled languages are optimized the compiler will often strip out identifiers and all that will be remaining are mangled symbols and addresses. Compiling with debug symbols will leave all of the identifiers, file names and line numbers in-tact. While it is not always practical to be running code in a Debug version of node, if you run across a persistent issue it will be helpful to recreate it on a debug build and to use that for analysis. It is important to note that the EXACT binary that was running when the dump was created MUST be loaded when doing analysis. There is a lot of information in the dump that is specific to the binary that was running (like function offsets, etc). If you load a different binary you will get a lot of errors and the analysis will not be useful (if it loads at all). It is also a nice-to-know that you can create the dump on linux, using a linux compiled version of node, and then read it on a mac. All that is needed is to download the node binary and dump file to the mac. It is possible to load them into a mac compiled version of llnode and all will work as expected. Its just the meta in the linux binary that is needed for analysis, it doesn't actually run the code.","s":"Core Dump Analysis","u":"/lodestar/contribution/tools/core-dumps","h":"","p":189},{"i":192,"t":"llnode is a Node.js plugin for the LLDB debugger. It is the officially sanctioned tool from Node and powerful way to do postmortem analysis of Node.js processes. The process for install is pretty straight-forward unless you have an M1 mac. XCode ships with an instance of lldb and installing llnode is as simple as running npm install -g llnode. On an M1 mac the install will work fine but the plugin will crash at load time. See this issue for updates. The workaround is to install lldb via homebrew. # should only be necessary on M1 macs at time of writing $ brew install llvm $ echo 'export PATH=\"/opt/homebrew/opt/llvm/bin:$PATH\"' >> ~/.zshrc $ # note that its before recopying PATH to make sure it resolves $ zsh ~/.zshrc $ which llvm-config /opt/homebrew/opt/llvm/bin/llvm-config # if this is not what comes up restart the shell $ npm install -g llnode $ llnode (lldb) plugin load '/Users/ninja_user/.nvm/versions/node/v22.1.0/lib/node_modules/llnode/llnode.dylib' (lldb) settings set prompt '(llnode) ' (llnode)","s":"Installing llnode","u":"/lodestar/contribution/tools/core-dumps","h":"#installing-llnode","p":189},{"i":194,"t":"Before a core dump can be created the system must be enabled. ulimit -c unlimited This is a critical step. If that command is not run the core will not be dumped to disk. Core dumps are normally created by the kernel when certain process signals are encountered. SIGSEGV is the most common signal that will cause a dump and its sent by the kernel to the process when a segfault occurs. SIGSEGV is not the only signal that works and you can see the full list here under the \"Standard Signals\" section (all the ones that say \"Core\" in the \"Action\" column). If you want to create a dump on demand you can use the gcore command on linux. This will create a dump of the process without killing it. If you don't mind termination you can also use kill -SIGSEGV to send the a dump signal to the process.","s":"Collecting a core dump","u":"/lodestar/contribution/tools/core-dumps","h":"#collecting-a-core-dump","p":189},{"i":196,"t":"Once you collect the core dump you can load it into llnode for debugging. # remember that the node binary must be the exact same one that was running when the core was created $ llnode -f /path/to/node_debug -c /Users/ninja_user/coredumps/node.coredump (lldb) target create \"node_debug\" --core \"node.coredump\" Core file '/Users/ninja_user/coredumps/node.coredump' (x86_64) was loaded. (lldb) plugin load '/Users/ninja_user/.nvm/versions/node/v22.1.0/lib/node_modules/llnode/llnode.dylib' (lldb) settings set prompt '(llnode) ' (llnode) Once the dump is loaded the first few steps will be to figure out what types of objects were in memory and what was the processor working on when the crash occurred. Lets start with the stack trace. There are two distinct commands for pulling the stack because node is both a native runtime and a virtual machine. The bt, back trace, command will pull the native stack frames and the v8 bt command will use the llnode plugin to pull the JavaScript stack frames. Newer versions of llnode will automatically pull the JavaScript stack frames when the bt command is run but it is still good to know the difference. It is also possible to add the all verb to the bt command and it will pull the back trace for all threads. To start looking through memory there are two commands that are helpful. The v8 findjsobjects command will list all of the JavaScript objects in memory. The v8 findjsinstances command will list all of the instances of a particular JavaScript object.","s":"Analyzing a core dump","u":"/lodestar/contribution/tools/core-dumps","h":"#analyzing-a-core-dump","p":189},{"i":198,"t":"This guide assumes a running instance of Lodestar and will walk through how to generate a flamegraph for the process while running on Linux. While it is possible to run Lodestar in a number of ways, for performance profiling it is recommended to not use Dockerized implementations. It is best to run Lodestar as a service on a Linux machine. Follow the Lodestar docs to get the service installed and running. Then come back here when you are ready to generate the flamegraph.","s":"Generating Flamegraphs for a Running Node Service on Linux","u":"/lodestar/contribution/tools/flamegraphs","h":"","p":197},{"i":200,"t":"Use the following two commands to install perf for generating the stack traces. You may get a warning about needing to restart the VM due to kernel updates. This is nothing to be concerned with and if so, cancel out of the restart dialog. sudo apt-get install linux-tools-common linux-tools-generic sudo apt-get install linux-tools-`uname -r` # empirically this throws if run on the same line above Next we need to update the Lodestar service by modifying the start script. We need to add a necessary flag --perf-basic-prof to allow the stack traces to be useful. Node is a virtual machine and perf is designed to capture host stack traces. In order to allow the JavaScript functions to be captured meaningfully, v8 can provide some help. Generally Lodestar is started with a script like the following:","s":"Modifying Linux and Lodestar","u":"/lodestar/contribution/tools/flamegraphs","h":"#modifying-linux-and-lodestar","p":197},{"i":202,"t":"node \\ --perf-basic-prof \\ --max-old-space-size=8192 \\ /usr/src/lodestar/packages/cli/bin/lodestar \\ beacon \\ --rcConfig /home/devops/beacon/rcconfig.yml After updating the start script, restart the node process running the beacon service. Note in the command below, that the beacon service may have a different name or restart command, depending on your setup. admin@12.34.56.78: sudo systemctl restart beacon The flag that was added notifies V8 to output a map of functions and their addresses. This is necessary for perf to generate the stack traces for the virtual machine in addition to the traditional host stack traces. There is a very small, performance overhead to output the maps. After a short while, once the process runs for a bit the functions will no longer be moving in memory and the overhead will be significantly reduced. The VM will still be moving objects around but this flag is generally safe to run in production. After a few minutes of running, listing the directory with the start script (process.cwd()) will look similar: -rw-r--r-- 1 admin admin 9701529 May 22 00:36 beacon-2023-05-22.log -rwxrwxr-x 1 admin root 421 May 22 00:31 beacon_run.sh drwxr-xr-x 2 admin admin 917504 May 22 00:35 chain-db -rw-r--r-- 1 admin admin 2861242 May 22 00:36 isolate-0x6761520-2085004-v8.log -rw-r--r-- 1 admin admin 203172 May 22 00:36 isolate-0x7fa2f0001060-2085004-v8.log -rw-r--r-- 1 admin admin 68044 May 22 00:36 isolate-0x7fcd80001060-2085004-v8.log -rw-r--r-- 1 admin admin 420809 May 22 00:36 isolate-0x7fcd84001060-2085004-v8.log -rw-r--r-- 1 admin admin 123919 May 22 00:36 isolate-0x7fcd88001060-2085004-v8.log -rw-r--r-- 1 admin admin 94391 May 22 00:35 isolate-0x7fcd8c001060-2085004-v8.log -rw-r--r-- 1 admin admin 183831 May 22 00:36 isolate-0x7fcd90000e60-2085004-v8.log -rw-r--r-- 1 admin admin 152786 May 22 00:36 isolate-0x7fcd94000e60-2085004-v8.log -rw-r--r-- 1 admin admin 262333 May 22 00:36 isolate-0x7fcd98000e60-2085004-v8.log -rw-r--r-- 1 admin admin 218473 May 22 00:36 isolate-0x7fcd9c000e60-2085004-v8.log -rw-r--r-- 1 admin admin 366788 May 22 00:36 isolate-0x7fcda0000e60-2085004-v8.log -rw-r--r-- 1 admin admin 304917 May 22 00:36 isolate-0x7fcda4000e60-2085004-v8.log -rw-r--r-- 1 admin admin 586238 May 22 00:36 isolate-0x7fcda8000e60-2085004-v8.log -rw-r--r-- 1 admin admin 450675 May 22 00:36 isolate-0x7fcdac000e60-2085004-v8.log -rw-r--r-- 1 admin admin 768470 May 22 00:36 isolate-0x7fcdb8000d60-2085004-v8.log -rw-r--r-- 1 admin root 559 May 21 14:17 rcconfig.yml The isolate-*-v8.log files are the maps that v8 outputs for the perf command to reference. You are now ready to collect the stack traces.","s":"Example start_lodestar.sh","u":"/lodestar/contribution/tools/flamegraphs","h":"#example-start_lodestarsh","p":197},{"i":204,"t":"The first command below will run perf for 60 seconds, and then save the output to a file named perf.out. The second one will merge the exported, unknown, tokens with the isolate maps and output full stack traces for the render. Running both perf commands in the folder with the isolate maps will allow the data to be seamlessly spliced. Once the output is saved, update the permissions so the file can be copied to your local machine via scp. You can modify the frequency of capture by changing -F 99 to a different number. Try to stay away from whole numbers as they are more likely to cause interference with periodically scheduled tasks. As an example use 99Hz or 997Hz instead of 100Hz or 1000Hz. In testing neither seemed to have an appreciable affect on CPU usage when run for a short period of time. To change the period of capture adjust the sleep duration (which is in seconds). The pgrep command is used to find the process id to capture against. Feel free to pass a number to the -p flag if you know the process id, or adjust the file path if the executable is in a different location. admin@12.34.56.78: sudo perf record -F 99 -p $(pgrep -f '/usr/src/lodestar/packages/cli/bin/lodestar beacon') -g -- sleep 60 admin@12.34.56.78: sudo perf script -f > perf.out admin@12.34.56.78: sudo chmod 777 ~/beacon/perf.out And then copy the perf.out file to your local machine to render the flamegraph. Running at 99Hz for 180 seconds results in a file size of about 3.5MB and 997Hz for 60 seconds is roughly 4.4MB. scp admin@12.34.56.78:/home/devops/beacon/out.perf /some_temp_dir/perf.out","s":"Capturing Stack Traces","u":"/lodestar/contribution/tools/flamegraphs","h":"#capturing-stack-traces","p":197},{"i":206,"t":"By far the best tool to render flamegraphs is flamescope from Netflix. It allows for easy analysis and zooming into specific time periods. It also give a holistic view of how the process is performing over time.","s":"Rendering a Flamegraph","u":"/lodestar/contribution/tools/flamegraphs","h":"#rendering-a-flamegraph","p":197},{"i":208,"t":"Python3 is required. Clone the repository and install the dependencies: The original is no longer maintained and had a configuration bug. This is a fork that fixes the issue. git clone https://github.com/matthewkeil/flamescope cd flamescope pip3 install -r requirements.txt yarn","s":"Installation","u":"/lodestar/contribution/tools/flamegraphs","h":"#installation","p":197},{"i":210,"t":"mv /some_temp_dir/perf.out /path/to/flamescope/examples yarn dev Then navigate in a browser to http://localhost:8080 and begin analyzing the data.","s":"Usage","u":"/lodestar/contribution/tools/flamegraphs","h":"#usage","p":197},{"i":212,"t":"There can be a lot of \"noise\" in the stack traces with libc, v8 and libuv calls. It is possible to filter the results to make it more useful, but note this will skew the results. Looking at the graph both filtered and unfiltered can be beneficial. The following sed command will remove the noise from the stack traces. sed -r -e \"/( __libc_start| uv_| LazyCompile | v8::internal::| node::| Builtins_| Builtin:| Stub:| LoadIC:| \\\\[unknown\\\\]| LoadPolymorphicIC:)/d\" -e 's/ LazyCompile:[*~]?/ /'","s":"Filtering Results","u":"/lodestar/contribution/tools/flamegraphs","h":"#filtering-results","p":197},{"i":217,"t":"https://www.brendangregg.com/flamegraphs.html https://nodejs.org/en/docs/guides/diagnostics-flamegraph https://netflixtechblog.com/netflix-flamescope-a57ca19d47bb https://jaanhio.me/blog/nodejs-flamegraph-analysis/ (this was a great one about filtering methodology) https://medium.com/voodoo-engineering/node-js-and-cpu-profiling-on-production-in-real-time-without-downtime-d6e62af173e2","s":"List of Web References","u":"/lodestar/contribution/tools/flamegraphs","h":"#list-of-web-references","p":197},{"i":219,"t":"flamescope","s":"Visualization Tools","u":"/lodestar/contribution/tools/flamegraphs","h":"#visualization-tools","p":197},{"i":221,"t":"https://www.brendangregg.com/perf.html https://www.brendangregg.com/linuxperf.html https://www.brendangregg.com/blog/2014-09-17/node-flame-graphs-on-linux.html https://perf.wiki.kernel.org/index.php/Main_Page","s":"Collecting on Linux","u":"/lodestar/contribution/tools/flamegraphs","h":"#collecting-on-linux","p":197},{"i":223,"t":"https://gist.github.com/zeusdeux/aac6f8500917319213c5 https://gist.github.com/loderunner/36724cc9ee8db66db305 https://keith.github.io/xcode-man-pages/xctrace.1.html","s":"Collecting on MacOS","u":"/lodestar/contribution/tools/flamegraphs","h":"#collecting-on-macos","p":197},{"i":225,"t":"There are a number of reason why one would want to do a heap dump but in particular, they are helpful for find memory intensive operations and leaks. There are two major types of heap dumps that are available to node developers. The first is a JavaScript heap dump, and the second is a native heap dump. The JS heap dump is much more common and is the default heap dump that is generated by node. It is useful when analyzing JS generated objects that are managed by the runtime. However there is one major limitation to the JS heap dump, and that is that it does not include native objects. This is where the native heap dump comes in handy. The native heap dump is a snapshot of the entire process memory, and includes objects that are allocated by C/C++ code, including native modules in use by the application. The limitation to the native heap dump is that it will not include any JS objects that are allocated by the V8 runtime. Those are generally created within mmap'ed pages and the native heap dump tools are specific to C objects that are created with malloc and destroyed via free. C++ is also covered as new and delete are wrappers around malloc and free. This is why it is important to understand how to analyze both types of memory usage.","s":"Heap Dump Analysis","u":"/lodestar/contribution/tools/heap-dumps","h":"","p":224},{"i":227,"t":"Node has built in V8 heap dump access and its a very powerful tool for analyzing memory usage. Understanding how the dump is created will both help to understand how it is displayed and how to use the analysis more effectively. The V8 heap dump is a stop the world process because walking the entire heap graph is necessary to create one. This is similar to a full, major garbage collection event. The VM starts at the heap entrance node and walks the entire graph and makes note of every edge that connects each node along the way. Nodes are JSObjects and edges are references between those objects. By time the whole heap is walked the full size and values of all nodes are known and all of the connections between those nodes is well understood. The object that is returned is a set of three arrays, the nodes, the edges and the string values that are encountered (because strings are themselves arrays of characters in C so they are treated a bit differently by V8).","s":"JavaScript Heap Dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#javascript-heap-dump","p":224},{"i":229,"t":"There are two functions for creating a heap dump but both call the same functionality under the hood. One streams the result, require(\"v8\").getHeapSnapshot([options]), and is primarily intended for use by the Chrome devtools button to \"take a snapshot\". The second writes the heap dump to a file, require(\"v8\").writeHeapSnapshot(filename[,options]). The optional options argument, in both cases, is the same and contains two props.exposeInternals and exposeNumericValues to enrich the dump. In many cases its the application layer that one wants to debug so exposeInternals is not usually necessary. In V8 numbers are stored as 32bit integers and the size of pointers is also 32bits. So as an optimization, the pointer to the numeric value can be eliminated and the value itself can be stored in the Address of the Value instead. exposeNumericValues transcribes those \"pointers\" to the actual numeric value and appends them to the dump. Because heap analysis happens frequently during Lodestar development there is a helper api endpoint to capture a heap dump. It is IMPORTANT that this endpoint is not public facing as it will open the threat of DDOS attack. The endpoint accepts a POST request and you may include an optional dirpath query parameter to specify the directory where the heap dump will be written. If the dirpath is not specified then the heap dump will be written to the current working directory. To create a Lodestar heap dump you can use the following command: curl -X POST http://localhost:9596/eth/v1/lodestar/write_heapdump?dirpath=/some/directory/path","s":"Creating a V8 heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#creating-a-v8-heap-dump","p":224},{"i":231,"t":"It is best to analyze on a local development machine so if Lodestar is running on a cloud instance download the dump to the local environment. Open Chrome, or any Chromium based browser (the example photos were taken using Brave). In the url bar type chrome:://inspect to bring up the DevTools menu (in brave the url will be rewritten to brave://inspect). Click on the Open dedicated DevTools for Node link to open the node specific window and click on the Memory tab as shown below. Load the profile by either right clicking on the left pane or by clicking the Load button at the bottom.","s":"Viewing a V8 heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#viewing-a-v8-heap-dump","p":224},{"i":233,"t":"Analysis is as much an art as it is a science and the best way to learn is to do it a few times. Generally the goal is looking for memory leaks but reducing memory overhead is also something that happens. This guide will focus on leaks. With memory leaks one is looking for why objects have references that prevent them from being garbage collected. To spot sources of leaks, focus on objects that have large quantities or very large retained size. Retained size is the amount of memory that would be freed if the object was garbage collected. As an example if there is an object that has lots and lots of instances, like 100,000, and they are all pushed into an array then the array will have a very large retained size. This is because the array is holding references to all of the objects that it contains. If it is not immediately apparent what objects are being leaked then another tool in your arsenal will be to take a second snapshot and compare it to the first. This will show what objects have been created/changed since the first snapshot. If there is an object that has a large retained size but is roughly the same, but not exactly the same, changes are that is NOT the leak. Some objects can get quite large during runtime but if its roughly the same size over time, but not exactly the same, it means that the application is modifying the object (why its not exactly identical in size) but if it hasn't grown significantly over time it can be assumed it is probably the working size of the instances. Try to focus on objects that are growing in size or in number over time. Growing in size means the object is holding references to other objects and growing in number means a function closure somewhere is retaining the small instances. That is the science part, but these clues are just breadcrumbs to follow. In order to actually resolve the leak, one needs to go into the code to figure out where those objects are being created, or more often, why the references to them are being retained. This is where the art comes in. Having a good understanding of the codebase will help to narrow down where to look. It is also common that the leak is not coming directly from Lodestar code, but rather one of the dependencies so be careful not to rule those out.","s":"Analyzing a V8 heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#analyzing-a-v8-heap-dump","p":224},{"i":235,"t":"note: collecting a native heap dump is only supported on linux, analysis can be done from linux or Mac There are several tools that can be used to do native heap dump analysis. The most common are massif from the Valgrind suite, google's gperftools and heaptrack from KDE. Of the three, heaptrack is the most user friendly tool, and it is specifically designed for the task. It is much faster than Valgrind, easier to integrate than gperftools and also includes a gui for result analysis. Often times there are also memory allocations that are not related to memory leaks, and tools like Valgrind and gperftools become less useful. This is why heaptrack is the recommended tool for heap dump analysis on Lodestar. There are a few things that will make the results with heaptrack far better. The most important is using debug builds of all libraries included in a binary, including the application itself. This will make the results usable. Not to say that they will be useless without debug symbols but it will be kinda tough to optimize functions without knowing the function names nor the file and line numbers. This is the heart of what heaptrack will do for us. It hooks into the memory allocation and adds in stack traces for each malloc call site. That way every time memory is reserved there is a way to track back where it happened in the code. heaptrack also hooks into the free function and checks that versus the allocations to check for memory leaks and for temporary variables that can be optimized. This also allows for optimization of how many of each object is created by identifying high frequency allocations. Generally the .heapdump file will be created on a cloud server and then copied to a local machine for analysis, mostly because the gui is not available through ssh. The gui is not required for analysis but it is much easier to use than the command line tools. The first step will be to install heaptrack on the target server and to capture a profile.","s":"Native Heap Dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#native-heap-dump","p":224},{"i":237,"t":"Assume the following directory structure: ├── beacon-node │ ├── db │ ├── logs │ ├── start-lodestar.sh │ └── rc-config.yml ├── lodestar └── node # step below will clone this repo We will start from the directory that contains lodestar and the beacon-node files. # Install heaptrack $ sudo apt-get update $ sudo apt-get -y install heaptrack # Using a debug build of node is recommended and it can be build # from source. Clone the node repo to get started. $ git clone https://github.com/nodejs/node.git $ cd node # Use whichever version of node you prefer $ git checkout v22.1.0 $ ./configure --debug # This command only builds the debug version of node and assumes # that a release version of node is already installed on the system $ make -C out BUILDTYPE=Debug -j$(nproc --all) # Move the debug version of node the same folder that the release # version is installed in and name it `node_debug`. This will put the # debug binary on the path and allow you to run it with the # `node_debug` command $ cp out/Debug/node \"$(which node)_debug\" $ which node_debug /your/home/directory/.nvm/versions/node/v20.10.0/bin/node_debug # Return to the lodestar repo $ cd ../lodestar # Clean the build artifacts and node_modules $ yarn clean && yarn clean:nm # Install the dependencies $ yarn install # Ensure that all native modules are rebuilt with debug symbols. Some # modules are prebuilt, like classic-level, and the debug symbols may # not be included. If the debugging exercise is focussed around # one of these dependencies, then you will need to manually clone those # repos and manually build them with debug symbols. $ npm rebuild --debug","s":"Build collection tools","u":"/lodestar/contribution/tools/heap-dumps","h":"#build-collection-tools","p":224},{"i":239,"t":"# Move to th `beacon-node` directory $ cd ../beacon-node # Start lodestar with profiling enabled $ heaptrack \\ $ --output ./lodestar.heapdump \\ $ node_debug \\ $ --max-old-space-size=8192 \\ $ ../lodestar/packages/cli/bin/lodestar.js \\ $ beacon \\ $ --rcConfig ./rc-config.yml \\ $ > /dev/null 2>&1 & # Wait some period of time for the heap dump data to be collected # The data will not be persisted until the process is stopped. You can gracefully # stop the process with the following command and if you want to hard kill it # add `-9` to the end of the `kill` command although that should not be necessary $ ps aux | grep lodestar | grep -v grep | awk '{print $2}' | head -n 1 | xargs kill","s":"Collect a heap dump","u":"/lodestar/contribution/tools/heap-dumps","h":"#collect-a-heap-dump","p":224},{"i":241,"t":"Collecting a heap dump can also be done on a running process. There are both advantages and disadvantages to this approach. The main advantage is that you can collect a heap dump without having to restart. The down side is that the dump will only include allocations/de-allocations while the tracker is running. This means that all the non-paired calls to malloc/free will register as leaks. It will also not give a true representation of how the heap is being used. On the upside, however the dump will be much smaller in size. It is important to note a warning that is in the heaptrack source code: WARNING: Runtime-attaching heaptrack is UNSTABLE and can lead to CRASHES in your application, especially after you detach heaptrack again. You are hereby warned, use it at your own risk! # Move to th `beacon-node` directory $ cd ../beacon-node # Start lodestar $ node_debug \\ $ --max-old-space-size=8192 \\ $ ../lodestar/packages/cli/bin/lodestar.js \\ $ beacon \\ $ --rcConfig ./rc-config.yml \\ $ > /dev/null 2>&1 & # Wait some period of time to start collecting the dump # GDB is required to inject heaptrack into a running process # so you may need to install it $ sudo apt-get update $ sudo apt-get install -y gdb # Elevated `perf` permissions are also required depending on your # system configuration. Change until the next reboot $ echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope # Get the pid of the lodestar process $ export LODESTAR_PID=$(ps aux | grep lodestar | grep -v grep | awk '{print $2}' | head -n 1) # Inject heaptrack into the running process $ heaptrack --pid $LODESTAR_PID heaptrack output will be written to \"/home/user/beacon-node/heaptrack.node_debug.111868.zst\" /usr/lib/heaptrack/libheaptrack_preload.so injecting heaptrack into application via GDB, this might take some time... injection finished # Wait some period of time to collect the heap dump. See below # for the termination command that can be run from a separate # terminal when ready to stop collecting data Terminated removing heaptrack injection via GDB, this might take some time... Heaptrack finished! Now run the following to investigate the data: heaptrack --analyze \"/home/user/beacon-node/heaptrack.node_debug.111868.zst\" There is a trap in heaptrack but the process uses a nested shell to do the actual injection so it is not possible to just Ctrl+C out of the injected process without corrupting the output file. To properly kill the collection one needs to target the nested shell pid. Here is a helper command to target that process: ps -ef | grep '[h]eaptrack --pid' | awk '$3 == '$(ps -ef | grep '[h]eaptrack --pid' | awk '$3 != 1 {print $2}' | head -n 1)' {print $2}' | xargs -r kill After working with the injected process for a while, I cannot honestly recommend it. It can work in a pinch, and is best suited for when the profiled process can be exited gracefully without repercussions (not on mainnet for instance). The benefit, though, is that the heapdump will be much smaller and targeted to runtime (will not have the transient, startup allocations) which can make it easier to see what is happening.","s":"Collecting a heap dump on a running process","u":"/lodestar/contribution/tools/heap-dumps","h":"#collecting-a-heap-dump-on-a-running-process","p":224},{"i":243,"t":"# You can you apt, apt-get or aptitude to install the gui $ sudo apt-get update $ sudo apt-get install -y heaptrack-gui","s":"Installing heaptrack-gui on Linux","u":"/lodestar/contribution/tools/heap-dumps","h":"#installing-heaptrack-gui-on-linux","p":224},{"i":245,"t":"At the time of writing this there is no official pre-built binary for OSX. This was a bit of a challenge but it was WELL worth the effort as the tool works very well. There were a number of bugs along the way while \"using the docs\" so your mileage may vary, but this is what worked for me. Most of the dependencies can be installed via Homebrew and the tool itself needs to be built from source. There was one dependency that needed to be built from source. This process assumes a working folder that the repos can be cloned into. # Start in the root folder where the repos will be cloned $ brew install qt@5 # prepare tap of kde-mac/kde $ brew tap kde-mac/kde https://invent.kde.org/packaging/homebrew-kde.git $ \"$(brew --repo kde-mac/kde)/tools/do-caveats.sh\" # install the kde-mac and other required dependencies $ brew install kde-mac/kde/kf5-kcoreaddons \\ $ kde-mac/kde/kf5-kitemmodels \\ $ kde-mac/kde/kf5-kconfigwidgets \\ $ kde-mac/kde/kdiagram \\ $ extra-cmake-modules \\ $ ki18n \\ $ threadweaver \\ $ boost \\ $ zstd \\ $ gettext # There is a bug in the current version of kde-mac/kde and one dependency needs # to be built manually. This is the workaround to get it built. $ git clone https://invent.kde.org/frameworks/kio.git $ mkdir kio/build $ cd kio/build $ export CMAKE_PREFIX_PATH=$(brew --prefix qt@5) $ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release .. $ ninja $ sudo ninja install $ cd ../.. # Now make sure that the dependencies are available to the system during runtime $ ln -sfv \"$(brew --prefix)/share/kf5\" \"$HOME/Library/Application Support\" $ ln -sfv \"$(brew --prefix)/share/knotifications5\" \"$HOME/Library/Application Support\" $ ln -sfv \"$(brew --prefix)/share/kservices5\" \"$HOME/Library/Application Support\" $ ln -sfv \"$(brew --prefix)/share/kservicetypes5\" \"$HOME/Library/Application Support\" # We are now ready to build the heaptrack_gui binaries for analysis on OSX $ git clone https://invent.kde.org/sdk/heaptrack.git $ cd heaptrack $ mkdir build $ cd build $ CMAKE_PREFIX_PATH=$(brew --prefix qt@5) PATH=$PATH:/opt/homebrew/opt/gettext/bin cmake .. $ cmake -DCMAKE_BUILD_TYPE=Release .. $ make heaptrack_gui $ sudo make install # You can now find heaptrack_gui with your gui Applications. It is default # placed as /Applications/KDE/heaptrack_gui.app","s":"Installing heaptrack-gui on OSX","u":"/lodestar/contribution/tools/heap-dumps","h":"#installing-heaptrack-gui-on-osx","p":224},{"i":248,"t":"This section of the documentation will cover common questions and encounters often asked by users and developers.","s":"Frequently Asked Questions","u":"/lodestar/faqs","h":"","p":247},{"i":250,"t":"\"Package manager issues\" Lodestar relies on Corepack and associated packageManager value to manage its package manager version. Make sure corepack is correctly enabled if you encounter some package manager related issues: corepack enable","s":"Tooling","u":"/lodestar/faqs","h":"#tooling","p":247},{"i":253,"t":"\"Heap memory limit\" Lodestar beacon node requires at least 8GB of heap space. While the lodestar script and the official docker image correctly sets the appropriate value, it might be necessary to manually set it for some specific scenario. The simplest way to achieve this is via the NODE_OPTIONS environment variable or by passing --max-old-space-size directly to the node binary NODE_OPTIONS: --max-old-space-size=8192","s":"Running a beacon node","u":"/lodestar/faqs","h":"#running-a-beacon-node","p":247},{"i":255,"t":"\"Unknown arguments error\" Lodestar reads all environment variables prefixed with LODESTAR and will try to parse them similar to command line arguments, meaning any unknown argument will cause an error. ✖ Unknown arguments: servicePort, servicePortEthConsensusP2p, port9000Tcp, port9000TcpPort, port9000TcpProto, port9000TcpAddr, serviceHost The extra arguments are present because Kubernetes automatically adds environment variables to the Pod based on the name (metadata.name) defined in the associated Service. To resolve the issue, this name has to be changed to something that does not start with lodestar. Reference Issue: #6045","s":"Using Kubernetes","u":"/lodestar/faqs","h":"#using-kubernetes","p":247},{"i":257,"t":"Ethereum is one of the most profoundly important inventions in recent history. It is a decentralized, open-source blockchain featuring smart contract functionality. It is the second-largest cryptocurrency by market capitalization, after Bitcoin, and is the second largest blockchain by market capitalization. Ethereum was proposed in 2013 by programmer Vitalik Buterin. Development was crowdfunded in 2014, and the network went live on 30 July 2015, with 72 million coins premined. ChainSafe was founded not too long afterwards in 2017 and has been actively working in the Ethereum ecosystem ever since. We are proud to develop Lodestar, the only TypeScript based consensus client, and to present this documentation as a resource for the Ethereum community.","s":"Introduction","u":"/lodestar/introduction","h":"","p":256},{"i":259,"t":"In Ethereum's Proof of Stake (PoS) model, validators replace miners from the Proof of Work (PoW) system. Validators are Ethereum stakeholders who lock up a portion of their Ether as a stake. The protocol randomly selects these validators to propose new blocks. The chance of being chosen is tied to the size of their stake: the more Ether staked, the higher the probability of being selected to propose the block. Proposers receive transaction fees and block rewards as incentives. Validators are also responsible for voting on the validity of blocks proposed by other validators. However, they also face penalties, known as slashing, for actions like signing two different block proposals in the same slot or voting on two different attestations for the same target epoch, which creates conflicting states. The PoS mechanism significantly reduces energy consumption compared to PoW, because it does not require extensive computational power. Moreover, PoS tends to facilitate faster transaction validations and block creations, enhancing the overall performance and scalability of the network.","s":"Proof of Stake","u":"/lodestar/introduction","h":"#proof-of-stake","p":256},{"i":261,"t":"In an effort to promote client diversity there are several consensus beacon nodes being developed. Each is programmed in a different language and by a different team. The following is a list of the current open source consensus clients in alphabetical order: Grandine (Rust) Lighthouse (Rust) Lodestar (TypeScript) Nimbus (Nim) Prysm (Golang) Teku (Java)","s":"Consensus Clients","u":"/lodestar/introduction","h":"#consensus-clients","p":256},{"i":263,"t":"The Ethereum network's robustness is significantly enhanced by its client diversity, whereby multiple, independently-developed clients conforming to a common specification, facilitating seamless interaction and function equivalently across different nodes. This client variety not only fosters a rich ecosystem but also provides a buffer against network-wide issues stemming from bugs or malicious attacks targeted at particular clients. For instance, during the Shanghai denial-of-service attack in 2016, the diversified client structure enabled the network to withstand the assault, underscoring the resilience afforded by multiple client configurations. On the consensus layer, client distribution is crucial for maintaining network integrity and finality, ensuring transactions are irreversible once validated. A balanced spread of nodes across various clients help to mitigate risks associated with potential bugs or attacks that could, in extreme cases, derail the consensus process (liveness failure) or lead to incorrect chain splits (forking), thereby jeopardizing the network's stability and trust. While the data suggests a dominance of the Prysm and Lighthouse clients on the consensus layer, efforts are ongoing to promote a more even distribution among others clients. Encouraging the adoption of minority clients, bolstering their documentation, and leveraging real-time client diversity dashboards are among the strategies being employed to enhance client diversity, which in turn fortifies the Ethereum consensus layer against adversities and fosters a healthier decentralized network. The non-finality event of May 2023 on the Ethereum network posed a significant challenge. The issue arose from attestations for a fork, which necessitated state replays to validate the attestations, causing a notable strain on system resources. As a result, nodes fell out of sync, which deterred the accurate tracking of the actual head of the chain. This situation was exacerbated by a decline in attestations during specific epochs, further hampering the consensus mechanism from reaching finality. The Lodestar team noticed late attestations several weeks prior to the event and implemented a feature that attempted to address such challenges by not processing untimely attestations, and thus not requiring expensive state replays​. While it was done for slightly different reasons, the result was the same. Lodestar was able to follow the chain correctly and helped to stabilize the network. This example underscored the importance of client diversity and network resilience against potential forks and replay attacks. These are considered realistic threats, especially in the context of system complexity like in Ethereum's consensus mechanism.","s":"Why Client Diversity?","u":"/lodestar/introduction","h":"#why-client-diversity","p":256},{"i":265,"t":"Ethereum Docs Upgrading Ethereum by Ben Edgington Ethereum Book by Andreas M. Antonopoulos and Gavin Wood Ethereum Consensus Specification Casper the Friendly Finality Gadget by Vitalik Buterin and Virgil Griffith LMD Ghost by protolambda","s":"Ethereum Reading List","u":"/lodestar/introduction","h":"#ethereum-reading-list","p":256},{"i":268,"t":"Ethereum light clients provide a pathway for users to interact with the Ethereum blockchain in a trust-minimized manner, comparable to the level of trust required when engaging with a third-party provider like Infura or EtherScan. Not that those platforms are bad, but trust in any centralized provider goes against the ethos of blockchain. Light clients are a way that low-power devices, like cell phones, can do self validation of transactions and dApp state. Unlike full nodes, light clients do not download and store the entire blockchain. Instead, they download only the headers of each block and employ Merkle proofs to verify transactions. This enables a quick synchronization with the network and access the latest information without using significant system resources​. This streamlined approach to accessing Ethereum is crucial, especially in scenarios where full-scale network participation is infeasible or undesired. The evolution of light clients is emblematic of the broader trajectory of Ethereum towards becoming more accessible and resource-efficient, making blockchain technology more inclusive and adaptable to a wide array of use cases and environments. The Altair hard fork introduced sync committees to allow light-clients to synchronize to the network.","s":"Lodestar Light Client","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"","p":267},{"i":270,"t":"This package is part of ChainSafe's Lodestar project","s":"Prerequisites","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#prerequisites","p":267},{"i":272,"t":"Access to an beacon node that supports the light client specification is necessary. The client must support the following routes from the consensus API spec: GET /eth/v1/beacon/light_client/updates GET /eth/v1/beacon/light_client/optimistic_update GET /eth/v1/beacon/light_client/finality_update GET /eth/v1/beacon/light_client/bootstrap/{block_root} System requirements are quite low so its possible to run a light client in the browser as part of a website. There are a few examples of this on github that you can use as reference, our prover being one of them. You can find more information about the light-client protocol in the specification.","s":"Requirements for Running a Light-Client","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#requirements-for-running-a-light-client","p":267},{"i":274,"t":"Follow the installation guide to install Lodestar. Quickly try out the whole stack by starting a local testnet.","s":"Getting started","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#getting-started","p":267},{"i":276,"t":"It is possible to start up the light-client as a standalone process. lodestar lightclient \\ --network sepolia \\ --beaconApiUrl https://lodestar-sepolia.chainsafe.io \\ --checkpointRoot \"0xccaff4b99986a7b05e06738f1828a32e40799b277fd9f9ff069be55341fe0229\"","s":"Light-Client CLI Example","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#light-client-cli-example","p":267},{"i":278,"t":"For this example we will assume there is a running beacon node at https://lodestar-sepolia.chainsafe.io import {Lightclient, LightclientEvent} from \"@lodestar/light-client\"; import {LightClientRestTransport} from \"@lodestar/light-client/transport\"; import { getFinalizedSyncCheckpoint, getGenesisData, getConsoleLogger, getApiFromUrl, getChainForkConfigFromNetwork, } from \"@lodestar/light-client/utils\"; const config = getChainForkConfigFromNetwork(\"sepolia\"); const logger = getConsoleLogger({logDebug: Boolean(process.env.DEBUG)}); const api = getApiFromUrl(\"https://lodestar-sepolia.chainsafe.io\", \"sepolia\"); const lightclient = await Lightclient.initializeFromCheckpointRoot({ config, logger, transport: new LightClientRestTransport(api), genesisData: await getGenesisData(api), checkpointRoot: await getFinalizedSyncCheckpoint(api), opts: { allowForcedUpdates: true, updateHeadersOnForcedUpdate: true, }, }); // Wait for the lightclient to start await lightclient.start(); logger.info(\"Lightclient synced\"); lightclient.emitter.on(LightclientEvent.lightClientFinalityHeader, async (finalityUpdate) => { logger.info(\"Received finality update\", {slot: finalityUpdate.beacon.slot}); }); lightclient.emitter.on(LightclientEvent.lightClientOptimisticHeader, async (optimisticUpdate) => { logger.info(\"Received optimistic update\", {slot: optimisticUpdate.beacon.slot}); });","s":"Light-Client Programmatic Example","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#light-client-programmatic-example","p":267},{"i":280,"t":"If you want to use Lightclient in browser and facing some issues in building it with bundlers like webpack, vite. We suggest to use our distribution build. The support for single distribution build is started from 1.20.0 version. Directly link the dist build with the **Typescript support** The web bundle comes with the types support. Unfortunately due to following [issue](https://github.com/microsoft/rushstack/issues/1128#issuecomment-2066257538) we can't bundle all types. A workaround would be to add `@chainsafe/as-sha256` as a devDependency to your project.","s":"Browser Integration","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#browser-integration","p":267},{"i":282,"t":"Read our contribution documentation, submit an issue or talk to us on our discord!","s":"Contributors","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#contributors","p":267},{"i":284,"t":"Apache-2.0 ChainSafe Systems","s":"License","u":"/lodestar/libraries/lightclient-prover/lightclient","h":"#license","p":267},{"i":286,"t":"Run lightclient","s":"lightclient CLI Command","u":"/lodestar/libraries/lightclient-prover/lightclient-cli","h":"","p":285},{"i":288,"t":"Run lightclient with holesky network ./lodestar lightclient --network holesky","s":"Examples","u":"/lodestar/libraries/lightclient-prover/lightclient-cli","h":"#examples","p":285},{"i":290,"t":"--dataDir​ Lodestar root data directory type: string --network​ Name of the Ethereum Consensus chain network to join type: string choices: \"mainnet\", \"gnosis\", \"sepolia\", \"holesky\", \"chiado\", \"ephemery\", \"mekong\", \"dev\" default: \"mainnet\" --paramsFile​ Network configuration file type: string --rcConfig​ RC file to supplement command line args, accepted formats: .yml, .yaml, .json type: string --terminal-total-difficulty-override​ Terminal PoW block TTD override type: string --terminal-block-hash-override​ Terminal PoW block hash override type: string --terminal-block-hash-epoch-override​ Terminal PoW block hash override activation epoch type: string --logLevel​ Logging verbosity level for emitting logs to terminal type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"info\" --logFile​ Path to output all logs to a persistent log file, use 'none' to disable type: string --logFileLevel​ Logging verbosity level for emitting logs to file type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"debug\" --logFileDailyRotate​ Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation type: number default: 5 --beaconApiUrl​ Url to a beacon node that support lightclient API required: true type: string --checkpointRoot​ Checkpoint root hex string to sync the lightclient from, start with 0x required: true type: string","s":"lightclient Options","u":"/lodestar/libraries/lightclient-prover/lightclient-cli","h":"#lightclient-options","p":285},{"i":292,"t":"This package is part of ChainSafe's Lodestar project A set of tools allowing to verify EL client JSON-RPC calls.","s":"Lodestar Prover","u":"/lodestar/libraries/lightclient-prover/prover","h":"","p":291},{"i":294,"t":"You can use the @lodestar/prover in two ways, as a Web3 Provider and as proxy. For prover use case see below example. import Web3 from \"web3\"; import {createVerifiedExecutionProvider, LCTransport} from \"@lodestar/prover\"; const httpProvider = new Web3.providers.HttpProvider(\"https://lodestar-sepoliarpc.chainsafe.io\"); const {provider, proofProvider} = createVerifiedExecutionProvider(httpProvider, { transport: LCTransport.Rest, urls: [\"https://lodestar-sepolia.chainsafe.io\"], network: \"sepolia\", wsCheckpoint: \"trusted-checkpoint\", }); const web3 = new Web3(provider); const address = \"0xf97e180c050e5Ab072211Ad2C213Eb5AEE4DF134\"; const balance = await web3.eth.getBalance(address, \"latest\"); console.log({balance, address}); In this scenario the actual provider is mutated to handle the RPC requests and verify those. So here if you use provider or httpProvider both are the same objects. This behavior is useful when you already have an application and usage of any provider across the code space and don't want to change the code. So you mutate the provider during startup. For some scenarios when you don't want to mutate the provider you can pass an option mutateProvider as false. In this scenario the object httpProvider is not mutated and you get a new object provider. This is useful when your provider object does not allow mutation, e.g. Metamask provider accessible through window.ethereum. If not provided mutateProvider is considered as true by default. In coming releases we will switch its default behavior to false. import Web3 from \"web3\"; import {createVerifiedExecutionProvider, LCTransport} from \"@lodestar/prover\"; const httpProvider = new Web3.providers.HttpProvider(\"https://lodestar-sepoliarpc.chainsafe.io\"); const {provider, proofProvider} = createVerifiedExecutionProvider(httpProvider, { transport: LCTransport.Rest, urls: [\"https://lodestar-sepolia.chainsafe.io\"], network: \"sepolia\", wsCheckpoint: \"trusted-checkpoint\", mutateProvider: false, }); const web3 = new Web3(provider); const address = \"0xf97e180c050e5Ab072211Ad2C213Eb5AEE4DF134\"; const balance = await web3.eth.getBalance(address, \"latest\"); console.log({balance, address}); You can also invoke the package as binary. npm i -g @lodestar/prover lodestar-prover proxy \\ --network sepolia \\ --executionRpcUrl https://lodestar-sepoliarpc.chainsafe.io \\ --beaconUrls https://lodestar-sepolia.chainsafe.io \\ --port 8080","s":"Usage","u":"/lodestar/libraries/lightclient-prover/prover","h":"#usage","p":291},{"i":296,"t":"There can be different implementations of the web3 providers and each can handle the RPC request differently. We call those different provider types. We had provided builtin support for common providers e.g. web3.js, ethers or any eip1193 compatible providers. We inspect given provider instance at runtime to detect the correct provider type. If your project is using some provider type which is not among above list, you have the option to register a custom provider type with the createVerifiedExecutionProvider with the option providerTypes which will be an array of your supported provider types. Your custom provider types will have higher priority than default provider types. Please see existing provide types implementations to know how to implement your own if needed.","s":"How to detect a web3 provider","u":"/lodestar/libraries/lightclient-prover/prover","h":"#how-to-detect-a-web3-provider","p":291},{"i":298,"t":"✅ - Completed ⌛ - Todo ➡️ - Request will be forward to EL without any intermediary manipulations. You can limit these by providing unverifiedWhitelist option for provider or --unverifiedWhitelist from the cli. If not set then all methods will be forwarded. ❇️ - Always forwarded to EL. Group Method Status Version Block eth_getBlockByHash ✅ v0 eth_getBlockByNumber ✅ v0 eth_getBlockTransactionCountByHash ⌛ v2 eth_getBlockTransactionCountByNumber ⌛ v2 eth_getUncleCountByBlockHash ⌛ v2 eth_getUncleCountByBlockNumber ⌛ v2 Chain/Network eth_chainId ➡️ eth_syncing ⌛ v1 eth_coinbase ⌛ v2 eth_accounts ➡️ eth_blockNumber ➡️ Call and Estimate eth_call ✅ v0 eth_estimateGas ✅ v0 eth_createAccessList ⌛ v2 eth_gasPrice ⌛ v1 eth_maxPriorityFeePerGas ⌛ v1 eth_feeHistory ⌛ v2 Filters eth_newFilter ⌛ v2 eth_newBlockFilter ⌛ v2 eth_newPendingTransactionFilter ⌛ v2 eth_uninstallFilter ⌛ v2 eth_getFilterChanges ⌛ v2 eth_getFilterLogs ⌛ v2 eth_getLogs ⌛ v1 Mining eth_mining ➡️ eth_hashrate ➡️ eth_getWork ➡️ eth_submitWork ➡️ eth_submitHashrate ➡️ Signing eth_sign ➡️ eth_signTransaction ➡️ State eth_getBalance ✅ v0 eth_getStorageAt ⌛ v1 eth_getTransactionCount ⌛ v2 eth_getCode ✅ v0 eth_getProof ❇️ v0 Transactions eth_sendTransaction ➡️ eth_sendRawTransaction ➡️ eth_getTransactionByHash ⌛ v2 eth_getTransactionByBlockHashAndIndex ⌛ v2 eth_getTransactionByBlockNumberAndIndex ⌛ v2 eth_getTransactionReceipt ⌛ v2 Events eth_subscribe ❇️ v0 eth_unsubscribe ❇️ v0","s":"Supported Web3 Methods","u":"/lodestar/libraries/lightclient-prover/prover","h":"#supported-web3-methods","p":291},{"i":300,"t":"Currently does not support batch requests.","s":"Non-supported features","u":"/lodestar/libraries/lightclient-prover/prover","h":"#non-supported-features","p":291},{"i":302,"t":"To use this prover the ethereum provider must support the eth_getProof method. Unfortunately, Infura does not currently support this endpoint. As an alternative, we suggest using Alchemy.","s":"Warnings","u":"/lodestar/libraries/lightclient-prover/prover","h":"#warnings","p":291},{"i":304,"t":"NodeJS (LTS) Yarn","s":"Prerequisites","u":"/lodestar/libraries/lightclient-prover/prover","h":"#prerequisites","p":291},{"i":306,"t":"You will need to go over the specification. You will also need to have a basic understanding of lightclient.","s":"What you need","u":"/lodestar/libraries/lightclient-prover/prover","h":"#what-you-need","p":291},{"i":308,"t":"Follow the installation guide to install Lodestar. Quickly try out the whole stack by starting a local testnet.","s":"Getting started","u":"/lodestar/libraries/lightclient-prover/prover","h":"#getting-started","p":291},{"i":310,"t":"Read our contributors document, submit an issue or talk to us on our discord!","s":"Contributors","u":"/lodestar/libraries/lightclient-prover/prover","h":"#contributors","p":291},{"i":312,"t":"Apache-2.0 ChainSafe Systems","s":"License","u":"/lodestar/libraries/lightclient-prover/prover","h":"#license","p":291},{"i":314,"t":"Welcome! This page has been moved. Please checkout our new docs layout from the Table of Contents! Below are some helpful links to the CLI pages that were split out from this original document Beacon Node CLI Validator CLI Bootnode CLI Light Client CLI Dev CLI","s":"Page relocated","u":"/lodestar/reference/cli","h":"","p":313},{"i":316,"t":"Run a beacon chain node","s":"beacon CLI Command","u":"/lodestar/run/beacon-management/beacon-cli","h":"","p":315},{"i":318,"t":"Run a beacon chain node and connect to the holesky testnet ./lodestar beacon --network holesky","s":"Examples","u":"/lodestar/run/beacon-management/beacon-cli","h":"#examples","p":315},{"i":320,"t":"--dataDir​ Lodestar root data directory type: string --network​ Name of the Ethereum Consensus chain network to join type: string choices: \"mainnet\", \"gnosis\", \"sepolia\", \"holesky\", \"chiado\", \"ephemery\", \"mekong\", \"dev\" default: \"mainnet\" --paramsFile​ Network configuration file type: string --rcConfig​ RC file to supplement command line args, accepted formats: .yml, .yaml, .json type: string --terminal-total-difficulty-override​ Terminal PoW block TTD override type: string --terminal-block-hash-override​ Terminal PoW block hash override type: string --terminal-block-hash-epoch-override​ Terminal PoW block hash override activation epoch type: string --genesisStateFile​ Path or URL to download a genesis state file in ssz-encoded format type: string --checkpointSyncUrl​ Server url hosting Beacon Node APIs to fetch weak subjectivity state. Fetch latest finalized by default, else set --wssCheckpoint type: string --checkpointState​ Set a checkpoint state to start syncing from type: string --wssCheckpoint​ Start beacon node off a state at the provided weak subjectivity checkpoint, to be supplied in : format. For example, 0x1234:100 will sync and start off from the weak subjectivity state at checkpoint of epoch 100 with block root 0x1234. type: string --forceCheckpointSync​ Force syncing from checkpoint state even if db state is within weak subjectivity period. This helps to avoid long sync times after node has been offline for a while. type: boolean --ignoreWeakSubjectivityCheck​ Ignore the checkpoint sync state failing the weak subjectivity check. This is relevant in testnets where the weak subjectivity period is too small for even few epochs of non finalization causing last finalized to be out of range. This flag is not recommended for mainnet use. type: boolean --persistNetworkIdentity​ Whether to reuse the same peer-id across restarts type: boolean --private​ Do not send implementation details over p2p identify protocol and in builder, execution engine and eth1 requests type: boolean --validatorMonitorLogs​ Log validator monitor events as info. This requires metrics to be enabled. type: boolean --disableLightClientServer​ Disable light client server. type: boolean --logLevel​ Logging verbosity level for emitting logs to terminal type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"info\" --logFile​ Path to output all logs to a persistent log file, use 'none' to disable type: string --logFileLevel​ Logging verbosity level for emitting logs to file type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"debug\" --logFileDailyRotate​ Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation type: number default: 5 --rest​ Enable/disable HTTP API type: boolean default: true --rest.namespace​ Pick namespaces to expose for HTTP API. Set to '*' to enable all namespaces type: string[] choices: \"beacon\", \"config\", \"debug\", \"events\", \"lightclient\", \"lodestar\", \"node\", \"proof\", \"validator\", \"*\" default: [\"beacon\",\"config\",\"debug\",\"events\",\"node\",\"validator\",\"lightclient\"] --rest.cors​ Configures the Access-Control-Allow-Origin CORS header for HTTP API type: string default: \"*\" --rest.address​ Set host for HTTP API type: string default: \"127.0.0.1\" --rest.port​ Set port for HTTP API type: number default: 9596 --rest.swaggerUI​ Enable Swagger UI for API exploration at http://{address}:{port}/documentation type: boolean --suggestedFeeRecipient​ Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$) in case validator fails to update for a validator index before calling produceBlock. type: string default: \"0x0000000000000000000000000000000000000000\" --emitPayloadAttributes​ Flag to SSE emit execution payloadAttributes before every slot type: boolean default: false --chain.archiveBlobEpochs​ Number of epochs to retain finalized blobs (minimum of MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS) type: number --eth1​ Whether to follow the eth1 chain type: boolean default: true --eth1.providerUrls​ Urls to Eth1 node with enabled rpc. If not explicitly provided and execution endpoint provided via execution.urls, it will use execution.urls. Otherwise will try connecting on the specified default(s) type: string[] default: [ \"http://localhost:8545\" ] --execution.urls​ Urls to execution client engine API type: string[] default: [ \"http://localhost:8551\" ] --execution.timeout​ Timeout in milliseconds for execution engine API HTTP client type: number default: 12000 --execution.retries​ Number of retries when calling execution engine API type: number default: 2 --execution.retryDelay​ Delay time in milliseconds between retries when retrying calls to the execution engine API type: number default: 2000 --execution.engineMock​ Set the execution engine to mock mode (development only) type: boolean --jwtSecret​ File path to a shared hex-encoded jwt secret which will be used to generate and bundle HS256 encoded jwt tokens for authentication with the EL client's rpc server hosting engine apis. Secret to be exactly same as the one used by the corresponding EL client. type: string --jwtId​ An optional identifier to be set in the id field of the claims included in jwt tokens used for authentication with EL client's rpc server hosting engine apis type: string --builder​ Enable builder interface type: boolean --builder.url​ Url hosting the builder API type: string default: \"http://localhost:8661\" --builder.timeout​ Timeout in milliseconds for builder API HTTP client type: number default: 12000 --builder.faultInspectionWindow​ Window to inspect missed slots for enabling/disabling builder circuit breaker type: number --builder.allowedFaults​ Number of missed slots allowed in the faultInspectionWindow for builder circuit type: number --metrics​ Enable the Prometheus metrics HTTP server type: boolean --metrics.port​ Listen TCP port for the Prometheus metrics HTTP server type: number default: 8008 --metrics.address​ Listen address for the Prometheus metrics HTTP server type: string default: \"127.0.0.1\" --monitoring.endpoint​ Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in) type: string --monitoring.interval​ Interval in milliseconds between sending client stats to the remote service type: number default: 60000 --discv5​ Enable discv5 type: boolean default: true --listenAddress​ The IPv4 address to listen for p2p UDP and TCP connections type: string default: \"0.0.0.0\" --port​ The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort flag. type: number default: 9000 --discoveryPort​ The UDP port that discovery will listen on. Defaults to port type: number default: port --listenAddress6​ The IPv6 address to listen for p2p UDP and TCP connections type: string --port6​ The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort6 flag. type: number default: 9090 --discoveryPort6​ The UDP port that discovery will listen on. Defaults to port6 type: number default: port6 --bootnodes​ Bootnodes for discv5 discovery type: string[] default: [ \"[]\" ] --targetPeers​ The target connected peers. Above this number peers will be disconnected type: number default: 100 --subscribeAllSubnets​ Subscribe to all subnets regardless of validator count type: boolean default: false --disablePeerScoring​ Disable peer scoring, used for testing on devnets type: boolean default: false --mdns​ Enable mdns local peer discovery type: boolean default: false --enr.ip​ Override ENR IP entry type: string --enr.tcp​ Override ENR TCP entry type: number --enr.udp​ Override ENR UDP entry type: number --enr.ip6​ Override ENR IPv6 entry type: string --enr.tcp6​ Override ENR (IPv6-specific) TCP entry type: number --enr.udp6​ Override ENR (IPv6-specific) UDP entry type: number --nat​ Allow configuration of non-local addresses type: boolean","s":"beacon Options","u":"/lodestar/run/beacon-management/beacon-cli","h":"#beacon-options","p":315},{"i":322,"t":"There are two components for an ethereum node database, the execution client and the beacon node. Both need to hold data for a full node to work correctly. In particular the execution node holds state such as wallet information and smart contract code. It also holds the execution blocks with the transaction record. The beacon node is responsible for holding beacon node blocks and state. The beacon state is responsible primarily for the validator information. There are several processes that need to store data for Lodestar. These data sets can grow quite large over time so it is important to understand how to manage them so the host machine can support operations effectively. $executionDir # this changes depending on the execution client └── execution-db $dataDir # specified by --dataDir on the beacon command ├── .log_rotate_audit.json ├── beacon.log # there can be many of these ├── enr ├── peer-id.json ├── chain-db # default if --dbDir not specified │ └── (db files) └── peerstore # default if --peerStoreDir not specified └── (peerstore files) $dataDir # specified by --dataDir on the validator command ├── .log_rotate_audit.json ├── validator.log # there can be many of these ├── validator-db # default if --validatorsDbDir not specified │ └── (db files) ├── proposerConfigs # default if --proposerDir not specified │ └── (config files) ├── cache # default if --cacheDir not specified │ └── (cache files) ├── secrets # default if --secretsDir not specified │ ├── 0x8e41b969493454318c27ec6fac90645769331c07ebc8db5037... │ └── 0xa329f988c16993768299643d918a2694892c012765d896a16f... ├── keystores # default if --keystoresDir not specified │ ├── 0x8e41b969493454318c27ec6fac90645769331c07ebc8db5037... │ │ └── voting-keystore.json │ └── 0xa329f988c16993768299643d918a2694892c012765d896a16f... │ └── voting-keystore.json └── remoteKeys # default if --remoteKeysDir not specified └── 0xa329f988c16993768299643d918a2694892c012765d896a16f.json","s":"Data Retention","u":"/lodestar/run/beacon-management/data-retention","h":"","p":321},{"i":324,"t":"Configuring your node to store and prune data is key to success. On average you can expect for the database to grow by the follow amounts: execution-db grows at 2-30GB per week chain-db grows at 1GB per month validator-db grows at less than 2MB per year, per key (2000 keys = 4GB per year) keystores, keystore-cache and peerstore are not usually very large and are not expected to grow much during normal operation. Logs can also become quite large so please check out the section on log management for more information. There is really only one flag that is needed to manage the data for Lodestar, --dataDir. Other than that handling log management is really the heart of the data management story. Beacon node data is what it is. Depending on the execution client that is chosen, there may be flags to help with data storage growth but that is outside the scope of this document.","s":"Data Management","u":"/lodestar/run/beacon-management/data-retention","h":"#data-management","p":321},{"i":326,"t":"Running a Lodestar node on mainnet or a testnet only requires basic familiarity with the terminal. The following instructions are required to configure and run the Lodestar beacon node. This page assumes you have already setup an Ethereum execution client.","s":"Beacon Management","u":"/lodestar/run/beacon-management/starting-a-node","h":"","p":325},{"i":328,"t":"Make sure Lodestar is installed in your local environment, following the chosen Installation method. The following command should return a non-error message. ./lodestar --help For a complete list of beacon node CLI commands and options, see the beacon CLI Command section. To select a known testnet or mainnet, use the --network flag. The option mainnet is selected by default, and a list of available networks is listed with the --help flag. Setting the --network flag will conveniently configure the beacon node for the selected network. For power users, any configuration option should be able to be overridden.","s":"Connect to Mainnet or a Public Testnet","u":"/lodestar/run/beacon-management/starting-a-node","h":"#connect-to-mainnet-or-a-public-testnet","p":325},{"i":330,"t":"Ethereum requires a secure authentication with the Engine API for connecting to your chosen execution client on port 8551.","s":"Configure the Lodestar JWT Authentication Token","u":"/lodestar/run/beacon-management/starting-a-node","h":"#configure-the-lodestar-jwt-authentication-token","p":325},{"i":332,"t":"You must generate a secret 32-byte (64 characters) hexadecimal string that will be used to authenticate with an execution node. You can use the following command in most terminals to generate a random secret: openssl rand -hex 32. Or you can use an online generator. Save this secret key into a text file and note where you store this file.","s":"Generate a Secret Key","u":"/lodestar/run/beacon-management/starting-a-node","h":"#generate-a-secret-key","p":325},{"i":334,"t":"When starting up a Lodestar beacon node in any configuration, ensure you add the --jwtSecret $JWT_SECRET_PATH flag to point to the saved secret key file.","s":"Configure Lodestar to Locate the JWT Secret","u":"/lodestar/run/beacon-management/starting-a-node","h":"#configure-lodestar-to-locate-the-jwt-secret","p":325},{"i":336,"t":"For Go Ethereum: Use the --authrpc.jwtsecret /path/to/jwtsecret.hex flag to configure the secret. Use their documentation here. For Nethermind: Use the --JsonRpc.JwtSecretFile /path/to/jwtsecret.hex flag to configure the secret. Use their documentation here. For Besu: Use the --engine-jwt-secret=/path/to/jwtsecret.hex flag to configure the secret. Use their documentation here. For Erigon: Use the --authrpc.jwtsecret /path/to/jwtsecret.hex flag to configure the secret. Use their documentation here. For Reth: Use the --authrpc.jwtsecret /path/to/jwtsecret.hex flag to configure the secret. Use their documentation here.","s":"Configure the Execution Client with the JWT Secret","u":"/lodestar/run/beacon-management/starting-a-node","h":"#configure-the-execution-client-with-the-jwt-secret","p":325},{"i":338,"t":"To start the Lodestar beacon, run the command: ./lodestar beacon --network $NETWORK_NAME --jwtSecret $JWT_SECRET_PATH This will assume an execution client is available at the default location of https://localhost:8545. If the execution clients are available at different locations, use the flag --execution.urls to specify these locations in the command: ./lodestar beacon --network $NETWORK_NAME --jwtSecret $JWT_SECRET_PATH --execution.urls $EL_URL1 $EL_URL2 Your initial logs should confirm that the node has started. Jul-31 13:35:27.967[] info: Lodestar network=mainnet, version=v1.21.0/ff35faa, commit=ff35faae4ad1697b86d708a0367a95a71648ab6e Jul-31 13:35:28.344[] info: Connected to LevelDB database path=/data/lodestar/chain-db Jul-31 13:35:49.828[] info: Initializing beacon from a valid db state slot=9633504, epoch=301047, stateRoot=0xfa2845a6877b98555906a1654941c97d9c05bdd41e61cc0870a967dc9030b156, isWithinWeakSubjectivityPeriod=true Jul-31 13:35:51.955[chain] info: Historical state worker started Jul-31 13:35:51.969[eth1] info: Eth1 provider urls=http://localhost:8551 Jul-31 13:35:51.975[execution] info: Execution client urls=http://localhost:8551 Jul-31 13:35:51.977[] info: External builder url=http://localhost:8661 Jul-31 13:36:21.128[network] info: running libp2p instance in worker thread Jul-31 13:36:21.727[network] info: libp2p worker started peer=15Uiu2HAmACcmCEXcgt3zCtJL2rqJZ2Mvdjh6U6fe26HgD2FoNRwW Jul-31 13:36:27.677[network] info: discv5 worker started peerId=16Uiu2HAmACcmCEXcgt3zCtJL2rqJZ2Mvdjh6U6fe26HgD2FoNRwW, initialENR=enr:-IO4QHGTUd1Zg8LAhUAioOz_ySTKoJLIOa6zltSP_AvvhTFVYw6M6YB35IxsiKxQG7nUgCpUB5SIsNxMntCNlTK9sMEBgmlkgnY0iXNlY3AyNTZrMaEC24cdmzuGnWqSwF-8Hw2gbkAZDzMWW3LsHJfp_kDhy-GDdGNwgiMog3VkcIIeWH, bindAddr4=/ip4/0.0.0.0/udp/9000 Jul-31 13:36:28.134[network] info: PeerId 16Uiu2HAmACcmCEXcgt3zCtJL2rqJZ2Mvdjh6U6fe26HgD2FoNRwW, Multiaddrs /ip4/0.0.0.0/tcp/9000 Jul-31 13:36:28.137[metrics] info: Started metrics HTTP server address=http://127.0.0.1:8008 Jul-31 13:36:28.256[rest] info: Started REST API server address=http://0.0.0.0:9596 Jul-31 13:36:28.257[] info: Searching peers - peers: 0 - slot: 9634080 - head: (slot -576) 0x9d88…d02a - exec-block: syncing(20426302 0xcec4…) - finalized: 0x7feb…c130:301045 Jul-31 13:36:36.461[execution] info: Execution client is synced oldState=ONLINE, newState=SYNCED Jul-31 13:36:53.019[] info: Syncing - 3.7 minutes left - 2.32 slots/s - slot: 9634082 - head: (slot -515) 0x792f…f8aa - exec-block: valid(20426365 0x58b1…) - finalized: 0x9d88…d02a:301047 - peers: 11 Jul-31 13:38:53.168[] info: Syncing - 11 seconds left - 4.01 slots/s - slot: 9634092 - head: (slot -44) 0x7491…f63e - exec-block: valid(20426841 0xd4b2…) - finalized: 0x1e00…6e6b:301062 - peers: 59 Jul-31 13:38:58.051[network] info: Subscribed gossip core topics Jul-31 13:38:58.132[sync] info: Subscribed gossip core topics Jul-31 13:39:05.001[] info: Synced - slot: 9634093 - head: 0x35de…1f0e - exec-block: valid(20426886 0x10ff…) - finalized: 0x88f8…5375:301063 - peers: 70 Jul-31 13:39:17.000[] info: Synced - slot: 9634094 - head: 0x7844…3b3e - exec-block: valid(20426887 0x67d1…) - finalized: 0x88f8…5375:301063 - peers: 69 Jul-31 13:39:29.000[] info: Synced - slot: 9634095 - head: 0x5516…ba12 - exec-block: valid(20426888 0x4ceb…) - finalized: 0x88f8…5375:301063 - peers: 74 info If your node is stuck with Searching peers, review your network configuration to make sure your ports are open and forwarded to your host machine. By default, Lodestar stores all configuration and chain data at the path $XDG_DATA_HOME/lodestar/$NETWORK_NAME. A young testnet should take a few hours to sync. If you see multiple or consistent errors in the logs, please open a Github issue or reach out to us in Discord. By reporting anomalies, you are helping to accelerate the progress of Ethereum consensus and we thank you for contributing! warning It is dangerous to expose your Beacon or Execution APIs publicly as there is no default authentication mechanism provided. Ensure your beacon node host is not exposing ports 8545 or 9596 outside of your internal network.","s":"Run the Beacon Node","u":"/lodestar/run/beacon-management/starting-a-node","h":"#run-the-beacon-node","p":325},{"i":340,"t":"If you are starting your node from a blank database, or from a last saved database state that is too old (outside of the weak subjectivity period), your node will be susceptible to \"long range attacks.\" Ethereum's solution to this attack is via something called weak subjectivity. Read Vitalik's illuminating post explaining weak subjectivity.. If you have a synced beacon node available (e.g., your friend's node or a trusted infrastructure provider) to serve a trusted checkpoint you can rely on, you can start syncing your beacon node from that available checkpoint with the flag --checkpointSyncUrl and passing in the URL of the checkpoint provider. This will allow your beacon node to sync within minutes rather than several days. The Ethereum community has maintained a set of public beacon chain checkpoints that serve these sync endpoints to the larger community. You can correlate the state root and the block root with more than one provider to verify the checkpoints being served follow the same canonical chain. Just supply these extra arguments to your beacon node command: --checkpointSyncUrl [--wssCheckpoint ] In case you really trust the --checkpointSyncUrl provider, then you may skip providing --wssCheckpoint, which will then result into your beacon node syncing and starting off the recently finalized state from the trusted URL. warning Please be aware that a malicious checkpoint sync server URL can put you on the wrong chain with a danger of you losing your funds by social engineering. If possible, validate your wssCheckpoint state from multiple places (e.g. different client distributions) or from other trusted sources. This will highly reduce the risk of starting off on a malicious chain. This list of public endpoints maintained by the Ethereum community may be used for reference. Still Taking Long to Sync?​ After your node has been offline for a while, it might be the case that it takes a long time to sync even though a --checkpointSyncUrl is specified. This is due to the fact that the last database state is still within the weak subjectivity period (~15 days on mainnet) which causes the node to sync from the database state instead of the checkpoint state. It is possible to force syncing from a checkpoint state by supplying the --forceCheckpointSync flag. This option is only recommended if it is absolutely necessary for the node to be synced right away to fulfill its duties as there is an inherent risk each time the state is obtained from an external source.","s":"Checkpoint Sync","u":"/lodestar/run/beacon-management/starting-a-node","h":"#checkpoint-sync","p":325},{"i":342,"t":"The Lodestar beacon sync log aims to provide information of utmost importance about the state of your node and be succinct at the same time. You may see the sync logs in the following format: [Sync status] - [ Slot info ] - [Head info] - [Execution block info] - [Finalized info] - [Peers info] See the following example of different kinds of sync log: Apr-20 15:24:08.034[] info: Searching peers - peers: 0 - slot: 6265018 - head: 6264018 0xed93…7b0a - exec-block: syncing(17088476 0x9649…) - finalized: 0xbf30…7e7c:195777 Apr-20 15:24:17.000[] info: Searching peers - peers: 0 - slot: 6265019 - head: 6264018 0xed93…7b0a - exec-block: syncing(17088476 0x9649…) - finalized: 0xbf30…7e7c:195777 Apr-20 15:13:41.298[] info: Syncing - 2.5 minutes left - 2.78 slots/s - slot: 6264966 - head: 6262966 0x5cec…f5b8 - exec-block: valid(17088105 0x6f74…) - finalized: 0x5cc0…3874:195764 - peers: 1 Apr-20 15:13:41.298[] info: Syncing - 2 minutes left - 2.78 slots/s - slot: 6264967 - head: 6263965 0x5cec…f5b8 - exec-block: valid(17088105 0x6f74…) - finalized: 0x5cc0…3874:195764 - peers: 1 Apr-20 15:13:53.151[] info: Syncing - 1.6 minutes left - 3.82 slots/s - slot: 6264967 - head: (slot -360) 0xe0cf…9f3c - exec-block: valid(17088167 0x2d6a…) - finalized: 0x8f3f…2f81:195766 - peers: 5 Apr-20 15:14:05.425[] info: Syncing - 1.1 minutes left - 4.33 slots/s - slot: 6264968 - head: (slot -297) 0x3655…1658 - exec-block: valid(17088231 0xdafd…) - finalized: 0x9475…425a:195769 - peers: 2 Apr-20 15:14:53.001[] info: Syncing - 9 seconds left - 5.00 slots/s - slot: 6264972 - head: (slot -45) 0x44e4…20a4 - exec-block: valid(17088475 0xca61…) - finalized: 0x9cbd…ba83:195776 - peers: 8 Apr-20 15:15:01.443[network] info: Subscribed gossip core topics Apr-20 15:15:01.446[sync] info: Subscribed gossip core topics Apr-20 15:15:05.000[] info: Synced - slot: 6264973 - head: 0x90ea…c655 - exec-block: valid(17088521 0xca9b…) - finalized: 0x6981…682f:195778 - peers: 6 Apr-20 15:15:17.003[] info: Synced - slot: 6264974 - head: 0x4f7e…0e3a - exec-block: valid(17088522 0x08b1…) - finalized: 0x6981…682f:195778 - peers: 6 Apr-20 15:15:41.001[] info: Synced - slot: 6264976 - head: (slot -1) 0x17c6…71a7 - exec-block: valid(17088524 0x5bc1…) - finalized: 0x6981…682f:195778 - peers: 8 Apr-20 15:15:53.001[] info: Synced - slot: 6264977 - head: (slot -2) 0x17c6…71a7 - exec-block: valid(17088524 0x5bc1…) - finalized: 0x6981…682f:195778 - peers: 8 Apr-20 15:16:05.000[] info: Synced - slot: 6264978 - head: 0xc9fd…28c5 - exec-block: valid(17088526 0xb5bf…) - finalized: 0x6981…682f:195778 - peers: 8 Apr-20 15:16:17.017[] info: Synced - slot: 6264979 - head: 0xde91…d4cb - exec-block: valid(17088527 0xa488…) - finalized: 0x6981…682f:195778 - peers: 7 Sync status: This status takes three values: Synced: The node is currently synced Syncing The node is currently in the syncing process Searching: The node is is still looking for viable peers from where it can download blocks Slot (clock) info: The current ongoing slot as per the chain genesis Head info: Specifies where the local beacon chain head hash is. In case it's far behind the Slot (clock), then it independently shows the head slot. Else, it will show how far behind the node is from the Slot (if the difference is < 1000) Execution block info: Provides the information about the execution block head, whether its confirmed valid or still syncing to it. In parenthesis, it shows the current execution block number and a short hash for easy identification Finalized info: Shows the current local finalized checkpoint in the format of [checkpoint root]:[checkpoint epoch]. For example: 0xd7ba…8386:189636 shows a checkpoint root of 0xd7ba…8386 in epoch 189636 Peer info: Current total number of outbound and inbound peers For more insight into how a Lodestar beacon node is functioning, you may setup Lodestar metrics with the --metrics flag and use the prepared Grafana dashboards that are found in the repository. Check out our section on Prometheus and Grafana for more details.","s":"Sync Log Guide","u":"/lodestar/run/beacon-management/starting-a-node","h":"#sync-log-guide","p":325},{"i":344,"t":"MEV is a term that refers to the bundling of transactions in one particular order to extract (mostly) arbitrage opportunities on the dApps and decentralized exchanges. And the ones who gets to include these execution payloads (miners before the merge, validators after the merge) in the canonical chain get paid a per-block reward which essentially should be higher than the normal payload inclusion reward (including transactions tips). Currently these happen with miners running forked versions of their favorite execution client, integrating with these \"builders\" but in the post-merge world they get a more native and standard integration with the CL. This is what we in CL land refer to as Builder Api.","s":"MEV & Merge","u":"/lodestar/run/beacon-management/mev-and-builder-integration","h":"","p":343},{"i":346,"t":"Lodestar offers builder integration through the spec-ed builder API. This sits in parallel with the execution engine so when enabled, lodestar validator run both flows in parallel when its time to propose for a validator key and currently (naively) picks the builder block in preference to execution if a builder block is fetched (else just proceeds with the execution block).","s":"Lodestar and Builder API","u":"/lodestar/run/beacon-management/mev-and-builder-integration","h":"#lodestar-and-builder-api","p":343},{"i":348,"t":"All you have to do is: Provide lodestar beacon node with a Builder endpoint (which corresponds to the network you are running) via these additional flags: --builder --builder.url Run lodestar validator client with these additional flags --builder --suggestedFeeRecipient There are some more builder flags available in lodestar cli (for both beacon and validator) which you may inspect and use. Even though its possible to directly hook lodestar with an external Builder/Relay, its recommended to interface it with the MEV world via local MEV-BOOST multiplexer which can integrate multiple builder/relays for you and provide some payload verification on top, as currently Lodestar assumes this to be a trusted endpoint.","s":"Configure Lodestar setup for MEV","u":"/lodestar/run/beacon-management/mev-and-builder-integration","h":"#configure-lodestar-setup-for-mev","p":343},{"i":350,"t":"Syncing an Ethereum node involves obtaining a copy of the blockchain data from other peers in the network to reach a consistent state. This process is crucial for new nodes or nodes that have been offline and need to catch up with the network's current state. Syncing can be performed for both the execution layer and the beacon chain, although the focus here will be primarily on the beacon chain. Lodestar allows for several methods of syncing however the recommended method is checkpoint sync as it is the fastest and least resource intensive. It is generally a good idea to sync via a --checkpointSyncUrl. If starting at a specific point is necessary specify the --checkpointState that should be where the sync begins.","s":"Syncing","u":"/lodestar/run/beacon-management/syncing","h":"","p":349},{"i":352,"t":"Weak subjectivity is a concept specific to Proof of Stake (PoS) systems, addressing how new nodes can safely join the network and synchronize with the correct blockchain history. Unlike in Proof of Work (PoW) systems, where a node can trust the longest chain due to the significant computational effort required to forge it, PoS systems present different challenges. In PoS, the cost of creating or altering blockchain history is lower, as it is not based on computational work but on the stake held by validators. This difference raises the possibility that an attacker, if possessing sufficient stake, could feasibly create a misleading version of the blockchain history. The concept of weak subjectivity becomes particularly crucial in two scenarios: when new nodes join the network and when existing nodes reconnect after a significant period of being offline. During these times, the 'weak subjectivity period' defines a time frame within which a client, upon rejoining, can reliably process blocks to reach the consensus chain head. This approach is essential for mitigating the risks associated with long-range attacks, which could occur if nodes relied solely on the longest chain principle without any initial trust in a specific network state. To counter these risks, weak subjectivity requires new nodes to obtain a recent, trusted state of the blockchain from a reliable source upon joining the network. This state includes vital information about the current set of validators and their stakes. Starting from this trusted state helps new nodes avoid being misled by false histories, as any attempt to rewrite history beyond this point would require an unrealistically large portion of the total stake.","s":"Weak Subjectivity","u":"/lodestar/run/beacon-management/syncing","h":"#weak-subjectivity","p":349},{"i":355,"t":"Checkpoint sync, also known as state sync, allows a node to sync to a specific state checkpoint without having to process all historical data leading up to that point. In the context of a beacon node, this involves syncing to a recent finalized checkpoint, allowing the node to quickly join the network and participate in consensus activities. This is especially beneficial for new nodes or nodes that have been offline for a considerable duration.","s":"Checkpoint Sync","u":"/lodestar/run/beacon-management/syncing","h":"#checkpoint-sync","p":349},{"i":357,"t":"Historical sync involves processing all blocks from the genesis block or from a specified starting point to the current block. This is the most comprehensive sync method but also the most resource and time-intensive. For beacon nodes, historical sync is crucial for nodes that aim to maintain a complete history of the beacon chain, facilitating a deeper understanding and analysis of the network's history. In the execution layer, it ensures a complete historical record of the execution layer data.","s":"Historical Sync","u":"/lodestar/run/beacon-management/syncing","h":"#historical-sync","p":349},{"i":359,"t":"Range sync involves syncing blocks within a specified range, beneficial when a node is only temporarily offline and needs to catch up over a short range. In the beacon node context, this entails requesting and processing blocks within a defined range, ensuring the node quickly gets updated to the current network state.","s":"Range Sync","u":"/lodestar/run/beacon-management/syncing","h":"#range-sync","p":349},{"i":361,"t":"This is another version of checkpoint sync that allows a node that has not been historically synchronized to verify data prior to the checkpoint. It is done via downloading a checkpoint and then fetch blocks backwards from that point until the desired data can be verified. It is a relatively inexpensive sync from a cpu perspective because it only checks the block hashes and verifies the proposer signatures along the way.","s":"Backfill Sync","u":"/lodestar/run/beacon-management/syncing","h":"#backfill-sync","p":349},{"i":363,"t":"The implementation of the different syncing styles in Lodestar are actually one of two types under the hood, range sync and unknown-parent sync. Range sync is used when the start point of syncing is known. In the case of historical and checkpoint sync the starting points are well defined, genesis and the last finalized epoch boundary. Snapshot sync is not supported by Lodestar. If the starting point for sync is not known Lodestar must first determine where the starting point is. While the discussion about how that happens is out of scope for this document, the gist is that the beacon node will listen to gossipsub for blocks being broadcast on the network. It will also request MetaData from its peers and use that to start requesting the correct blocks from the network. There are several flags that can be used to configure the sync process. --checkpointSyncUrl --checkpointState --wssCheckpoint --forceCheckpointSync","s":"Syncing Lodestar","u":"/lodestar/run/beacon-management/syncing","h":"#syncing-lodestar","p":349},{"i":365,"t":"Lodestar will automatically connect to peers on the network. Peers are found through the discv5 protocol and once peers are established communications happen via gossipsub over libp2p. While not necessary, having a basic understanding of how the various protocols and transports work will help with debugging and troubleshooting as some of the more common challenges come up with firewalls and NAT traversal.","s":"Networking","u":"/lodestar/run/beacon-management/networking","h":"","p":364},{"i":367,"t":"Some of the important Lodestar flags related to networking are: --discv5 --listenAddress --port --discoveryPort --listenAddress6 --port6 --discoveryPort6 --bootnodes --subscribeAllSubnets --disablePeerScoring --enr.ip --enr.tcp --enr.udp --enr.ip6 --enr.tcp6 --enr.udp6 --nat --private","s":"Networking Flags","u":"/lodestar/run/beacon-management/networking","h":"#networking-flags","p":364},{"i":369,"t":"In Ethereum, discv5 plays a pivotal role in the peer discovery process, facilitating nodes to find and locate each other in order to form the peer-to-peer network​. The process begins with an interaction between new nodes and bootnodes at start-up. Bootnodes are nodes with hard-coded addresses, or can be overridden via the cli flag --bootnodes, to bootstrap the discovery process​. Through a method called FINDNODE-NODES, a new node establishes a bond with each bootnode, and it returns a list of peers for the new node to connect to. Following this trail, the new node engages through FINDNODE-NODES with the provided peers to further establish a web of connections​. Discv5 operates as a peer advertisement medium in this network, where nodes can act as both providers and consumers of data. Every participating node in the Discv5 protocol discovers peer data from other nodes and later relays it, making the discovery process dynamic and efficient​. Discv5 is designed to be a standalone protocol running via UDP on a dedicated port solely for peer discovery. Peer data is exchanged via self-certified, flexible peer records (ENRs). These key features cater to the Ethereum network​ and being a good peer often means running a discv5 worker​. Lodestar offers simple configuration to setup and run a bootnode independently of a beacon node. See the bootnode cli page for more information and configuration options.","s":"Peer Discovery (Discv5)","u":"/lodestar/run/beacon-management/networking","h":"#peer-discovery-discv5","p":364},{"i":371,"t":"Ethereum Node Records (ENRs) are a standardized format utilized for peer discovery - see EIP-778 for the specification. An ENR consists of a set of key-value pairs. These pairs include crucial information such as the node's ID, IP address, the port on which it's listening, and the protocols it supports. This information helps other nodes in the network locate and connect to the node. The primary purpose of ENRs is to facilitate node discovery and connectivity in the Ethereum network. Nodes use ENRs to announce their presence and capabilities to other nodes, making it easier to establish and maintain a robust, interconnected network. Note that bootnodes are announced via ENR. Lodestar prints out its own ENR on startup, the logs will show something similar to the following info: discv5 worker started peerId=16Uiu...t9LQ3, initialENR=enr:-Iu4QGE...WRwgiMo, bindAddr4=/ip4/0.0.0.0/udp/9000 Alternatively, the ENR can also be retrieved from the beacon node API by querying the getNetworkIdentity endpoint. ENR Viewer provides a simple and convenient option to decode and inspect ENRs.","s":"ENR","u":"/lodestar/run/beacon-management/networking","h":"#enr","p":364},{"i":373,"t":"Gossipsub and Req/Resp are the two mechanisms that beacon nodes use to exchange chain data. Gossipsub is used disseminate the most recent relevant data proactively throughout the network. Req/Resp is used to directly ask specific peers for specific information (eg: during syncing).","s":"Peer Communication (gossipsub and Req/Resp)","u":"/lodestar/run/beacon-management/networking","h":"#peer-communication-gossipsub-and-reqresp","p":364},{"i":375,"t":"GossipSub is a foundational protocol in peer-to-peer (P2P) communication, particularly decentralized networks like Ethereum and IPFS. At its core, GossipSub efficiently propagates data, filtered by topic, through a P2P network. It organizes peers into a collection of overlay networks, each associated with a distinct topic. By routing data through relevant overlay networks based on topics of interest, large amounts of data can be efficiently disseminated without excessive bandwidth, latency, etc. In GossipSub, nodes can subscribe to topics, effectively joining the corresponding overlay to receive messages published to a specific topic. This topic-based structure enables nodes to congregate around shared interests, ensuring that relevant messages are delivered to all interested parties. Each message published to a topic gets disseminated and relayed to all subscribed peers, similar to a chat room. Messages are propagated through a blend of eager-push and lazy-pull models. Specifically, the protocol employs \"mesh links\" to carry full messages actively and \"gossip links\" to carry only message identifiers (lazy-pull propagation model). This hybrid approach allows for both active message propagation and reactive message retrieval​ which is an extension of the traditional hub-and-spoke pub/sub model.","s":"Gossipsub","u":"/lodestar/run/beacon-management/networking","h":"#gossipsub","p":364},{"i":377,"t":"Req/Resp is the domain of protocols that establish a flexible, on-demand mechanism to retrieve historical data and data missed by gossip. This family of methods, implemented as separate libp2p protocols, operate between a single requester and responder. A method is initiated via a libp2p protocol ID, with the initiator sending a request message and the responder sending a response message. Every method defines a specific request and response message type, and a specific protocol ID. This framework also facilitates streaming responses and robust error handling.","s":"Req/Resp","u":"/lodestar/run/beacon-management/networking","h":"#reqresp","p":364},{"i":379,"t":"Libp2p is a modular and extensible network stack that serves as the data transport layer below both gossipsub and Req/Resp and facilitates the lower-level peer-to-peer communications. It provides a suite of protocols for various networking functionalities including network transports, connection encryption and protocol multiplexing. Its modular design allows for the easy addition, replacement, or upgrading of protocols, ensuring an adaptable and evolving networking stack. Libp2p operates at the lower levels of the OSI model, particularly at the Transport and Network layers. Libp2p supports both TCP and UDP protocols for establishing connections and data transmission. Combined with libp2p's modular design it can integrate with various networking technologies to facilitating both routing and addressing.","s":"Data Transport (libp2p)","u":"/lodestar/run/beacon-management/networking","h":"#data-transport-libp2p","p":364},{"i":381,"t":"If your setup is behind a firewall there are a few ports that will need to be opened to allow for P2P discovery and communication. There are also some ports that need to be protected to prevent unwanted access or DDOS attacks on your node. Ports that must be opened: 30303/TCP+UDP - Execution layer P2P communication port 9000/TCP+UDP - Beacon node IPv4 P2P communication port 9090/TCP+UDP - Beacon node IPv6 P2P communication port Ports that must be protected: 9596/TCP - Beacon node REST API port 5062/TCP - Validator key manager API port 18550/TCP - MEV-Boost/Builder port 8008/TCP - Beacon node metrics port 5064/TCP - Validator metrics port 8545/TCP - Execution client JSON RPC port 8551/TCP - Execution engine port for Lodestar to communicate with the execution client","s":"Firewall Management","u":"/lodestar/run/beacon-management/networking","h":"#firewall-management","p":364},{"i":383,"t":"Lodestar does not support UPnP. If you are behind a NAT you will need to manually forward the ports listed above.","s":"NAT Traversal","u":"/lodestar/run/beacon-management/networking","h":"#nat-traversal","p":364},{"i":386,"t":"Binaries can be downloaded from the Lodestar release page under the Assets section. Run the following command to install the latest version curl -fsSL https://chainsafe.github.io/lodestar/install | bash","s":"Binaries","u":"/lodestar/run/getting-started/installation","h":"#binaries","p":384},{"i":388,"t":"The chainsafe/lodestar Docker Hub repository is maintained actively. It contains the lodestar CLI preinstalled. info The Docker Hub image tagged as chainsafe/lodestar:next is run on CI every commit on our unstable branch. For stable releases, the image is tagged as chainsafe/lodestar:latest. Ensure you have Docker installed by issuing the command: docker -v It should return a non error message such as Docker version xxxx, build xxxx. Pull, run the image and Lodestar should now be ready to use docker pull chainsafe/lodestar docker run chainsafe/lodestar --help info Docker is the recommended setup for Lodestar. Use our Lodestar Quickstart scripts with Docker for detailed instructions.","s":"Docker Installation","u":"/lodestar/run/getting-started/installation","h":"#docker-installation","p":384},{"i":391,"t":"Make sure to have Yarn installed. It is also recommended to install NVM (Node Version Manager) and use the LTS version (currently v22) of NodeJS. info NodeJS versions older than the current LTS are not supported by Lodestar. We recommend running the latest Node LTS. It is important to make sure the NodeJS version is not changed after reboot by setting a default nvm alias default && nvm use default. note Node Version Manager (NVM) will only install NodeJS for use with the active user. If you intend on setting up Lodestar to run under another user, we recommend using NodeSource's source for NodeJS so you can install NodeJS globally.","s":"Prerequisites","u":"/lodestar/run/getting-started/installation","h":"#prerequisites","p":384},{"i":393,"t":"Clone the repository locally and build from the stable release branch. git clone -b stable https://github.com/chainsafe/lodestar.git Switch to created directory. cd lodestar","s":"Clone repository","u":"/lodestar/run/getting-started/installation","h":"#clone-repository","p":384},{"i":395,"t":"Install across all packages. Lodestar follows a monorepo structure, so all commands below must be run in the project root. yarn install","s":"Install packages","u":"/lodestar/run/getting-started/installation","h":"#install-packages","p":384},{"i":397,"t":"Build across all packages. yarn run build","s":"Build source code","u":"/lodestar/run/getting-started/installation","h":"#build-source-code","p":384},{"i":399,"t":"Lodestar should now be ready for use. ./lodestar --help See Command Line Reference for further information.","s":"Lodestar CLI","u":"/lodestar/run/getting-started/installation","h":"#lodestar-cli","p":384},{"i":401,"t":"ModuleNotFoundError: No module named 'distutils' If you stump upon this issue while running Yarn, it's because Python 3.12 had removed distutils package. That package is required for node build tool. You can install it with following command. pip3 install setuptools --force-reinstall --user","s":"Known Issues","u":"/lodestar/run/getting-started/installation","h":"#known-issues","p":384},{"i":403,"t":"danger For mainnet (production) usage, we only recommend installing with Docker, using binaries or building from source due to NPM supply chain attacks. Until a safer installation method has been found, do not use this install method except for experimental purposes only.","s":"Install from NPM [not recommended]","u":"/lodestar/run/getting-started/installation","h":"#install-from-npm-not-recommended","p":384},{"i":405,"t":"Run a discv5 bootnode. This will NOT perform any beacon node functions, rather, it will run a discv5 service that allows nodes on the network to discover one another.","s":"bootnode CLI Command","u":"/lodestar/run/bootnode/bootnode-cli","h":"","p":404},{"i":407,"t":"--dataDir​ Lodestar root data directory type: string --network​ Name of the Ethereum Consensus chain network to join type: string choices: \"mainnet\", \"gnosis\", \"sepolia\", \"holesky\", \"chiado\", \"ephemery\", \"mekong\", \"dev\" default: \"mainnet\" --paramsFile​ Network configuration file type: string --rcConfig​ RC file to supplement command line args, accepted formats: .yml, .yaml, .json type: string --terminal-total-difficulty-override​ Terminal PoW block TTD override type: string --terminal-block-hash-override​ Terminal PoW block hash override type: string --terminal-block-hash-epoch-override​ Terminal PoW block hash override activation epoch type: string --listenAddress​ The IPv4 address to listen for discv5 connections type: string default: \"0.0.0.0\" --port​ The UDP port to listen on type: number default: 9000 --listenAddress6​ The IPv6 address to listen for discv5 connections type: string --port6​ The UDP port to listen on type: number default: 9090 --bootnodes​ Additional bootnodes for discv5 discovery type: string[] default: [ \"[]\" ] --bootnodesFile​ Additional bootnodes for discv5 discovery file path type: string --persistNetworkIdentity​ Whether to reuse the same peer-id across restarts type: boolean default: true --enr.ip​ Override ENR IP entry type: string --enr.udp​ Override ENR UDP entry type: number --enr.ip6​ Override ENR IPv6 entry type: string --enr.udp6​ Override ENR (IPv6-specific) UDP entry type: number --nat​ Allow ENR configuration of non-local addresses type: boolean --logLevel​ Logging verbosity level for emitting logs to terminal type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"info\" --logFile​ Path to output all logs to a persistent log file, use 'none' to disable type: string --logFileLevel​ Logging verbosity level for emitting logs to file type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"debug\" --logFileDailyRotate​ Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation type: number default: 5 --metrics​ Enable the Prometheus metrics HTTP server type: boolean --metrics.port​ Listen TCP port for the Prometheus metrics HTTP server type: number default: 8008 --metrics.address​ Listen address for the Prometheus metrics HTTP server type: string default: \"127.0.0.1\"","s":"bootnode Options","u":"/lodestar/run/bootnode/bootnode-cli","h":"#bootnode-options","p":404},{"i":409,"t":"In order to make things easier and quicker for all types of users to bootstrap the Lodestar consensus client with a variety of execution clients, we have come up with Lodestar Quickstart Docker scripts! ✅ Zero configuration ✅ Single command startup ✅ All testnets supported along with mainnet ✅ All mainstream execution clients integrated","s":"Lodestar Quick Start Scripts","u":"/lodestar/run/getting-started/quick-start","h":"","p":408},{"i":411,"t":"We actively maintain and update the configurations of running Lodestar with the most commonly used execution clients for various test/production networks so there is minimal configuration required for a standard setup. If you have questions about these scripts, documentation or repository, feel free to talk to us on our ChainSafe Discord or open an issue and a member of the team or our community will be happy to assist you.","s":"Support","u":"/lodestar/run/getting-started/quick-start","h":"#support","p":408},{"i":413,"t":"You can further adapt our Quickstart Docker scripts to your node setups with ease! Use our Quickstart Custom Setup Guide!","s":"Customizations (Optional)","u":"/lodestar/run/getting-started/quick-start","h":"#customizations-optional","p":408},{"i":415,"t":"Lodestar has the ability to send client stats to a remote service for collection. At the moment, the main service offering remote monitoring is beaconcha.in. Instructions for setting up client monitoring with beaconcha.in can be found in their docs about Mobile App <> Node Monitoring and in your account settings.","s":"Client Monitoring","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"","p":414},{"i":417,"t":"Lodestar provides CLI options to configure monitoring on both the beacon node and validator client.","s":"Configuration","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"#configuration","p":414},{"i":419,"t":"Client monitoring can be enabled by setting the --monitoring.endpoint flag to a remote service endpoint URL. --monitoring.endpoint \"https://beaconcha.in/api/v1/client/metrics?apikey={apikey}&machine={machineName}\" In case of beaconcha.in, the API key can be found in your account settings. Setting the machine is optional but it is especially useful if you are monitoring multiple nodes. note When sending data to a remote service you should be conscious about security: Only use a service that you trust as this will send information which may identify you and associate your validators, IP address and other personal information. Always use a HTTPS connection (i.e. a URL starting with https://) to prevent the traffic from being intercepted in transit and leaking information. More details about the data sent to the remote service can be found in the specification. It is also possible to print out the data sent to the remote service by enabling debug logs which can be done by supplying the --logLevel debug flag.","s":"Remote endpoint URL","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"#remote-endpoint-url","p":414},{"i":421,"t":"It is possible to adjust the interval between sending client stats to the remote service by setting the --monitoring.interval flag. It takes an integer value in milliseconds, the default is 60000 which means data is sent once a minute. For example, setting an interval of 300000 would mean the data is only sent every 5 minutes. --monitoring.interval 300000 Increasing the monitoring interval can be useful if you are running into rate limit errors when posting large amounts of data for multiple nodes.","s":"Monitoring interval","u":"/lodestar/run/logging-and-metrics/client-monitoring","h":"#monitoring-interval","p":414},{"i":423,"t":"Prometheus is an open-source monitoring system with efficient time series database and a modern alerting approach. Together with Grafana it's the recommended way to make sure that your node and validator(s) are performing correctly.","s":"Prometheus and Grafana Setup","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"","p":422},{"i":425,"t":"The Lodestar team has setup a script which will copy the latest dashboards compiled by our team for development purposes. By utilizing the script located in /docker/docker-compose.local_dev.sh, you can instantly setup the latest dockerized metrics alongside your local beacon node.","s":"Localized Docker Metrics Script","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"#localized-docker-metrics-script","p":422},{"i":427,"t":"To start, download Prometheus from https://prometheus.io/download/. Unzip the downloaded .zip file and run Prometheus from its installed location with the lodestar prometheus.yml passed in as the configuration file ./prometheus --config.file=$dataDir/prometheus.yml info 8008 is also the default port specified in the prometheus.yml in the lodestar repository Then run the Lodestar beacon node with lodestar --metrics=true --metrics.port=8008 Navigate to http://localhost:9090/ in your browser to verify that Prometheus is monitoring Lodestar","s":"Prometheus Setup","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"#prometheus-setup","p":422},{"i":429,"t":"Download and install Grafana from its official repository https://grafana.com/docs/grafana/latest/installation/debian/ Add Prometheus as a data source to Grafana https://prometheus.io/docs/visualization/grafana/#installing An example of relevant metrics of interest to monitor are: nodejs_heap_space_size_used_bytes nodejs_eventloop_lag_seconds beaconchain_peers beaconchain_current_slot beaconchain_current_finalized_epoch","s":"Grafana Setup","u":"/lodestar/run/logging-and-metrics/prometheus-grafana","h":"#grafana-setup","p":422},{"i":432,"t":"This is a step-by-step guide to utilize @ChainSafe/lodestar-quickstart to setup a Ubuntu-based full Ethereum node using a local execution client and ChainSafe's Lodestar consensus client via Docker (the recommended method to use Lodestar for production environments). This is an adaptation of Somer Esat's guides for the Ethereum staking community. This guide will provide instructions which include running a local execution node. This guide uses Lodestar's stable release branch and supports Holesky testnet setups and Mainnet. info This guide specifically focuses on using Lodestar's Quickstart scripts which allows for near instant setup with the following technologies: Ubuntu v22.04 (LTS) x64 server Ethereum Execution (eth1) clients: Erigon | Github Go-Ethereum (Geth) | Github Hyperledger Besu | Github Nethermind | Github Rust | Github ChainSafe's Lodestar Ethereum Consensus Client | Github Docker Engine danger This guide does not assist with securing your server such as secure SSH logins or enabling firewalls. Ensure you have limited access to your server and blocked unused ports with guides such as CoinCashew's Security Best Practices for your ETH staking validator node before continuing with this guide. warning This guide is for informational purposes only and does not constitute professional advice. The author does not guarantee accuracy of the information in this article and the author is not responsible for any damages or losses incurred by following this article. A full disclaimer can be found at the bottom of this page — please read before continuing.","s":"Quick Start Custom Setup Guide","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"","p":431},{"i":434,"t":"For technical support please reach out to: The Lodestar team actively develops and collaborates on the ChainSafe Discord Server under #🌟-lodestar-general channel. Please subscribe to our Discord server announcements on the ChainSafe Discord Server under #lodestar-announcements channel.","s":"Support","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#support","p":431},{"i":436,"t":"This guide assumes knowledge of Ethereum (ETH), Docker, staking and Linux. You require the following before getting started: Ubuntu Server v22.04 (LTS) amd64 or newer, installed and running on a local machine or in the cloud. A locally running machine is encouraged for greater decentralization — if the cloud provider goes down then all nodes hosted with that provider go down. 32 ETH to run a solo validator with Lodestar. If running on testnet, contact us in our ChainSafe Discord Server for testnet Ether.","s":"Prerequisites","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#prerequisites","p":431},{"i":438,"t":"If moving from a testnet setup to a mainnet setup it is strongly recommended that you start on a fresh (newly installed) server instance. This guide has not been tested for migration scenarios and does not guarantee success if you are using an existing instance with previously installed testnet software.","s":"Testnet to Mainnet","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#testnet-to-mainnet","p":431},{"i":440,"t":"Minimum Recommended Processor Intel Core i3–9100 or AMD Ryzen 5 3450 Intel Core i7–9700 or AMD Ryzen 7 4700 Memory 8 GB RAM 16 GB RAM Storage 130 GB available space SSD 200 GB available space SSD Internet Reliable broadband with 10mbps upload Reliable broadband with >10mbps upload info Check your available disk space. Even you have a large SSD there are cases where Ubuntu is reporting only 100GB free. If this applies to you then take a look at Appendix A — Expanding the Logical Volume.","s":"Hardware Requirements","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#hardware-requirements","p":431},{"i":443,"t":"We must install Docker Engine to run the images on your local machine. Add Docker's GPG keyrings​ Run each line one at a time. sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg Add the repository to Apt sources​ Copy and paste the entire command below. echo \\ \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \\ $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable\" | \\ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Update Ubuntu​ Ensure all updates to your Ubuntu Server are complete. sudo apt-get update sudo apt-get upgrade -y Hit Enter if required to restart services. Install Docker Engine​ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin Test Docker​ sudo docker run hello-world If you see the message Hello from Docker! This message shows that your installation appears to be working correctly., you can move on to the next step. Clone lodestar-quickstart repository​ Clone the lodestar-quickstart from Github into your local server. cd ~ && git clone https://github.com/ChainSafe/lodestar-quickstart.git","s":"Install Docker Engine & Docker Compose","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#install-docker-engine--docker-compose","p":431},{"i":446,"t":"The script and required files are located within the lodestar-quickstart folder. cd lodestar-quickstart","s":"Navigate to the root directory","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#navigate-to-the-root-directory","p":431},{"i":448,"t":"We will generate a JWT secret that is shared by the Execution client and Lodestar in order to have a required secure connection for the Engine API on port 8551. openssl rand -hex 32 | tr -d \"\\n\" > \"jwtsecret\" Confirm that your JWT token created. cat jwtsecret ; echo Your terminal should display the secret. Copy the token for the next step. Be careful to only copy the 64 characters corresponding to the secret and nothing else. danger 🚨 WARNING: Do not share this secret as it protects your authenticated port 8551.","s":"Create your own JWT Secret","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#create-your-own-jwt-secret","p":431},{"i":450,"t":"Edit the import-args.sh file. nano import-args.sh Replace the 64 characters after 0x with your token. If you are not running validators, press CTRL + x then y then Enter to save and exit. Proceed to Configuring your Network.","s":"Input your JWT Secret into the import-args.sh script","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#input-your-jwt-secret-into-the-import-argssh-script","p":431},{"i":452,"t":"warning If you are running validators, Ethereum requires validators to set a Fee Recipient which allows you to receive priority fees and MEV rewards when proposing blocks. If you do not set this address, your rewards will be sent to the burn address by default. Configure your validator client's feeRecipient address by changing the FEE_RECIPIENT line. Ensure you specify an Ethereum address you control. An example of a fee recipient set with the address 0xB7576e9d314Df41EC5506494293Afb1bd5D3f65d, you would change the configuration to: FEE_RECIPIENT=\"0xB7576e9d314Df41EC5506494293Afb1bd5D3f65d\" If you would like to run MEV-Boost with your validators, proceed to the next section. If you do not want to run MEV-Boost, press CTRL + x then y then Enter to save and exit. Proceed to Configuring your Network.","s":"Configure feeRecipient","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-feerecipient","p":431},{"i":454,"t":"info (Optional): If you are running validators and would like to use MEV-Boost, follow this section. Otherwise, skip this section. Validators running MEV-Boost maximize their staking reward by selling blockspace to an open market of builders. MEV-Boost v1.4+ allows you to set a minimum bid threshold to only use an externally built block if it meets or exceeds this parameter. The min-bid parameter is denominated in ETH. For example, if you want to set your threshold to 0.03 ETH, set your configuration to MIN_BUILDERBID=0.03 When complete, press CTRL + x then y then Enter to save and exit.","s":"Set minimum bid for MEV-Boost validators","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#set-minimum-bid-for-mev-boost-validators","p":431},{"i":456,"t":"When using the quick scripts, each supported network has a .vars file to define the parameters required for configuring the clients to the specified network. To view the available files, use the command: ls *.vars","s":"Configuring your Network","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configuring-your-network","p":431},{"i":458,"t":"Each network has specifics variables that you may want to setup for use. We will use Holesky to demonstrate connecting to a public testnet. Open the holesky.vars file. nano holesky.vars","s":"Select your Network","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#select-your-network","p":431},{"i":460,"t":"info (Optional): If you have validators you intend to use for MEV-boost, you can input the relays you want to connect here. Otherwise, skip this section. You can list multiple relays simply by pasting the relay URL as a variable in this file. RELAY_A=https://0xRelayPubKey@relay.com RELAY_B=https://0xRelayPubKey@relay2.com Make sure to identify the ones you want to use by editing the line: RELAYS=\"$RELAY_A,$RELAY_B\"","s":"Configure MEV-boost relays","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-mev-boost-relays","p":431},{"i":462,"t":"The lodestar-quickstart scripts currently defaults to using our stable release branch. To use our nightly unstable release instead, replace LODESTAR_IMAGE=chainsafe/lodestar:latest with LODESTAR_IMAGE=chainsafe/lodestar:next in the import-images.sh file. You may also choose to use a specific version release of Lodestar. To select a specific version, replace the image with LODESTAR_IMAGE=chainsafe/lodestar:v1.x.x warning ⚠️ We do not recommend using the unstable branch or @chainsafe/lodestar:next docker versions of Lodestar for production related tasks.","s":"Configure Lodestar version","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#configure-lodestar-version","p":431},{"i":464,"t":"note (Optional): We use ChainSafe's Lodestar checkpoints by default. You may choose to point your trusted checkpoint at another source or verify the checkpoints with other providers. If you would rather sync from genesis (not recommended), you can skip this step. Weak subjectivity (checkpoint sync) allows your beacon node to sync within minutes by utilizing a trusted checkpoint from a trusted provider. We highly recommend using this feature so you do not need to wait days to sync from genesis and will mitigate your susceptibility to long-range attacks. Minimize your risk of syncing a malicious chain from a malicious checkpoint by verifying the trusted checkpoint from multiple sources. View the community maintained list of Beacon Chain checkpoint sync endpoints Verify multiple endpoint links and ensure the latest finalized and latest justified block roots are the same Choose one of those endpoint URLs Replace the --checkpointSyncUrl address with your chosen provider. info NOTE: Ensure you use checkpoint URLs from the list above corresponding to the network you are trying to sync or you will receive errors. When complete, press CTRL + x then y then Enter to save and exit.","s":"Modify your weak subjectivity (checkpoint sync) provider","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#modify-your-weak-subjectivity-checkpoint-sync-provider","p":431},{"i":466,"t":"info (Optional): We have already set fixed parameters for a seamless setup. If you are looking to customize the default parameters of the clients you are using, follow this section. Otherwise, skip this section. Fixed parameters for clients can be modified under the fixed.vars configuration file. Under the selected client, modify or add the custom arguments on their corresponding line. note The following are links to client documentation for CLI commands: Lodestar CLI Commands Nethermind CLI Commands Besu CLI Commands Go Ethereum CLI commands Erigon CLI commands Reth CLI commands Once complete, press CTRL + x then y then Enter to save and exit.","s":"Modify other client parameters (For advanced users)","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#modify-other-client-parameters-for-advanced-users","p":431},{"i":468,"t":"info Optional: Skip this entire section if you do not intend to run validators.","s":"Setup Validators","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#setup-validators","p":431},{"i":470,"t":"Make sure you are in your main quickstart directory. Create the pass.txt file containing your validator's decryption password for use. cd ~/lodestar-quickstart nano pass.txt Enter the password for your validators. info Once the validator container is running, you can delete this file from your server. Note that every time you restart this container, you will need this password to decrypt your keystore.json files. Once complete, press CTRL + x then y then Enter to save and exit.","s":"Create validator keystore password","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#create-validator-keystore-password","p":431},{"i":472,"t":"If you want to setup validators with your keystores.json files follow this section. Otherwise, skip this step. Copy/Move keystores to lodestar-quickstart/keystores directory​ Your keystore.json file(s) generated from the staking-deposit-cli or similar generator for validator keys will be placed in the lodestar-quickstart/keystores directory using the cp command to copy or mv command to move the files. mkdir keystores info You may choose to use your own method (e.g. SFTP) for copying/uploading keys to your server. This is only a guide. The format of the command to use is below: cp An example usage of this command is: cp /home/user/validator_keys/keystore-x.json ~/lodestar-quickstart/keystores Ensure your keystore.json files are in the lodestar-quickstart/keystores directory using ls command. ls -lsah ~/lodestar-quickstart/keystores/ You should see the keystore files within the directory. info Ensure the /keystores directory only has the keystore-m_xxxxx.json files and nothing else. If you copied in the deposit_data-xxxxx.json files, you can remove them by using the sudo rm command. Example: sudo rm deposit_data-1552658472.json Continue to the Startup Quickstart Script section.","s":"Option 1: Setup validators with keystores","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#option-1-setup-validators-with-keystores","p":431},{"i":474,"t":"Optional: If you want to setup validators with your keystores.json files but they are not encrypted with the same password, follow this section. Otherwise, skip this step. This option will allow you to run multiple validator clients corresponding to each validator keystore set encrypted with the same password. Therefore, we will setup validatorset1 with one decryption password and validatorset2 with another decryption password. You can repeat these steps to create subsequent validator sets with different keystore decryption passwords. Create validator keystore set directory​ Ensure you are in the lodestar-quickstart directory and create a folder for your first validator keystore set. cd ~/lodestar-quickstart Make the new directory for set one. mkdir validatorset1 Navigate into the directory. cd validatorset1 Create validator keystore password​ Create the pass.txt file containing your validator's decryption password for use. nano pass.txt Enter the password for your validators. info Once the validator container is running, you can delete this file from your server. Note that every time you restart this container, you will need this password to decrypt your keystore.json files. Once complete, press CTRL + x then y then Enter to save and exit. Copy/Move keystores to lodestar-quickstart/validatorset1/keystores directory​ Your keystore.json file(s) generated from the staking-deposit-cli or similar generator for validator keys will be placed in the lodestar-quickstart/validatorset1/keystores directory using the sudo cp command to copy or sudo mv command to move the files. mkdir keystores The format of the command to use is below: cp An example usage of this command is: cp /home/user/validator_keys/keystore-x.json ~/lodestar-quickstart/validatorset1/keystores Ensure your keystore.json files are in the lodestar-quickstart/validatorset1/keystores directory using ls command. ls -lsah ~/lodestar-quickstart/validatorset1/keystores/ You should see the keystore files within the directory. info Ensure the /keystores directory only has the keystore-m_xxxxx.json files and nothing else. If you copied in the deposit_data-xxxxx.json files, you can remove them by using the sudo rm command. Example: sudo rm deposit_data-1552658472.json Repeat the same steps above for validatorset2 and any subsequent sets of validators you require. When complete you should have a similar looking directory tree such as the one below: Then, continue to the Startup Quickstart Script section. Pay particular attention to startup script example five (5) and (6).","s":"Option 2: Setup multiple validator sets with keystores encrypted under different passwords","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#option-2-setup-multiple-validator-sets-with-keystores-encrypted-under-different-passwords","p":431},{"i":476,"t":"warning TESTNET USE ONLY: Do not use this method unless you're validating on a testnet. Your mnemonic will be stored in plaintext on your server, which is unsafe. Optional: If you want to setup validators with your mnemonic. Otherwise, skip this step. Setup Mnemonic​ Select the .vars file corresponding to the network you want to run. For Holesky, select holesky.vars. Open the file with the nano text editor and edit the configuration: nano holesky.vars We will modify the LODESTAR_VALIDATOR_MNEMONIC_ARGS=. Specifically, the mnemonic located after the --fromMnemonic flag. Replace the default mnemonic with your mnemonic. Ensure it is between the quotations Indicate which indexes of the mnemonic you wish Lodestar to run. Specify a specific index number --mnemonicIndexes 0 or a range of numbers --mnemonicIndexes 0..5 info If you created your mnemonic with one key, it is likely located in index 0. If you've added to it, the generated keys are likely the subsequent indexes. Therefore, if you generated one key, it is likely in index 0, so you would use --mnemonicIndexes 0. If you generated five keys, it is likely in index 0 to 4, so you would use --mnemonicIndexes 0..4 Once complete, press CTRL + x then y then Enter to save and exit. Continue to the Startup Quickstart Script section.","s":"Option 3: Setup validators with mnemonic","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#option-3-setup-validators-with-mnemonic","p":431},{"i":478,"t":"Ensure you are in the `~/lodestar-quickstart folder. cd ~/lodestar-quickstart The following are example commands as a template for initiating the quickstart script: Startup a Sepolia beacon node with no validators and Go Ethereum (Geth) execution client with terminals attached: ./setup.sh --dataDir sepolia-data --elClient geth --network sepolia --dockerWithSudo --withTerminal \"gnome-terminal --disable-factory --\" Startup Mainnet beacon node with no validators and Nethermind execution client detached from containers (Recommended only when you've verified the setup has initiated properly with terminals attached): ./setup.sh --dataDir mainnet-data --elClient nethermind --network mainnet --dockerWithSudo --detached Startup Holesky beacon node with validator client (using mnemonic in /keystores) and Erigon execution client detached from containers: ./setup.sh --dataDir holesky-data --elClient erigon --network holesky --dockerWithSudo --detached --withValidatorMnemonic ~/lodestar-quickstart/ Startup Mainnet beacon node with validator client (using keystores) with MEV-Boost and Hyperledger Besu execution client detached from containers: ./setup.sh --dataDir mainnet-data --elClient besu --network mainnet --dockerWithSudo --detached --withValidatorKeystore ~/lodestar-quickstart/ --withMevBoost Startup Holesky beacon node with validator client set one (using keystores) and execution client Geth detached from containers: ./setup.sh --dataDir holesky-data --elClient geth --network holesky --dockerWithSudo --detached --withValidatorKeystore ~/lodestar-quickstart/validatorset1 warning You can only start up one set of validator keystores per validator client on the same command. Use the below command (#6) to startup another validator client for another set of validator keys. Startup validator client only with validator client set two (using keystores) and execution client Geth detached from containers: ./setup.sh --dataDir holesky-data --elClient geth --network holesky --dockerWithSudo --detached --withValidatorKeystore ~/lodestar-quickstart/validatorset2 --justVC info The script will standardize naming your containers so running the setup.sh twice, will not create two instances of the same containers. The script will standardize naming your containers so running the ./setup.sh a second time, will not create two instances of the same containers. Configure the above commands with what you intend to run using the Quickstart Script Help table below.","s":"Startup Quickstart Script","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#startup-quickstart-script","p":431},{"i":480,"t":"Command Required/Optional Description dataDir Required File location (volume) of the configuration & data for setup. This directory should be non-existent for the first run. If the directory exists, it will skip fetching the configuration, assuming it has been done previously. You can also clean individual directors of CL/EL between the re-runs. elClient Required The selected EL client you want to run with Lodestar. Options are nethermind, besu, erigon or geth. network Required The network/chain you want to load, reads the corresponding .vars (for e.g. holesky.vars) network configuration , like images, or urls for EL/CL to interact. Example: Default for Holesky is --network holesky using holesky.vars. dockerWithSudo Optional Provide this argument if your Docker needs a sudo prefix. --withTerminal Optional* Provide the terminal command prefix for CL and EL processes to run in your favourite terminal. You may use an alias or a terminal launching script as long as it waits for the command it runs till ends and then closes. If not provided, it will launch the docker processes in in-terminal mode. --detached Optional* By default the script will wait for processes and use user input (ctrl +c) to end the processes, however you can pass this option to skip this behavior and just return, for e.g. in case you just want to leave it running. --withValidatorKeystore Optional** Launch a validator client using LODESTAR_VALIDATOR_MNEMONIC_ARGS (--withValidatorMnemonic) or using a folder (--withValidatorKeystore --justVC connecting to same beacon node. --withValidatorMnemonic Optional** Launch a validator client using mnemonic method.(LODESTAR_VALIDATOR_MNEMONIC_ARGS) as set in the network vars file. --withMevBoost Optional Launch a MEV-Boost container to interface with multiple relays picked for the corresponding network vars file. When paired with --justCL or --justVC this only activates the builder arguments in the beacon/validator and use the builder url set in MEVBOOST_URL variable in fixed.vars --justEL Optional Launch only the Execution Layer client. --justCL Optional Launch only the Lodestar beacon node. --justVC Optional Launch only the Lodestar validator. --skipImagePull Optional Launch with only the local Docker images. Do not update them on this run. note * : Only one of the two options should be provided. ** : Only one of the two options should be provided.","s":"Quickstart Script Help","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#quickstart-script-help","p":431},{"i":482,"t":"You can check the status and get the name of your containers by using the docker ps command: sudo docker ps The containers should not constantly restart. If they restart, likely a misconfiguration occurred.","s":"Check Containers","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-containers","p":431},{"i":484,"t":"You can check the status of what your container is logging to diagnose a problem or follow along the status of your container output. Check the logs by using the docker logs command: sudo docker logs Follow along the logs by adding the -f flag: sudo docker logs -f Limit the fetched logs by indicating the latest container out puts by number of lines using the -n flag. For the last 10 lines: sudo docker logs -n 10 ","s":"Check Container Logs","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-container-logs","p":431},{"i":486,"t":"Your beacon node should initialize and you should see something similar to: Jul-31 13:35:27.967[] info: Lodestar network=mainnet, version=v1.21.0/ff35faa, commit=ff35faae4ad1697b86d708a0367a95a71648ab6e Jul-31 13:35:28.344[] info: Connected to LevelDB database path=/data/lodestar/chain-db Jul-31 13:35:49.828[] info: Initializing beacon from a valid db state slot=9633504, epoch=301047, stateRoot=0xfa2845a6877b98555906a1654941c97d9c05bdd41e61cc0870a967dc9030b156, isWithinWeakSubjectivityPeriod=true Jul-31 13:35:51.955[chain] info: Historical state worker started Jul-31 13:35:51.969[eth1] info: Eth1 provider urls=http://localhost:8551 Jul-31 13:35:51.975[execution] info: Execution client urls=http://localhost:8551 Jul-31 13:35:51.977[] info: External builder url=http://localhost:8661 Jul-31 13:36:21.128[network] info: running libp2p instance in worker thread Jul-31 13:36:21.727[network] info: libp2p worker started peer=15Uiu2HAmACcmCEXcgt3zCtJL2rqJZ2Mvdjh6U6fe26HgD2FoNRwW Jul-31 13:36:27.677[network] info: discv5 worker started peerId=16Uiu2HAmACcmCEXcgt3zCtJL2rqJZ2Mvdjh6U6fe26HgD2FoNRwW, initialENR=enr:-IO4QHGTUd1Zg8LAhUAioOz_ySTKoJLIOa6zltSP_AvvhTFVYw6M6YB35IxsiKxQG7nUgCpUB5SIsNxMntCNlTK9sMEBgmlkgnY0iXNlY3AyNTZrMaEC24cdmzuGnWqSwF-8Hw2gbkAZDzMWW3LsHJfp_kDhy-GDdGNwgiMog3VkcIIeWH, bindAddr4=/ip4/0.0.0.0/udp/9000 Jul-31 13:36:28.134[network] info: PeerId 16Uiu2HAmACcmCEXcgt3zCtJL2rqJZ2Mvdjh6U6fe26HgD2FoNRwW, Multiaddrs /ip4/0.0.0.0/tcp/9000 Jul-31 13:36:28.137[metrics] info: Started metrics HTTP server address=http://127.0.0.1:8008 Jul-31 13:36:28.256[rest] info: Started REST API server address=http://0.0.0.0:9596 Jul-31 13:36:28.257[] info: Searching peers - peers: 0 - slot: 9634080 - head: (slot -576) 0x9d88…d02a - exec-block: syncing(20426302 0xcec4…) - finalized: 0x7feb…c130:301045 Jul-31 13:36:36.461[execution] info: Execution client is synced oldState=ONLINE, newState=SYNCED Jul-31 13:36:53.019[] info: Syncing - 3.7 minutes left - 2.32 slots/s - slot: 9634082 - head: (slot -515) 0x792f…f8aa - exec-block: valid(20426365 0x58b1…) - finalized: 0x9d88…d02a:301047 - peers: 11 Jul-31 13:38:53.168[] info: Syncing - 11 seconds left - 4.01 slots/s - slot: 9634092 - head: (slot -44) 0x7491…f63e - exec-block: valid(20426841 0xd4b2…) - finalized: 0x1e00…6e6b:301062 - peers: 59 Jul-31 13:38:58.051[network] info: Subscribed gossip core topics Jul-31 13:38:58.132[sync] info: Subscribed gossip core topics Jul-31 13:39:05.001[] info: Synced - slot: 9634093 - head: 0x35de…1f0e - exec-block: valid(20426886 0x10ff…) - finalized: 0x88f8…5375:301063 - peers: 70 Jul-31 13:39:17.000[] info: Synced - slot: 9634094 - head: 0x7844…3b3e - exec-block: valid(20426887 0x67d1…) - finalized: 0x88f8…5375:301063 - peers: 69 Jul-31 13:39:29.000[] info: Synced - slot: 9634095 - head: 0x5516…ba12 - exec-block: valid(20426888 0x4ceb…) - finalized: 0x88f8…5375:301063 - peers: 74","s":"Check beacon node is progressing","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-beacon-node-is-progressing","p":431},{"i":488,"t":"OPTIONAL: If you are running validators, you can check the validator client logs to ensure the validator keys exist, has been detected and decrypted. Here is an example command if you are running validators on Goerli with the lodestar-quickstart script: sudo docker logs goerli-validator You should see something similar to: Mar-01 03:06:35.048[] info: Lodestar network=holesky, version=v1.16.0/6ad9740, commit=6ad9740a085574306cf46c7642e749d6ec9a4264 Mar-01 03:06:35.050[] info: Connecting to LevelDB database path=/keystoresDir/validator-db-holesky Mar-01 03:06:35.697[] info: 100% of keystores imported. current=2 total=2 rate=1318.68keys/m Mar-01 03:06:35.698[] info: 2 local keystores Mar-01 03:06:35.698[] info: 0xa6fcfca12e1db6c7341d82327010cd57224dc239d1c5e4fb18286cc32edb877d813c5af1c870d474aef7b3ff7ab927ea Mar-01 03:06:35.698[] info: 0x8f868e53bbe1451bcf6d42c9ab6d292cbd7fbfa09c59b6b99c1dd6a4977e2e7b4b752c328784ca2788dd6f63ffcbdb7e Mar-01 03:06:35.732[] info: Beacon node urls=http://127.0.0.1:9596 Mar-01 03:09:23.813[] info: Genesis fetched from the beacon node Mar-01 03:09:23.816[] info: Verified connected beacon node and validator have same the config Mar-01 03:09:23.818[] info: Verified connected beacon node and validator have the same genesisValidatorRoot Mar-01 03:09:23.818[] info: Initializing validator useProduceBlockV3=deneb+, broadcastValidation=gossip, defaultBuilderSelection=executiononly, suggestedFeeRecipient=0xeeef273281fB83F56182eE960aA4bAfe7fE075DE, strictFeeRecipientCheck=false Mar-01 03:09:23.830[] info: Validator seen on beacon chain validatorIndex=1234567, pubKey=0xa6fcfca12e1db6c7341d82327010cd57224dc239d1c5e4fb18286cc32edb877d813c5af1c870d474aef7b3ff7ab927ea Mar-01 03:09:23.830[] info: Validator seen on beacon chain validatorIndex=1234568, pubKey=0x8f868e53bbe1451bcf6d42c9ab6d292cbd7fbfa09c59b6b99c1dd6a4977e2e7b4b752c328784ca2788dd6f63ffcbdb7e Mar-01 03:09:23.830[] info: Validator statuses active=2, total=2 Mar-01 03:15:50.191[] info: Published attestations slot=1113379, count=1 Mar-01 03:16:02.728[] info: Published attestations slot=1113380, count=1 info It is normal to see Error on getProposerDuties in your validator logs as your beacon node and execution node sync up. Give it time.","s":"Check validators are detected and decrypted","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#check-validators-are-detected-and-decrypted","p":431},{"i":490,"t":"You can stop the running containers by using the docker stop command and apply it to more than one container if necessary. sudo docker stop Ensure to remove the container if you don't plan to restart it with the same parameters. sudo docker rm ","s":"Stop Containers","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#stop-containers","p":431},{"i":493,"t":"There are cases where Ubuntu is provisioning only 200GB of a larger SSD causing users to run out of disk space when syncing their Eth1 node. The error message is similar to: Fatal: Failed to register the Ethereum service: write /var/lib/goethereum/geth/chaindata/383234.ldb: no space left on device To address this issue, assuming you have a SSD that is larger than 200GB, expand the space allocation for the LVM by following these steps: sudo lvdisplay <-- Check your logical volume size sudo lvm lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv lvextend -l +100%FREE -r /dev/ubuntu-vg/ubuntu-lv exit sudo resize2fs /dev/ubuntu-vg/ubuntu-lv df -h <-- Check results That should resize your disk to the maximum available space. If you need support, please check with the ChainSafe Discord under the #🌟-lodestar-general channel.","s":"Appendix A - Expanding the Logical Volume","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#appendix-a---expanding-the-logical-volume","p":431},{"i":495,"t":"To update client images, you just need to stop all the containers, remove them and restart the lodestar-quickstart script to automatically check for new images. You can stop the running containers by using the docker stop command with the container names. sudo docker stop Remove the containers by using the docker rm command. sudo docker rm Restart your containers using your Startup Quickstart Script command.","s":"Appendix B - Update client images","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#appendix-b---update-client-images","p":431},{"i":497,"t":"This article (the guide) is for informational purposes only and does not constitute professional advice. The author does not warrant or guarantee the accuracy, integrity, quality, completeness, currency, or validity of any information in this article. All information herein is provided “as is” without warranty of any kind and is subject to change at any time without notice. The author disclaims all express, implied, and statutory warranties of any kind, including warranties as to accuracy, timeliness, completeness, or fitness of the information in this article for any particular purpose. The author is not responsible for any direct, indirect, incidental, consequential or any other damages arising out of or in connection with the use of this article or in reliance on the information available on this article. This includes any personal injury, business interruption, loss of use, lost data, lost profits, or any other pecuniary loss, whether in an action of contract, negligence, or other misuse, even if the author has been informed of the possibility.","s":"Full Disclaimer","u":"/lodestar/run/getting-started/quick-start-custom-guide","h":"#full-disclaimer","p":431},{"i":499,"t":"Lodestar supports connecting an external signing server like Web3Signer, Diva, or any other service implementing the remote signing specification. This allows the validator client to operate without storing any validator private keys locally by delegating the signing of messages (e.g. attestations, beacon blocks) to the external signer which is accessed through a REST API via HTTP(S). This API should not be exposed directly to the public Internet and appropriate firewall rules should be in place to restrict access only from the validator client.","s":"External Signer","u":"/lodestar/run/validator-management/external-signer","h":"","p":498},{"i":501,"t":"Lodestar provides CLI options to connect an external signer. ./lodestar validator --externalSigner.url \"http://localhost:9000\" --externalSigner.fetch The validator client will fetch the list of public keys from the external signer and automatically keep them in sync with signers in local validator store by adding newly discovered public keys and removing no longer present public keys on external signer. By default, the list of public keys will be fetched from the external signer once per epoch (6.4 minutes). This interval can be configured by setting --externalSigner.fetchInterval flag which takes a number in milliseconds. Alternatively, if it is not desired to use all public keys imported on the external signer, it is also possible to explicitly specify a list of public keys to use by setting the --externalSigner.pubkeys flag instead of --externalSigner.fetch.","s":"Configuration","u":"/lodestar/run/validator-management/external-signer","h":"#configuration","p":498},{"i":504,"t":"warning This is an alpha feature. The feature and its format are subject to change. With Lodestar's validator client, you can assign specific metadata for each proposer/public key using a proposer configuration file written in YAML file. This will allow you to set specific graffiti, fee recipients and builder settings per validator key.","s":"Proposer Configuration","u":"/lodestar/run/validator-management/proposer-config","h":"","p":503},{"i":506,"t":"proposer_config: \"0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c\": graffiti: \"graffiti\" strict_fee_recipient_check: false fee_recipient: \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\" builder: gas_limit: \"30000000\" selection: \"executionalways\" boost_factor: \"0\" \"0xa4855c83d868f772a579133d9f23818008417b743e8447e235d8eb78b1d8f8a9f63f98c551beb7de254400f89592314d\": fee_recipient: \"0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\" builder: gas_limit: \"3000000\" selection: \"maxprofit\" boost_factor: \"100\" default_config: graffiti: \"default graffiti\" strict_fee_recipient_check: true fee_recipient: \"0xcccccccccccccccccccccccccccccccccccccccc\" builder: gas_limit: \"30000000\" selection: \"default\" boost_factor: \"90\"","s":"Example proposer_config.yaml","u":"/lodestar/run/validator-management/proposer-config","h":"#example-proposer_configyaml","p":503},{"i":508,"t":"After you have configured your proposer configuration YAML file, you can start Lodestar with an additional CLI flag option pointing to the file: --proposerSettingsFile /path/to/proposer_config.yaml. info The proposer configuration can also be retrieved via the keymanager API endpoint: GET /eth/v0/validator/{pubkey}/proposer_config","s":"Enable Proposer Configuration","u":"/lodestar/run/validator-management/proposer-config","h":"#enable-proposer-configuration","p":503},{"i":510,"t":"Run one or multiple validator clients","s":"validator CLI Command","u":"/lodestar/run/validator-management/validator-cli","h":"","p":509},{"i":512,"t":"The following sub-commands are available with the validator command: validator slashing-protection import validator slashing-protection export validator import validator list validator voluntary-exit validator bls-to-execution-change","s":"Available Sub-Commands","u":"/lodestar/run/validator-management/validator-cli","h":"#available-sub-commands","p":509},{"i":515,"t":"Run one validator client with all the keystores available in the directory .holesky/keystores ./lodestar validator --network holesky","s":"Base validator command","u":"/lodestar/run/validator-management/validator-cli","h":"#base-validator-command","p":509},{"i":517,"t":"--dataDir​ Lodestar root data directory type: string --network​ Name of the Ethereum Consensus chain network to join type: string choices: \"mainnet\", \"gnosis\", \"sepolia\", \"holesky\", \"chiado\", \"ephemery\", \"mekong\", \"dev\" default: \"mainnet\" --paramsFile​ Network configuration file type: string --rcConfig​ RC file to supplement command line args, accepted formats: .yml, .yaml, .json type: string --terminal-total-difficulty-override​ Terminal PoW block TTD override type: string --terminal-block-hash-override​ Terminal PoW block hash override type: string --terminal-block-hash-epoch-override​ Terminal PoW block hash override activation epoch type: string --logLevel​ Logging verbosity level for emitting logs to terminal type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"info\" --logFile​ Path to output all logs to a persistent log file, use 'none' to disable type: string --logFileLevel​ Logging verbosity level for emitting logs to file type: string choices: \"error\", \"warn\", \"info\", \"verbose\", \"debug\", \"trace\" default: \"debug\" --logFileDailyRotate​ Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation type: number default: 5 --keymanager​ Enable key manager API server type: boolean --keymanager.auth​ Enable token bearer authentication for key manager API server type: boolean default: true --keymanager.tokenFile​ Path to file containing bearer token used for key manager API authentication type: string --keymanager.port​ Set port for key manager API type: number default: 5062 --keymanager.address​ Set host for key manager API type: string default: \"127.0.0.1\" --keymanager.cors​ Configures the Access-Control-Allow-Origin CORS header for key manager API type: string default: \"*\" --beaconNodes​ Addresses to connect to BeaconNode type: string[] default: [ \"http://127.0.0.1:9596\" ] --force​ Open validators even if there's a lockfile. Use with caution type: boolean --graffiti​ Specify your custom graffiti to be included in blocks (plain UTF8 text, 32 characters max) type: string --proposerSettingsFile​ A yaml file to specify detailed default and per validator public key customized proposer configs. PS: This feature and its format is in alpha and subject to change type: string --suggestedFeeRecipient​ Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$). It would be possible (WIP) to override this per validator key using config or key manager API. Only used post merge. type: string default: \"0x0000000000000000000000000000000000000000\" --strictFeeRecipientCheck​ Enable strict checking of the validator's feeRecipient with the one returned by engine type: boolean --defaultGasLimit​ Suggested gas limit to the engine/builder for building execution payloads. Only used post merge. type: number default: 30000000 --builder​ An alias for --builder.selection default for the builder flow, ignored if --builder.selection is explicitly provided type: boolean --builder.selection​ Builder block selection strategy default, maxprofit, builderalways, builderonly, executionalways, or executiononly type: string default: \"executiononly\" --builder.boostFactor​ Percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if --builder.selection is set to anything other than maxprofit type: string default: \"100\" --useProduceBlockV3​ Enable/disable usage of produceBlockV3 for block production, is auto enabled on deneb+ blocks type: boolean --broadcastValidation​ Validations to be run by beacon node for the signed block prior to publishing type: string default: \"gossip\" --blindedLocal​ Request fetching local block in blinded format for produceBlockV3 type: boolean default: false --importKeystores​ Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators type: string[] default: [ \"./keystores/*.json\" ] --importKeystoresPassword​ Path to a file with password to decrypt all keystores from importKeystores option type: string default: \"./password.txt\" --doppelgangerProtection​ Enables Doppelganger protection type: boolean --http.requestWireFormat​ Wire format to use in HTTP requests to beacon node. Can be one of json or ssz type: string default: \"json\" --http.responseWireFormat​ Preferred wire format for HTTP responses from beacon node. Can be one of json or ssz type: string default: \"ssz\" --externalSigner.url​ URL to connect to an external signing server type: string --externalSigner.pubkeys​ List of validator public keys used by an external signer. May also provide a single string of comma-separated public keys type: string[] --externalSigner.fetch​ Fetch the list of public keys to validate from an external signer. Cannot be used in combination with --externalSigner.pubkeys type: boolean --externalSigner.fetchInterval​ Interval in milliseconds between fetching the list of public keys from external signer, once per epoch by default type: number --distributed​ Enables specific features required to run as part of a distributed validator cluster type: boolean --metrics​ Enable the Prometheus metrics HTTP server type: boolean default: false --metrics.port​ Listen TCP port for the Prometheus metrics HTTP server type: number default: 5064 --metrics.address​ Listen address for the Prometheus metrics HTTP server type: string default: \"127.0.0.1\" --monitoring.endpoint​ Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in) type: string --monitoring.interval​ Interval in milliseconds between sending client stats to the remote service type: number default: 60000","s":"validator Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-options","p":509},{"i":519,"t":"Import an interchange file.","s":"validator slashing-protection import","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-import","p":509},{"i":521,"t":"Supports all parent command options plus the following: --beaconNodes​ Addresses to connect to BeaconNode type: string[] default: [ \"http://127.0.0.1:9596\" ] --force​ If genesisValidatorsRoot can't be fetched from the Beacon node, use a zero hash type: boolean --file​ The slashing protection interchange file to import (.json). required: true type: string","s":"validator slashing-protection import Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-import-options","p":509},{"i":523,"t":"Export an interchange file.","s":"validator slashing-protection export","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-export","p":509},{"i":525,"t":"Supports all parent command options plus the following: --beaconNodes​ Addresses to connect to BeaconNode type: string[] default: [ \"http://127.0.0.1:9596\" ] --force​ If genesisValidatorsRoot can't be fetched from the Beacon node, use a zero hash type: boolean --file​ The slashing protection interchange file to export to (.json). required: true type: string --pubkeys​ Export slashing protection data only for a given subset of public keys type: string[]","s":"validator slashing-protection export Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-slashing-protection-export-options","p":509},{"i":527,"t":"Imports one or more EIP-2335 keystores into a Lodestar validator client directory, requesting passwords interactively. The directory flag provides a convenient method for importing a directory of keys generated by the eth2-deposit-cli Ethereum Foundation utility.","s":"validator import","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-import","p":509},{"i":529,"t":"Import validator keystores generated with the Ethereum Foundation Staking Launchpad ./lodestar validator import --network holesky --importKeystores $HOME/staking-deposit-cli/validator_keys","s":"validator import Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-import-examples","p":509},{"i":531,"t":"Supports all parent command options plus the following: --importKeystores​ Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators type: string[] default: [ \"./keystores/*.json\" ] --importKeystoresPassword​ Path to a file with password to decrypt all keystores from importKeystores option type: string default: \"./password.txt\"","s":"validator import Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-import-options","p":509},{"i":533,"t":"Lists the public keys of all validators","s":"validator list","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-list","p":509},{"i":535,"t":"List all validator public keys previously imported ./lodestar validator list","s":"validator list Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-list-examples","p":509},{"i":537,"t":"Performs a voluntary exit for a given set of validators as identified via pubkeys. If no pubkeys are provided, it will exit all validators that have been imported.","s":"validator voluntary-exit","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-voluntary-exit","p":509},{"i":539,"t":"Perform a voluntary exit for the validator who has a public key 0xF00 ./lodestar validator voluntary-exit --network holesky --pubkeys 0xF00 Perform a voluntary exit for the validator who has a public key 0xF00 and its secret key is on an external signer ./lodestar validator voluntary-exit --network holesky --externalSigner.url http://signer:9000 --externalSigner.fetch --pubkeys 0xF00","s":"validator voluntary-exit Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-voluntary-exit-examples","p":509},{"i":541,"t":"Supports all parent command options plus the following: --exitEpoch​ The epoch upon which to submit the voluntary exit. If no value is provided, then we default to the current epoch. type: number --pubkeys​ Public keys to exit type: string[] --yes​ Skip confirmation prompt type: boolean","s":"validator voluntary-exit Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-voluntary-exit-options","p":509},{"i":543,"t":"Performs BLS To Execution Change for a given validator (as identified via publicKey. If no publicKey is provided, a prompt will ask the user which validator they would like to choose for BLS To Execution Change.","s":"validator bls-to-execution-change","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-bls-to-execution-change","p":509},{"i":545,"t":"Perform BLS To Execution Change for the validator who has a public key 0xF00 ./lodestar validator bls-to-execution-change --publicKey 0xF00 --fromBlsPrivkey ... --toExecutionAddress ...","s":"validator bls-to-execution-change Examples","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-bls-to-execution-change-examples","p":509},{"i":547,"t":"Supports all parent command options plus the following: --publicKey​ Validator public key for which to set withdrawal address hence enabling withdrawals required: true type: string --fromBlsPrivkey​ Bls withdrawals private key to sign the message required: true type: string --toExecutionAddress​ Address to which the validator's balances will be set to be withdrawn. required: true type: string","s":"validator bls-to-execution-change Options","u":"/lodestar/run/validator-management/validator-cli","h":"#validator-bls-to-execution-change-options","p":509},{"i":550,"t":"The following instructions are for stakers utilizing the Lodestar validator client.","s":"Validator Configuration","u":"/lodestar/run/validator-management/vc-configuration","h":"","p":549},{"i":552,"t":"Validators are represented by a BLS keypair. Use your generated mnemonic from one of the tools above to generate the keystore files required for validator duties on Ethereum using the Lodestar validator client.","s":"Setup your validator","u":"/lodestar/run/validator-management/vc-configuration","h":"#setup-your-validator","p":549},{"i":554,"t":"To create a keystore, we recommend using the official Staking Deposit CLI from the Ethereum Foundation for users comfortable with command line interfaces. Alternatively, for a graphical user interface, you can use the Stakehouse Wagyu Key Generator developed by members of the EthStaker community. warning These tools will generate keystore files for staking validators as well as the important mnemonic. This mnemonic must be handled and stored securely.","s":"Create a keystore","u":"/lodestar/run/validator-management/vc-configuration","h":"#create-a-keystore","p":549},{"i":556,"t":"To import a validator JSON keystore that was created via one of the methods described above, you must locate the file for import (ex. keystore-m_12381_3600_0_0_0-1654128694.json). Inside the keystore JSON file, you should have an EIP-2335 keystore file. You will also need the passphrase used the encrypt the keystore. This can be specified interactively, or provided in a plaintext file. Option 1: Import Keys To Lodestar's Keystores Folder​ You can load the keys into the keystore folder using the validator import command. There are two methods for importing keystores: Interactive passphrase import ./lodestar validator import --importKeystores ./validator_keys Plaintext passphrase file import ./lodestar validator import --importKeystores ./validator_keys --importKeystoresPassword ./password.txt info The interactive passphrase import method will prompt every keystore in the validator_keys folder for import and will ask for the individual password for each keystore. This method will allow you to import multiple keystores with different passwords. The plaintext passphrase file import method will allow you to import all keystores in the validator_keys folder encrypted with the same password contained in password.txt for efficiency. Once imported with either method, these keystores will be automatically loaded when you start the validator. To list the imported keystores, use the validator list command. Option 2: Import Keys When Starting the Validator​ To import keys when you start the validator specify the --importKeystores and --importKeystoresPassword flags with the validator command: ./lodestar validator --importKeystores ./validator_keys --importKeystoresPassword ./password.txt warning If you import keys using --importKeystores at runtime (Option 2) any keys loaded to the keystores folder from Option 1 will be ignored.","s":"Import a validator keystore to Lodestar","u":"/lodestar/run/validator-management/vc-configuration","h":"#import-a-validator-keystore-to-lodestar","p":549},{"i":558,"t":"Post-Merge Ethereum requires validators to set a Fee Recipient which allows you to receive priority fees when proposing blocks. If you do not set this address, your priority fees will be sent to the burn address. Configure your validator client's fee recipient address by using the --suggestedFeeRecipient flag. Ensure you specify an Ethereum address you control. An example of a fee recipient set with the address 0xB7576e9d314Df41EC5506494293Afb1bd5D3f65d would add the following flag to their configuration: --suggestedFeeRecipient 0xB7576e9d314Df41EC5506494293Afb1bd5D3f65d. You may choose to use the --strictFeeRecipientCheck flag to enable a strict check of the fee recipient address with the one returned by the beacon node for added reassurance. note If you would like to set unique proposer metadata (e.g. fee recipient address) for each validator you are running, see the Proposer Configuration feature. This feature is also available via the keymanager API.","s":"Configuring the fee recipient address","u":"/lodestar/run/validator-management/vc-configuration","h":"#configuring-the-fee-recipient-address","p":549},{"i":560,"t":"If you are running a beacon node with connected builder relays, you may use these validator configurations to signal which block (builder vs. local execution) the beacon node should produce. With produceBlockV3 (enabled automatically after the Deneb hard fork), the --builder.boostFactor is a percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if --builder.selection is set to anything other than maxprofit. Even though this is set on the validator client, the calculation is requested and applied on the beacon node itself. For more information, see the produceBlockV3 Beacon API. With Lodestar's --builder.selection validator options, you can select: default: Default setting for Lodestar set at --builder.boostFactor=90. This default setting will have a local block boost of ~10%. Note that this value might change in the future depending on what we think is the most appropriate value to help improve censorship resistance of Ethereum. maxprofit: An alias of --builder.boostFactor=100, which will always choose the more profitable block. Using this option, you may customize your --builder.boostFactor to your preference. Examples of its usage are below. executionalways: An alias of --builder.boostFactor=0, which will select the local execution block, unless it fails to produce due to an error or a delay in the response from the execution client. executiononly: Beacon node will be requested to produce local execution block even if builder relays are configured. This option will always select the local execution block and will error if it couldn't produce one. builderalways: An alias of --builder.boostFactor=18446744073709551615 (2**64 - 1), which will select the builder block, unless the builder block fails to produce. The builder block may fail to produce if it's not available, not timely or there is an indication of censorship via shouldOverrideBuilder from the execution payload response. builderonly: Generally used for distributed validators (DVs). No execution block production will be triggered. Therefore, if a builder block is not produced, the API will fail and no block will be produced. Calculating builder boost factor with examples​ To calculate the builder boost factor setting, you need to know what percentage you will accept a builder block for against a local execution block using the following formula: 100*100/(100+percentage). The value passed to --builder.boostFactor must be a valid number without decimals. Example 1: I will only accept a builder block with 25% more value than the local execution block. 10000/(100+25) = 80 Therefore, --builder.boostFactor=80. Example 2: Setting a --builder.boostFactor=0 will always prefer the local execution block, but will produce an available builder block if the local execution block fails. Example 3: Setting a --builder.boostFactor=100 is the same as signaling --builder.selection maxprofit where the validator will always select the most profitable block between the local execution engine and the builder block from the relay.","s":"Configure your builder selection and/or builder boost factor","u":"/lodestar/run/validator-management/vc-configuration","h":"#configure-your-builder-selection-andor-builder-boost-factor","p":549},{"i":562,"t":"Please use the official Ethereum Launchpad to perform your deposits. Ensure your deposits are sent to the proper beacon chain deposit address on the correct network. Mainnet​ Ethereum Mainnet Launchpad Beacon Chain Deposit Contract 0x00000000219ab540356cBB839Cbe05303d7705Fa Holesky Testnet​ Ethereum Holesky Testnet Launchpad Holesky Beacon Chain Deposit Contract 0x4242424242424242424242424242424242424242 Ephemery Testnet​ Ethereum Ephemery Testnet Launchpad Ephemeral Testnet Resources","s":"Submit a validator deposit","u":"/lodestar/run/validator-management/vc-configuration","h":"#submit-a-validator-deposit","p":549},{"i":564,"t":"To start a Lodestar validator run the command: ./lodestar validator --network $NETWORK_NAME You should see confirmation that modules have started. Mar-01 03:06:35.048[] info: Lodestar network=holesky, version=v1.16.0/6ad9740, commit=6ad9740a085574306cf46c7642e749d6ec9a4264 Mar-01 03:06:35.050[] info: Connecting to LevelDB database path=/keystoresDir/validator-db-holesky Mar-01 03:06:35.697[] info: 100% of keystores imported. current=2 total=2 rate=1318.68keys/m Mar-01 03:06:35.698[] info: 2 local keystores Mar-01 03:06:35.698[] info: 0xa6fcfca12e1db6c7341d82327010cd57224dc239d1c5e4fb18286cc32edb877d813c5af1c870d474aef7b3ff7ab927ea Mar-01 03:06:35.698[] info: 0x8f868e53bbe1451bcf6d42c9ab6d292cbd7fbfa09c59b6b99c1dd6a4977e2e7b4b752c328784ca2788dd6f63ffcbdb7e Mar-01 03:06:35.732[] info: Beacon node urls=http://127.0.0.1:9596 Mar-01 03:09:23.813[] info: Genesis fetched from the beacon node Mar-01 03:09:23.816[] info: Verified connected beacon node and validator have same the config Mar-01 03:09:23.818[] info: Verified connected beacon node and validator have the same genesisValidatorRoot Mar-01 03:09:23.818[] info: Initializing validator useProduceBlockV3=deneb+, broadcastValidation=gossip, defaultBuilderSelection=executiononly, suggestedFeeRecipient=0xeeef273281fB83F56182eE960aA4bAfe7fE075DE, strictFeeRecipientCheck=false Mar-01 03:09:23.830[] info: Validator seen on beacon chain validatorIndex=1234567, pubKey=0xa6fcfca12e1db6c7341d82327010cd57224dc239d1c5e4fb18286cc32edb877d813c5af1c870d474aef7b3ff7ab927ea Mar-01 03:09:23.830[] info: Validator seen on beacon chain validatorIndex=1234568, pubKey=0x8f868e53bbe1451bcf6d42c9ab6d292cbd7fbfa09c59b6b99c1dd6a4977e2e7b4b752c328784ca2788dd6f63ffcbdb7e Mar-01 03:09:23.830[] info: Validator statuses active=2, total=2 Mar-01 03:15:50.191[] info: Published attestations slot=1113379, count=1 Mar-01 03:16:02.728[] info: Published attestations slot=1113380, count=1","s":"Run the validator","u":"/lodestar/run/validator-management/vc-configuration","h":"#run-the-validator","p":549},{"i":568,"t":"@chainsafe/js-libp2p-noise - Noise handshake for js-libp2p @chainsafe/js-libp2p-gossipsub - Gossipsub protocol for js-libp2p @chainsafe/libp2p-yamux","s":"LibP2P","u":"/lodestar/supporting-libraries/","h":"#libp2p","p":565},{"i":570,"t":"discv5 - Discv5 protocol","s":"Discv5","u":"/lodestar/supporting-libraries/","h":"#discv5","p":565},{"i":572,"t":"@chainsafe/ssz - Simple Serialize (SSZ) @chainsafe/persistent-merkle-tree - binary merkle tree implemented as a persistent data structure @chainsafe/as-sha256 - Small AssemblyScript implementation of SHA256","s":"Serialization and Hashing","u":"/lodestar/supporting-libraries/","h":"#serialization-and-hashing","p":565},{"i":574,"t":"@chainsafe/bls - Isomorphic Ethereum Consensus BLS sign / verify / aggregate @chainsafe/blst-ts - Node specific Ethereum Consensus BLS sign / verify / aggregate @chainsafe/bls-keystore - store / retrieve a BLS secret key from an EIP-2335 JSON keystore @chainsafe/bls-keygen - utility functions to generate BLS secret keys, following EIP-2333 and EIP-2334 @chainsafe/bls-hd-key - low level EIP-2333 and EIP-2334 functionality","s":"BLS","u":"/lodestar/supporting-libraries/","h":"#bls","p":565},{"i":576,"t":"The Lodestar project is divided into TypeScript packages that can be used independently of the CLI. These packages span the breadth of the Ethereum Consensus layer, and are perfect for TypeScript developers looking to build around Ethereum.","s":"Lodestar libraries","u":"/lodestar/supporting-libraries/libraries","h":"","p":575},{"i":578,"t":"Several useful Ethereum consensus libraries are developed as part of the Lodestar monorepo and may be useful when used individually. params - Ethereum consensus constants and fork names types - Ethereum consensus types, TypeScript interfaces and SSZ type objects config - Ethereum consensus run-time network configuration api - Ethereum consensus REST API client flare - Beacon chain multi-purpose and debugging tool light-client - Ethereum light client prover - A set of tools allowing to verify EL client JSON-RPC calls","s":"Monorepo libraries","u":"/lodestar/supporting-libraries/libraries","h":"#monorepo-libraries","p":575},{"i":581,"t":"bls - Ethereum Consensus BLS sign / verify / aggregate bls-keystore - store / retrieve a BLS secret key from an EIP-2335 JSON keystore bls-keygen - utility functions to generate BLS secret keys, following EIP-2333 and EIP-2334 bls-hd-key - low level EIP-2333 and EIP-2334 functionality","s":"BLS Utilities","u":"/lodestar/supporting-libraries/libraries","h":"#bls-utilities","p":575},{"i":583,"t":"ssz - Simple Serialize (SSZ) persistent-merkle-tree - binary merkle tree implemented as a persistent data structure as-sha256 - Small AssemblyScript implementation of SHA256","s":"Hashing","u":"/lodestar/supporting-libraries/libraries","h":"#hashing","p":575},{"i":585,"t":"discv5 - Discv5 protocol js-libp2p-gossipsub - Gossipsub protocol for js-libp2p js-libp2p-noise - Noise handshake for js-libp2p","s":"Networking","u":"/lodestar/supporting-libraries/libraries","h":"#networking","p":575},{"i":588,"t":"⏳ Lodestar currently undergoes a quick release cycle with regular minor releases published roughly fortnightly. 🌐 We encourage using the most recently released version before reporting an issue.","s":"Supported Versions","u":"/lodestar/security","h":"#supported-versions","p":586},{"i":590,"t":"🚨 Please, send vulnerability reports to security@chainsafe.io. ⚠️ Please do not file a public ticket mentioning the vulnerability, as doing so could increase the likelihood of the vulnerability being used before a fix has been created, released and installed on the network.","s":"Reporting a Vulnerability","u":"/lodestar/security","h":"#reporting-a-vulnerability","p":586}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/4",[0,1.217,1,4.069,2,3.993,3,2.559,4,3.29,5,2.245,6,4.521,7,6.306,8,5.014,9,5.166,10,4.521]],["t/6",[0,1.46,2,2.863,3,1.835,6,3.242,11,1.716,12,3.963,13,3.036,14,3.242,15,2.761,16,2.542,17,1.364,18,3.169,19,2.582,20,4.302,21,3.963,22,3.826,23,1.327,24,2.15,25,1.135,26,2.975,27,2.975,28,3.755,29,3.495,30,3.963,31,3.32,32,2.092,33,2.326,34,4.521,35,2.761,36,1.754,37,2.262,38,5.723,39,4.521,40,3.595,41,3.704,42,2.918,43,3.704,44,2.668,45,2.262,46,4.521,47,4.302,48,2.714,49,3.495,50,3.495,51,3.169,52,2.714,53,4.119,54,5.723]],["t/8",[0,0.89,5,1.641,23,1.353,55,5.835,56,2.188,57,5.822,58,1.574,59,3.673,60,4.891,61,6.989,62,5.013,63,5.266,64,6.989,65,6.989,66,3.665,67,5.266,68,5.266,69,4.891,70,5.266,71,3.564,72,4.041,73,7.761,74,6.491,75,4.891,76,4.891,77,5.266,78,3.737,79,5.013,80,6.119,81,5.266,82,4.891,83,6.491,84,6.989,85,6.989,86,6.989]],["t/10",[4,2.9,5,2.456,23,2.025,59,3.336,73,5.896,74,5.896,80,5.558,87,3.275,88,3.879,89,4.419,90,2.985,91,2.942,92,3.233,93,3.658,94,3.985,95,7.035,96,3.455,97,3.985,98,6.348,99,7.035,100,5.064]],["t/12",[0,1.251,1,4.182,2,4.104,41,5.309,101,4.444,102,5.152,103,4.879,104,5.152]],["t/14",[1,3.963,9,5.031,46,6.141,48,3.686,50,4.747,101,4.211,105,6.141,106,5.595,107,6.141,108,6.514,109,5.595,110,4.623,111,7.014,112,6.514]],["t/19",[0,0.889,3,1.662,11,1.555,12,1.356,17,1.039,19,0.883,23,0.776,24,1.638,25,1.797,28,1.644,32,2.613,33,1.781,36,1.026,37,0.774,44,0.913,45,1.733,51,1.084,52,1.587,58,2.658,59,1.587,72,3.035,88,1.486,90,1.42,96,0.962,113,1.409,114,1.309,115,1.178,116,1.896,117,1.061,118,1.677,119,2.753,120,1.958,121,0.962,122,0.744,123,1.709,124,1.767,125,0.962,126,0.979,127,1.309,128,0.962,129,1.919,130,1.51,131,1.196,132,1.641,133,1.409,134,2.409,135,1.641,136,1.547,137,1.23,138,1.767,139,1.958,140,0.928,141,1.309,142,1.309,143,0.607,144,2.644,145,2.483,146,3.257,147,3.356,148,4.882,149,4.679,150,3.346,151,3.02,152,1.767,153,2.515,154,1.472,155,2.515,156,1.547,157,2.753,158,1.958,159,3.673,160,2.317,161,1.196,162,2.594,163,1.441,164,1.164,165,1.084,166,5.169,167,1.409,168,1.547,169,1.641,170,3.167,171,3.215,172,2.138,173,1.409,174,1.109,175,2.237,176,1.061,177,1.061,178,0.979,179,1.958,180,1.958,181,1.946,182,0.869,183,1.641,184,0.962,185,1.109,186,1.74,187,1.917,188,2.193,189,2.644,190,1.958,191,2.044,192,3.515,193,1.767,194,1.409,195,1.061,196,1.958,197,1.356,198,0.785,199,1.36,200,1.305,201,1.409,202,1.767,203,1.084,204,1.084,205,2.696,206,3.732,207,1.958,208,1.813,209,1.958,210,2.804,211,1.958,212,3.346,213,1.941,214,1.42,215,1.267,216,0.928,217,1.99,218,1.641,219,1.99,220,1.958,221,1.356,222,1.23,223,0.698,224,1.409,225,0.785,226,1.958,227,1.547,228,1.136,229,1.99,230,1.767,231,1.958,232,1.958,233,1.547,234,2.278,235,1.164,236,3.346,237,1.164,238,1.267,239,1.109,240,1.958,241,1.109,242,1.958,243,1.409,244,1.409,245,1.958,246,1.136,247,0.843,248,1.958,249,1.958,250,1.547,251,1.267,252,0.744,253,1.958,254,1.958,255,1.767,256,1.767,257,1.641,258,1.356]],["t/21",[0,1.065,11,2.093,28,3.428,33,2.837,36,2.14,90,2.962,93,3.629,94,3.954,115,2.458,119,4.384,129,2.584,130,3.149,145,3.954,239,5.361,259,4.518,260,4.666,261,5.81,262,4.666,263,5.514,264,6.98,265,6.98,266,4.666,267,5.024,268,4.833]],["t/25",[0,1.108,17,1.296,45,2.872,52,3.445,140,4.224,184,3.568,269,7.265,270,4.214,271,4.702,272,6.089,273,5.461,274,4.321,275,5.74,276,4.115,277,5.009,278,5.74,279,5.03,280,7.265,281,4.563]],["t/27",[121,3.818,140,4.4,184,4.558,217,4.623,271,5.031,282,3.624,283,6.141,284,7.014,285,4.623,286,7.014,287,6.141,288,6.514]],["t/29",[24,2.265,25,1.598,35,3.886,115,2.836,118,2.128,273,6.054,289,5.577,290,6.054,291,8.054,292,4.791]],["t/31",[3,2.63,4,3.381,5,2.307,6,4.646,293,8.203,294,3.587,295,5.152,296,3.533]],["t/33",[0,1.117,24,2.518,25,1.918,94,4.149,134,5.272,140,4.245,163,3.155,294,3.203,297,5.787,298,4.474,299,2.977,300,5.072,301,6.139,302,7.325,303,3.664,304,4.601,305,5.072]],["t/35",[0,1.217,17,1.424,140,3.785,273,6,290,6,306,7.982,307,7.203,308,7.203,309,5.014,310,4.875,311,4.875]],["t/37",[24,2.583,25,1.822,40,4.798,90,3.242,140,3.622,165,4.23,252,3.489,277,3.972,312,9.184,313,5.769,314,5.742]],["t/39",[17,1.647,36,2.362,44,3.592,315,7.705,316,4.174,317,7.705,318,6.953,319,4.987,320,5.335,321,5.546,322,3.928,323,7.705,324,7.705,325,6.458]],["t/41",[3,1.988,4,2.556,24,1.744,25,1.599,125,3.046,140,3.822,200,2.419,297,4.899,300,5.582,326,7.274,327,7.103,328,5.197,329,3.36,330,6.201,331,5.702,332,8.061,333,4.899,334,5.197,335,4.146,336,2.941,337,4.464,338,6.201,339,8.061,340,5.389,341,3.162,342,3.689]],["t/43",[3,2.428,5,2.759,172,3.122,274,4.505,343,6.835,344,5.914,345,4.902,346,5.693,347,4.902,348,5.452,349,7.574,350,3.473,351,6.348,352,3.938]],["t/45",[0,1.185,14,4.403,92,2.877,129,2.877,353,7.773,354,4.623,355,6.141,356,7.777,357,5.382,358,5.595,359,7.773,360,4.211,361,5.843]],["t/47",[3,2.582,4,3.32,26,4.187,115,2.836,143,2.496,247,3.469,261,5.384,294,3.522,307,7.268,362,7.268]],["t/49",[5,2.596,17,1.374,87,2.889,122,2.927,178,3.855,344,4.987,352,4.006,363,6.953,364,6.458,365,6.953,366,6.953,367,3.928,368,4.84,369,4.174]],["t/51",[3,2.63,4,3.381,6,4.646,294,3.587,303,4.104,352,4.264,370,8.203,371,6.48]],["t/53",[3,2.514,4,3.232,17,1.399,29,5.697,45,3.937,56,2.94,372,7.841,373,6.195,374,7.841,375,7.076]],["t/55",[0,1.024,17,1.659,24,2.615,25,1.333,140,3.185,162,4.244,163,2.893,199,2.73,270,3.896,294,3.71,297,5.306,298,4.102,303,3.36,326,6.061,327,4.651,376,6.716,377,7.347,378,4.093,379,3.563,380,6.061,381,4.102,382,6.716,383,6.061]],["t/57",[3,2.63,4,3.381,252,3.116,294,3.587,308,7.402,384,5.68,385,3.533,386,5.68]],["t/59",[0,1.24,29,4.964,140,3.854,270,5.527,271,5.261,294,3.554,354,4.834,387,8.128]],["t/61",[5,2.643,23,1.594,25,1.363,35,3.316,56,2.577,110,4.088,115,2.42,118,2.603,122,2.61,140,3.259,289,4.758,294,3.764,295,4.317,296,3.707,297,5.429,304,4.317,333,5.429,334,5.759,379,3.646,383,6.201,388,3.987,389,5.759]],["t/63",[121,3.886,184,3.886,271,5.12,276,5.312,277,4.113,282,3.688,286,7.139,287,6.25,288,6.63,390,5.947,391,4.832]],["t/65",[6,4.442,20,5.894,379,4.16,392,7.076,393,7.076,394,7.076,395,7.841,396,5.429,397,7.841,398,6.571,399,7.841,400,7.841,401,6.571]],["t/67",[6,4.562,25,1.598,174,4.562,175,5.384,271,5.213,294,3.522,303,4.029,352,4.187,402,8.054,403,8.054]],["t/69",[303,3.993,342,4.748,404,6.306,405,4.875,406,5.336,407,7.982,408,7.982,409,7.982,410,4.069,411,5.014,412,7.982]],["t/71",[6,4.481,17,1.411,294,3.46,303,3.958,352,4.875,404,6.25,405,4.832,413,7.409,414,6.25,415,7.911]],["t/73",[292,4.664,294,3.429,303,3.923,345,5.075,404,6.195,405,5.697,416,8.418,417,5.894,418,6.571,419,7.841,420,5.894]],["t/75",[114,5.535,140,3.926,271,5.359,294,3.621,421,7.471,422,5.535,423,6.938]],["t/77",[17,1.424,31,5.469,143,2.922,303,3.993,405,5.758,417,6,424,7.982,425,6.306]],["t/79",[17,1.45,24,2.286,25,1.612,44,3.789,45,3.213,113,5.85,117,4.403,118,2.148,426,6.812]],["t/81",[0,1.207,24,2.225,25,1.569,32,2.891,72,6.493,118,2.09,119,4.969,148,6.63,159,6.63,309,4.969,427,7.139]],["t/83",[0,0.183,1,0.323,3,0.203,4,0.261,5,0.937,11,0.19,13,0.336,17,0.957,23,0.278,24,0.937,25,0.785,26,0.889,27,1.348,28,0.589,32,0.948,33,0.695,36,0.194,37,0.474,44,0.295,45,0.25,49,0.386,56,0.641,57,0.476,58,1.447,59,0.3,66,0.397,72,0.438,87,1.587,88,0.533,89,1.87,91,0.502,92,0.444,94,0.358,100,0.455,115,0.765,118,1.417,119,0.397,122,0.985,126,0.6,127,0.802,129,1.751,141,0.423,142,0.423,143,0.53,144,0.5,145,1.886,147,0.776,148,0.53,149,0.571,151,0.571,152,0.571,153,0.476,154,1.285,155,0.476,156,0.5,157,0.397,159,0.53,161,1.327,162,1.978,163,0.936,164,1.771,166,2.062,167,0.455,168,2.352,171,1.282,172,0.261,173,0.455,174,0.969,175,1.452,176,0.926,178,2.584,181,0.965,185,0.358,186,0.329,188,0.855,192,0.35,195,1.804,197,1.184,199,0.883,203,0.35,206,0.455,208,2.563,210,0.53,213,1.26,214,3.768,216,3.427,223,0.774,225,0.871,228,0.367,234,1.348,235,1.017,239,0.358,241,1.23,246,0.696,247,0.272,252,0.24,258,0.83,259,0.776,260,0.802,266,0.423,267,0.455,268,3.432,276,1.23,279,0.438,282,0.797,290,0.476,292,0.376,294,0.277,295,0.397,296,2.783,303,0.316,309,0.753,310,1.044,313,0.397,319,0.776,322,1.107,327,1.504,335,0.802,344,0.409,350,1.189,352,0.329,367,1.107,368,1.074,369,0.65,384,1.504,385,4.237,388,0.696,391,2.034,410,1.322,427,1.543,428,0.713,429,0.825,430,5.095,431,0.305,432,0.476,433,0.409,434,0.329,435,0.476,436,0.455,437,0.476,438,0.476,439,1.704,440,0.423,441,0.423,442,0.476,443,0.336,444,0.455,445,0.438,446,0.476,447,0.83,448,1.184,449,2.32,450,0.476,451,1.629,452,1.687,453,0.367,454,0.571,455,1.771,456,0.367,457,1.543,458,0.455,459,2.201,460,1.542,461,2.238,462,2.155,463,0.409,464,0.947,465,0.5,466,1.584,467,0.571,468,0.571,469,1.795,470,0.571,471,0.5,472,0.83,473,1.074,474,0.386,475,0.376,476,0.753,477,0.277,478,0.5,479,0.468,480,0.438,481,4.938,482,0.571,483,1.231,484,0.438,485,0.455,486,0.455,487,0.397,488,0.397,489,0.455,490,0.29,491,0.753,492,0.53,493,0.901,494,0.53,495,0.83,496,1.107,497,0.409,498,0.776,499,2.294,500,2.294,501,1.866,502,0.571,503,1.98,504,0.713,505,0.776,506,1.542,507,0.571,508,1.564,509,0.455,510,1.564,511,0.65,512,1.285,513,0.579,514,0.611,515,0.713,516,0.476,517,0.476,518,0.476,519,0.476,520,0.476,521,0.901,522,0.438,523,0.732,524,0.423,525,1.005,526,3.062,527,0.571,528,0.5,529,1.082,530,0.409,531,0.476,532,0.571,533,0.571,534,0.901,535,1.005,536,0.947,537,0.571,538,0.53,539,0.571,540,0.571,541,0.53,542,0.571,543,0.571,544,0.476,545,0.83,546,0.455,547,0.376,548,1.452,549,0.438,550,0.863,551,0.5,552,0.5,553,0.455,554,1.388,555,0.53,556,0.53,557,0.53,558,0.53,559,0.323,560,0.571,561,1.044,562,2.072,563,0.53,564,0.571,565,0.571,566,0.571,567,0.343,568,2.143,569,0.571,570,0.53,571,0.571,572,0.571,573,0.571,574,0.947,575,1.433,576,0.397,577,0.409,578,0.571,579,0.571,580,0.571,581,0.571,582,1.082,583,1.949,584,1.082,585,0.571,586,1.543,587,0.571,588,0.5,589,1.074,590,0.53,591,0.571,592,0.438,593,0.5,594,0.476,595,0.5,596,1.351,597,0.713,598,0.29,599,0.476,600,0.571,601,1.564,602,1.504,603,0.947,604,0.5,605,0.397,606,0.571,607,0.571,608,0.571,609,0.455,610,1.821,611,0.5,612,0.53,613,0.571,614,0.571,615,0.571,616,0.5,617,0.455,618,1.005,619,0.571,620,1.082,621,0.571,622,0.571,623,0.571,624,1.074,625,0.5,626,2.631,627,1.949,628,0.571,629,0.5,630,0.5,631,0.901,632,0.802,633,0.343,634,0.476,635,0.5,636,0.83,637,0.5,638,0.5,639,0.5,640,2.747,641,0.53,642,1.082,643,0.776,644,1.005,645,0.5,646,1.716,647,1.351,648,1.005,649,0.53,650,0.571,651,0.397,652,0.571,653,0.53,654,0.438,655,0.571,656,0.571,657,0.53,658,0.571,659,1.082,660,0.53,661,0.5,662,0.53,663,0.5,664,0.455,665,0.5,666,0.571,667,1.082,668,0.571,669,0.571,670,0.571,671,0.571,672,0.571,673,0.947,674,0.5,675,0.571,676,0.571,677,0.571,678,0.947,679,0.802,680,0.571,681,0.53,682,0.476,683,0.455,684,0.455,685,0.53,686,0.397,687,0.476,688,0.732,689,0.53,690,0.316,691,0.53,692,0.5,693,0.476,694,0.53,695,0.397,696,0.571,697,0.455,698,0.571,699,0.571,700,0.476,701,0.53,702,0.732,703,0.53,704,0.947,705,0.53,706,0.53,707,0.5,708,1.005,709,0.53,710,0.5,711,1.005,712,0.53,713,0.397,714,0.53,715,0.438,716,0.53,717,0.571,718,1.005,719,0.386,720,0.571,721,0.5,722,0.571,723,0.753,724,0.5,725,0.423,726,0.438,727,0.571,728,0.53,729,0.901,730,0.53,731,0.6,732,0.455,733,0.476,734,0.53,735,0.5,736,0.438,737,0.455,738,0.476,739,0.571,740,0.571,741,0.438,742,0.571,743,1.082,744,0.571,745,0.455,746,0.409,747,0.5,748,1.005,749,1.285,750,0.53,751,0.476,752,0.5,753,0.53,754,0.863,755,0.397,756,0.571,757,0.633,758,0.83,759,0.533,760,0.5,761,0.633,762,0.633,763,0.409,764,0.455,765,0.5,766,0.633,767,0.386,768,0.35]],["t/85",[0,1.228,3,2.582,7,6.363,41,5.213,769,7.268,770,6.75,771,5.213,772,7.268,773,6.054,774,6.054]],["t/87",[58,2.626,355,6.665,775,6.341,776,4.22]],["t/89",[16,3.483,17,1.399,92,2.903,172,3.232,633,4.248,777,7.841,778,6.571,779,6.195,780,7.841,781,7.076,782,9.328,783,6.571]],["t/91",[0,1.3,2,3.386,13,4.522,14,3.833,16,3.006,23,2.272,36,2.075,58,2.723,78,3.265,178,4.264,277,3.518,282,3.155,477,2.96,599,5.087,776,4.264,784,7.692,785,6.767,786,6.767,787,4.686]],["t/93",[6,2.265,15,1.93,17,0.713,19,2.679,23,2.389,25,0.793,32,1.462,33,1.625,41,2.589,44,1.865,45,3.935,52,1.896,58,2.365,87,1.499,91,2.483,92,1.48,102,3.729,134,2.879,143,1.24,182,1.776,197,2.769,205,2.079,252,1.519,276,3.363,277,3.086,296,1.723,340,3.969,341,2.039,345,2.589,367,2.039,368,2.512,381,2.443,385,2.557,456,2.32,479,1.56,500,2.32,505,2.589,567,2.167,776,4.664,788,3.352,789,3.352,790,5.936,791,4.273,792,5.936,793,3.352,794,3.609,795,3.086,796,2.674,797,1.93,798,3.999,799,3.999,800,3.999,801,2.674,802,4.462,803,5.357,804,3.842,805,2.443,806,3.609,807,3.609,808,3.006,809,3.16,810,2.769,811,3.352,812,3.352,813,3.352,814,2.879,815,3.16,816,2.879,817,3.006,818,2.674]],["t/95",[17,1.296,33,2.953,44,3.387,102,4.563,115,2.558,122,2.76,130,3.278,172,2.995,342,4.321,477,3.177,795,3.777,797,3.505,819,7.265,820,6.556,821,5.03,822,7.265,823,5.03,824,6.089,825,5.461,826,3.777,827,3.936,828,5.74]],["t/97",[11,1.613,23,2.077,25,1.067,33,2.185,36,2.247,45,2.898,58,1.45,94,3.046,140,2.55,205,2.795,217,4.36,221,3.723,224,3.87,277,2.795,298,3.284,300,3.723,304,4.604,373,7.077,439,3.079,513,4.523,567,2.913,577,3.48,592,6.202,697,3.87,776,2.69,815,4.248,829,5.377,830,4.745,831,5.377,832,7.33,833,4.506,834,3.198,835,4.852,836,4.506,837,3.87,838,3.692,839,3.48,840,4.506,841,3.723,842,5.377]],["t/99",[17,1.208,23,2.165,25,0.952,26,2.494,37,2.677,45,3.939,56,1.799,87,1.799,130,2.165,140,2.275,146,4.254,162,2.4,187,2.098,195,2.599,204,2.656,205,3.521,215,3.105,219,2.853,223,1.71,298,2.93,309,4.254,310,2.93,340,4.527,348,3.453,367,2.446,373,3.79,429,2.315,439,1.649,479,1.871,484,5.435,488,3.013,513,3.268,567,2.599,633,2.599,715,3.322,776,2.4,820,4.329,825,3.606,843,3.453,844,3.606,845,5.676,846,3.606,847,2.93,848,3.606,849,3.79,850,6.772,851,6.772,852,3.453,853,3.606,854,6.111,855,4.797,856,2.717,857,2.656,858,3.79,859,4.329,860,4.797,861,4.797,862,4.797,863,4.797]],["t/101",[15,4.659,23,1.693,24,2.513,25,1.65,32,1.953,33,3.379,58,1.969,78,2.579,92,1.978,118,1.412,122,2.03,130,3.294,178,2.674,191,3.264,205,2.779,429,2.579,439,2.858,506,4.342,597,4.342,624,3.357,731,3.652,738,4.018,758,3.701,830,3.459,864,7.503,865,6.968,866,7.3,867,4.823,868,4.223,869,6.118,870,5.768,871,5.345,872,5.345,873,4.018,874,5.255,875,3.573,876,4.823,877,4.823]],["t/103",[0,0.966,41,5.289,48,4.29,49,3.868,50,3.868,58,2.44,102,3.979,177,3.431,187,3.574,200,3.187,205,3.293,285,3.768,336,3.003,337,4.559,477,2.77,690,3.169,827,3.431,878,6.334,879,5.004,880,5.716,881,6.334,882,6.334,883,4.1,884,5.004,885,5.004,886,4.559,887,4.991,888,6.334,889,6.334,890,6.334,891,5.716,892,5.308]],["t/105",[48,4.4,51,4.304,58,2.097,198,3.115,272,6.514,360,4.211,385,3.348,490,3.564,702,4.747,759,3.452,893,5.196,894,7.773,895,5.595]],["t/107",[1,2.918,33,2.326,39,4.521,41,3.704,45,2.262,101,3.1,103,3.404,123,2.232,187,4.187,188,3.825,198,2.294,200,2.232,331,4.435,690,4.307,723,3.595,759,2.542,776,3.825,788,4.796,793,6.407,804,4.948,826,2.975,857,4.233,896,6.899,897,5.164,898,5.164,899,4.796,900,5.164,901,3.704,902,6.407,903,4.302,904,4.796,905,5.164,906,5.164,907,4.302,908,5.723,909,5.723,910,7.645,911,5.164,912,5.723,913,5.723]],["t/109",[0,0.66,1,2.208,8,3.953,41,2.803,48,2.984,87,1.624,90,1.838,93,2.251,102,2.72,103,2.576,118,1.144,133,4.53,188,4.94,247,1.865,262,2.895,283,4.972,287,3.421,296,1.865,340,2.895,342,2.576,360,2.346,375,3.907,431,3.577,449,2.632,475,2.576,476,3.953,479,1.689,483,3.117,553,3.117,576,2.72,611,3.421,690,2.166,725,2.895,728,3.629,732,3.117,758,2.998,759,1.923,771,4.073,791,3.117,802,4.731,804,6.391,805,2.645,810,4.358,843,4.53,858,3.421,901,4.799,902,5.274,906,3.907,914,3.255,915,4.33,916,4.33,917,4.33,918,3.907,919,3.421,920,4.33,921,4.33,922,4.33,923,3.255,924,3.117,925,4.33,926,1.865,927,4.33,928,3.907,929,6.293,930,3.629,931,3.255,932,2.72,933,5.274,934,4.33,935,3.255]],["t/111",[0,1.108,17,1.296,89,5.596,103,5.299,140,4.887,200,2.834,271,4.702,275,5.74,282,3.387,391,4.437,926,3.129,936,8.908,937,3.634,938,6.089,939,7.265]],["t/113",[0,0.732,6,1.717,11,1.439,17,1.521,23,1.382,27,1.576,36,1.826,37,1.199,40,1.904,44,1.413,45,1.897,51,1.679,58,1.991,79,1.962,90,1.287,91,2.007,93,2.495,101,2.6,126,1.517,142,3.983,170,1.852,177,1.642,187,3.228,192,1.679,195,2.6,200,1.182,215,1.962,219,1.803,223,1.081,261,2.027,277,1.576,304,4.255,305,2.099,320,2.099,342,1.803,345,1.962,354,1.803,356,2.541,378,2.316,385,3.18,401,2.541,431,1.463,443,3.161,474,1.852,477,1.326,479,1.182,495,4.125,505,1.962,506,4.67,513,1.463,624,1.904,633,3.227,688,1.852,695,1.904,732,2.182,755,1.904,771,1.962,772,2.736,776,2.98,788,2.541,789,4.993,793,4.022,794,2.736,805,1.852,814,2.182,826,4.082,838,1.25,849,2.395,857,4.088,893,2.027,914,2.279,940,2.736,941,3.032,942,4.478,943,3.032,944,3.032,945,3.032,946,3.032,947,2.541,948,2.099,949,3.032,950,3.792,951,3.455,952,3.032,953,2.541,954,3.015,955,3.032,956,3.032,957,2.736,958,3.032,959,3.032,960,3.032,961,3.032,962,3.032,963,3.032,964,3.032,965,2.099,966,7.382,967,2.099,968,3.032,969,2.736,970,2.395,971,2.736,972,2.541,973,2.395,974,3.032,975,3.032,976,2.395,977,3.032,978,2.395,979,2.027,980,2.736,981,2.279,982,1.962,983,2.541,984,5.957,985,3.032,986,3.032,987,3.032,988,3.032,989,3.032]],["t/115",[2,2.337,17,0.833,23,1.541,25,0.927,31,2.71,33,1.898,44,2.178,45,3.52,58,1.793,87,1.751,88,2.075,93,3.455,102,4.174,117,2.531,126,2.337,134,3.362,143,1.448,197,3.234,247,2.012,251,3.023,252,1.774,276,3.765,277,3.455,296,2.012,341,2.382,345,3.023,367,2.382,368,2.934,369,2.531,381,2.853,449,1.953,479,2.592,484,3.234,505,3.023,513,2.254,515,2.778,559,2.382,795,2.429,801,3.123,802,4.996,803,5.997,804,4.302,805,2.853,806,4.215,807,4.215,808,3.511,809,3.69,810,3.234,811,3.915,812,3.915,813,3.915,814,3.362,815,3.69,816,3.362,817,3.511,818,3.123,824,3.915,834,4.601,836,3.915,843,3.362,990,6.335,991,4.215,992,4.215,993,3.69,994,2.853,995,3.915,996,4.671,997,4.671,998,4.671,999,4.671,1000,3.234]],["t/118",[39,3.69,44,2.178,48,3.996,56,1.751,115,1.645,126,4.216,127,3.123,143,2.398,162,2.337,171,2.012,182,2.075,188,2.337,198,2.664,199,1.898,247,3.63,252,1.774,274,2.778,295,2.934,296,2.012,322,2.382,336,2.215,361,3.511,378,3.207,385,2.012,476,2.934,477,2.043,484,3.234,488,2.934,503,3.6,510,3.362,511,3.6,513,2.254,514,2.382,554,2.178,598,2.142,609,3.362,688,2.853,690,2.337,763,3.023,796,3.123,811,3.915,834,2.778,932,4.174,938,3.915,981,4.996,1000,4.602,1001,3.234,1002,4.283,1003,4.996,1004,3.69,1005,6.646,1006,3.511,1007,4.215,1008,4.215,1009,3.69,1010,4.671,1011,4.215,1012,4.671,1013,4.215,1014,4.671,1015,3.69,1016,4.215,1017,3.234,1018,4.671,1019,4.215,1020,3.69,1021,4.215,1022,3.69]],["t/120",[17,0.989,43,3.589,48,3.549,122,2.106,126,2.774,137,3.483,142,3.707,143,1.719,183,6.273,195,4.055,198,3,199,2.253,235,3.298,252,2.843,321,3.991,322,2.827,367,2.827,381,3.386,478,4.38,485,3.991,503,5.288,511,3.004,562,2.319,681,4.647,682,4.168,745,3.991,805,3.386,812,4.647,834,4.452,954,3.483,1002,3.07,1023,5.003,1024,7.484,1025,5.544,1026,5.913,1027,3.483,1028,5.544,1029,4.647,1030,5.544,1031,5.544,1032,4.38,1033,5.544,1034,4.647,1035,5.544,1036,5.544,1037,5.544,1038,5.003]],["t/122",[1,2.809,17,0.983,19,2.486,23,1.278,88,3.31,91,2.304,121,2.706,172,2.271,186,2.865,187,2.41,200,2.149,204,3.051,227,4.353,336,2.613,348,3.966,367,2.809,439,2.562,456,3.196,479,2.149,491,3.461,541,4.618,567,2.985,636,3.815,643,3.566,773,4.142,802,4.142,838,2.271,857,3.051,873,5.602,874,7.013,903,4.142,937,2.757,970,4.353,1039,5.888,1040,4.972,1041,3.966,1042,7.453,1043,5.51,1044,4.353,1045,4.618,1046,5.51,1047,5.51,1048,7.453,1049,3.815,1050,5.51,1051,5.51,1052,4.618,1053,3.196,1054,5.51,1055,3.966]],["t/124",[19,3.507,23,1.802,25,1.542,281,4.882,439,2.672,456,4.509,759,3.452,865,6.514,874,6.679,1056,7.773,1057,7.773,1058,7.773,1059,7.773]],["t/126",[13,4.056,17,1.364,23,1.327,33,3.499,35,2.761,47,4.302,51,3.169,91,3.6,101,5.337,182,2.542,187,2.503,205,2.975,219,3.404,282,4.014,336,2.714,378,2.761,388,3.32,567,3.1,598,2.624,755,3.595,776,3.825,857,3.169,903,4.302,1040,5.164,1060,5.723,1061,5.723,1062,6.407,1063,5.723,1064,5.723,1065,5.723,1066,8.609,1067,5.723,1068,5.723,1069,7.645,1070,5.723,1071,5.723,1072,5.723]],["t/128",[3,2.107,4,2.709,11,1.379,48,4.595,56,1.724,96,2.259,114,3.074,121,2.259,188,4.186,225,1.843,243,3.31,260,3.074,279,5.31,283,3.633,299,2.671,304,2.889,340,5.127,341,3.351,381,2.809,385,1.981,449,1.923,462,2.977,651,4.128,692,3.633,804,5.416,808,4.94,817,3.457,846,3.457,891,8.307,898,4.15,903,4.94,969,5.931,1000,6.374,1022,3.633,1073,6.993,1074,4.731,1075,7.013,1076,6.572,1077,3.633,1078,4.599,1079,4.599,1080,4.15,1081,2.809,1082,4.599,1083,6.572,1084,4.599,1085,4.599,1086,4.599]],["t/130",[27,4.264,49,5.01,50,5.01,892,6.874,1087,5.01,1088,8.203,1089,7.402,1090,7.402]],["t/134",[91,3.43,104,5.152,123,3.199,198,3.288,299,3.334,336,3.889,1091,5.484,1092,6.166]],["t/136",[11,2.46,25,1.627,45,3.243,776,4.104,859,7.402,1081,5.01,1093,8.203,1094,8.203]],["t/138",[0,1.095,13,2.769,17,1.281,22,3.489,23,1.666,45,3.79,96,2.564,128,3.528,129,1.932,181,2.318,215,3.378,228,4.167,268,3.614,287,4.123,311,4.387,373,4.123,385,3.094,477,2.282,487,3.278,719,3.188,771,3.378,827,2.828,833,4.374,839,3.378,841,3.614,865,6.019,954,4.511,981,3.923,982,3.378,1017,3.614,1095,5.674,1096,3.757,1097,2.956,1098,5.219,1099,6.488,1100,4.123,1101,4.374,1102,5.219,1103,5.219,1104,6.481,1105,4.374,1106,3.188,1107,4.71,1108,5.219,1109,6.481,1110,3.923,1111,5.219,1112,5.219,1113,4.374,1114,5.219,1115,3.757]],["t/140",[17,1.296,45,3.809,123,2.834,198,2.912,200,2.834,342,4.321,378,3.505,385,3.129,511,3.936,592,5.03,789,7.466,826,4.631,978,5.74,1097,4.115,1116,7.265,1117,3.936,1118,6.089,1119,5.461]],["t/142",[3,2.387,4,3.728,5,2.094,45,2.944,56,2.792,123,2.905,125,3.658,143,2.308,182,3.308,198,2.985,200,2.905,270,4.32,340,4.979,981,5.598,1097,4.219,1120,7.447,1121,6.241,1122,7.447]],["t/144",[0,1.017,45,3.338,97,3.776,123,2.6,130,3.008,163,2.871,182,2.961,198,2.672,200,2.6,217,3.965,358,4.798,379,4.916,559,3.399,773,5.011,932,4.187,1003,5.011,1015,5.267,1087,4.071,1097,3.776,1123,5.587,1124,6.666,1125,5.267,1126,5.587,1127,6.015,1128,5.587,1129,5.011,1130,6.666,1131,6.015,1132,6.666,1133,6.666]],["t/146",[0,1.294,10,4.806,23,1.558,30,4.651,35,3.241,45,3.676,91,2.809,123,2.62,125,3.299,132,5.629,143,2.082,198,2.692,200,2.62,274,5.046,791,6.106,813,5.629,826,3.492,847,4.102,848,5.049,1002,3.719,1097,3.805,1118,5.629,1119,5.049,1134,5.306,1135,4.834,1136,5.306]],["t/148",[0,1.264,5,1.82,17,1.154,45,3.276,91,2.707,92,2.396,125,3.179,132,5.424,187,3.624,188,3.238,195,3.506,247,2.788,274,3.85,296,3.569,299,2.63,369,4.489,526,4.189,576,4.065,592,4.482,814,4.659,847,3.953,942,6.229,950,5.113,978,5.113,1117,3.506,1119,4.865,1128,5.424,1137,4.189,1138,4.327,1139,6.472,1140,4.189]],["t/150",[0,1.155,45,3.879,123,2.954,135,6.348,144,5.984,198,3.036,200,2.954,378,3.654,385,3.262,795,3.938,1097,4.29,1138,5.063,1141,6.348,1142,6.348,1143,6.835]],["t/152",[91,3.43,104,5.152,123,3.199,198,3.288,299,3.334,336,3.889,1091,5.484,1092,6.166]],["t/154",[91,3.43,104,5.152,123,3.199,198,3.288,299,3.334,336,3.889,1091,5.484,1092,6.166]],["t/156",[0,1.301,4,2.316,5,1.905,11,1.114,23,1.303,25,1.344,28,3.709,42,2.864,44,1.732,45,3.372,56,1.393,87,2.106,91,2.349,92,1.375,117,2.013,125,3.709,129,1.375,130,1.676,161,2.269,200,1.449,215,3.636,225,1.489,263,2.935,270,2.155,273,4.223,321,2.674,335,2.484,379,1.971,391,2.269,411,2.334,422,2.484,477,1.625,497,2.405,511,2.013,604,2.935,719,2.269,746,2.405,755,2.334,791,4.044,795,2.921,797,2.711,826,2.921,827,2.013,839,3.636,847,3.431,883,2.405,887,2.269,904,3.114,933,4.708,938,3.114,942,2.793,976,4.438,990,4.223,1002,2.057,1015,4.438,1022,2.935,1074,2.674,1081,2.269,1117,2.013,1129,2.793,1134,2.935,1138,4.528,1141,3.114,1143,3.353,1144,2.935,1145,5.069,1146,3.353,1147,3.182,1148,3.715,1149,2.484,1150,3.353,1151,3.715,1152,2.935,1153,2.269,1154,2.935,1155,3.715,1156,5.618,1157,2.573,1158,3.715,1159,2.334,1160,2.334,1161,3.353,1162,3.353,1163,3.715,1164,3.353,1165,2.935,1166,2.935,1167,2.674,1168,2.935,1169,3.715,1170,2.793,1171,4.438,1172,3.715,1173,2.155,1174,3.353,1175,3.715]],["t/158",[23,1.713,45,3.557,78,3.563,92,2.734,118,1.952,128,3.628,129,2.734,184,3.628,216,3.502,219,4.393,260,4.937,778,6.19,795,3.84,903,5.552,954,4.639,1144,5.835,1176,6.664,1177,4.937,1178,6.19]],["t/160",[15,4.615,17,1.706,91,2.989,192,3.958,200,2.788,428,4.252,429,3.449,439,2.457,490,3.278,1140,4.627,1168,5.647,1179,7.148,1180,7.148,1181,7.148,1182,6.624,1183,7.148,1184,4.95,1185,7.148]],["t/162",[0,1.389,5,2.32,17,1.146,25,1.275,28,3.156,45,3.261,87,2.409,91,3.449,96,3.156,122,2.441,234,3.341,270,3.727,289,4.449,329,3.481,331,4.785,350,2.947,378,3.1,776,3.215,795,3.341,827,3.481,1126,5.385,1140,4.159,1144,5.076,1153,3.924,1184,4.449,1186,3.64,1187,5.798,1188,6.425,1189,6.425,1190,5.385,1191,5.385,1192,6.425]],["t/164",[5,2.205,24,2.205,25,1.556,45,3.1,118,2.072,125,3.851,246,4.549,270,4.549,289,5.429,776,3.923,848,5.894,1191,6.571,1193,7.841]],["t/166",[0,1.246,5,1.781,17,1.13,21,4.386,45,3.779,92,3.025,126,3.169,186,3.293,205,3.293,229,3.768,303,3.169,331,4.741,360,3.431,567,3.431,592,4.386,688,4.991,721,5.004,759,2.813,838,2.611,901,4.1,926,2.728,931,4.761,965,4.386,979,4.234,1087,3.868,1117,3.431,1140,5.289,1157,4.386,1178,5.308,1194,5.004,1195,4.559,1196,6.334]],["t/168",[0,1.175,4,3.176,17,1.374,45,3.046,91,3.222,118,2.036,289,5.335,548,5.151,776,3.855,1140,4.987,1190,6.458,1191,6.458,1197,7.705,1198,7.705,1199,7.705]],["t/170",[0,0.867,23,1.99,25,1.703,45,3.777,78,2.744,87,2.132,90,2.413,123,2.218,129,2.105,130,2.566,172,2.344,188,2.845,193,5.131,198,2.279,200,2.218,223,2.027,274,3.382,335,3.801,378,2.744,385,2.449,504,3.382,526,3.68,559,2.899,592,3.937,719,3.473,725,3.801,795,2.956,826,2.956,827,3.081,905,5.131,942,5.722,965,3.937,1097,3.221,1138,5.089,1146,5.131,1147,3.221,1162,5.131,1200,5.686,1201,5.686,1202,5.686,1203,5.686,1204,5.131,1205,4.274,1206,5.686,1207,5.686,1208,5.686]],["t/172",[5,1.394,15,3.344,23,1.15,25,1.375,28,2.435,32,1.812,42,2.528,45,1.96,87,1.859,115,1.746,121,2.435,123,1.934,161,3.028,172,2.044,198,1.987,200,1.934,215,3.209,217,2.949,235,2.949,270,5.282,294,3.031,299,2.015,331,4.02,377,3.917,378,3.855,422,3.314,452,2.808,477,2.168,479,1.934,504,2.949,795,2.577,815,3.917,826,3.603,827,2.686,942,3.727,990,5.21,1106,3.028,1123,5.808,1134,3.917,1138,5.342,1173,2.876,1174,4.474,1209,6.93,1210,6.93,1211,4.957,1212,4.957,1213,4.957,1214,4.474,1215,4.957,1216,4.474,1217,3.727,1218,3.917,1219,4.957,1220,4.155,1221,4.957,1222,4.155,1223,4.957,1224,4.957,1225,4.957,1226,2.876,1227,4.474,1228,4.957]],["t/174",[11,1.299,17,0.772,23,1.004,25,1.249,42,2.208,45,1.712,56,2.36,91,1.811,93,2.251,118,1.663,121,2.127,123,1.689,165,3.485,172,2.594,187,2.752,198,1.736,199,1.76,200,1.689,214,1.838,216,2.053,223,1.544,235,2.576,257,3.629,270,2.512,296,3.193,303,2.166,329,2.346,331,2.512,369,4.016,452,2.453,473,2.72,479,2.455,561,4.97,597,2.576,636,2.998,651,3.953,679,4.956,759,2.795,795,3.272,837,3.117,857,2.398,976,3.421,990,7.603,1027,2.72,1138,4.956,1159,5.665,1161,5.679,1214,3.907,1217,3.255,1229,4.33,1230,4.33,1231,4.33,1232,5.679,1233,3.421,1234,3.629,1235,4.33,1236,2.998,1237,4.33,1238,4.33,1239,4.33,1240,4.33,1241,4.33,1242,4.33,1243,4.33,1244,4.33,1245,3.629]],["t/176",[91,3.43,123,3.199,198,3.288,679,5.484,759,3.643,990,6.166,1091,5.484,1092,6.166]],["t/178",[0,0.305,2,0.999,5,0.957,17,0.607,23,0.463,25,1.359,45,1.759,58,2.959,72,1.383,75,6.047,88,2.334,123,0.779,128,1.672,143,0.619,162,0.999,171,0.86,184,2.185,192,1.885,198,1.783,203,1.106,205,1.038,216,3.697,223,0.712,228,1.159,230,3.072,234,2.732,235,4.778,238,4.154,239,3.88,241,1.131,247,0.86,258,1.383,282,0.931,285,1.188,299,0.812,309,1.255,331,2.58,350,0.916,351,1.674,377,3.514,449,1.86,451,1.255,452,3.88,475,1.188,489,1.438,513,2.146,553,1.438,561,1.22,588,1.578,651,1.255,710,3.514,750,1.674,751,1.501,760,1.578,778,1.674,797,0.964,854,3.072,937,2.225,951,2.45,1017,2.357,1100,1.578,1106,2.079,1109,1.802,1138,2.276,1144,1.578,1218,1.578,1246,1.802,1247,3.728,1248,1.997,1249,1.997,1250,3.404,1251,3.404,1252,3.404,1253,7.215,1254,1.997,1255,1.802,1256,1.997,1257,7.215,1258,4.658,1259,7.215,1260,1.997,1261,1.997,1262,1.997,1263,1.997,1264,1.674,1265,1.997,1266,1.997,1267,1.997,1268,1.997,1269,1.997,1270,1.997,1271,1.997,1272,1.997,1273,1.997,1274,1.997,1275,4.448,1276,1.997,1277,1.997,1278,1.997,1279,1.997,1280,1.997,1281,1.997,1282,1.997,1283,1.997,1284,4.151,1285,3.072,1286,3.404,1287,3.072,1288,3.404,1289,1.975,1290,4.014,1291,1.997,1292,3.202,1293,1.674,1294,1.802,1295,1.997,1296,1.997,1297,1.578,1298,1.501,1299,3.728,1300,1.802]],["t/180",[0,0.92,4,2.487,5,2.227,11,1.809,23,2.049,25,1.861,45,2.385,87,2.969,118,1.594,146,3.79,205,3.137,247,2.599,350,3.631,429,2.911,431,2.911,491,4.973,503,5.083,593,4.767,795,3.137,804,3.905,918,5.444,1081,3.685,1138,5.293,1140,3.905,1159,3.79,1177,4.033,1301,4.535,1302,6.033,1303,6.033,1304,6.033,1305,5.125,1306,6.033,1307,4.767]],["t/182",[91,3.43,104,5.152,123,3.199,198,3.288,299,3.334,336,3.889,1091,5.484,1092,6.166]],["t/184",[0,1.275,128,4.105,263,6.602,322,4.261,979,5.587,1097,4.734]],["t/186",[17,1.485,23,1.512,24,1.834,42,3.324,78,3.146,90,3.533,115,3.23,122,2.476,138,5.883,191,3.982,262,4.358,322,4.676,357,4.514,490,2.99,633,3.532,787,4.514,825,6.258,826,4.328,833,5.464,900,5.883,926,2.808,1147,3.693,1159,4.095,1173,3.782,1308,5.883,1309,6.52,1310,6.52,1311,4.901]],["t/188",[0,1.213,11,2.385,17,1.083,24,1.708,25,1.578,35,3.837,56,2.278,93,3.158,225,2.435,299,3.232,322,4.796,357,5.507,358,4.372,390,4.566,617,6.382,632,4.061,633,3.291,825,4.566,826,4.135,838,2.504,1159,3.816,1160,3.816,1173,4.613,1312,5.481,1313,7.953,1314,5.481,1315,3.524,1316,6.074,1317,6.074,1318,6.074,1319,5.091,1320,5.091]],["t/190",[13,1.833,14,4.447,17,1.155,23,1.821,25,1.285,30,2.393,31,2.005,40,2.171,48,3.072,52,2.521,56,1.296,62,3.441,71,2.111,90,2.256,105,2.73,125,1.697,128,1.697,130,1.559,186,1.797,198,2.131,216,1.639,227,4.2,257,2.896,259,2.237,298,2.111,305,2.393,311,2.111,313,2.171,316,2.88,322,4.227,341,3.303,360,1.872,378,1.667,396,2.393,422,2.31,431,1.667,439,1.827,443,1.833,456,2.005,477,1.511,490,1.585,498,3.441,511,2.88,513,1.667,554,1.611,559,1.762,567,1.872,759,2.361,767,5.274,818,3.554,821,4.486,826,3.368,830,4.708,838,2.191,839,2.237,844,2.598,848,2.598,928,3.118,970,2.73,983,2.896,1006,3.996,1034,2.896,1052,2.896,1104,3.118,1129,3.996,1165,2.73,1220,2.896,1321,5.208,1322,3.118,1323,3.456,1324,3.456,1325,3.456,1326,3.456,1327,3.118,1328,3.456,1329,3.456,1330,2.896,1331,3.118,1332,3.118,1333,2.598,1334,2.598,1335,5.429,1336,3.456,1337,3.456,1338,3.118,1339,7.085,1340,2.896,1341,3.456,1342,3.456,1343,3.456,1344,3.456,1345,3.456,1346,2.487,1347,5.118,1348,2.896,1349,3.456]],["t/192",[16,4.115,23,0.99,25,0.847,48,2.024,52,2.024,58,2.721,114,2.853,125,2.096,129,2.305,130,1.926,164,2.539,172,1.759,185,2.418,187,1.866,200,1.665,299,2.531,310,3.803,314,3.208,316,2.312,336,2.024,479,2.429,567,2.312,774,3.208,783,3.577,818,2.853,830,4.031,857,2.363,973,3.372,1006,3.208,1087,2.607,1117,2.312,1123,5.219,1147,2.418,1226,2.476,1321,2.681,1347,5.809,1348,7.765,1350,6.162,1351,7.756,1352,4.268,1353,3.072,1354,4.268,1355,4.268,1356,4.268,1357,4.268,1358,7.352,1359,4.268,1360,4.268,1361,4.92,1362,4.92,1363,4.268,1364,3.577,1365,3.851,1366,6.227,1367,3.372,1368,2.853,1369,4.268,1370,6.227,1371,4.268,1372,3.577,1373,4.268,1374,4.268,1375,3.851,1376,3.851,1377,3.208]],["t/194",[10,2.889,17,1.261,23,1.183,36,2.167,42,2.6,62,5.669,125,2.505,145,2.889,177,2.763,178,2.551,200,1.989,204,2.824,223,1.818,282,2.378,285,3.033,299,3.56,320,3.531,321,3.671,354,3.033,411,3.203,488,3.203,496,3.301,567,2.763,759,3.89,767,5.96,821,3.531,847,3.115,930,7.709,981,3.833,1074,3.671,1298,3.833,1315,2.958,1334,3.833,1378,5.1,1379,3.671,1380,5.1,1381,4.274,1382,6.378,1383,5.1,1384,8.112,1385,3.671,1386,5.1,1387,5.1,1388,4.602,1389,5.1,1390,5.924,1391,4.274,1392,5.1,1393,4.602]],["t/196",[14,2.105,17,0.663,23,1.303,25,1.115,31,4.704,32,2.053,36,2.796,58,1.827,60,3.114,62,4.887,71,4.137,88,1.65,93,1.932,96,1.825,97,2.105,116,3.182,125,1.825,128,1.825,129,2.079,186,2.921,205,1.932,223,1.325,227,2.935,282,2.619,311,4.137,322,1.894,337,2.674,341,1.894,358,2.674,385,1.6,396,3.89,417,5.676,439,1.277,477,1.625,487,2.334,490,1.704,515,4.029,547,2.21,559,1.894,651,2.334,759,2.495,767,3.431,804,5.249,827,2.013,830,4.887,870,2.935,875,2.484,887,2.269,965,2.573,1006,2.793,1091,3.756,1117,2.013,1125,2.935,1315,2.155,1330,5.677,1334,2.793,1346,2.674,1348,7.148,1350,4.708,1351,6.113,1376,3.353,1377,2.793,1379,2.674,1394,3.715,1395,3.715,1396,5.618,1397,2.935,1398,3.715,1399,3.715,1400,3.353,1401,3.715,1402,3.353,1403,2.573,1404,7.551,1405,4.69,1406,3.353,1407,3.715,1408,3.715,1409,3.715,1410,2.573]],["t/198",[0,1.454,11,1.886,15,3.034,16,2.793,17,1.122,23,2.289,59,2.982,97,3.563,104,3.95,131,3.841,176,4.407,216,2.982,285,3.741,299,2.556,303,3.146,379,3.336,559,3.206,598,3.73,821,5.633,827,3.407,893,4.204,901,4.071,1087,3.841,1091,4.204,1117,3.407,1147,3.563,1411,3.841,1412,5.675,1413,6.427,1414,4.527]],["t/200",[0,1.025,11,2.016,16,3.466,17,1.199,19,3.033,21,3.286,23,1.101,25,0.942,31,4.527,32,2.457,36,1.455,58,1.28,88,2.108,89,2.981,90,3.312,93,2.467,94,2.688,97,2.688,116,2.688,122,1.803,176,2.571,181,2.108,185,3.807,217,2.823,225,2.694,316,4.228,336,3.187,345,3.072,354,2.823,378,2.29,417,3.568,443,2.518,477,2.075,490,2.176,514,2.42,515,4.642,598,3.579,643,3.072,821,5.404,1115,3.416,1125,3.75,1226,2.753,1301,5.052,1382,4.283,1405,3.286,1415,6.165,1416,3.977,1417,3.416,1418,3.75,1419,4.746,1420,4.746,1421,4.746,1422,3.566,1423,5.052,1424,4.746,1425,3.416,1426,4.746,1427,4.746,1428,4.283,1429,4.746]],["t/202",[19,1.513,23,1.204,24,1.641,25,0.665,31,2.547,32,1.225,36,1.346,52,0.93,58,1.714,71,1.198,79,1.27,89,1.232,97,1.111,121,0.964,128,0.964,133,1.412,137,1.232,146,5.692,163,0.845,176,1.816,181,1.489,185,2.487,186,1.02,203,1.086,228,2.547,229,1.167,262,1.312,277,1.02,282,0.915,299,1.363,311,1.198,336,0.93,378,1.618,379,1.041,428,1.994,429,0.947,431,0.947,439,0.674,440,1.312,474,1.198,486,1.412,487,1.232,515,2.611,547,1.167,554,0.915,598,1.537,684,1.412,719,1.198,764,1.412,797,0.947,816,1.412,839,1.27,887,1.198,901,1.27,931,1.475,965,1.359,1110,1.475,1115,1.412,1119,6.635,1125,1.55,1153,2.048,1159,1.232,1171,1.55,1226,1.138,1405,2.321,1415,3.468,1416,1.644,1422,1.041,1425,7.249,1428,1.77,1430,1.475,1431,1.55,1432,1.77,1433,1.962,1434,1.77,1435,1.962,1436,1.962,1437,3.961,1438,1.77,1439,3.025,1440,1.475,1441,1.77,1442,1.312,1443,1.962,1444,8.95,1445,10.141,1446,1.962,1447,9.062,1448,8.692,1449,1.77,1450,1.962,1451,1.962,1452,1.962,1453,2.106,1454,1.962,1455,1.962,1456,1.962,1457,1.962,1458,1.962,1459,1.962,1460,3.353,1461,1.962,1462,1.962,1463,8.692,1464,8.827,1465,1.962,1466,1.962,1467,1.962,1468,1.962,1469,1.962,1470,1.962,1471,1.962,1472,1.962,1473,1.962,1474,1.962,1475,1.962,1476,1.962,1477,1.962,1478,1.962,1479,1.962,1480,1.962,1481,1.962,1482,1.962,1483,1.962,1484,1.962,1485,1.962,1486,1.962,1487,1.962,1488,1.962,1489,1.962,1490,1.962,1491,1.962,1492,1.962,1493,1.962,1494,1.962,1495,1.962,1496,1.962]],["t/204",[17,0.934,19,1.53,23,1.67,24,0.953,30,2.347,31,1.966,33,2.129,36,1.962,45,1.34,58,0.914,87,1.271,96,1.665,97,2.967,105,2.678,106,2.44,121,1.665,123,1.322,128,2.573,133,2.44,164,2.016,170,4.753,172,1.397,181,1.506,186,1.762,191,3.199,194,2.44,205,1.762,216,3.035,219,2.016,223,1.208,225,1.359,228,3.713,247,1.46,251,2.194,252,1.288,260,2.266,281,2.129,292,2.016,299,2.129,336,1.607,431,1.636,439,2.675,476,4.02,479,1.322,488,2.129,495,3.627,515,2.016,577,2.194,601,2.44,643,2.194,690,2.62,715,2.347,805,2.07,841,2.347,847,2.07,870,5.688,994,2.07,1053,3.038,1105,4.389,1119,3.937,1152,2.678,1301,4.811,1327,3.059,1346,2.44,1362,2.678,1368,2.266,1413,2.678,1415,5.688,1422,3.395,1432,3.059,1434,5.775,1437,4.726,1497,6.4,1498,6.4,1499,2.678,1500,3.39,1501,3.39,1502,3.059,1503,5.237,1504,3.059,1505,5.237,1506,3.39,1507,3.059,1508,3.39,1509,3.39,1510,5.237,1511,5.237,1512,3.39,1513,3.39,1514,3.39,1515,3.39,1516,2.841,1517,4.726,1518,5.237,1519,3.059,1520,5.237,1521,5.237,1522,3.059,1523,3.39,1524,3.39,1525,3.39,1526,2.266,1527,3.39,1528,2.841,1529,3.39,1530,3.39,1531,3.059]],["t/206",[34,5.787,56,2.746,225,2.936,250,5.787,299,2.977,316,3.968,379,3.886,476,4.601,479,3.492,497,4.741,884,5.787,893,4.897,1105,6.139,1321,4.601,1413,5.787,1532,6.139,1533,5.787,1534,7.325,1535,7.325,1536,7.325]],["t/208",[8,4.49,16,3.917,48,3.39,92,2.646,103,4.252,115,2.517,277,3.716,331,4.147,534,5.373,776,3.576,843,5.145,931,5.373,1055,5.145,1425,5.145,1533,5.647,1537,7.148,1538,6.63,1539,5.991,1540,7.148,1541,4.366,1542,6.45,1543,7.148]],["t/210",[119,5.014,252,3.032,776,3.993,879,6.306,886,5.745,1531,7.203,1544,6.689,1545,7.982,1546,6.689,1547,7.982,1548,6]],["t/212",[11,1.773,17,1.055,25,1.173,31,4.532,36,1.813,52,2.804,58,2.36,96,2.904,123,2.306,187,2.586,251,5.057,278,4.672,369,3.203,413,6.173,515,4.647,559,3.015,853,5.873,887,3.611,978,4.672,1129,4.445,1160,3.714,1287,5.336,1405,4.094,1425,4.256,1499,4.672,1549,5.913,1550,5.913,1551,5.913,1552,5.913,1553,4.956,1554,7.813,1555,7.813,1556,5.913,1557,5.913,1558,7.813,1559,5.913,1560,5.913,1561,5.336,1562,5.913,1563,5.913]],["t/217",[204,3.958,223,2.548,420,5.373,479,2.788,719,4.366,853,5.373,1227,6.45,1321,4.49,1413,6.968,1414,5.145,1516,5.991,1533,5.647,1564,7.148,1565,7.148,1566,7.148,1567,7.148,1568,7.148,1569,7.148,1570,7.148,1571,7.148,1572,6.45,1573,7.148,1574,7.148]],["t/219",[1533,6.928]],["t/221",[278,6.421,1575,8.128,1576,8.128,1577,8.128,1578,8.128,1579,8.128,1580,8.128,1581,8.128,1582,8.128]],["t/223",[1583,8.436,1584,8.436,1585,8.436,1586,8.436,1587,8.436]],["t/225",[17,1.062,25,1.182,43,2.6,44,1.873,56,1.506,71,4.335,78,1.938,96,1.973,106,4.287,116,2.276,123,1.567,126,3.928,170,2.454,172,1.656,177,2.176,205,2.089,214,1.705,216,1.905,223,2.123,275,4.706,292,2.39,299,1.633,304,2.523,311,5.121,316,2.176,354,2.39,360,2.176,385,2.565,391,2.454,394,3.625,396,6.294,417,3.02,420,5.901,475,2.39,477,1.757,523,3.638,598,3.255,759,2.645,765,3.174,767,6.012,826,2.089,838,1.656,841,2.782,895,2.892,932,2.523,972,3.367,1087,2.454,1097,2.276,1135,2.892,1173,2.33,1338,3.625,1379,4.287,1403,4.124,1405,2.782,1410,2.782,1440,3.02,1548,4.477,1588,6.816,1589,3.367,1590,2.782,1591,3.02,1592,4.017,1593,3.174,1594,4.706,1595,4.017,1596,5.375,1597,4.017,1598,3.625]],["t/227",[17,0.796,25,1.863,30,3.089,32,1.63,43,4.162,52,2.115,71,2.724,96,2.191,123,1.74,128,2.191,129,1.651,137,2.802,171,2.769,184,2.191,187,1.951,192,3.56,223,1.59,229,2.653,275,3.524,278,5.08,292,2.653,299,1.813,305,3.089,311,3.927,316,2.416,388,2.588,430,3.824,477,1.951,479,1.74,505,2.887,547,2.653,589,4.039,683,3.211,695,2.802,759,2.856,767,4.605,818,2.982,839,2.887,847,3.927,852,3.211,924,3.211,1095,3.524,1113,3.738,1135,4.628,1147,2.527,1157,3.089,1171,3.524,1173,3.73,1226,2.588,1298,3.353,1321,2.802,1379,3.211,1405,5.22,1412,6.803,1416,3.738,1526,2.982,1548,3.353,1588,6.056,1599,3.738,1600,3.524,1601,4.025,1602,4.46,1603,7.539,1604,4.46,1605,4.46,1606,3.738,1607,5.08,1608,4.46,1609,4.46]],["t/229",[0,0.876,1,1.951,11,1.148,17,1.025,27,1.99,36,1.173,37,2.726,44,1.784,88,2.551,96,2.822,116,3.254,125,1.88,126,1.915,136,3.024,165,3.181,170,2.337,188,1.915,189,3.024,192,4.244,215,2.477,216,1.815,222,2.404,223,2.048,246,4.001,251,2.477,259,3.718,261,2.559,294,1.674,296,1.648,298,2.337,300,2.65,314,2.877,322,1.951,369,2.073,378,2.772,410,2.929,411,2.404,429,2.772,439,1.316,445,2.65,522,2.65,554,1.784,759,2.551,767,5.62,787,2.65,805,2.337,838,1.578,856,3.254,919,4.539,932,2.404,937,1.915,1106,2.337,1149,2.559,1165,3.024,1173,2.22,1222,3.208,1226,2.22,1301,2.877,1305,2.477,1319,3.208,1320,3.208,1321,2.404,1340,3.208,1405,2.65,1453,2.404,1526,2.559,1588,6.195,1593,3.024,1610,3.454,1611,3.454,1612,3.827,1613,2.877,1614,3.454,1615,3.827,1616,3.827,1617,5.745,1618,3.827,1619,3.827,1620,5.745,1621,6.896,1622,5.745,1623,3.827,1624,3.827,1625,3.827,1626,3.827,1627,3.208,1628,3.454,1629,3.454,1630,2.65,1631,5.745,1632,3.454,1633,3.827]],["t/231",[0,0.846,1,4.32,17,0.989,23,1.286,25,1.485,33,3.042,44,2.585,56,2.079,71,3.386,97,3.141,121,2.723,130,2.502,247,2.388,284,8.186,342,3.298,385,2.388,455,4.452,456,3.216,616,4.38,767,3.386,795,2.883,830,4.844,885,4.38,886,3.991,893,3.707,1117,3.004,1195,3.991,1290,5.003,1319,4.647,1320,6.273,1332,5.003,1414,3.991,1548,4.168,1614,5.003,1634,4.647,1635,5.544,1636,5.544,1637,7.484,1638,5.544,1639,5.544,1640,5.544,1641,5.544,1642,5.544,1643,5.544,1644,5.003,1645,3.991,1646,5.544,1647,5.544,1648,5.003]],["t/233",[0,0.459,2,1.506,11,0.903,43,1.949,71,4.122,88,2.998,90,1.278,123,1.174,125,1.479,131,1.839,137,4.239,170,1.839,205,2.482,216,2.264,217,1.791,221,4.107,222,1.891,223,2.114,247,1.297,277,1.566,294,1.317,298,1.839,311,5.851,316,1.631,325,2.524,328,4.001,337,2.167,354,1.791,378,1.453,477,1.317,479,2.632,486,2.167,487,1.891,490,2.189,497,3.839,547,2.839,570,6.561,577,1.949,598,1.381,604,4.686,643,1.949,690,1.506,755,1.891,759,1.337,773,2.264,816,2.167,823,2.085,826,2.482,839,3.09,845,4.971,846,2.264,883,1.949,887,3.622,893,2.013,895,2.167,932,1.891,951,2.167,953,2.524,967,2.085,982,4.762,1003,2.264,1087,2.916,1099,2.379,1106,1.839,1110,2.264,1117,3.213,1129,3.588,1145,2.717,1147,1.706,1149,2.013,1170,2.264,1173,2.769,1289,3.915,1321,1.891,1372,2.524,1400,2.717,1403,2.085,1411,1.839,1439,2.717,1526,5.858,1528,4.001,1591,6.397,1593,3.771,1601,4.308,1607,4.686,1649,4.774,1650,4.774,1651,3.011,1652,3.011,1653,3.011,1654,2.379,1655,3.011,1656,3.011,1657,3.011,1658,3.011,1659,2.085,1660,3.011,1661,3.011,1662,3.011,1663,3.011,1664,3.011,1665,2.717,1666,4.971,1667,3.011,1668,3.011,1669,3.011,1670,3.011,1671,2.264,1672,3.011,1673,3.011]],["t/235",[0,0.494,13,1.72,14,1.836,16,1.44,17,1.254,20,2.437,31,1.88,33,1.317,36,0.994,52,1.537,56,1.215,59,1.537,71,4.656,78,1.564,91,2.116,92,1.2,93,1.685,97,1.836,106,2.333,126,3.112,184,2.485,187,2.212,191,1.98,204,2.801,205,1.685,215,2.098,216,1.537,225,1.299,251,4.027,300,2.245,311,1.98,316,4.13,322,2.579,345,2.098,354,1.928,369,1.756,378,3.002,396,3.503,422,2.167,431,1.564,439,1.739,443,2.684,459,2.63,479,1.973,487,2.036,498,2.098,515,1.928,547,1.928,598,1.486,651,2.036,759,2.247,767,3.8,817,2.437,821,3.503,826,1.685,827,1.756,838,1.336,895,3.641,926,1.396,932,2.036,947,2.717,954,2.036,1002,1.795,1011,2.925,1015,2.561,1027,2.036,1049,2.245,1091,2.167,1137,2.098,1147,2.866,1149,2.167,1152,2.561,1218,2.561,1301,2.437,1315,1.88,1321,5.074,1335,2.717,1340,5.214,1346,2.333,1347,2.561,1414,2.333,1504,2.925,1532,2.717,1588,4.308,1591,3.803,1594,5.553,1596,2.925,1606,2.717,1634,2.717,1674,3.242,1675,6.221,1676,2.717,1677,3.242,1678,6.221,1679,6.073,1680,2.925,1681,2.925,1682,2.925,1683,3.997,1684,5.214,1685,2.561,1686,3.242,1687,3.242,1688,3.242,1689,3.242,1690,3.242,1691,2.925,1692,4.565,1693,3.242,1694,3.242,1695,3.242,1696,2.925,1697,2.925,1698,2.925]],["t/237",[0,1.031,2,1.512,10,1.711,11,0.906,13,3.91,14,1.711,16,3.482,17,0.854,23,0.701,24,1.346,25,1.783,32,2.173,36,1.467,58,2.919,59,1.433,88,1.342,90,1.282,115,1.064,121,1.484,126,1.512,164,1.797,182,1.342,187,1.321,223,1.077,224,2.175,225,1.211,277,2.489,281,1.898,294,1.321,304,3.007,322,4.582,336,1.433,341,3.758,386,2.092,396,2.092,429,2.309,431,1.458,439,1.039,441,2.02,474,1.845,490,1.386,503,1.637,511,1.637,695,1.898,745,2.175,776,2.974,809,2.387,868,2.387,1055,3.445,1100,5.342,1134,2.387,1153,1.845,1173,1.753,1315,1.753,1335,4.982,1361,2.387,1379,2.175,1397,4.696,1411,2.923,1422,2.539,1423,3.598,1440,2.271,1538,5.083,1541,2.923,1679,3.445,1699,3.021,1700,2.532,1701,1.797,1702,3.021,1703,3.021,1704,3.021,1705,3.007,1706,3.021,1707,3.021,1708,2.532,1709,3.021,1710,3.021,1711,3.021,1712,4.319,1713,3.021,1714,3.021,1715,3.021,1716,3.021,1717,3.021,1718,3.021,1719,3.021,1720,3.782,1721,3.021]],["t/239",[0,0.977,11,1.331,24,2.114,25,1.271,32,1.622,36,1.964,58,2.953,79,2.873,93,2.307,146,2.788,177,2.404,178,2.22,203,2.457,228,2.575,238,2.873,252,2.433,299,2.604,313,2.788,429,2.141,440,2.967,441,2.967,476,2.788,479,1.731,547,2.64,684,3.194,687,3.336,767,2.711,791,3.194,852,4.611,935,3.336,1153,2.711,1226,2.575,1333,3.336,1390,6.301,1397,3.506,1414,3.194,1430,3.336,1431,3.506,1541,2.711,1588,3.073,1679,3.194,1700,3.72,1722,4.005,1723,4.438,1724,4.005,1725,3.72,1726,4.005,1727,3.336,1728,4.005,1729,4.005,1730,4.005,1731,4.005,1732,6.784,1733,3.72,1734,4.005,1735,3.336,1736,3.506,1737,4.005]],["t/241",[0,0.693,2,1.029,10,1.165,11,0.617,16,1.55,17,0.811,21,1.425,23,1.512,24,1.279,25,0.693,26,1.07,32,1.276,36,1.07,52,0.976,58,2.812,59,0.976,79,1.332,90,1.481,92,1.292,96,1.01,115,0.725,121,1.01,125,1.715,126,1.029,145,2.576,146,2.856,172,1.439,185,1.165,187,0.9,200,1.362,203,2.518,204,2.518,213,1.193,221,1.425,222,2.193,223,0.733,228,2.025,238,2.259,239,1.165,250,1.625,252,1.326,277,1.07,285,1.224,298,1.256,299,3.097,319,1.332,336,0.976,369,1.115,390,1.546,429,0.993,439,0.707,440,1.375,441,1.375,476,2.193,479,2.089,490,0.943,514,2.318,547,3.878,559,1.049,651,2.856,684,1.481,687,2.624,690,1.029,751,1.546,764,1.481,767,3.981,768,1.139,826,1.07,838,0.848,852,1.481,893,1.375,895,2.513,901,1.332,919,1.625,932,2.193,935,1.546,950,1.625,979,1.375,1006,1.546,1007,1.856,1009,1.625,1044,1.625,1049,1.425,1099,1.625,1117,1.115,1149,1.375,1153,1.256,1160,1.292,1166,1.625,1217,1.546,1222,1.724,1232,1.856,1258,2.758,1289,1.193,1367,1.625,1368,1.375,1375,3.15,1390,2.926,1393,5.413,1397,1.625,1403,2.417,1414,1.481,1415,1.625,1422,2.412,1423,2.624,1425,1.481,1430,1.546,1431,1.625,1502,1.856,1526,1.375,1541,1.256,1548,1.546,1588,3.709,1591,1.546,1594,2.758,1671,1.546,1676,1.724,1679,5.992,1683,1.625,1696,1.856,1700,1.724,1701,1.224,1722,1.856,1724,1.856,1725,1.724,1726,1.856,1727,2.624,1728,1.856,1731,1.856,1732,5.413,1733,1.724,1734,4.103,1735,3.418,1736,2.758,1737,1.856,1738,3.491,1739,2.057,1740,2.057,1741,2.057,1742,2.057,1743,2.057,1744,2.057,1745,3.491,1746,1.856,1747,1.546,1748,1.724,1749,2.057,1750,2.057,1751,1.546,1752,5.357,1753,7.312,1754,2.057,1755,1.856,1756,1.856,1757,2.057,1758,2.057,1759,2.057,1760,3.491,1761,3.491,1762,2.057,1763,3.491,1764,2.057,1765,2.057,1766,3.491,1767,2.057,1768,3.491,1769,3.491,1770,2.057,1771,2.057,1772,2.057,1773,2.057,1774,1.625,1775,2.057,1776,1.332]],["t/243",[16,4.058,58,2.647,336,3.591,1422,4.847,1423,7.658,1679,5.452,1684,7.657,1701,4.505,1777,7.574]],["t/245",[2,2.086,10,1.442,13,2.809,14,2.362,16,3.222,17,0.454,32,0.931,58,2.918,78,1.228,90,2.247,92,0.942,104,1.599,125,2.601,172,1.049,187,2.316,214,1.08,216,1.207,223,1.487,277,3.512,281,2.619,299,1.035,300,1.763,304,1.599,305,2.887,314,1.914,316,2.259,341,1.298,428,1.514,479,0.993,713,1.599,764,3.812,779,2.011,783,6.699,839,1.648,841,1.763,857,1.41,901,1.648,914,3.134,926,2.637,932,1.599,937,1.274,1055,3.001,1100,4.184,1106,1.555,1147,1.442,1157,1.763,1167,1.832,1171,2.011,1321,1.599,1322,4.779,1347,2.011,1353,1.832,1362,2.011,1364,2.134,1365,2.297,1368,1.702,1403,1.763,1411,1.555,1422,2.212,1538,4.602,1539,3.495,1541,3.739,1599,5.661,1679,1.832,1680,7.467,1684,2.134,1720,2.011,1778,2.546,1779,4.17,1780,2.011,1781,2.546,1782,2.011,1783,2.546,1784,2.546,1785,5.295,1786,2.297,1787,4.17,1788,5.295,1789,2.546,1790,2.546,1791,2.546,1792,2.546,1793,5.295,1794,2.546,1795,2.546,1796,2.546,1797,2.546,1798,6.122,1799,2.546,1800,2.546,1801,2.546,1802,2.546,1803,2.546,1804,3.495,1805,4.17,1806,4.17,1807,4.17,1808,6.122,1809,6.122,1810,2.546,1811,6.122,1812,2.546,1813,2.546,1814,2.546,1815,5.295,1816,2.546,1817,2.546,1818,2.546]],["t/248",[42,4.144,44,3.789,46,6.421,101,4.403,354,4.834,907,6.11,1002,4.5,1298,6.11,1598,7.334]],["t/250",[0,1.082,48,4.162,140,4.52,178,4.391,187,3.101,192,3.926,341,3.615,391,6.083,422,4.741,784,8.601,796,4.741,857,3.926,1298,5.33,1819,5.943,1820,5.104,1821,7.091]],["t/253",[0,1.224,14,3.489,15,2.971,19,2.779,24,1.732,25,1.592,56,2.309,71,3.761,79,5.777,92,2.28,129,2.97,172,2.539,192,3.41,219,3.663,523,3.761,684,5.776,795,3.202,796,4.117,823,4.264,954,3.868,1147,3.489,1182,4.264,1204,5.557,1226,3.573,1233,4.866,1308,5.557,1314,7.241,1353,4.433,1430,6.032,1431,4.866,1526,4.117,1588,5.556,1720,4.866,1822,6.158,1823,4.629]],["t/255",[0,1.313,32,2.092,36,1.754,40,3.595,48,3.625,58,1.544,93,2.975,137,3.595,160,3.963,176,3.1,221,3.963,229,3.404,342,3.404,431,3.689,443,3.036,488,3.595,513,3.689,577,3.704,690,2.863,758,3.963,779,4.521,787,6.63,795,3.975,875,3.826,914,4.302,954,4.802,967,3.963,1372,4.796,1499,6.802,1820,4.119,1824,5.723,1825,5.723,1826,5.723,1827,5.723,1828,5.723,1829,5.723,1830,5.723,1831,5.723,1832,5.723,1833,5.723,1834,5.723,1835,5.723]],["t/257",[0,0.815,1,2.725,2,2.674,3,2.864,4,2.203,5,1.503,6,3.027,7,4.223,9,3.459,44,3.403,101,2.896,110,3.179,125,2.625,134,3.847,141,3.573,143,1.657,170,4.459,223,1.905,342,3.179,346,5.488,378,2.579,453,3.1,686,3.357,688,3.264,758,3.701,801,3.573,838,2.203,1081,3.264,1255,4.823,1307,4.223,1836,5.345,1837,5.345,1838,3.847,1839,4.018,1840,4.823,1841,4.223,1842,7.3,1843,5.345,1844,6.587,1845,7.3,1846,5.345,1847,5.345,1848,5.345,1849,4.823,1850,4.823,1851,5.345,1852,5.345,1853,5.345,1854,5.345,1855,5.345,1856,5.345,1857,5.345,1858,5.345,1859,5.345,1860,5.345,1861,5.345,1862,5.345]],["t/259",[3,1.395,10,2.465,88,2.805,92,1.611,116,3.577,118,2.463,123,1.697,125,2.137,128,3.102,130,1.963,143,1.349,162,2.177,235,2.588,321,3.132,352,2.262,360,2.357,379,2.308,425,3.438,448,4.373,449,3.778,452,2.465,531,4.747,545,3.013,549,3.013,651,2.733,686,5.441,702,3.857,723,2.733,746,2.816,759,1.933,816,3.132,818,2.909,828,3.438,846,3.271,924,3.132,1032,3.438,1110,3.271,1121,3.647,1289,3.664,1292,3.132,1299,5.293,1526,2.909,1627,3.647,1665,3.927,1682,3.927,1863,5.279,1864,6.708,1865,3.647,1866,3.132,1867,3.927,1868,4.351,1869,4.351,1870,3.927,1871,5.293,1872,4.351,1873,4.351,1874,3.271,1875,4.351,1876,3.271,1877,4.546,1878,4.351,1879,4.351,1880,3.438,1881,4.351,1882,3.271,1883,4.351,1884,4.351,1885,4.351,1886,4.351,1887,3.013,1888,4.351,1889,3.927,1890,4.351,1891,4.351]],["t/261",[0,0.987,1,3.3,2,3.238,4,3.416,5,2.33,6,3.666,11,1.941,24,1.82,25,1.284,44,3.017,109,4.659,128,4.07,184,3.179,217,3.85,282,3.017,288,5.424,937,3.238,1027,4.065,1034,5.424,1131,5.84,1168,5.113,1289,3.755,1782,5.113,1892,5.84,1893,5.84,1894,6.472,1895,7.477,1896,6.472,1897,6.472,1898,5.84,1899,6.472,1900,6.472,1901,6.472]],["t/263",[0,0.63,3,1.684,4,2.974,5,2.579,7,1.989,8,1.581,10,2.34,11,0.755,25,1.042,44,1.174,48,1.959,56,1.549,88,1.118,92,0.932,101,1.364,109,1.812,115,0.886,117,2.238,118,1.092,122,0.956,123,0.982,128,2.029,134,1.812,143,2.362,162,2.067,163,2.263,176,1.364,178,1.259,182,1.118,186,1.309,238,1.629,241,2.976,243,1.812,247,1.084,251,2.674,252,0.956,270,1.46,274,1.497,298,1.537,299,1.679,303,1.259,319,1.629,331,3.048,347,1.629,350,1.154,354,1.497,378,1.214,381,1.537,386,1.743,425,1.989,452,1.426,473,1.581,477,1.807,479,0.982,488,1.581,490,1.154,505,2.674,554,1.174,651,1.581,688,1.537,697,1.812,703,2.11,715,3.638,724,1.989,754,2.973,796,1.683,801,1.683,814,1.812,816,1.812,838,1.038,856,1.426,874,1.812,972,2.11,976,1.989,1004,1.989,1008,2.271,1009,1.989,1026,1.989,1027,1.581,1049,1.743,1106,2.523,1107,2.271,1117,1.364,1137,1.629,1150,2.271,1168,1.989,1176,2.271,1218,1.989,1289,1.46,1292,4.832,1305,3.401,1312,2.271,1410,1.743,1449,2.271,1539,3.462,1572,2.271,1628,2.271,1630,4.21,1747,1.892,1751,1.892,1780,3.264,1782,1.989,1820,1.812,1839,1.892,1877,1.812,1882,3.105,1887,1.743,1889,3.728,1892,2.271,1893,5.487,1898,2.271,1902,3.462,1903,2.11,1904,2.517,1905,1.989,1906,2.517,1907,2.271,1908,2.517,1909,2.271,1910,4.131,1911,2.517,1912,2.517,1913,2.271,1914,2.517,1915,2.11,1916,2.517,1917,2.517,1918,2.517,1919,2.517,1920,2.517,1921,2.517,1922,4.131,1923,4.131,1924,2.517,1925,1.812,1926,2.517,1927,2.11,1928,2.517,1929,2.11,1930,4.131,1931,2.517,1932,2.517,1933,2.517,1934,2.271,1935,2.517,1936,2.517,1937,4.131,1938,2.517,1939,2.271,1940,2.517,1941,2.11,1942,2.517,1943,2.271,1944,2.517,1945,2.11,1946,2.517,1947,2.517,1948,2.517,1949,2.517,1950,2.517,1951,2.517,1952,5.254,1953,2.517,1954,2.517,1955,2.517,1956,2.517,1957,2.517,1958,2.517,1959,2.517,1960,2.517,1961,1.892,1962,2.271,1963,2.517,1964,2.271,1965,2.271,1966,2.517,1967,2.517,1968,2.517,1969,2.517]],["t/265",[3,3.175,4,2.877,56,2.617,104,4.384,241,3.954,1194,5.514,1681,6.298,1849,6.298,1850,6.298,1970,6.98,1971,6.98,1972,6.98,1973,6.98,1974,6.298,1975,6.98,1976,6.98,1977,6.98,1978,6.98,1979,6.98,1980,6.98,1981,6.98,1982,6.98,1983,6.98,1984,6.98]],["t/268",[3,2.5,5,2.345,10,2.245,17,1.052,25,0.786,92,1.467,118,1.047,122,2.675,123,2.3,143,2.183,162,1.983,165,2.195,178,1.983,184,1.947,187,1.733,198,1.589,204,2.195,225,1.589,274,2.358,331,2.299,344,5.396,346,5.863,347,4.558,348,2.853,350,1.818,351,3.322,388,4.085,449,1.658,456,3.421,463,2.565,511,2.147,531,2.979,536,3.131,715,2.745,760,3.131,795,2.061,801,3.942,805,2.421,818,2.65,846,2.979,847,3.602,856,2.245,979,2.65,1002,2.195,1004,3.131,1096,2.853,1135,2.853,1147,2.245,1173,2.299,1186,2.245,1284,3.131,1311,2.979,1333,2.979,1607,3.131,1685,3.131,1747,2.979,1823,2.979,1877,4.245,1913,3.577,1925,2.853,1945,3.322,1985,3.964,1986,3.964,1987,3.577,1988,3.964,1989,3.577,1990,3.577,1991,3.964,1992,3.964,1993,3.964,1994,3.964,1995,3.577,1996,3.964,1997,3.131,1998,3.577,1999,3.964,2000,3.964,2001,3.577,2002,3.577,2003,3.577,2004,3.322,2005,3.322,2006,4.942,2007,3.964,2008,3.964,2009,3.964,2010,3.964,2011,3.964,2012,3.964,2013,3.964,2014,3.964,2015,3.964,2016,3.322,2017,3.964,2018,3.964]],["t/270",[0,1.287,22,5.64,140,4,755,5.299,2019,6.665]],["t/272",[4,2.521,5,2.653,10,3.465,11,1.834,17,1.091,23,1.418,24,1.72,25,1.213,56,2.995,92,2.264,102,3.842,123,2.386,137,3.842,198,2.451,223,2.18,247,2.634,296,2.634,340,4.089,344,5.758,352,3.18,388,3.548,487,3.842,559,3.118,755,3.842,841,4.235,886,4.402,923,4.598,926,3.441,1170,4.598,1226,3.548,1289,3.548,1997,4.832,2020,5.126,2021,6.116,2022,6.116,2023,6.116,2024,6.116,2025,6.116]],["t/274",[0,1.196,11,2.352,16,4.143,28,3.851,30,5.429,31,4.549,32,2.866,33,3.187,113,5.644,131,4.789,490,3.596,577,5.075]],["t/276",[0,1.136,5,2.094,32,2.722,58,2.627,130,3.36,143,2.308,299,3.027,344,4.82,433,4.82,530,4.82,559,3.797,2026,6.72,2027,6.72,2028,6.241,2029,6.241,2030,6.241,2031,7.447]],["t/278",[5,1.28,23,1.056,24,1.28,25,0.903,32,1.664,58,2.834,213,3.785,235,3.881,241,2.578,247,1.961,296,1.961,310,3.985,336,3.094,343,6.881,350,2.087,356,5.468,360,2.466,433,2.946,530,4.936,838,3.143,995,6.98,1411,2.78,1727,3.422,2028,3.815,2029,5.468,2030,3.815,2032,4.552,2033,4.552,2034,4.552,2035,4.552,2036,4.552,2037,4.552,2038,4.552,2039,4.552,2040,4.552,2041,4.552,2042,4.552,2043,4.552,2044,4.552,2045,6.98,2046,4.552,2047,3.596,2048,4.552,2049,4.552,2050,4.552,2051,4.552,2052,4.552,2053,4.552,2054,4.552,2055,4.552,2056,4.552,2057,4.552,2058,6.524,2059,4.552,2060,6.524,2061,4.552,2062,4.552,2063,4.552,2064,4.552,2065,4.552]],["t/280",[6,2.383,11,1.262,13,4.259,17,1.432,19,3.622,20,3.163,22,2.813,32,1.538,48,1.995,52,1.995,58,2.646,78,2.973,93,2.187,130,1.898,140,3.458,173,3.028,177,2.279,183,3.526,223,1.5,277,2.187,285,2.503,309,2.643,316,2.279,341,2.145,385,2.654,388,3.575,431,2.03,505,2.723,511,2.279,530,4.72,599,4.632,616,3.324,633,3.339,697,3.028,754,4.436,795,2.187,808,3.163,823,2.913,830,2.723,840,3.526,856,2.383,885,3.324,886,4.436,926,3.141,948,2.913,992,3.797,1045,3.526,1087,2.57,1364,3.526,1368,2.813,1417,4.436,1627,3.526,1645,3.028,2045,5.165,2066,4.207,2067,4.207,2068,4.207,2069,4.207,2070,4.207,2071,4.207,2072,4.207,2073,4.207,2074,4.207,2075,4.207,2076,6.162,2077,4.207,2078,4.207,2079,4.207,2080,4.207,2081,4.207,2082,3.797,2083,4.207,2084,4.207,2085,3.526,2086,3.797,2087,3.526,2088,4.207]],["t/282",[40,5.2,41,5.359,47,6.223,48,3.926,50,5.056,101,4.485,107,6.541]],["t/284",[9,5.512,10,4.824,2089,7.685,2090,7.685]],["t/286",[23,2.014,530,5.62]],["t/288",[0,1.251,23,1.902,143,2.969,434,4.98,530,6.201]],["t/290",[0,0.494,3,1.039,4,1.336,17,0.578,24,0.912,25,0.643,26,2.63,32,1.185,36,0.994,49,1.98,66,2.036,92,1.873,115,1.142,119,2.036,129,1.873,143,1.928,145,4.779,157,2.036,163,1.396,164,1.928,195,1.756,199,2.528,213,2.935,214,2.983,216,1.537,228,1.88,239,1.836,252,1.231,258,2.245,266,2.167,267,2.333,268,5.593,296,1.396,313,2.036,322,3.172,327,4.308,350,1.486,367,1.653,385,4.145,428,3.009,429,1.564,430,5.724,431,1.564,432,2.437,433,2.098,434,1.685,435,2.437,436,2.333,437,2.437,438,2.437,439,2.777,440,2.167,441,2.167,442,2.437,443,1.72,444,2.333,445,2.245,446,2.437,447,2.245,448,4.308,449,3.188,450,2.437,451,4.415,452,2.866,453,1.88,455,1.928,466,1.98,503,4.571,508,3.641,509,2.333,510,5.059,511,2.741,512,3.803,513,2.441,514,2.579,515,3.009,516,2.437,517,2.437,518,2.437,519,2.437,520,2.437,521,3.803,522,2.245,523,1.98,524,2.167,530,3.274,550,2.333,926,1.396,2027,2.925,2030,2.717,2091,2.925]],["t/292",[0,1.185,5,2.186,22,5.196,129,2.877,140,3.686,225,3.115,316,4.211,367,3.963,368,4.882,369,4.211,548,5.196,755,4.882,1186,4.403,2019,6.141]],["t/294",[0,0.449,14,1.666,17,1.297,37,1.163,58,2.673,79,1.904,88,1.306,96,1.445,116,1.666,121,1.445,122,3.519,140,1.395,143,1.81,177,2.539,188,1.472,200,1.147,208,1.594,213,1.706,214,1.988,219,1.75,224,2.117,225,1.179,247,1.267,285,1.75,292,1.75,298,1.797,311,4.068,347,3.033,360,3.941,363,6.01,364,6.813,365,4.228,368,1.848,388,1.706,433,3.78,455,2.787,463,3.033,466,2.862,554,3.105,568,4.204,633,1.594,690,1.472,814,2.117,826,2.436,827,1.594,838,2.746,856,1.666,858,2.324,923,3.522,932,1.848,995,7.471,1087,1.797,1101,3.927,1106,1.797,1147,1.666,1173,1.706,1186,1.666,1361,2.324,1362,2.324,1391,3.927,1705,1.848,1776,1.904,1823,4.39,1927,3.927,2028,5.582,2029,4.894,2045,3.927,2047,3.702,2092,4.228,2093,4.686,2094,6.66,2095,4.686,2096,5.84,2097,4.686,2098,4.686,2099,4.686,2100,4.686,2101,4.686,2102,4.686,2103,4.686,2104,4.686,2105,7.274,2106,2.211,2107,5.84,2108,2.941,2109,2.941,2110,2.941,2111,2.941,2112,2.941,2113,2.941]],["t/296",[17,0.936,22,3.51,37,2.851,51,2.907,90,2.228,94,2.974,122,4.005,128,4.046,184,2.579,188,2.626,200,2.048,214,2.228,282,2.448,303,4.121,354,3.123,364,4.4,368,3.298,369,2.844,385,4.315,617,3.779,633,2.844,679,4.821,837,3.779,926,3.106,1032,4.148,1041,3.779,1077,4.148,1117,2.844,1173,3.046,1190,4.4,1217,3.946,1346,3.779,1403,3.635,1561,4.737,1607,4.148,1871,4.4,2092,4.737,2106,3.946,2114,5.25,2115,5.25,2116,4.148,2117,4.737,2118,5.25]],["t/298",[35,1.654,37,1.356,58,2.96,122,2.007,129,1.269,162,1.715,188,1.715,204,1.899,329,2.863,341,1.748,369,1.858,449,1.434,505,2.219,523,2.094,548,3.532,723,2.154,774,4.846,844,2.578,853,2.578,1000,2.374,1877,2.468,2119,2.094,2120,3.429,2121,3.429,2122,3.429,2123,5.284,2124,3.429,2125,3.429,2126,9.123,2127,3.429,2128,3.429,2129,10.179,2130,3.429,2131,3.429,2132,3.429,2133,3.429,2134,3.429,2135,3.429,2136,7.824,2137,3.429,2138,3.429,2139,3.429,2140,3.429,2141,3.429,2142,3.429,2143,3.429,2144,3.429,2145,3.429,2146,3.429,2147,3.429,2148,3.429,2149,3.429,2150,3.429,2151,3.429,2152,3.429,2153,3.429,2154,3.429,2155,3.429,2156,3.429,2157,3.429,2158,3.429,2159,3.429,2160,3.429,2161,3.429,2162,3.429,2163,3.429,2164,3.429,2165,3.429,2166,3.094,2167,3.429,2168,3.429,2169,3.429,2170,3.429,2171,3.429,2172,3.429,2173,3.429,2174,3.429]],["t/300",[188,4.261,926,3.668,937,4.261,2175,8.517]],["t/302",[3,2.449,17,1.638,122,2.902,246,4.432,329,4.139,697,5.498,923,5.742,926,3.956,937,3.822,1990,6.893,2082,6.893,2166,6.893,2176,6.035,2177,7.639]],["t/304",[355,6.794,775,6.464,776,4.302]],["t/306",[43,5.309,56,3.076,90,4.065,497,5.309,530,5.309,883,5.309,1115,5.904]],["t/308",[0,1.196,11,2.352,16,4.143,28,3.851,30,5.429,31,4.549,32,2.866,33,3.187,113,5.644,131,4.789,490,3.596,577,5.075]],["t/310",[39,6.541,40,5.2,47,6.223,48,3.926,50,5.056,101,4.485,107,6.541]],["t/312",[9,5.512,10,4.824,2089,7.685,2090,7.685]],["t/314",[5,1.903,24,1.903,25,1.343,35,4.973,51,3.747,101,3.666,104,4.251,118,1.788,119,4.251,121,3.324,147,4.38,344,4.38,360,3.666,477,2.96,490,3.103,534,5.087,809,5.347,1097,4.829,1153,4.133,1247,5.672,1645,4.871,1934,6.107,2178,6.767,2179,6.767,2180,6.767]],["t/316",[23,1.975,24,2.395,25,1.69,163,3.668]],["t/318",[0,1.217,23,1.851,24,2.651,25,1.584,28,3.92,143,2.474,163,3.438,171,3.438,434,4.901]],["t/320",[0,0.257,3,0.292,4,0.375,5,1.215,11,0.273,17,0.771,24,0.663,25,0.686,26,1.226,28,0.447,32,0.862,33,0.686,36,0.279,37,0.36,44,0.424,45,0.36,49,0.556,56,0.633,57,0.684,58,1.434,59,0.432,66,0.572,87,1.758,88,0.749,89,2.172,91,0.381,92,0.337,94,0.516,115,0.83,118,0.914,119,0.572,122,0.896,126,0.455,127,0.608,129,1.857,141,0.608,142,0.608,143,0.731,144,0.719,145,2.448,147,1.092,153,0.684,154,1.268,155,0.684,156,0.719,157,0.572,161,0.556,162,2.345,163,0.727,164,1.402,166,2.71,167,0.655,168,3.092,171,1.268,172,0.375,173,0.655,174,1.336,175,1.967,176,1.277,178,2.51,181,1.307,185,0.516,188,0.455,195,1.277,197,1.633,199,1.196,203,0.504,206,0.655,208,3.029,210,0.763,213,1.368,214,3.716,216,3.675,223,0.325,225,0.945,228,0.528,234,1.798,235,1.402,239,0.516,241,1.667,246,0.979,247,0.392,252,0.346,258,1.168,266,0.608,267,0.655,268,4.045,295,0.572,296,2.791,303,0.455,310,0.556,313,0.572,319,1.092,322,1.5,327,2.038,335,0.608,336,0.432,344,0.589,350,1.586,352,0.473,367,0.464,368,1.481,369,1.277,384,0.63,385,4.234,388,0.528,410,1.202,428,1.003,429,0.439,430,4.978,431,0.439,432,0.684,433,0.589,434,0.473,435,0.684,436,0.655,437,0.684,438,0.684,439,1.611,440,0.608,441,0.608,442,0.684,443,0.483,444,0.655,445,0.63,446,0.684,447,0.63,448,1.633,449,1.807,450,0.684,451,1.848,452,1.959,453,0.528,454,0.821,455,2.057,456,0.528,457,2.128,458,0.655,459,2.247,460,1.003,461,2.942,462,2.533,463,0.589,464,1.333,465,0.719,466,2.112,467,0.821,468,0.821,469,1.168,470,0.821,471,0.719,472,0.63,473,1.06,474,0.556,475,0.541,476,1.06,477,0.398,478,0.719,479,0.658,480,0.63,481,4.84,482,0.821,483,0.655,484,1.168,485,0.655,486,0.655,487,0.572,488,0.572,489,0.655,490,0.417,491,0.572,492,0.763,493,1.268,494,0.763,495,1.168,496,1.526,497,0.589,498,1.092,499,2.507,500,2.719,501,2.118,502,0.821,503,2.539,504,1.003,505,1.092,506,2.057,507,0.821,508,2.118,509,0.655,510,2.118,511,0.914,512,1.772,513,0.814,514,0.86,515,1.003,516,0.684,517,0.684,518,0.684,519,0.684,520,0.684,521,1.268,522,0.63,523,0.556,524,0.608,525,0.763,526,3.442,527,0.821,528,0.719,529,1.522,530,0.589,531,0.684,532,0.821,533,0.821,534,0.684,535,0.763,536,0.719,537,0.821,538,0.763,539,0.821,540,0.821,541,0.763,542,0.821,543,0.821,544,0.684,545,1.168,546,0.655,547,0.541,548,1.967,549,0.63,550,1.214,551,0.719,552,0.719,553,0.655,554,1.612,555,0.763,556,0.763,557,0.763,558,0.763,563,0.763,564,0.821,565,0.821,566,0.821,567,0.914,568,2.118,569,0.821,570,0.763,571,0.821,572,0.821,573,0.821,574,0.719,575,1.976,576,0.572,577,0.589,578,0.821,579,0.821,580,0.821,581,0.821,582,1.522,583,2.212,584,1.522,585,0.821,586,2.128,587,0.821,588,0.719,589,1.06,590,0.763,591,0.821,592,0.63,593,0.719,594,0.684,595,0.719,596,1.863,597,1.003,598,0.417,599,0.684,600,0.821,601,1.214,602,1.168,603,1.333,604,0.719,605,0.572,606,0.821,607,0.821,608,0.821,612,0.763,613,0.821,614,0.821,615,0.821,616,0.719,617,0.655,618,1.414,619,0.821,620,1.522,621,0.821,622,0.821,623,0.821,624,1.481,625,0.719,626,3.374,627,2.599,629,0.719,630,0.719,631,1.268,632,1.128,633,0.493,634,0.684,635,0.719,636,0.63,637,0.719,638,0.719,639,0.719,640,3.524,641,0.763,642,1.522,643,1.092,644,1.414,645,0.719,646,2.325,647,1.863,648,1.414,649,0.763,650,0.821,651,0.572,652,0.821,653,0.763,654,0.63,655,0.821,656,0.821,657,0.763,658,0.821,659,1.522,660,0.763,661,0.719,662,0.763,663,0.719,664,0.655,856,0.516,948,0.63,2181,0.821,2182,0.91,2183,0.763]],["t/322",[0,0.455,3,0.956,5,1.332,24,2.059,25,1.546,36,1.452,43,1.929,58,2.94,87,2.745,89,1.872,90,2.01,96,1.464,97,1.689,116,1.689,118,1.557,125,1.464,129,1.103,136,2.355,157,4.215,162,2.947,163,1.284,165,1.651,166,2.064,194,2.146,198,1.898,214,3.598,215,3.065,234,1.55,252,2.238,277,1.55,299,1.212,310,1.821,328,5.624,381,1.821,391,1.821,410,4.563,439,2.517,449,1.98,474,4.472,479,1.163,497,1.929,597,1.773,690,1.491,731,1.491,746,3.065,796,1.993,826,1.55,838,1.229,847,1.821,926,1.284,982,1.929,1022,2.355,1027,1.872,1095,2.355,1170,2.241,1299,3.969,1410,2.064,1590,2.064,1666,2.498,1840,2.69,1841,2.355,1877,2.146,2184,1.993,2185,2.981,2186,2.981,2187,4.736,2188,2.981,2189,2.981,2190,2.981,2191,4.273,2192,2.981,2193,2.981,2194,2.981,2195,2.981,2196,2.981,2197,4.273,2198,2.981,2199,2.981,2200,4.736,2201,4.736,2202,2.981,2203,3.741,2204,2.981,2205,2.981,2206,2.981]],["t/324",[0,0.687,5,1.267,11,1.351,24,1.267,25,1.285,42,2.297,51,2.495,58,1.215,76,3.776,87,2.428,90,1.912,91,1.884,101,2.441,115,1.587,118,1.191,123,1.757,157,2.83,163,1.941,165,2.495,181,2.876,198,1.806,203,2.495,223,1.606,252,3.335,277,2.342,391,5.063,474,4.631,477,1.97,490,2.066,503,4.108,561,5.363,562,3.171,590,3.776,731,3.24,817,3.387,839,2.916,848,4.868,895,3.243,982,4.192,1074,3.243,1075,3.776,1106,2.752,1136,3.56,1165,3.56,1170,3.387,1294,4.066,1590,3.12,1654,3.56,1666,7.359,1685,3.56,1691,4.066,1874,3.387,1964,4.066,2106,3.387,2184,3.012,2191,4.066,2197,4.066,2207,4.506,2208,4.066,2209,4.506,2210,4.506,2211,4.506,2212,4.506,2213,6.476,2214,4.506,2215,5.844,2216,4.506,2217,4.506]],["t/326",[0,1.345,3,2.292,5,2.01,11,2.144,12,4.95,23,2.045,24,2.01,25,1.75,26,3.716,28,3.511,87,2.68,92,3.265,115,2.517,145,4.049,224,5.145,797,3.449,897,6.45,1097,4.049,1115,5.145,1411,4.366]],["t/328",[0,1.137,11,2.235,16,3.31,17,0.983,24,2.375,25,1.479,26,3.875,28,2.706,33,2.239,35,3.596,36,2.589,37,3.339,42,2.809,78,2.659,115,2.625,129,2.04,143,2.805,181,3.751,187,2.41,200,2.149,214,2.338,218,4.618,282,3.938,319,3.566,329,2.985,477,3.259,513,2.659,695,3.461,702,5.158,795,2.865,818,3.684,834,3.278,857,3.051,924,3.966,1002,3.051,1874,4.142,2119,3.365,2218,4.618]],["t/330",[3,2.536,5,2.225,53,5.694,87,2.966,92,2.928,171,3.407,208,4.286,296,3.407,500,4.589,602,5.478,1874,5.947,2219,7.139]],["t/332",[11,1.984,17,1.647,25,1.313,36,2.028,52,3.137,87,2.481,100,6.049,145,3.748,165,3.664,430,3.936,439,2.889,550,4.762,553,4.762,562,2.767,597,5.493,598,4.235,602,4.582,682,4.974,683,4.762,1053,3.838,2220,5.545,2221,6.616,2222,6.616,2223,5.971,2224,5.971,2225,6.616]],["t/334",[0,1.165,24,2.148,25,1.516,32,2.792,93,3.972,115,2.69,130,3.447,181,3.393,182,3.393,439,2.626,562,3.195,594,5.742,597,4.544,1053,4.432,2226,6.893,2227,4.945]],["t/336",[3,1.871,17,1.871,101,5.221,115,3.394,181,4.28,285,5.732,500,3.385,596,4.61,597,5.732,883,3.777,1184,4.041,2228,8.693,2229,9.26,2230,5.835,2231,4.386,2232,5.835,2233,4.386,2234,5.266]],["t/338",[0,0.866,1,1.644,3,0.601,4,0.773,5,1.417,17,0.334,23,0.748,24,1.744,25,0.842,28,0.921,32,2.426,36,0.989,41,1.214,48,0.889,50,1.145,51,1.038,62,2.087,78,1.556,87,2.129,89,2.026,97,1.062,102,1.178,115,1.136,117,1.016,118,0.495,122,1.225,128,0.921,143,1.562,162,1.613,163,0.808,164,1.115,165,1.038,170,1.145,171,0.808,173,2.321,174,1.062,181,0.833,182,0.833,187,0.82,199,3.824,200,0.731,208,1.747,214,1.801,222,1.178,233,2.548,234,3.644,235,4.359,238,4.014,239,1.062,241,3.513,244,1.35,252,0.712,276,1.062,295,1.178,296,1.389,350,3.044,357,3.489,358,1.35,361,1.41,405,1.97,410,0.956,449,2.593,459,1.677,474,1.97,477,0.82,487,1.178,490,0.86,499,1.088,501,1.35,503,1.747,506,1.115,513,0.905,514,0.956,526,1.214,538,1.572,575,2.703,594,2.424,602,1.298,654,2.233,726,2.233,763,2.087,769,1.692,774,1.41,857,1.038,902,1.572,994,2.592,1016,1.692,1017,1.298,1021,1.692,1117,1.016,1136,1.481,1195,2.321,1264,1.572,1411,1.145,1442,1.254,1882,1.41,1961,1.41,2184,1.254,2226,2.91,2235,2.91,2236,1.875,2237,1.875,2238,1.875,2239,8.421,2240,8.421,2241,1.692,2242,1.692,2243,1.692,2244,1.692,2245,1.692,2246,1.481,2247,1.692,2248,1.692,2249,1.692,2250,1.692,2251,1.692,2252,1.692,2253,1.692,2254,1.298,2255,1.692,2256,2.91,2257,1.692,2258,1.692,2259,1.692,2260,1.692,2261,1.692,2262,1.692,2263,1.692,2264,1.692,2265,1.572,2266,1.692,2267,1.692,2268,1.692,2269,1.572,2270,1.692,2271,1.692,2272,1.692,2273,1.692,2274,1.692,2275,1.692,2276,1.692,2277,1.692,2278,1.692,2279,1.692,2280,1.692,2281,1.692,2282,1.692,2283,5.197,2284,1.692,2285,1.692,2286,1.692,2287,1.692,2288,1.692,2289,1.692,2290,1.692,2291,1.692,2292,1.692,2293,2.703,2294,1.692,2295,1.692,2296,1.692,2297,1.692,2298,1.692,2299,1.692,2300,2.91,2301,1.692,2302,1.692,2303,1.692,2304,1.692,2305,1.692,2306,1.692,2307,1.692,2308,1.692,2309,1.692,2310,1.692,2311,2.548,2312,1.692,2313,1.692,2314,1.692,2315,1.692,2316,1.692,2317,1.692,2318,3.829,2319,1.692,2320,1.692,2321,1.692,2322,1.692,2323,1.692,2324,1.692,2325,1.692,2326,1.692,2327,1.692,2328,1.692,2329,1.692,2330,1.692,2331,1.875,2332,1.875,2333,1.875,2334,1.875,2335,1.875,2336,1.875,2337,1.41,2338,1.875,2339,1.875]],["t/340",[2,2.162,3,1.385,5,0.748,8,2.715,11,0.798,17,0.474,24,2.083,25,1.788,26,1.383,27,2.247,32,2.297,36,0.815,37,1.052,40,1.671,51,1.473,58,0.718,59,1.261,78,2.085,88,1.181,110,3.246,117,1.441,118,0.703,122,2.625,123,1.038,128,1.307,129,0.985,137,1.671,141,3.649,162,4.205,163,2.707,172,1.097,181,1.919,184,1.307,195,1.441,206,3.111,219,1.582,222,2.715,223,0.948,225,1.066,237,1.582,241,1.507,246,2.507,251,1.722,259,1.722,276,1.507,282,1.24,347,4.793,350,4.133,369,1.441,389,2.229,398,2.229,410,1.356,425,2.102,428,2.571,449,1.112,455,3.738,458,4.523,459,1.383,461,4.724,462,4.067,464,4.312,466,5.133,471,2.102,472,1.842,473,1.671,475,2.571,476,2.715,479,1.686,480,1.842,488,1.671,489,3.111,491,1.671,500,1.543,514,1.356,559,2.203,633,2.341,754,1.915,779,2.102,787,1.842,805,1.625,836,2.229,856,2.448,885,2.102,965,2.992,967,1.842,971,2.4,1027,1.671,1053,1.543,1062,4.574,1110,2,1136,2.102,1167,1.915,1186,1.507,1226,1.543,1289,1.543,1417,1.915,1430,2,1442,1.778,1507,2.4,1630,2.992,1708,2.229,1751,3.249,1774,2.102,1819,2.229,1838,1.915,1915,3.622,2184,4.201,2215,2.4,2337,2,2340,2.66,2341,2.4,2342,2.66,2343,2.66,2344,2.66,2345,2.66,2346,2.66,2347,3.9,2348,2.4,2349,2.66,2350,2.4,2351,2.66,2352,2.66,2353,2.66,2354,2.66,2355,2.66,2356,2.66,2357,2.66,2358,2.66,2359,2.66,2360,2.66,2361,2.229]],["t/342",[0,0.577,11,0.849,17,0.288,24,1.063,25,1.129,33,1.15,42,0.823,58,1.02,62,1.832,66,1.013,69,1.352,72,3.146,87,1.703,88,0.717,91,0.675,103,0.96,118,0.426,122,1.075,123,1.104,124,1.456,127,1.079,128,1.39,133,1.161,146,2.375,161,0.985,162,0.807,163,1.219,170,0.985,181,0.717,192,0.893,195,1.533,198,1.134,199,3.757,200,1.104,203,2.093,216,1.342,222,1.013,233,2.987,234,4.524,235,5.454,238,5.557,239,1.603,241,4.714,244,1.161,247,1.219,256,1.456,266,1.079,299,0.656,350,4.086,378,0.778,410,0.823,428,0.96,449,3.59,451,1.778,452,1.603,456,0.936,466,2.309,479,0.629,490,0.74,493,1.213,503,2.048,506,1.683,552,6.455,561,0.985,624,1.013,654,1.96,726,1.96,771,1.044,797,0.778,838,0.665,856,0.914,873,2.127,874,1.161,884,1.275,887,0.985,937,2.848,951,3.721,965,1.96,1000,2.618,1081,0.985,1142,1.352,1195,3.721,1297,2.236,1442,3.037,1532,2.372,1606,1.352,1729,1.456,1786,1.456,1905,1.275,1939,1.456,2283,6.555,2293,4.332,2311,2.236,2362,1.613,2363,1.613,2364,1.456,2365,8.17,2366,1.613,2367,1.613,2368,2.83,2369,2.83,2370,2.83,2371,2.83,2372,2.83,2373,1.613,2374,1.613,2375,2.83,2376,1.613,2377,2.83,2378,1.613,2379,1.613,2380,2.83,2381,2.83,2382,2.83,2383,2.83,2384,2.83,2385,1.613,2386,1.613,2387,1.613,2388,1.613,2389,1.613,2390,1.613,2391,1.613,2392,1.613,2393,1.613,2394,1.613,2395,1.613,2396,1.613,2397,1.613,2398,1.613,2399,1.613,2400,1.613,2401,1.613,2402,1.613,2403,1.613,2404,1.613,2405,1.613,2406,1.613,2407,1.613,2408,1.613,2409,1.613,2410,1.613,2411,1.613,2412,1.613,2413,1.613,2414,1.613,2415,1.613,2416,1.613,2417,1.613,2418,5.692,2419,2.372,2420,1.613,2421,1.613,2422,1.613,2423,1.613,2424,1.613,2425,1.613,2426,1.613,2427,2.83,2428,2.83,2429,2.83,2430,1.613,2431,1.613,2432,1.613,2433,1.613,2434,1.613,2435,1.613,2436,1.613,2437,1.613,2438,1.613,2439,1.613,2440,1.613,2441,1.613,2442,1.613,2443,2.83,2444,1.613,2445,1.613,2446,1.613,2447,1.613,2448,1.613,2449,1.613,2450,1.613,2451,1.613]],["t/344",[5,1.521,23,1.254,87,2.76,118,1.429,123,2.11,126,3.682,137,4.623,163,2.33,169,4.534,217,3.218,223,2.624,259,3.501,260,5.593,296,2.33,320,3.746,331,3.138,341,2.758,396,3.746,449,2.262,499,4.27,549,5.097,561,3.304,567,2.931,599,4.066,700,5.533,760,4.274,937,2.706,1032,4.274,1074,3.894,1137,4.764,1149,3.616,1410,3.746,1600,4.274,1697,4.882,1839,4.066,1867,6.642,1877,5.298,2002,4.882,2350,4.882,2452,3.616,2453,5.41,2454,5.41,2455,5.41,2456,5.41,2457,4.534,2458,4.274,2459,5.41,2460,5.41,2461,5.41,2462,6.642,2463,5.41]],["t/346",[0,1.264,23,1.501,87,3.427,96,3.179,118,2.189,178,3.238,296,2.788,340,4.327,449,3.822,460,3.85,479,2.524,499,5.59,500,3.755,528,5.113,562,2.707,611,5.113,686,4.065,745,4.659,827,3.506,937,3.238,1137,4.189,1154,5.113,2464,5.424,2465,6.472,2466,6.472,2467,8.286,2468,6.472]],["t/348",[0,1.427,3,1.713,5,1.503,17,0.953,23,1.693,24,2.053,25,1.06,33,2.172,35,2.579,59,2.534,78,2.579,96,2.625,117,2.896,118,1.929,122,2.773,123,2.085,143,1.657,172,3.009,181,3.693,246,4.235,262,4.88,276,3.027,347,3.459,366,4.823,418,4.479,455,3.179,473,3.357,499,5.183,544,4.018,554,2.492,559,2.725,605,3.357,612,4.479,617,3.847,700,4.018,713,3.357,823,3.701,840,4.479,937,2.674,948,3.701,1137,3.459,1411,3.264,1600,4.223,1692,4.823,1774,4.223,2452,4.88,2469,5.345,2470,7.3]],["t/350",[0,0.825,3,1.734,24,2.07,25,1.66,32,1.977,56,2.028,59,2.565,87,2.028,90,2.296,96,2.657,130,2.441,136,4.274,143,1.677,162,3.682,163,3.17,172,2.23,191,3.304,225,2.168,234,2.812,252,2.055,285,3.218,299,2.199,329,3.988,337,3.894,346,4.066,350,4.444,360,2.931,361,4.066,379,2.87,410,2.758,458,3.894,465,4.274,466,3.304,480,3.746,598,2.481,801,3.616,845,4.534,879,4.274,880,4.882,937,2.706,1027,3.398,1205,4.066,1226,3.138,1305,3.501,1589,4.534,1730,4.882,1902,4.534,1925,3.894,1961,4.066,2227,3.501,2361,4.534,2471,4.882,2472,5.41]],["t/352",[2,1.646,4,1.356,5,0.925,10,3.557,25,1.683,32,1.202,49,3.835,56,1.919,83,4.288,92,2.325,116,1.863,118,1.352,125,2.513,126,1.646,128,2.513,129,1.218,141,2.199,143,2.196,160,2.278,162,3.544,163,2.705,169,2.757,198,1.318,204,1.821,238,2.129,266,2.199,299,1.337,333,2.599,341,1.677,342,1.957,346,5.326,347,4.586,360,3.838,448,2.278,449,1.376,461,5.326,462,4.586,475,1.957,476,3.214,477,1.439,478,2.599,479,1.996,480,2.278,491,2.066,531,3.846,554,1.534,559,1.677,568,2.368,758,2.278,759,2.273,763,2.129,837,2.368,937,1.646,979,2.199,980,2.968,982,2.129,1004,4.043,1038,2.968,1041,2.368,1106,2.009,1121,4.288,1289,2.968,1307,6.064,1330,2.757,1334,2.473,1417,2.368,1441,2.968,1630,3.543,1685,2.599,1751,3.846,1780,2.599,1782,2.599,1819,2.757,1820,2.368,1823,2.473,1838,2.368,1863,4.968,1864,5.667,1870,2.968,1925,2.368,1929,2.757,1961,2.473,1965,2.968,2003,2.968,2006,2.757,2227,2.129,2361,2.757,2473,5.117,2474,5.117,2475,3.289,2476,3.289,2477,3.289,2478,2.968,2479,3.289,2480,3.289,2481,3.289,2482,3.289,2483,2.757,2484,3.289,2485,4.288,2486,3.289,2487,3.289,2488,3.289,2489,3.289,2490,3.289,2491,3.289,2492,3.289,2493,3.289]],["t/355",[4,2.556,24,1.744,25,1.95,49,3.788,56,2.325,113,4.464,130,2.798,143,1.922,162,4.033,204,3.434,225,3.231,241,3.513,252,2.356,299,2.52,350,4.348,360,3.36,453,3.598,466,5.47,480,4.294,924,4.464,1009,4.899,1026,4.899,1205,4.662,1284,4.899,1519,5.596,1553,5.197,1671,4.662,1747,4.662,1838,4.464,2227,4.014,2254,4.294,2494,6.201]],["t/357",[8,3.842,24,2.247,25,1.585,32,2.236,43,3.959,87,2.995,161,3.735,163,2.634,182,2.716,194,4.402,252,2.323,299,2.486,329,3.314,350,4.08,410,3.118,449,3.72,479,2.386,801,4.089,937,3.06,1141,5.126,1142,5.126,1205,4.598,1305,5.171,1307,6.311,1321,3.842,1589,5.126,1887,4.235,1902,5.126,1925,4.402,2119,4.879,2227,3.959,2254,6.16,2495,6.116]],["t/359",[24,1.834,25,1.82,90,2.767,113,4.693,130,2.942,133,4.693,143,2.021,160,4.514,162,3.262,182,2.896,188,3.262,299,2.65,336,3.091,350,3.818,410,3.324,449,3.481,475,4.952,480,4.514,491,6.069,497,4.22,937,3.262,1026,5.151,1205,4.901,1553,5.464,2458,5.151,2471,5.883,2496,6.52,2497,6.52]],["t/361",[25,1.284,91,2.707,172,2.668,225,2.594,252,3.147,341,3.3,350,3.8,401,5.424,449,3.465,451,4.065,456,3.755,460,3.85,466,5.582,686,4.065,724,5.113,911,5.84,935,4.865,1049,4.482,1147,3.666,1157,4.482,1186,5.177,1234,5.424,1516,5.424,1659,4.482,2006,5.424,2227,4.189,2254,4.482,2498,6.472,2499,6.472,2500,6.472]],["t/363",[0,1.208,17,1.413,24,1.371,25,0.967,32,3.308,101,2.642,115,1.717,116,2.762,128,2.395,143,2.123,160,3.376,161,2.978,181,2.166,188,3.427,205,2.535,223,1.738,234,2.535,241,2.762,298,2.978,299,1.982,303,2.439,305,3.376,350,4.586,385,2.1,406,3.26,411,3.063,449,2.865,452,2.762,458,3.51,464,3.852,465,3.852,466,2.978,471,3.852,489,3.51,490,2.236,491,4.303,626,3.51,837,3.51,856,2.762,924,4.931,926,2.1,993,3.852,1027,3.063,1075,4.086,1128,4.086,1149,3.26,1289,2.829,1499,3.852,1593,3.852,1610,4.4,2227,5.56,2254,3.376,2501,4.876,2502,3.51,2503,4.876,2504,4.876,2505,4.876,2506,4.876]],["t/365",[0,0.98,43,4.159,110,3.822,123,2.506,125,3.156,130,2.899,143,1.992,171,2.768,172,2.649,174,3.64,186,3.341,234,4.736,270,3.727,322,3.276,352,4.288,354,3.822,405,3.924,406,4.295,477,2.81,497,4.159,664,4.625,827,3.481,875,4.295,1019,5.798,1081,3.924,1087,3.924,1115,4.625,1149,4.295,1226,3.727,1671,4.83,1780,5.076,2047,5.076,2507,4.83,2508,5.076,2509,6.425]],["t/367",[0,1.099,142,4.817,143,2.234,147,4.664,153,5.417,155,5.417,174,4.082,181,3.201,208,3.904,422,4.817,638,5.693,644,6.039,645,5.693,647,5.693,648,6.039,653,6.039,657,6.039,660,6.039,661,5.693,662,6.039,663,5.693,664,5.187,838,2.97]],["t/369",[0,0.542,3,1.74,11,1.065,23,1.528,24,0.999,25,1.925,32,1.298,35,2.62,37,1.404,96,1.745,114,2.375,115,1.912,122,2.062,123,1.385,130,1.603,143,2.043,147,5.425,166,2.46,171,2.338,172,2.716,174,4.503,175,4.933,181,1.578,184,2.667,187,1.553,194,2.557,198,1.424,200,1.385,208,1.924,217,2.113,218,2.977,221,2.46,234,4.972,243,2.557,252,2.503,274,2.113,282,1.656,299,2.999,329,1.924,333,2.806,334,2.977,337,2.557,345,2.299,352,2.823,357,2.46,360,3.997,369,1.924,426,2.977,554,1.656,562,1.485,589,2.231,640,2.67,688,2.169,695,2.231,797,1.714,826,1.847,827,2.941,841,2.46,879,2.806,994,2.169,1045,2.977,1096,2.557,1097,2.012,1118,2.977,1245,2.977,1284,2.806,1289,2.061,1333,2.67,1590,2.46,1644,3.205,1887,2.46,1905,2.806,1987,3.205,2001,3.205,2026,3.205,2457,2.977,2464,2.977,2507,4.081,2510,3.552,2511,3.552,2512,3.552,2513,5.429,2514,3.552,2515,3.552,2516,3.552,2517,3.552,2518,3.552,2519,2.977,2520,3.552,2521,2.67,2522,3.552,2523,3.552,2524,3.552]],["t/371",[0,0.664,3,2.025,8,2.733,11,1.305,17,0.776,24,1.224,25,1.849,29,2.658,32,1.59,37,1.72,52,2.063,56,1.632,114,2.909,122,1.653,126,2.177,129,1.611,143,2.304,147,2.816,166,6.739,167,3.132,171,2.72,172,1.794,174,2.465,175,4.222,187,1.903,192,2.409,194,3.132,195,2.357,198,2.531,199,1.769,200,1.697,201,3.132,202,3.927,208,2.357,229,2.588,234,2.262,246,2.524,296,1.874,320,3.013,352,2.262,357,3.013,361,3.271,381,2.658,477,1.903,490,1.995,495,3.013,503,2.357,554,2.029,562,1.82,617,3.132,626,3.132,771,2.816,926,1.874,951,3.132,967,3.013,994,2.658,1013,3.927,1166,4.99,1177,2.909,1187,3.927,1216,3.927,1236,3.013,1632,3.927,1683,3.438,1735,3.271,1776,2.816,1887,3.013,1903,3.647,1925,3.132,2176,3.438,2218,3.647,2265,3.647,2269,3.647,2507,3.271,2525,5.699,2526,4.351,2527,4.351,2528,4.351,2529,4.351,2530,4.351,2531,4.351,2532,4.351]],["t/373",[17,1.67,24,1.918,25,1.353,56,3.211,116,3.863,143,2.114,163,2.937,198,2.733,234,3.545,252,3.253,350,3.127,371,6.767,406,5.726,485,4.908,823,4.722,907,5.126,1106,4.165,1838,4.908,1882,5.126,2457,5.715,2533,6.154,2534,6.819,2535,6.819,2536,6.819]],["t/375",[3,1.222,25,1.136,49,2.327,56,2.147,62,2.467,96,1.872,110,2.267,143,2.371,178,1.906,182,1.693,184,2.813,197,3.965,204,2.11,225,1.527,229,2.267,234,3.976,252,2.613,342,3.406,352,2.977,386,2.639,406,4.598,453,3.322,485,4.122,498,2.467,547,2.267,595,3.011,605,2.394,654,3.965,725,3.828,726,2.639,770,5.765,773,2.865,804,3.706,827,3.727,828,3.011,834,5.467,847,2.327,853,2.865,892,3.194,979,2.548,982,2.467,1023,3.439,1052,3.194,1080,3.439,1095,3.011,1096,4.122,1236,2.639,1402,3.439,1438,3.439,1440,2.865,1645,4.122,1654,3.011,1820,2.743,1839,2.865,1865,5.765,1876,2.865,1945,3.194,1989,3.439,2020,3.194,2311,7.058,2458,3.011,2483,3.194,2521,2.865,2533,5.167,2537,3.011,2538,3.811,2539,7.648,2540,6.879,2541,3.811,2542,3.811,2543,3.811,2544,3.811,2545,3.811,2546,3.811,2547,3.811,2548,5.726,2549,3.811,2550,5.726,2551,3.811,2552,3.811,2553,3.439,2554,3.811,2555,3.811]],["t/377",[56,2.867,160,3.963,172,2.359,188,4.307,252,2.904,303,2.863,309,3.595,329,4.664,352,4.777,371,4.521,385,2.465,405,4.669,495,5.294,496,4.948,513,2.761,589,3.595,618,4.796,726,3.963,746,5.572,751,4.302,763,4.948,834,5.121,1236,3.963,1245,4.796,1246,5.164,1388,5.164,1590,3.963,1611,5.164,1882,4.302,1887,3.963,1903,4.796,2106,4.302,2254,3.963,2507,4.302,2556,5.723,2557,5.723,2558,7.645]],["t/379",[31,4.052,96,3.948,110,2.982,121,2.462,122,1.904,126,2.508,143,2.934,171,3.009,182,2.227,225,2.009,234,3.631,252,2.653,262,3.352,270,4.052,290,3.769,345,4.521,352,4.52,371,3.961,378,2.419,405,4.91,406,3.352,414,3.961,418,4.202,511,3.784,554,2.337,627,3.769,640,3.769,828,3.961,884,3.961,926,2.159,1062,4.202,1137,3.245,1194,3.961,1305,4.521,1311,3.769,1590,3.471,1676,4.202,1865,4.202,1866,3.609,1887,4.837,2016,4.202,2020,4.202,2047,6.351,2478,6.303,2483,4.202,2507,3.769,2559,8.039,2560,5.013,2561,5.013,2562,5.013,2563,5.013]],["t/381",[0,0.74,1,3.479,5,1.919,24,2.41,25,1.792,87,3.213,90,2.896,110,5.372,118,1.803,175,3.242,197,5.933,208,5.68,225,1.944,295,3.046,296,2.939,367,2.472,368,3.046,388,2.813,391,2.962,487,3.046,500,2.813,506,4.059,562,2.028,639,3.831,646,3.831,741,4.725,797,2.34,1003,3.645,1297,3.831,1305,3.139,1629,4.376,1630,3.358,2452,3.242,2508,3.831,2564,4.849,2565,4.849,2566,4.849,2567,4.849,2568,4.849,2569,4.849,2570,4.849,2571,4.849,2572,4.849,2573,4.849,2574,4.849,2575,4.849]],["t/383",[0,1.217,90,3.387,94,4.521,208,4.324,282,3.721,664,5.745,774,6,926,3.438,1297,6.306,1720,6.306,2576,7.982]],["t/386",[0,1.136,11,2.233,14,4.219,16,3.308,23,1.727,36,2.283,42,3.797,58,2.009,189,5.884,341,3.797,411,4.678,456,4.32,463,4.82,1097,4.219,1705,4.678,2577,7.447,2578,6.72,2579,7.447,2580,7.447]],["t/388",[0,1.353,8,3.298,12,3.635,13,2.785,15,4.905,16,2.332,17,1.286,18,2.907,19,2.369,23,1.91,35,2.533,36,1.609,48,2.489,59,2.489,103,3.123,127,3.51,182,2.332,199,2.931,289,5.704,294,2.296,319,3.398,341,2.677,381,3.206,453,3.046,477,2.296,513,2.533,695,3.298,764,3.779,797,2.533,802,3.946,804,4.668,808,5.421,810,3.635,834,3.123,901,3.398,1044,4.148,1178,4.4,1182,5.704,1705,3.298,1733,4.4,2553,6.507,2581,5.25,2582,4.737,2583,3.946,2584,5.25,2585,7.211]],["t/391",[0,1.087,2,2.581,16,3.909,17,1.57,23,1.652,25,1.619,52,2.446,58,1.391,59,3.87,129,2.637,130,2.328,187,3.116,199,2.097,214,3.463,341,4.87,355,7.546,391,4.351,411,3.24,453,2.993,463,3.339,609,3.713,690,2.581,775,6.135,776,2.581,838,2.127,857,3.945,926,2.222,937,3.564,1002,3.945,1613,3.878,1659,3.572,1755,4.655,2586,8.802,2587,5.159,2588,5.159,2589,5.159,2590,5.159]],["t/393",[0,1.155,13,4.018,33,3.078,103,4.505,429,3.654,759,3.364,810,5.245,858,5.984,1055,5.452,1538,6.868,1541,4.626,1705,4.758,2583,6.868,2591,7.574,2592,7.574]],["t/395",[0,1.196,11,2.352,16,4.143,22,5.242,23,1.818,36,2.404,121,3.851,140,3.718,271,5.075,386,5.429,428,4.664,776,3.923]],["t/397",[13,5.166,23,1.956,140,4,776,4.22]],["t/399",[0,1.43,17,1.411,36,2.425,137,4.969,198,3.171,200,3.086,243,5.694,443,4.197,477,3.46,764,5.694,901,5.12]],["t/401",[11,2.061,13,3.646,16,3.823,23,1.594,25,1.363,36,2.107,48,3.259,92,2.544,140,4.081,304,4.317,316,3.723,431,3.316,472,4.758,771,4.448,776,3.438,781,6.201,1002,3.805,1160,4.317,1542,6.201,2485,5.759,2593,6.872,2594,8.607,2595,6.872,2596,6.872,2597,6.872,2598,6.872]],["t/403",[2,3.492,13,3.703,14,3.954,15,3.368,16,4.203,17,1.55,26,3.629,59,3.31,163,3.006,206,5.024,292,4.152,329,4.708,719,4.263,935,5.247,1081,4.263,1177,4.666,1361,5.514,1417,5.024,1630,4.833,2337,5.247,2599,6.98,2600,6.98,2601,6.98]],["t/405",[23,2.13,24,2.148,25,1.822,143,2.368,147,4.945,174,5.202,176,4.139,223,2.723,225,3.062,378,3.686,379,4.053,1659,5.29,2519,6.402]],["t/407",[0,0.352,3,0.74,4,0.951,17,0.412,26,1.999,33,0.938,36,0.708,49,1.41,56,0.865,58,1.333,66,1.45,88,1.025,115,1.354,119,1.45,129,1.423,143,1.532,145,4.154,147,3.199,153,1.735,154,1.735,155,1.735,156,1.824,157,1.45,163,0.994,164,2.287,166,4.435,167,1.661,168,4.555,171,1.656,174,3.266,175,2.571,178,1.155,185,1.307,195,1.25,199,2.009,208,3.123,213,1.339,214,3.586,216,3.279,225,0.925,228,1.339,234,1.2,239,1.307,252,0.877,258,1.598,262,2.571,266,1.543,267,1.661,268,5.699,313,1.45,319,1.494,322,2.52,327,3.422,367,1.177,385,4.299,428,1.373,429,1.114,430,5.547,431,1.114,432,1.735,433,1.494,434,1.2,435,1.735,436,1.661,437,1.735,438,1.735,439,2.521,440,1.543,441,1.543,442,1.735,443,1.224,444,1.661,445,1.598,446,1.735,447,1.598,448,3.422,449,2.678,450,1.735,451,3.621,452,2.178,453,1.339,459,2.57,481,3.422,492,1.934,493,1.735,494,1.934,495,1.598,503,3.973,506,3.429,508,2.768,509,1.661,510,4.15,511,2.083,512,2.891,513,1.855,514,1.96,515,2.287,516,1.735,517,1.735,518,1.735,519,1.735,520,1.735,521,2.891,522,1.598,523,1.41,524,1.543,526,3.199,554,2.688,624,3.105,625,1.824,626,4.978,627,1.735,629,1.824,638,1.824,639,1.824,640,4.334,641,1.934,645,1.824,646,3.905,647,1.824,649,1.934,661,1.824,663,1.824,664,1.661,2183,1.934,2602,2.308]],["t/409",[0,1.264,4,2.668,5,2.57,15,3.123,18,3.584,19,2.92,26,3.365,28,3.179,36,1.984,58,2.599,87,3.107,115,2.279,130,2.92,187,2.83,217,3.85,309,4.065,385,2.788,426,5.424,524,4.327,926,2.788,947,5.424,1002,3.584,1087,3.953,1137,4.189,1157,4.482,1683,5.113,1776,4.189,1909,5.84,2603,6.472,2604,6.472]],["t/411",[0,1.009,1,3.373,5,1.861,8,4.156,9,4.283,17,1.18,19,2.986,23,1.534,46,5.227,48,3.137,50,4.041,87,2.481,92,2.449,101,3.585,103,3.936,105,5.227,106,4.762,107,5.227,108,5.545,109,4.762,110,3.936,111,5.971,112,5.545,115,2.959,143,2.051,270,3.838,320,4.582,336,3.137,348,4.762,453,3.838,797,3.192,2605,6.616,2606,6.616]],["t/413",[15,3.783,17,1.399,18,5.165,19,3.538,25,1.556,131,4.789,243,5.644,679,5.242,797,4.501,991,7.076,1311,5.894]],["t/415",[0,1.04,5,2.409,12,4.722,25,1.353,58,1.839,104,4.283,129,3.171,130,3.077,176,4.64,390,5.126,496,4.414,504,5.57,547,4.056,631,5.126,632,5.726,634,6.438,1081,4.165,1331,6.154,2464,5.715,2607,6.819,2608,6.819,2609,6.819,2610,6.154]],["t/417",[0,1.217,5,2.245,24,2.245,25,1.584,35,3.851,37,3.156,96,3.92,115,2.811,118,2.109,122,3.032,504,4.748]],["t/419",[5,1.356,17,1.404,25,0.957,32,1.763,37,1.907,52,2.287,53,3.472,56,1.808,97,2.732,117,2.613,118,1.274,123,1.881,127,3.224,129,2.914,167,3.472,171,2.077,176,4.883,178,3.401,181,3.019,198,3.155,206,3.472,246,2.798,252,2.99,296,2.077,322,3.466,347,3.122,377,3.811,455,4.044,490,2.212,496,4.4,498,3.122,503,2.613,504,4.044,509,3.472,526,4.4,554,2.249,559,2.459,562,2.017,630,5.371,632,5.715,634,3.626,732,3.472,844,3.626,856,2.732,1003,3.626,1029,4.042,1049,3.34,1081,4.152,1289,2.798,1385,4.893,1591,3.626,1735,3.626,1747,3.626,1820,3.472,2610,4.352,2611,4.823,2612,4.823,2613,4.823,2614,4.823]],["t/421",[5,1.685,17,1.069,23,1.39,25,1.189,66,3.764,117,3.247,129,2.918,176,3.247,181,2.662,186,3.116,192,3.318,214,2.543,221,5.458,222,3.764,247,2.581,252,3.346,259,3.879,496,3.879,504,3.565,513,2.891,522,4.149,523,3.66,559,3.055,583,4.505,589,3.764,631,4.505,632,4.006,635,6.227,636,6.099,637,4.734,982,3.879,1300,5.408,1385,5.673,1442,5.269,1517,5.408,1654,4.734,2615,7.882,2616,5.408]],["t/423",[1,3.674,2,3.605,10,4.082,25,1.43,59,3.417,187,3.151,273,5.417,379,3.823,479,2.811,504,4.286,624,4.526,771,4.664,796,4.817,857,3.99,873,5.417,979,4.817,1096,5.187,1147,4.082,2184,4.817,2617,7.206,2618,7.206,2619,7.206,2620,7.206]],["t/425",[0,1.082,15,3.421,19,3.96,24,1.994,25,1.407,29,4.331,33,2.882,44,3.306,109,6.317,191,4.331,463,5.681,506,4.218,797,4.235,874,5.104,876,6.399,877,6.399,994,4.331,1177,4.741,1339,6.399,2621,7.091,2622,7.091]],["t/427",[0,1.506,16,2.793,23,1.886,24,1.769,25,1.248,32,2.299,103,3.741,115,2.215,199,2.556,208,3.407,214,2.669,219,3.741,410,3.206,439,2.796,456,4.719,504,3.741,624,5.988,886,4.527,994,3.841,1186,3.563,1546,5.271,2183,5.271,2623,6.289,2624,6.289,2625,6.289,2626,8.134,2627,6.289,2628,6.289,2629,6.289,2630,6.289]],["t/429",[2,3.634,16,3.227,93,3.777,103,4.321,247,3.129,252,2.76,456,4.214,485,5.229,504,4.321,506,4.321,624,4.563,770,6.089,873,6.696,1353,5.229,2631,7.265,2632,7.265,2633,7.265,2634,7.265,2635,7.265,2636,7.265,2637,7.265]],["t/432",[0,0.971,3,2.486,4,2.146,5,2.017,11,1.561,12,2.329,15,2.512,17,1.279,18,2.883,19,1.518,23,0.78,25,1.264,26,1.749,28,1.652,29,2.055,33,2.116,40,2.113,51,1.863,53,4.585,56,1.261,58,2.307,59,1.595,87,2.388,102,5.152,110,2.001,112,2.819,118,0.889,122,1.278,126,1.683,131,5.54,172,1.387,178,1.683,182,1.494,198,2.087,199,1.367,208,1.823,225,1.348,289,2.329,329,1.823,342,2.001,381,3.18,388,1.952,434,1.749,449,1.407,459,3.312,500,1.952,501,2.421,514,1.715,523,2.055,567,2.821,719,2.055,746,2.177,775,2.529,795,1.749,797,3.073,810,2.329,847,3.18,883,2.177,893,2.249,926,1.449,983,2.819,1081,2.055,1097,1.906,1140,2.177,1177,2.249,1184,2.329,1311,2.529,1315,3.02,1648,3.036,1698,3.036,1705,2.113,1863,3.37,1895,3.036,2016,2.819,2019,4.114,2231,2.529,2233,2.529,2337,2.529,2508,2.658,2583,2.529,2638,3.914,2639,3.364,2640,3.364,2641,4.114,2642,3.364,2643,3.364,2644,3.364,2645,3.036,2646,3.364,2647,3.036,2648,3.364,2649,3.364,2650,3.364,2651,2.819,2652,4.114,2653,3.036,2654,3.036,2655,3.036,2656,4.698,2657,2.819,2658,3.036,2659,4.698,2660,3.036,2661,3.036,2662,3.364,2663,3.036]],["t/434",[0,1.428,9,5.544,44,3.179,50,5.719,51,4.743,58,1.839,109,4.908,411,5.38,453,3.956,459,4.868,490,3.127,598,3.127,654,4.722,926,2.937,1961,5.126,2525,7.729,2664,6.819,2665,6.819,2666,7.729]],["t/436",[0,0.878,3,1.846,9,3.728,11,1.727,15,2.779,16,2.558,23,2.136,25,1.143,28,3.771,32,2.105,33,3.121,50,3.518,58,1.554,89,3.618,92,2.132,97,4.349,100,4.146,118,1.522,122,2.917,131,3.518,459,3.992,567,3.12,775,4.33,821,3.988,883,3.728,1099,6.066,1406,5.198,1411,3.518,1634,6.435,1839,4.33,1863,3.728,1871,4.827,1941,4.827,1995,5.198,2458,4.551,2638,4.33,2645,5.198,2651,6.435,2667,5.76,2668,5.76,2669,5.76,2670,5.76,2671,5.76]],["t/438",[16,3.879,17,1.255,26,3.658,28,4.29,32,2.571,45,2.781,59,3.336,131,4.297,459,3.658,797,4.214,940,6.348,1041,5.064,1117,4.731,1153,4.297,1823,5.288,2208,6.348,2657,5.896,2672,7.035,2673,7.035,2674,6.348,2675,5.896,2676,7.035]],["t/440",[57,4.042,58,1.45,59,2.55,60,4.506,61,6.615,62,4.745,63,4.852,64,6.615,65,6.615,66,3.377,67,4.852,68,4.852,69,4.506,70,4.852,71,3.284,72,3.723,73,7.507,74,6.143,75,4.506,76,4.506,77,4.852,78,4.024,79,5.398,80,6.589,81,4.852,82,4.506,83,6.143,84,6.615,85,6.615,86,6.615,91,2.249,106,3.87,199,2.185,222,3.377,279,3.723,473,3.377,849,4.248,856,3.046,887,3.284,982,3.48,1017,3.723,1381,4.506,2638,4.042,2677,5.377,2678,5.377,2679,4.852,2680,4.506]],["t/443",[0,0.823,2,1.763,15,4.437,16,3.711,18,2.988,21,2.44,23,1.521,33,2.193,35,1.7,36,1.08,45,1.393,58,2.531,92,1.304,93,2.805,97,1.996,102,2.214,103,3.21,121,1.731,125,1.731,176,1.909,182,1.565,184,1.731,185,1.996,189,4.263,191,2.152,200,1.375,223,1.256,336,3.484,443,1.87,459,2.805,479,1.375,500,3.13,723,2.214,796,2.356,834,3.21,864,3.18,869,2.953,951,2.537,1055,2.537,1135,2.537,1153,2.152,1182,2.44,1194,2.784,1315,2.044,1350,4.522,1367,4.263,1422,4.979,1423,6.281,1522,3.18,1538,4.929,1541,2.152,1600,2.784,1701,2.096,1705,2.214,1725,2.953,1735,2.649,1756,3.18,1974,3.18,2119,2.152,2578,3.18,2583,2.649,2638,4.056,2681,3.524,2682,5.396,2683,3.524,2684,3.524,2685,3.524,2686,3.524,2687,3.524,2688,3.524,2689,3.524,2690,3.524,2691,3.524,2692,5.396,2693,3.524,2694,3.18,2695,3.524,2696,3.524,2697,3.524,2698,3.524,2699,3.524,2700,3.524,2701,3.524,2702,3.524,2703,3.524,2704,2.281,2705,5.396,2706,3.524,2707,3.524,2708,5.396,2709,3.524,2710,3.524,2711,3.524]],["t/446",[0,1.438,18,5.22,19,3.602,92,2.955,281,5.014,439,2.744,475,4.748,994,4.875,1541,4.875]],["t/448",[0,0.867,5,1.599,21,3.937,53,4.093,58,2.472,87,2.132,92,2.105,100,4.093,145,3.221,171,2.449,191,4.649,208,4.124,217,3.382,244,4.093,296,2.449,325,4.765,500,3.299,514,2.899,550,4.093,594,5.722,595,6.014,596,6.014,597,5.451,598,2.608,601,5.479,602,3.937,605,3.572,683,4.093,741,3.937,759,2.525,869,4.765,1113,4.765,1315,3.299,1367,4.492,1418,4.492,1736,4.492,2219,6.869,2220,4.765,2223,5.131,2224,5.131,2337,4.274,2712,5.686,2713,5.686]],["t/450",[23,1.644,58,1.913,115,2.497,118,1.874,143,2.198,439,2.438,601,5.104,683,5.104,768,3.926,838,3.618,1039,5.602,1053,4.114,1154,5.602,1453,4.454,1701,4.218,1866,5.104,2091,6.399,2220,5.943,2704,4.59,2714,8.776,2715,5.33,2716,4.741,2717,4.59]],["t/452",[3,2.321,21,3.657,23,1.916,42,2.693,58,1.425,92,1.955,115,2.91,118,2.349,129,3.059,143,1.637,177,2.861,182,2.346,214,2.241,225,2.117,247,2.275,335,3.531,410,2.693,443,2.802,449,2.209,514,2.693,545,5.721,546,5.212,549,5.014,554,4.343,603,4.172,686,3.317,690,3.622,694,4.426,713,4.548,768,2.924,1053,3.064,1077,4.172,1154,5.721,1385,3.801,1453,3.317,1701,3.141,1876,3.97,2452,5.524,2704,3.418,2716,3.531,2717,3.418,2718,4.766,2719,4.766,2720,4.766,2721,5.281]],["t/454",[1,2.792,11,1.642,17,1.324,23,1.721,37,2.165,42,3.784,57,4.116,58,1.477,115,1.929,118,1.961,129,3.116,177,2.967,199,2.226,225,2.195,237,3.257,247,2.359,261,4.962,276,3.102,449,2.29,499,3.177,549,3.792,576,3.44,713,5.288,768,3.032,1053,3.177,1090,4.942,1453,3.44,1599,4.589,1701,3.257,1844,4.942,1863,3.545,2119,3.345,2452,5.628,2651,6.22,2704,3.545,2716,3.661,2717,3.545,2722,5.476,2723,5.476,2724,5.476,2725,5.476,2726,7.422,2727,7.422,2728,5.476,2729,5.476,2730,5.476,2731,5.476,2732,5.476]],["t/456",[5,2.043,17,1.589,19,3.278,34,5.74,36,2.227,78,3.505,92,2.689,115,2.558,143,2.761,160,5.03,184,3.568,261,4.857,410,3.704,439,3.062,926,3.129,2005,6.089,2733,7.466,2734,6.089]],["t/458",[1,3.829,17,1.621,27,3.905,28,3.689,56,2.816,143,2.328,171,3.235,177,4.069,184,3.689,434,3.905,439,2.582,797,3.624,954,4.717,2715,5.645,2735,7.51,2736,7.618]],["t/460",[17,1.492,37,2.597,42,3.348,117,3.558,118,1.735,171,2.829,177,4.531,187,2.872,199,2.669,223,2.341,237,3.907,282,3.062,285,3.907,439,2.258,443,3.484,455,3.907,498,4.251,576,4.125,713,4.125,857,3.637,954,4.125,1039,5.189,1613,4.937,2452,4.391,2521,6.918,2694,5.927,2737,5.927,2738,6.568,2739,6.568,2740,6.568,2741,6.568]],["t/462",[0,1.357,15,2.951,17,1.682,18,3.387,19,2.76,56,2.995,58,1.65,59,2.9,214,2.595,341,4.536,422,4.089,439,2.103,514,3.118,702,3.735,719,3.735,805,3.735,810,5.531,838,2.521,937,3.06,1001,4.235,1044,6.311,1152,4.832,1182,4.235,1705,5.588,1866,5.75,2582,5.519,2583,4.598,2742,6.116,2743,6.116,2744,6.116,2745,6.116,2746,6.116]],["t/464",[0,0.627,2,3.03,8,2.582,17,1.283,24,1.704,25,0.815,29,2.51,34,3.247,37,1.625,52,2.872,58,1.109,59,2.872,88,1.825,90,1.744,94,2.328,110,2.445,117,3.282,122,2.733,141,2.748,143,1.274,161,3.7,163,2.609,182,2.69,199,1.67,214,1.744,223,1.465,225,1.647,237,2.445,241,2.328,246,4.173,282,2.824,347,5.138,348,2.958,350,4.199,398,3.445,428,2.445,449,1.719,455,3.603,458,2.958,461,3.09,462,2.66,463,3.921,466,5.859,475,2.445,491,2.582,513,1.983,554,1.916,577,2.66,605,2.582,688,2.51,768,2.276,1001,4.194,1053,2.384,1173,2.384,1186,4.075,1315,2.384,1442,2.748,1453,2.582,1630,2.846,1645,2.958,1659,2.846,1701,2.445,1727,3.09,1751,3.09,1866,2.958,1874,3.09,1876,3.09,1915,5.077,1929,3.445,2019,3.247,2119,2.51,2227,2.66,2341,3.709,2347,3.709,2704,2.66,2716,2.748,2717,2.66,2747,4.11]],["t/466",[0,0.787,3,1.654,5,2.475,11,2.137,17,0.92,35,4.724,36,3.001,37,2.039,42,3.632,52,2.446,58,1.391,93,2.682,101,2.795,115,1.817,129,1.91,186,2.682,199,2.097,214,2.189,224,3.713,237,3.068,261,5.456,411,4.475,439,1.773,443,2.737,576,3.24,605,3.24,643,4.612,679,4.763,702,3.151,768,2.856,787,3.572,797,2.489,843,5.128,883,3.339,887,3.151,1053,2.993,1184,3.572,1453,3.24,1645,3.713,1701,3.068,1907,4.655,2119,3.151,2231,3.878,2233,3.878,2234,4.655,2704,3.339,2716,3.449,2717,3.339,2748,4.655]],["t/468",[23,1.902,37,3.243,42,4.182,118,2.167,199,3.334,237,4.879,1135,5.904,1613,6.166]],["t/470",[0,0.914,17,1.069,18,4.364,23,1.39,52,2.842,58,1.616,90,2.543,118,2.083,185,3.395,186,4.098,187,2.621,199,2.436,294,3.852,390,4.505,429,2.891,439,3.028,459,3.116,479,2.337,693,4.505,736,6.099,737,5.673,759,2.662,765,4.734,768,3.318,857,3.318,1053,3.476,1453,3.764,1541,3.66,1701,3.565,2119,3.66,2203,4.734,2704,5.102,2715,4.505,2716,4.006,2717,3.879,2749,6.606]],["t/472",[0,1.303,11,1.262,17,1.524,18,2.33,19,1.898,35,2.03,36,2.737,42,3.142,118,1.628,121,2.067,131,2.57,177,2.279,182,2.737,191,3.764,195,2.279,199,2.505,200,1.641,229,2.503,237,2.503,247,2.654,292,2.503,329,2.279,429,4.123,439,3.171,459,2.187,475,2.503,562,2.577,576,2.643,598,2.826,633,2.279,731,4.275,797,2.03,868,5.761,1001,2.913,1153,2.57,1160,2.643,1167,3.028,1315,2.441,1418,3.324,1422,3.269,1544,3.526,1776,2.723,1804,3.526,1863,2.723,2203,4.869,2652,3.324,2734,5.165,2750,3.797,2751,3.797,2752,8.545,2753,3.797,2754,3.028,2755,4.207,2756,4.207,2757,3.797,2758,5.561,2759,3.797,2760,3.797,2761,3.797,2762,3.797,2763,5.561,2764,3.797,2765,4.869,2766,3.797]],["t/474",[0,1.181,5,0.735,11,0.784,17,1.221,18,2.985,19,1.922,23,0.988,35,1.261,36,2.251,37,1.684,42,2.172,52,1.239,58,0.705,66,1.641,88,2.395,90,1.109,92,0.967,94,1.48,117,1.416,118,2.323,121,2.092,128,1.284,129,2.719,177,1.416,182,2.395,184,1.284,185,1.48,186,2.215,187,1.143,191,2.601,195,1.416,199,1.731,200,1.019,205,1.359,223,1.922,225,1.047,229,2.534,237,1.554,247,2.322,281,1.641,292,1.554,294,2.358,360,1.416,381,1.596,414,3.365,429,4.144,439,2.952,459,1.359,475,1.554,479,1.019,562,1.093,576,1.641,598,1.953,605,1.641,693,1.964,731,4.296,736,5.783,737,4.929,759,3.042,765,2.065,768,1.447,797,2.055,868,4.26,887,1.596,1053,1.516,1153,1.596,1160,1.641,1167,1.881,1315,3.128,1410,1.809,1418,2.065,1422,3.299,1453,1.641,1541,2.601,1544,2.19,1546,2.19,1659,1.809,1701,1.554,1776,2.757,1804,3.57,1863,1.691,2119,2.601,2203,4.26,2419,2.19,2652,2.065,2704,2.757,2715,1.964,2716,1.747,2717,1.691,2734,3.57,2749,3.57,2750,2.358,2751,2.358,2753,2.358,2754,1.881,2757,2.358,2758,3.844,2759,2.358,2760,2.358,2761,2.358,2762,2.358,2763,3.844,2764,2.358,2765,3.365,2766,2.358,2767,2.19,2768,5.392,2769,4.259,2770,4.259,2771,3.844,2772,6.848,2773,2.19,2774,2.613,2775,2.613,2776,2.358]],["t/476",[0,0.615,1,2.057,17,1.403,18,2.235,19,1.821,23,1.386,28,2.935,37,1.595,42,2.057,56,2.241,58,1.089,98,3.642,115,1.421,118,1.579,143,1.251,165,2.235,177,3.238,181,1.792,182,1.792,186,2.098,199,1.64,214,1.713,216,2.834,223,2.131,237,2.4,239,4.758,329,2.186,410,2.057,434,2.098,439,2.054,459,2.098,491,2.535,514,2.057,562,3.29,576,2.535,589,2.535,598,3.264,605,2.535,643,2.612,682,3.034,702,3.65,759,1.792,768,2.235,797,2.883,896,3.642,899,3.382,973,3.188,994,3.65,1039,3.188,1053,2.341,1073,3.188,1159,2.535,1315,2.341,1453,2.535,1701,2.4,1776,2.612,1866,2.905,2119,2.465,2181,7.937,2652,3.188,2704,2.612,2715,4.492,2716,2.698,2717,2.612,2733,3.382,2736,5.009,2767,3.382,2771,3.642,2776,3.642,2777,7.027,2778,3.642,2779,4.036,2780,4.036,2781,3.642,2782,4.036,2783,4.036,2784,4.036,2785,7.868,2786,4.036,2787,4.036]],["t/478",[0,1.114,3,0.828,5,2.558,11,0.775,17,1.303,18,4.044,19,2.786,23,1.24,24,1.914,25,1.35,26,3.797,32,0.944,36,1.893,58,0.697,59,1.225,87,2.739,88,2.376,94,1.463,115,0.91,116,3.03,118,2.315,121,2.072,129,2.286,130,1.165,143,2.264,145,3.03,157,4.588,170,1.577,182,1.147,199,1.05,223,1.504,247,1.112,252,2.774,281,1.622,294,3.637,320,2.921,431,2.036,433,3.462,434,4.179,444,1.859,477,1.13,479,1.007,508,1.859,514,1.317,561,1.577,562,1.08,713,1.622,731,3.405,759,1.874,763,2.731,797,1.246,867,2.331,883,1.672,899,2.165,950,2.041,1117,2.286,1140,4.727,1184,2.921,1186,1.463,1247,2.165,1541,1.577,1613,1.942,1659,2.921,1746,3.807,1748,7.17,1776,4.988,2231,3.172,2233,3.172,2419,2.165,2452,1.727,2647,2.331,2777,1.942,2788,8.038,2789,6.591,2790,6.591,2791,2.331,2792,2.583,2793,2.583,2794,2.331,2795,4.826,2796,2.331,2797,2.583,2798,2.583,2799,2.331,2800,2.583]],["t/480",[0,0.811,5,1.728,15,2.565,17,1.429,19,1.89,23,1.78,24,1.178,25,0.831,33,1.041,36,1.63,37,3.642,40,1.608,52,1.214,58,2.161,87,0.96,88,1.137,90,1.087,92,1.968,115,1.872,116,2.373,117,2.27,118,1.623,122,2.573,129,1.551,130,1.155,141,1.712,143,2.1,145,3.48,157,1.608,164,2.492,171,1.103,177,2.88,205,1.331,214,1.778,219,1.523,223,1.494,237,2.492,247,1.103,252,0.973,274,1.523,281,3.34,283,2.023,294,1.12,299,2.497,319,1.657,336,1.214,429,2.021,434,2.178,439,1.828,453,1.485,455,2.492,460,1.523,499,2.43,528,2.023,548,2.801,561,1.564,589,1.608,593,2.023,605,2.631,609,1.843,633,2.27,643,1.657,695,1.608,702,1.564,713,1.608,731,1.281,787,2.901,791,3.015,797,2.021,830,1.657,856,1.45,914,3.149,933,2.146,948,1.773,954,1.608,970,2.023,994,1.564,1002,2.944,1020,2.023,1041,3.015,1049,1.773,1101,2.146,1140,1.657,1166,2.023,1182,2.901,1184,1.773,1305,1.657,1379,1.843,1411,1.564,1422,1.358,1671,1.925,1712,2.311,1727,3.149,1748,2.146,2231,1.925,2233,1.925,2452,1.712,2462,2.311,2521,1.925,2675,2.146,2680,2.146,2717,1.657,2733,4.456,2736,3.511,2737,2.311,2748,2.311,2749,2.146,2777,1.925,2781,2.311,2789,2.311,2790,2.311,2791,2.311,2794,4.798,2795,3.78,2796,2.311,2799,4.798,2801,2.561,2802,2.561,2803,2.561,2804,2.561,2805,2.561,2806,2.561,2807,2.561,2808,8.291,2809,2.561,2810,2.561,2811,2.561,2812,2.561,2813,2.561,2814,2.561,2815,4.189,2816,2.561,2817,2.561,2818,2.561,2819,2.561]],["t/482",[15,4.408,17,1.351,36,2.322,91,3.167,185,5.176,294,3.996,431,3.654,687,6.868,1000,5.245,1334,5.693,1422,4.018,2820,7.574,2821,7.574]],["t/484",[11,2.264,15,4.399,17,1.346,36,1.721,91,3.156,181,3.352,216,3.579,228,3.257,294,4.284,431,4.114,443,4.004,460,3.34,463,3.634,489,4.041,490,2.575,503,5.513,523,3.429,870,5.963,1000,5.226,1073,4.436,1157,5.226,1159,3.527,1422,4.524,1708,4.705,1736,5.963,2822,5.614,2823,5.614,2824,6.811]],["t/486",[0,0.371,5,1.13,23,0.565,24,1.13,25,0.483,32,2.41,62,2.601,87,1.507,118,0.643,122,0.925,162,2.011,170,1.487,171,1.049,174,1.379,199,4.001,200,0.95,229,1.448,233,1.923,234,3.905,235,4.842,238,4.595,239,1.379,241,4.022,276,1.379,295,1.529,296,1.049,350,3.256,357,4.126,358,1.752,405,2.455,449,2.969,459,2.089,474,2.455,499,1.412,501,1.752,506,1.448,526,1.576,654,2.783,726,2.783,763,2.601,967,1.686,1117,1.319,1195,2.893,1264,2.04,1442,1.627,2184,1.627,2239,8.883,2240,8.883,2241,2.197,2242,2.197,2243,2.197,2244,2.197,2245,2.197,2246,1.923,2247,2.197,2248,2.197,2249,2.197,2250,2.197,2251,2.197,2252,2.197,2253,2.197,2254,1.686,2255,2.197,2256,3.627,2257,2.197,2258,2.197,2259,2.197,2260,2.197,2261,2.197,2262,2.197,2263,2.197,2264,2.197,2265,2.04,2266,2.197,2267,2.197,2268,2.197,2269,2.04,2270,2.197,2271,2.197,2272,2.197,2273,2.197,2274,2.197,2275,2.197,2276,2.197,2277,2.197,2278,2.197,2279,2.197,2280,2.197,2281,2.197,2282,2.197,2283,5.95,2284,2.197,2285,2.197,2286,2.197,2287,2.197,2288,2.197,2289,2.197,2290,2.197,2291,2.197,2292,2.197,2293,3.368,2294,2.197,2295,2.197,2296,2.197,2297,2.197,2298,2.197,2299,2.197,2300,3.627,2301,2.197,2302,2.197,2303,2.197,2304,2.197,2305,2.197,2306,2.197,2307,2.197,2308,2.197,2309,2.197,2310,2.197,2311,3.175,2312,2.197,2313,2.197,2314,2.197,2315,2.197,2316,2.197,2317,2.197,2318,4.632,2319,2.197,2320,2.197,2321,2.197,2322,2.197,2323,2.197,2324,2.197,2325,2.197,2326,2.197,2327,2.197,2328,2.197,2329,2.197,2330,2.197]],["t/488",[0,0.754,5,0.886,15,1.52,18,1.744,19,1.421,23,1.147,24,2.347,25,1.583,33,1.28,36,0.966,37,1.245,87,1.181,88,2.197,91,1.317,118,2.491,130,1.421,161,1.924,163,2.13,171,2.631,182,1.399,199,4.047,200,1.929,203,1.744,229,1.874,247,1.357,250,2.488,285,1.874,310,1.924,350,1.444,434,1.638,460,1.874,469,2.181,474,1.924,479,1.229,503,3.309,513,1.52,562,1.317,725,3.307,731,2.475,737,2.267,763,2.039,838,1.298,967,2.181,1041,2.267,1074,2.267,1186,2.802,1292,3.56,1293,4.145,1422,1.671,2117,2.842,2184,2.106,2246,2.488,2825,4.946,2826,8.91,2827,8.91,2828,2.842,2829,2.842,2830,2.842,2831,2.842,2832,2.842,2833,2.842,2834,2.842,2835,2.842,2836,4.463,2837,2.842,2838,5.511,2839,2.842,2840,2.842,2841,2.842,2842,2.842,2843,2.842,2844,2.842,2845,4.463,2846,2.842,2847,2.842,2848,2.842,2849,2.842,2850,2.842,2851,2.842,2852,5.511,2853,2.842,2854,2.842,2855,2.842,2856,2.842,2857,2.842,2858,2.842,2859,2.842,2860,2.842,2861,4.463,2862,2.842,2863,2.842,2864,3.15]],["t/490",[15,4.425,17,1.163,23,1.512,36,1.999,88,2.896,123,2.543,182,2.896,185,3.693,203,4.609,223,2.324,261,4.358,279,4.514,294,4.538,431,4.662,852,6.601,1089,5.883,1160,4.095,1226,3.782,1391,5.464,1422,4.416,2765,5.151]],["t/493",[0,0.716,3,1.505,9,3.039,11,1.408,23,1.089,25,0.932,48,2.227,50,2.868,51,2.6,58,2.093,78,2.266,79,5.467,80,5.27,90,1.993,91,3.244,176,2.544,229,2.793,251,3.039,314,3.53,350,2.153,411,2.95,484,3.252,488,2.95,490,2.153,501,3.38,513,2.266,554,2.189,598,2.153,768,2.6,834,2.793,849,3.71,856,2.66,926,2.023,1002,2.6,1195,3.38,1217,3.53,1285,4.237,1315,2.724,1381,5.591,1411,2.868,1422,4.116,1425,3.38,1526,3.139,1594,3.71,1998,4.237,2348,6.019,2638,3.53,2666,4.237,2679,4.237,2680,3.935,2865,4.696,2866,6.671,2867,4.696,2868,4.696,2869,6.671,2870,4.696,2871,6.671,2872,6.671,2873,6.671,2874,7.758,2875,7.758,2876,7.758,2877,4.696,2878,4.696,2879,4.696,2880,4.696]],["t/495",[0,0.84,5,1.55,15,4.366,17,1.506,18,4.127,19,3.363,23,1.278,36,2.589,90,2.338,91,2.304,146,4.682,185,4.222,203,4.127,294,4.581,336,2.613,360,2.985,431,4.807,852,6.513,875,3.684,1160,4.682,1182,5.161,1258,5.888,1422,3.954,1776,3.566,2765,5.888]],["t/497",[17,1.213,78,2.327,118,1.274,122,1.832,126,3.401,131,2.946,171,2.077,198,3.748,204,3.764,252,1.832,255,4.352,272,4.042,321,3.472,462,3.122,473,3.03,479,1.881,490,2.212,493,3.626,559,2.459,690,2.413,746,3.122,835,4.352,1029,4.042,1137,3.122,1164,4.352,1177,4.545,1410,3.34,1841,3.811,1962,4.352,2119,4.152,2364,6.134,2653,4.352,2654,4.352,2655,4.352,2656,7.714,2657,4.042,2658,6.134,2659,8.133,2660,4.352,2661,6.134,2663,4.352,2881,4.823,2882,4.823,2883,4.823,2884,7.873,2885,4.823,2886,4.823,2887,4.823,2888,4.823,2889,4.823,2890,4.823,2891,4.823,2892,4.823,2893,4.823,2894,4.823,2895,4.823,2896,6.798,2897,4.352,2898,4.823,2899,4.823,2900,4.823]],["t/499",[0,0.896,5,2.188,24,1.652,27,3.054,33,2.387,56,2.202,82,4.923,118,2.305,142,3.927,165,3.252,171,2.53,172,2.421,173,4.228,176,3.182,204,3.252,225,2.354,276,4.406,295,3.69,296,3.351,303,2.939,388,4.513,449,2.456,459,3.054,562,2.456,632,3.927,633,3.182,723,5.478,749,4.415,823,4.067,827,3.182,834,3.494,926,2.53,953,4.923,1167,4.228,1233,4.641,1292,4.228,1590,4.067,2508,4.641,2901,5.874,2902,5.874,2903,5.874,2904,5.874,2905,5.874]],["t/501",[0,1.057,5,1.394,17,1.236,27,4.904,33,2.015,35,2.392,37,1.96,115,1.746,118,2.111,122,1.883,129,2.565,165,2.745,171,2.135,181,3.078,186,2.577,214,2.104,216,2.351,222,3.114,276,5.157,282,3.725,350,2.273,410,2.528,452,2.808,460,4.122,559,2.528,561,3.028,562,3.945,574,3.917,583,3.727,636,3.433,747,3.917,748,4.155,749,7.091,752,5.475,753,4.155,758,3.433,805,3.028,838,2.044,875,3.314,931,3.727,1127,4.474,1159,3.114,1160,3.114,1234,4.155,1442,3.314,2176,3.917,2519,4.155,2674,4.474,2906,4.957,2907,4.957]],["t/504",[5,1.861,17,1.18,56,3.151,115,2.33,118,2.221,129,3.111,184,3.25,195,3.585,225,2.652,439,2.889,447,4.582,462,4.283,499,3.838,514,3.373,545,4.582,546,4.762,561,4.041,562,3.514,678,5.227,686,4.156,688,5.132,689,5.545,690,3.31,919,5.227,993,5.227,2641,5.227,2908,6.616,2909,6.616]],["t/506",[213,3.674,214,3.468,239,3.588,469,4.386,499,5.248,568,4.559,678,7.552,701,6.849,702,5.525,704,5.004,707,5.004,2719,8.164,2910,6.334,2911,6.334,2912,8.172,2913,6.334,2914,9.047,2915,9.047,2916,6.334,2917,6.334,2918,6.334,2919,6.334,2920,6.334,2921,6.334]],["t/508",[0,1.09,32,2.613,35,3.449,37,2.826,115,3.369,172,2.947,181,3.175,199,2.905,246,4.147,262,4.779,296,3.079,439,3.032,447,4.95,665,5.647,685,5.991,686,5.54,1236,4.95,2227,4.627,2922,7.148,2923,7.148]],["t/510",[5,2.372,23,1.956,117,4.57,118,2.229,223,3.007]],["t/512",[11,2.127,36,2.69,78,3.421,87,2.659,118,2.793,282,3.306,690,3.548,741,6.077,768,3.926,838,3.618,1368,4.741,1880,6.934,2924,7.091,2925,5.602,2926,4.91]],["t/515",[0,1.207,5,2.225,23,1.835,78,3.817,118,2.478,143,2.452,223,2.82,429,3.817,434,4.113,731,3.958,2927,7.911]],["t/517",[0,0.188,1,0.627,3,0.394,4,0.507,5,0.625,13,0.652,17,1.064,23,0.515,24,1.048,25,0.739,26,1.155,27,2.24,33,0.5,36,0.377,37,0.486,49,0.751,56,0.461,58,1.162,66,0.772,87,0.833,89,0.772,91,0.514,92,0.455,100,0.885,115,0.783,118,1.577,119,0.772,122,0.844,126,0.615,127,0.822,129,1.595,143,0.942,145,2.972,154,1.67,157,0.772,163,0.53,164,2.216,171,0.957,176,1.647,178,2.816,186,0.639,188,1.112,192,0.681,195,2.334,199,1.235,208,1.204,213,0.713,214,3.762,216,2.281,223,1.084,225,0.493,228,0.713,239,0.697,246,0.713,252,0.467,258,0.852,259,1.438,260,1.486,266,0.822,267,0.885,268,3.633,276,2.11,279,0.852,282,1.417,290,0.924,292,0.731,294,0.538,296,2.26,309,1.396,310,1.357,313,0.772,322,1.55,327,2.105,335,0.822,367,1.899,384,2.105,385,4.182,388,0.713,391,3.204,410,1.899,428,0.731,429,1.072,430,5.355,431,0.593,432,0.924,433,0.796,434,0.639,435,0.924,436,0.885,437,0.924,438,0.924,439,2.155,440,0.822,441,0.822,442,0.924,443,0.652,444,0.885,445,0.852,446,0.924,447,1.539,448,2.105,449,3.091,450,0.924,451,2.34,452,1.722,453,0.713,455,0.731,459,2.501,460,1.808,462,0.796,469,2.105,472,0.852,473,0.772,481,4.529,483,1.599,496,1.438,499,2.161,500,0.713,503,2.842,504,0.731,506,2.216,508,1.599,509,0.885,510,2.681,511,1.204,512,1.67,513,1.072,514,1.133,515,1.322,516,0.924,517,0.924,518,0.924,519,0.924,520,0.924,521,1.67,522,0.852,523,1.357,524,0.822,525,1.031,526,2.788,534,0.924,535,1.031,536,0.972,544,0.924,545,1.539,546,0.885,547,0.731,548,0.822,549,0.852,550,0.885,551,0.972,552,0.972,553,0.885,554,1.417,555,1.031,556,1.031,557,1.031,558,1.031,559,0.627,560,1.11,561,1.857,562,2.93,563,1.031,568,1.599,574,0.972,583,1.67,589,1.396,601,1.599,602,1.539,609,0.885,610,3.122,611,0.972,624,1.909,625,0.972,626,1.599,627,0.924,628,1.11,629,0.972,630,0.972,631,1.67,632,1.486,633,0.666,634,0.924,635,0.972,636,1.539,637,0.972,665,0.972,666,1.11,667,2.005,668,1.11,669,1.11,670,1.11,671,1.11,672,1.11,673,1.756,674,0.972,675,1.11,676,1.11,677,1.11,678,1.756,679,1.486,680,1.11,681,1.031,682,0.924,683,0.885,684,0.885,685,1.031,686,0.772,687,0.924,688,1.357,689,1.031,690,0.615,691,1.031,692,0.972,693,0.924,694,1.031,695,0.772,696,1.11,697,0.885,698,1.11,699,1.11,700,0.924,701,1.031,702,1.357,703,1.031,704,1.756,705,1.031,706,1.031,707,0.972,708,1.862,709,1.031,710,0.972,711,1.862,712,1.031,713,0.772,714,1.031,715,0.852,716,1.031,717,1.11,718,1.862,719,0.751,720,1.11,721,0.972,722,1.11,723,1.396,724,0.972,725,0.822,726,0.852,727,1.11,728,1.031,729,1.67,730,1.031,731,1.112,732,0.885,733,0.924,734,1.031,735,0.972,736,0.852,737,0.885,738,0.924,739,1.11,740,1.11,741,0.852,742,1.11,743,2.005,744,1.11,745,0.885,746,0.796,747,0.972,748,1.862,749,2.285,750,1.031,751,0.924,752,0.972,753,1.031,754,1.599,755,0.772,756,1.11]],["t/519",[439,2.956,838,3.545,2928,6.794]],["t/521",[11,1.927,17,1.146,24,1.807,25,1.275,36,1.97,37,2.54,58,2.225,92,2.378,171,2.768,213,3.727,214,2.727,367,3.276,385,3.923,430,4.906,439,2.835,451,4.036,460,3.822,472,4.449,481,4.449,524,4.295,554,2.996,673,6.516,674,5.076,741,4.449,838,2.649,926,2.768,1880,5.076,2085,5.385,2502,4.625,2928,5.076,2929,4.83,2930,5.798]],["t/523",[439,2.956,1368,5.749,2928,6.794]],["t/525",[11,1.785,17,1.062,24,1.674,25,1.181,27,3.095,36,1.825,37,2.353,58,2.117,92,2.203,171,2.564,213,3.453,214,2.526,252,2.261,367,3.035,385,4.02,430,5.222,439,2.698,451,3.739,460,3.541,472,4.122,481,4.122,524,3.979,554,2.775,562,2.489,673,6.2,674,4.703,741,5.434,926,2.564,1368,5.246,1880,6.2,2085,4.989,2116,4.703,2502,4.285,2928,4.703,2929,4.475,2930,5.371,2931,4.703,2932,5.952]],["t/527",[0,1.056,3,2.22,5,1.948,29,4.23,35,3.342,118,1.83,122,2.631,123,2.701,181,3.076,188,3.465,201,4.985,223,2.469,274,4.119,329,3.752,429,4.55,562,2.896,598,3.176,731,3.465,736,4.795,838,3.565,2218,5.804,2537,5.472,2754,4.985,2933,5.472,2934,6.926]],["t/529",[0,1.155,3,2.428,118,2.414,143,2.348,434,3.938,598,3.473,729,5.693,731,3.789,733,5.693,838,3.766,1863,4.902,2537,5.984,2754,5.452,2935,7.574,2936,7.574]],["t/531",[11,1.97,36,2.013,37,3.307,58,2.256,118,2.21,164,4.975,214,3.549,309,4.125,385,3.603,429,3.169,430,4.975,439,2.875,729,6.287,730,5.504,731,4.184,732,4.727,733,4.937,734,5.504,735,5.189,736,4.548,737,4.727,738,4.937,926,2.829,2502,4.727,2929,4.937]],["t/533",[27,4.428,118,2.25,282,3.971,562,3.562]],["t/535",[0,1.24,27,4.226,118,2.518,282,4.442,562,3.399,838,3.35,2675,6.812]],["t/537",[118,2.452,122,2.952,129,2.877,172,3.204,379,4.123,498,5.031,768,5.138,838,3.204,2116,6.141,2925,6.141,2931,7.332]],["t/539",[0,1.264,27,4.308,118,2.546,143,2.568,276,3.666,379,4.396,434,4.308,562,3.822,597,3.85,747,5.113,749,4.865,752,5.113,768,5.336,2925,7.613,2931,6.546,2937,8.696,2938,6.472]],["t/541",[11,2.03,27,3.518,36,2.075,37,2.676,47,5.087,122,2.571,192,3.747,214,2.872,216,3.209,237,4.025,244,4.871,385,4.019,430,4.025,452,4.829,481,4.686,562,2.83,768,4.72,926,2.915,937,3.386,1377,5.087,2485,5.672,2502,4.871,2925,5.347,2929,5.087,2931,5.347,2939,6.767,2940,6.767]],["t/543",[87,3.391,118,2.39,122,2.829,172,3.07,379,3.951,498,4.82,690,4.525,907,5.598,1001,5.157,1002,4.124,1377,5.598,2116,5.884,2926,6.262,2941,7.58]],["t/545",[0,1.136,27,3.872,58,2.44,87,3.391,118,2.39,379,3.951,562,3.114,690,4.525,2926,6.262,2937,8.161,2941,6.241,2942,6.72,2943,6.72]],["t/547",[11,1.886,27,3.27,36,1.928,37,2.486,92,3.338,118,1.662,129,3.011,142,4.204,178,3.146,213,5.23,385,3.884,430,5.363,554,3.792,562,3.402,693,4.728,723,3.95,834,3.741,926,2.709,1927,5.271,2502,4.527,2926,4.355,2929,4.728,2941,5.271,2942,5.675,2943,5.675,2944,9.016,2945,6.289,2946,6.289]],["t/550",[0,1.263,5,2.328,11,2.483,12,5.733,29,5.056,118,2.188,2947,8.279]],["t/552",[0,1.117,3,2.348,5,2.06,17,1.597,92,2.711,94,4.149,118,2.555,223,2.611,316,3.968,389,6.139,439,2.518,551,5.787,598,4.106,731,3.664,2777,5.506,2926,5.072,2948,7.325]],["t/554",[3,2.002,17,1.444,35,3.013,36,1.914,44,2.912,53,4.495,59,2.961,108,5.234,110,3.715,118,1.65,165,3.458,305,4.324,316,3.383,439,2.147,443,3.313,514,3.184,562,2.612,598,3.713,731,4.051,759,2.774,838,2.574,948,5.607,1002,4.484,1353,4.495,1863,5.241,2106,4.694,2176,4.934,2537,4.934,2754,4.495,2777,6.087,2949,6.245,2950,6.245,2951,6.245,2952,6.245,2953,6.245]],["t/556",[0,0.974,17,1.282,32,2.334,36,1.957,37,2.841,88,1.5,90,1.433,94,1.913,116,1.913,117,1.829,118,2.451,122,1.283,128,1.659,146,3.28,172,1.392,181,1.5,184,1.659,186,1.756,199,1.372,201,2.431,203,2.891,223,1.204,225,2.093,263,2.668,274,3.798,281,4.88,282,2.435,294,1.477,329,4.45,367,2.662,410,2.662,414,4.126,439,2.824,483,2.431,514,1.722,562,3.435,729,5.84,731,4.962,735,5.044,736,4.421,738,4.8,759,1.5,824,2.83,830,4.133,838,4.212,875,2.258,907,2.538,994,2.062,1020,2.668,1096,2.431,1377,2.538,1403,2.338,2641,2.668,2778,5.762,2933,2.668,2954,3.377,2955,3.377,2956,3.377,2957,7.769,2958,7.769]],["t/558",[3,2.179,11,1.446,17,1.213,23,1.118,24,1.356,25,0.957,52,2.287,78,2.327,91,2.017,92,1.785,93,2.508,115,2.773,118,2.08,129,3.164,172,1.988,178,2.413,181,3.497,182,2.142,184,2.369,200,1.881,223,1.719,225,1.933,247,2.077,259,3.122,260,3.224,296,2.077,335,3.224,410,2.459,449,2.017,544,5.11,545,6.653,546,6.487,554,4.48,603,3.811,633,2.613,665,3.811,686,4.945,688,4.152,691,4.042,692,3.811,695,3.03,993,3.811,1001,3.34,1077,5.371,1159,3.03,1385,3.472,1876,3.626,2718,4.352,2720,6.134,2959,4.823,2960,4.823]],["t/560",[0,0.358,3,0.752,5,1.096,11,0.703,17,1.038,23,0.544,24,1.96,25,1.282,33,3.364,37,1.976,52,1.112,58,0.632,78,1.88,87,3.318,88,1.041,90,0.995,115,1.372,118,1.842,121,1.152,123,1.949,129,2.862,146,2.447,171,1.01,172,0.966,178,1.173,188,1.949,192,3.577,198,0.94,200,0.914,203,1.298,204,1.298,214,2.121,216,1.112,219,1.395,223,0.836,247,2.783,277,1.219,279,2.698,292,1.395,296,1.678,300,1.623,318,2.116,331,1.36,380,4.51,445,2.698,449,4.14,469,2.698,473,2.447,477,1.025,479,0.914,483,1.688,484,4.473,499,5.22,500,1.36,513,1.88,588,1.852,589,1.473,598,1.075,609,3.597,610,4.189,679,1.567,690,1.173,700,1.762,702,4.257,704,3.949,705,1.965,706,1.965,707,1.852,708,1.965,709,4.189,710,3.078,711,3.265,712,6.936,713,3.657,714,1.965,715,2.698,716,1.965,718,3.265,719,1.432,721,1.852,745,2.804,746,2.522,754,1.688,771,1.518,825,1.762,844,4.376,875,1.567,930,3.265,973,3.078,1001,1.623,1073,1.852,1233,1.852,1258,1.852,1333,1.762,1346,1.688,1417,1.688,1774,1.852,2521,3.757,2641,1.852,2767,3.265,2824,2.116,2897,3.515,2961,2.345,2962,2.345,2963,2.345,2964,2.345,2965,3.896,2966,2.345,2967,3.896,2968,3.896,2969,2.345,2970,2.345,2971,2.345,2972,2.345,2973,2.345,2974,3.896,2975,2.345,2976,2.345,2977,2.345,2978,2.345,2979,2.345,2980,2.345,2981,2.345]],["t/562",[3,3.008,17,1.076,24,2.485,26,4.116,28,4.785,51,3.341,135,5.056,143,1.87,163,3.806,182,2.68,379,3.201,434,4.594,436,5.699,554,2.813,733,7.053,801,4.033,837,4.343,1353,4.343,1385,4.343,1841,6.255,2754,7.013,2982,6.033,2983,6.033,2984,6.033]],["t/564",[0,1.005,23,0.824,24,2.357,25,1.464,32,1.984,33,1.444,36,1.089,88,2.411,118,2.376,143,1.101,161,2.169,163,2.338,171,2.838,199,4.104,200,1.385,203,1.967,244,2.557,304,2.231,310,2.169,434,1.847,460,2.113,469,2.46,474,2.169,725,3.629,731,2.716,763,2.299,838,1.464,1186,3.075,1292,3.908,1293,4.55,2184,2.375,2235,3.205,2246,2.806,2826,9.112,2827,9.112,2828,3.205,2829,3.205,2830,3.205,2831,3.205,2832,3.205,2833,3.205,2834,3.205,2835,3.205,2836,4.899,2837,3.205,2838,5.947,2839,3.205,2840,3.205,2841,3.205,2842,3.205,2843,3.205,2844,3.205,2845,4.899,2846,3.205,2847,3.205,2848,3.205,2849,3.205,2850,3.205,2851,3.205,2852,5.947,2853,3.205,2854,3.205,2855,3.205,2856,3.205,2857,3.205,2858,3.205,2859,3.205,2860,3.205,2861,4.899,2862,3.205,2863,3.205]],["t/568",[352,3.972,404,7.256,405,6.24,406,6.14,413,7.256,416,6.893,420,6.904,2985,6.893,2986,7.639]],["t/570",[174,5.577,352,4.471]],["t/572",[14,4.184,114,4.937,252,2.805,303,4.502,313,4.639,384,5.114,386,5.114,421,6.664,423,6.19,486,5.316,2004,7.541,2086,6.664,2087,7.541,2773,7.541,2987,7.385,2988,6.664]],["t/574",[3,2.43,4,3.125,11,1.694,25,1.121,29,3.451,56,2.118,58,2.572,165,3.129,201,6.862,301,6.353,367,2.881,378,3.657,392,5.099,393,5.099,511,3.061,562,3.577,597,4.509,598,2.591,723,4.761,731,3.792,1186,4.294,1236,3.912,1997,4.464,2926,6.33,2933,4.464,2989,9.141,2990,5.65,2991,5.099,2992,6.84,2993,6.84,2994,5.099]],["t/576",[0,1.117,3,2.87,4,3.019,6,5.071,13,3.886,17,1.306,22,4.897,35,3.534,44,3.415,140,4.245,887,4.474,1305,4.741,1440,5.506,1905,5.787,2995,7.325,2996,7.325,2997,7.325,2998,7.325]],["t/578",[0,0.835,3,3.118,4,3.888,5,2.538,6,3.102,17,1.502,20,4.116,23,1.27,24,1.54,44,2.553,115,1.929,129,2.027,143,1.697,163,2.359,225,2.195,271,3.545,295,3.44,296,3.197,310,3.345,311,3.345,316,4.021,322,2.792,331,3.177,344,4.804,362,4.942,367,2.792,368,3.44,369,2.967,384,3.792,385,3.626,431,2.642,479,2.136,548,3.661,755,3.44,923,4.116,948,3.792,957,4.942,1020,4.326,1027,3.44,1126,4.589,1177,3.661,1186,3.102,2999,5.476]],["t/581",[3,1.974,4,2.539,11,1.847,29,3.761,58,2.408,165,3.41,201,7.059,301,5.161,367,3.14,378,3.872,511,3.336,562,3.733,597,4.773,598,2.824,723,3.868,731,4.014,1186,3.489,1236,4.264,1997,4.866,2926,7.091,2933,4.866,2991,5.557,2992,7.241,2993,7.241,2994,5.557]],["t/583",[14,4.219,114,4.979,252,2.829,303,4.525,313,5.681,384,6.262,386,5.157,423,6.241,486,5.36,2004,7.58,2087,7.58,2773,7.58,2988,6.72]],["t/585",[174,5.176,352,4.75,405,6.222,406,6.108,413,7.219,420,7.658,2985,6.835]],["t/588",[0,1.108,17,1.296,48,3.445,58,2.403,341,3.704,567,3.936,725,4.857,904,6.089,937,3.634,1017,5.03,1528,6.089,1705,6.052,1838,5.229,1941,6.089,1943,6.556,2005,6.089,3000,7.265,3001,7.265,3002,7.265]],["t/590",[16,3.149,17,1.265,27,3.687,51,4.86,58,2.367,143,2.198,439,2.438,496,4.59,567,3.842,759,3.149,843,5.104,1017,4.91,1220,5.943,1289,4.114,1705,4.454,2616,6.399,3003,9.531,3004,7.091,3005,7.091,3006,7.091,3007,7.091]]],"invertedIndex":[["",{"_index":58,"t":{"8":{"position":[[32,1]]},"19":{"position":[[372,1],[660,1],[684,1],[711,1],[736,1],[757,1],[774,1],[803,1],[1769,1],[1793,1],[1820,1],[1849,1],[1863,1],[1882,1],[1924,1],[1950,1],[2841,2],[3198,1],[3248,1],[3258,1],[3260,1],[3273,6],[3287,3],[3316,7],[3369,1],[3371,2],[3382,1],[3395,1],[3397,1]]},"83":{"position":[[2904,3],[3053,3],[3239,3],[4405,1],[4431,1],[4511,1],[4537,1],[7369,1],[7371,4],[7376,1],[8706,3],[8784,1],[8810,1],[10467,1],[10490,1]]},"87":{"position":[[0,1],[15,2]]},"91":{"position":[[0,1],[42,1],[78,1],[121,2],[181,2]]},"93":{"position":[[14,2],[52,2],[95,2],[133,2],[168,2],[219,2]]},"97":{"position":[[391,1]]},"101":{"position":[[442,1],[528,1]]},"103":{"position":[[69,2],[217,2],[333,2]]},"105":{"position":[[0,2]]},"113":{"position":[[617,1],[630,1],[1234,2],[1318,3],[1322,2]]},"115":{"position":[[832,1],[929,1]]},"178":{"position":[[238,99],[338,1],[345,1],[351,1],[358,1],[365,1],[374,1],[382,1],[393,1],[404,1],[413,1],[415,99],[515,1],[525,1],[531,1],[536,1],[547,1],[552,1],[556,1],[561,1],[568,1],[572,1],[574,1],[584,1],[590,1],[595,1],[606,1],[611,1],[615,1],[620,1],[627,1],[631,1],[633,1],[643,1],[649,1],[654,1],[665,1],[670,1],[674,1],[679,1],[686,1],[690,1],[692,1],[702,1],[708,1],[713,1],[724,1],[729,1],[733,1],[738,1],[745,1],[749,1],[751,1],[761,1],[767,1],[772,1],[783,1],[788,1],[792,1],[797,1],[804,1],[808,1],[810,1],[820,1],[826,1],[831,1],[842,1],[847,1],[857,1],[862,1],[869,1],[873,1],[875,1],[885,1],[891,1],[896,1],[907,1],[912,1],[922,1],[927,1],[934,1],[938,1],[940,1],[950,1],[956,1],[961,1],[973,1],[978,1],[988,1],[993,1],[1000,1],[1004,1],[1006,99],[1106,1],[1178,1],[1180,99]]},"192":{"position":[[502,1],[559,1],[579,1],[635,2],[647,1],[649,1],[712,1],[727,1],[786,1],[835,1],[859,1],[1008,1]]},"196":{"position":[[74,1],[176,1],[525,1]]},"200":{"position":[[343,1]]},"202":{"position":[[5,1],[25,1],[53,1],[99,1],[108,1],[2531,1]]},"204":{"position":[[1261,1]]},"212":{"position":[[329,3],[364,1],[491,2]]},"237":{"position":[[42,3],[58,1],[60,3],[67,1],[69,3],[78,1],[80,3],[102,1],[104,3],[122,3],[135,3],[144,1],[261,1],[281,1],[303,1],[339,1],[404,1],[455,1],[502,1],[512,1],[555,1],[578,1],[600,1],[665,1],[733,1],[780,1],[846,1],[916,1],[976,1],[999,1],[1041,1],[1124,1],[1154,1],[1171,1],[1216,1],[1229,2],[1246,1],[1273,1],[1288,1],[1358,1],[1428,1],[1492,1],[1564,1],[1616,1]]},"239":{"position":[[0,1],[37,1],[57,1],[97,1],[109,1],[111,1],[142,1],[144,1],[157,1],[159,1],[187,1],[189,1],[232,1],[234,1],[243,1],[245,1],[274,1],[276,1],[278,1],[295,1],[297,1],[363,1],[445,1],[523,1],[529,1],[605,1],[614,1],[630,1],[645,1],[664,1],[676,1]]},"241":{"position":[[788,1],[825,1],[845,1],[862,1],[875,1],[877,1],[905,1],[907,1],[950,1],[952,1],[961,1],[963,1],[992,1],[994,1],[996,1],[1013,1],[1015,1],[1071,1],[1132,1],[1164,1],[1186,1],[1216,1],[1282,1],[1335,1],[1344,1],[1390,1],[1428,1],[1459,1],[1475,1],[1490,1],[1509,1],[1522,1],[1566,1],[1828,1],[1891,1],[1953,1],[2544,1],[2571,1],[2581,2],[2594,1],[2621,1],[2631,2],[2648,1],[2674,1]]},"243":{"position":[[0,1],[58,1],[80,1]]},"245":{"position":[[531,1],[589,1],[609,1],[638,1],[711,1],[762,1],[816,1],[859,1],[861,1],[891,1],[893,1],[926,1],[928,1],[951,1],[953,1],[975,1],[977,1],[985,1],[987,1],[1002,1],[1004,1],[1012,1],[1014,1],[1021,1],[1023,1],[1033,1],[1113,1],[1177,1],[1231,1],[1249,1],[1264,1],[1313,1],[1357,2],[1360,1],[1368,1],[1389,1],[1394,5],[1400,1],[1481,1],[1556,1],[1643,1],[1725,1],[1811,1],[1886,1],[1939,1],[1954,1],[1968,1],[1979,1],[2068,2],[2071,1],[2106,2],[2109,1],[2130,1],[2150,1],[2225,1]]},"255":{"position":[[202,1]]},"276":{"position":[[90,1],[110,1],[165,1]]},"278":{"position":[[256,1],[366,1],[418,1],[475,1],[545,1],[632,1],[846,1],[909,2],[912,3],[916,2],[1105,2],[1108,1],[1187,3],[1285,2],[1288,1],[1371,3]]},"280":{"position":[[276,2],[942,2],[945,2],[948,1],[970,2],[973,1],[975,2],[1014,2],[1045,2],[1053,3]]},"294":{"position":[[241,1],[352,1],[400,1],[536,3],[551,1],[587,1],[649,1],[1660,1],[1771,1],[1819,1],[1978,3],[1993,1],[2029,1],[2091,1],[2263,1],[2283,1],[2344,1],[2397,1]]},"298":{"position":[[0,1],[14,1],[23,2],[257,2],[339,1],[365,1],[405,1],[447,1],[481,1],[517,1],[548,2],[563,1],[581,1],[599,2],[618,2],[648,1],[669,1],[695,1],[713,1],[743,1],[763,1],[790,1],[814,1],[851,1],[876,1],[902,1],[925,1],[942,1],[965,2],[981,2],[996,2],[1014,2],[1036,2],[1056,2],[1079,2],[1103,1],[1125,1],[1154,1],[1171,1],[1189,2],[1228,2],[1254,2],[1282,1],[1325,1],[1370,1],[1401,1],[1427,2],[1449,2]]},"320":{"position":[[2904,3],[3053,3],[3239,3],[4372,1],[4398,1],[4478,1],[4504,1],[7229,1],[7231,4],[7236,1]]},"322":{"position":[[698,1],[747,3],[773,1],[820,3],[847,3],[862,1],[891,3],[899,3],[916,3],[929,1],[964,1],[966,3],[981,3],[995,1],[1037,3],[1068,1],[1118,3],[1145,3],[1163,1],[1192,3],[1209,1],[1254,1],[1256,3],[1271,3],[1291,1],[1332,1],[1334,3],[1353,3],[1363,1],[1401,1],[1403,3],[1421,3],[1433,1],[1473,1],[1475,3],[1535,1],[1537,3],[1597,3],[1611,1],[1653,1],[1655,3],[1715,1],[1717,1],[1719,3],[1744,1],[1746,3],[1806,1],[1808,3],[1833,3],[1848,1],[1891,3]]},"324":{"position":[[274,1]]},"340":{"position":[[1125,1]]},"342":{"position":[[208,1],[220,1],[3262,1]]},"386":{"position":[[196,1]]},"391":{"position":[[392,2]]},"407":{"position":[[1040,1],[1042,4],[1047,1]]},"409":{"position":[[203,1],[224,1],[249,1],[293,1]]},"415":{"position":[[266,2]]},"432":{"position":[[748,1],[776,1],[802,1],[822,1],[836,1],[892,1],[1550,1]]},"434":{"position":[[134,3]]},"436":{"position":[[295,1]]},"440":{"position":[[459,1]]},"443":{"position":[[293,1],[471,1],[594,1],[596,3],[616,2],[653,1],[655,1],[702,1],[1296,1],[1298,2]]},"448":{"position":[[182,1],[195,1],[260,1],[437,2]]},"450":{"position":[[148,1]]},"452":{"position":[[732,1]]},"454":{"position":[[555,1]]},"462":{"position":[[424,2]]},"464":{"position":[[1149,1]]},"466":{"position":[[613,1]]},"470":{"position":[[443,1]]},"474":{"position":[[1221,1]]},"476":{"position":[[1205,1]]},"478":{"position":[[415,1]]},"480":{"position":[[99,1],[595,1],[1452,1],[1496,1],[2513,1],[2515,1],[2565,2],[2568,1]]},"493":{"position":[[454,1],[646,1],[796,3]]},"517":{"position":[[1775,3],[1853,1],[1879,1],[4029,1],[4052,1]]},"521":{"position":[[130,1],[156,1]]},"525":{"position":[[130,1],[156,1]]},"531":{"position":[[192,1],[215,1]]},"545":{"position":[[157,3],[182,3]]},"560":{"position":[[2696,1]]},"574":{"position":[[56,1],[65,1],[140,1],[149,1],[193,1]]},"581":{"position":[[34,1],[43,1],[76,1]]},"588":{"position":[[0,1],[112,2]]},"590":{"position":[[0,2],[64,2]]}}}],["0",{"_index":239,"t":{"19":{"position":[[2919,1]]},"21":{"position":[[209,1],[241,1],[280,1]]},"83":{"position":[[2726,1]]},"178":{"position":[[570,1],[629,1],[688,1],[747,1],[806,1],[871,1],[936,1]]},"241":{"position":[[1342,1]]},"290":{"position":[[1165,1]]},"320":{"position":[[2726,1]]},"338":{"position":[[2135,1]]},"342":{"position":[[406,1],[577,1]]},"407":{"position":[[2014,1]]},"476":{"position":[[776,1],[901,2],[1040,2],[1078,2],[1131,1]]},"486":{"position":[[1690,1]]},"506":{"position":[[308,3]]},"517":{"position":[[1165,1]]}}}],["0..0",{"_index":220,"t":{"19":{"position":[[2162,4]]}}}],["0..4",{"_index":2787,"t":{"476":{"position":[[1174,4]]}}}],["0..5",{"_index":2786,"t":{"476":{"position":[[818,4]]}}}],["0..7",{"_index":152,"t":{"19":{"position":[[731,4]]},"83":{"position":[[11950,6]]}}}],["0.0.0.0",{"_index":641,"t":{"83":{"position":[[6738,9]]},"320":{"position":[[6598,9]]},"407":{"position":[[747,9]]}}}],["0.03",{"_index":2731,"t":{"454":{"position":[[473,4]]}}}],["0.75",{"_index":1286,"t":{"178":{"position":[[1130,5],[1148,4]]}}}],["00:31",{"_index":1455,"t":{"202":{"position":[[1152,5]]}}}],["00:35",{"_index":1460,"t":{"202":{"position":[[1211,5],[1674,5]]}}}],["00:36",{"_index":1448,"t":{"202":{"position":[[1089,5],[1266,5],[1344,5],[1426,5],[1509,5],[1592,5],[1757,5],[1840,5],[1923,5],[2006,5],[2089,5],[2172,5],[2255,5],[2338,5],[2421,5]]}}}],["01",{"_index":2827,"t":{"488":{"position":[[329,2],[456,2],[555,2],[648,2],[694,2],[821,2],[948,2],[1015,2],[1080,2],[1174,2],[1282,2],[1522,2],[1711,2],[1900,2],[1965,2],[2038,2]]},"564":{"position":[[151,2],[278,2],[377,2],[470,2],[516,2],[643,2],[770,2],[837,2],[902,2],[996,2],[1104,2],[1344,2],[1533,2],[1722,2],[1787,2],[1860,2]]}}}],["03:06:35.048",{"_index":2828,"t":{"488":{"position":[[332,14]]},"564":{"position":[[154,14]]}}}],["03:06:35.050",{"_index":2832,"t":{"488":{"position":[[459,14]]},"564":{"position":[[281,14]]}}}],["03:06:35.697",{"_index":2834,"t":{"488":{"position":[[558,14]]},"564":{"position":[[380,14]]}}}],["03:06:35.698",{"_index":2838,"t":{"488":{"position":[[651,14],[697,14],[824,14]]},"564":{"position":[[473,14],[519,14],[646,14]]}}}],["03:06:35.732",{"_index":2841,"t":{"488":{"position":[[951,14]]},"564":{"position":[[773,14]]}}}],["03:09:23.813",{"_index":2843,"t":{"488":{"position":[[1018,14]]},"564":{"position":[[840,14]]}}}],["03:09:23.816",{"_index":2844,"t":{"488":{"position":[[1083,14]]},"564":{"position":[[905,14]]}}}],["03:09:23.818",{"_index":2845,"t":{"488":{"position":[[1177,14],[1285,14]]},"564":{"position":[[999,14],[1107,14]]}}}],["03:09:23.830",{"_index":2852,"t":{"488":{"position":[[1525,14],[1714,14],[1903,14]]},"564":{"position":[[1347,14],[1536,14],[1725,14]]}}}],["03:15:50.191",{"_index":2859,"t":{"488":{"position":[[1968,14]]},"564":{"position":[[1790,14]]}}}],["03:16:02.728",{"_index":2862,"t":{"488":{"position":[[2041,14]]},"564":{"position":[[1863,14]]}}}],["05",{"_index":1450,"t":{"202":{"position":[[1107,2]]}}}],["0755",{"_index":2687,"t":{"443":{"position":[[211,4]]}}}],["09",{"_index":1578,"t":{"221":{"position":[[122,2]]}}}],["0x",{"_index":2091,"t":{"290":{"position":[[1398,2]]},"450":{"position":[[82,2]]}}}],["0x0000000000000000000000000000000000000000",{"_index":563,"t":{"83":{"position":[[3808,44]]},"320":{"position":[[3761,44]]},"517":{"position":[[2588,44]]}}}],["0x00000000219ab540356cbb839cbe05303d7705fa",{"_index":2983,"t":{"562":{"position":[[232,42]]}}}],["0x0000…0000:0",{"_index":242,"t":{"19":{"position":[[2946,13]]}}}],["0x08b1",{"_index":2424,"t":{"342":{"position":[[2056,8]]}}}],["0x10ff",{"_index":2317,"t":{"338":{"position":[[2979,8]]},"486":{"position":[[2534,8]]}}}],["0x1234",{"_index":470,"t":{"83":{"position":[[1262,7]]},"320":{"position":[[1262,7]]}}}],["0x1234:100",{"_index":468,"t":{"83":{"position":[[1151,10]]},"320":{"position":[[1151,10]]}}}],["0x15fa",{"_index":1271,"t":{"178":{"position":[[774,8]]}}}],["0x17c6…71a7",{"_index":2427,"t":{"342":{"position":[[2177,11],[2339,11]]}}}],["0x1e00…6e6b:301062",{"_index":2308,"t":{"338":{"position":[[2721,18]]},"486":{"position":[[2276,18]]}}}],["0x2d6a",{"_index":2392,"t":{"342":{"position":[[1230,8]]}}}],["0x35de…1f0",{"_index":2315,"t":{"338":{"position":[[2938,11]]},"486":{"position":[[2493,11]]}}}],["0x3655…1658",{"_index":2399,"t":{"342":{"position":[[1388,11]]}}}],["0x4242424242424242424242424242424242424242",{"_index":2984,"t":{"562":{"position":[[365,42]]}}}],["0x44e4…20a4",{"_index":2407,"t":{"342":{"position":[[1584,11]]}}}],["0x4ceb",{"_index":2330,"t":{"338":{"position":[[3285,8]]},"486":{"position":[[2840,8]]}}}],["0x4f7e…0e3a",{"_index":2422,"t":{"342":{"position":[[2015,11]]}}}],["0x5516…ba12",{"_index":2328,"t":{"338":{"position":[[3244,11]]},"486":{"position":[[2799,11]]}}}],["0x58b1",{"_index":2298,"t":{"338":{"position":[[2501,8]]},"486":{"position":[[2056,8]]}}}],["0x5bc1",{"_index":2429,"t":{"342":{"position":[[2218,8],[2380,8]]}}}],["0x5cc0…3874:195764",{"_index":2383,"t":{"342":{"position":[[860,18],[1053,18]]}}}],["0x5cec…f5b8",{"_index":2380,"t":{"342":{"position":[[797,11],[990,11]]}}}],["0x6761520",{"_index":1462,"t":{"202":{"position":[[1280,9]]}}}],["0x67d1",{"_index":2324,"t":{"338":{"position":[[3132,8]]},"486":{"position":[[2687,8]]}}}],["0x6981…682f:195778",{"_index":2418,"t":{"342":{"position":[[1926,18],[2078,18],[2240,18],[2402,18],[2554,18],[2706,18]]}}}],["0x6f74",{"_index":2382,"t":{"342":{"position":[[838,8],[1031,8]]}}}],["0x7491…f63e",{"_index":2305,"t":{"338":{"position":[[2658,11]]},"486":{"position":[[2213,11]]}}}],["0x7844…3b3e",{"_index":2322,"t":{"338":{"position":[[3091,11]]},"486":{"position":[[2646,11]]}}}],["0x792f…f8aa",{"_index":2296,"t":{"338":{"position":[[2460,11]]},"486":{"position":[[2015,11]]}}}],["0x7fa2f0001060",{"_index":1466,"t":{"202":{"position":[[1358,14]]}}}],["0x7fcd80001060",{"_index":1468,"t":{"202":{"position":[[1440,14]]}}}],["0x7fcd84001060",{"_index":1470,"t":{"202":{"position":[[1523,14]]}}}],["0x7fcd88001060",{"_index":1472,"t":{"202":{"position":[[1606,14]]}}}],["0x7fcd8c001060",{"_index":1474,"t":{"202":{"position":[[1688,14]]}}}],["0x7fcd90000e60",{"_index":1476,"t":{"202":{"position":[[1771,14]]}}}],["0x7fcd94000e60",{"_index":1478,"t":{"202":{"position":[[1854,14]]}}}],["0x7fcd98000e60",{"_index":1480,"t":{"202":{"position":[[1937,14]]}}}],["0x7fcd9c000e60",{"_index":1482,"t":{"202":{"position":[[2020,14]]}}}],["0x7fcda0000e60",{"_index":1484,"t":{"202":{"position":[[2103,14]]}}}],["0x7fcda4000e60",{"_index":1486,"t":{"202":{"position":[[2186,14]]}}}],["0x7fcda8000e60",{"_index":1488,"t":{"202":{"position":[[2269,14]]}}}],["0x7fcdac000e60",{"_index":1490,"t":{"202":{"position":[[2352,14]]}}}],["0x7fcdb8000d60",{"_index":1492,"t":{"202":{"position":[[2435,14]]}}}],["0x7feb…c130:301045",{"_index":2286,"t":{"338":{"position":[[2238,18]]},"486":{"position":[[1793,18]]}}}],["0x8199",{"_index":1278,"t":{"178":{"position":[[898,8]]}}}],["0x88f8…5375:301063",{"_index":2318,"t":{"338":{"position":[[3001,18],[3154,18],[3307,18]]},"486":{"position":[[2556,18],[2709,18],[2862,18]]}}}],["0x8e41b969493454318c27ec6fac90645769331c07ebc8db5037",{"_index":2200,"t":{"322":{"position":[[1479,55],[1659,55]]}}}],["0x8f3f…2f81:195766",{"_index":2393,"t":{"342":{"position":[[1252,18]]}}}],["0x8f868e53bbe1451bcf6d42c9ab6d292cbd7fbfa09c59b6b99c1dd6a4977e2e7b4b752c328784ca2788dd6f63ffcbdb7",{"_index":2840,"t":{"488":{"position":[[845,98]]},"564":{"position":[[667,98]]}}}],["0x90ea…c655",{"_index":2415,"t":{"342":{"position":[[1863,11]]}}}],["0x9475…425a:195769",{"_index":2402,"t":{"342":{"position":[[1451,18]]}}}],["0x95c4",{"_index":1256,"t":{"178":{"position":[[538,8]]}}}],["0x9649",{"_index":2371,"t":{"342":{"position":[[483,8],[654,8]]}}}],["0x9cbd…ba83:195776",{"_index":2410,"t":{"342":{"position":[[1647,18]]}}}],["0x9d88…d02a",{"_index":2282,"t":{"338":{"position":[[2173,11]]},"486":{"position":[[1728,11]]}}}],["0x9d88…d02a:301047",{"_index":2299,"t":{"338":{"position":[[2523,18]]},"486":{"position":[[2078,18]]}}}],["0x9dfc",{"_index":1262,"t":{"178":{"position":[[597,8]]}}}],["0x[a",{"_index":555,"t":{"83":{"position":[[3647,5]]},"320":{"position":[[3633,5]]},"517":{"position":[[2427,5]]}}}],["0xa329f988c16993768299643d918a2694892c012765d896a16f",{"_index":2201,"t":{"322":{"position":[[1541,55],[1750,55]]}}}],["0xa329f988c16993768299643d918a2694892c012765d896a16f.json",{"_index":2206,"t":{"322":{"position":[[1895,57]]}}}],["0xa4855c83d868f772a579133d9f23818008417b743e8447e235d8eb78b1d8f8a9f63f98c551beb7de254400f89592314d",{"_index":2916,"t":{"506":{"position":[[312,101]]}}}],["0xa488",{"_index":2441,"t":{"342":{"position":[[2684,8]]}}}],["0xa6fcfca12e1db6c7341d82327010cd57224dc239d1c5e4fb18286cc32edb877d813c5af1c870d474aef7b3ff7ab927ea",{"_index":2839,"t":{"488":{"position":[[718,98]]},"564":{"position":[[540,98]]}}}],["0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c",{"_index":2911,"t":{"506":{"position":[[17,101]]}}}],["0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",{"_index":2913,"t":{"506":{"position":[[189,44]]}}}],["0xb5bf",{"_index":2436,"t":{"342":{"position":[[2532,8]]}}}],["0xb7576e9d314df41ec5506494293afb1bd5d3f65d",{"_index":2720,"t":{"452":{"position":[[456,43]]},"558":{"position":[[415,42],[535,43]]}}}],["0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",{"_index":2917,"t":{"506":{"position":[[429,44]]}}}],["0xbeae",{"_index":1268,"t":{"178":{"position":[[715,8]]}}}],["0xbf30…7e7c:195777",{"_index":2372,"t":{"342":{"position":[[505,18],[676,18]]}}}],["0xc9fd…28c5",{"_index":2434,"t":{"342":{"position":[[2491,11]]}}}],["0xca61",{"_index":2409,"t":{"342":{"position":[[1625,8]]}}}],["0xca9b",{"_index":2417,"t":{"342":{"position":[[1904,8]]}}}],["0xcc67…3345",{"_index":240,"t":{"19":{"position":[[2921,11]]}}}],["0xccaff4b99986a7b05e06738f1828a32e40799b277fd9f9ff069be55341fe0229",{"_index":2031,"t":{"276":{"position":[[184,68]]}}}],["0xcccccccccccccccccccccccccccccccccccccccc",{"_index":2920,"t":{"506":{"position":[[640,44]]}}}],["0xcec4",{"_index":2285,"t":{"338":{"position":[[2216,8]]},"486":{"position":[[1771,8]]}}}],["0xd4b2",{"_index":2307,"t":{"338":{"position":[[2699,8]]},"486":{"position":[[2254,8]]}}}],["0xd7ba…8386",{"_index":2449,"t":{"342":{"position":[[3677,11]]}}}],["0xd7ba…8386:189636",{"_index":2448,"t":{"342":{"position":[[3631,18]]}}}],["0xdafd",{"_index":2401,"t":{"342":{"position":[[1429,8]]}}}],["0xde91…d4cb",{"_index":2439,"t":{"342":{"position":[[2643,11]]}}}],["0xdf3f",{"_index":1265,"t":{"178":{"position":[[656,8]]}}}],["0xe0cf…9f3c",{"_index":2390,"t":{"342":{"position":[[1189,11]]}}}],["0xed93…7b0a",{"_index":2369,"t":{"342":{"position":[[440,11],[611,11]]}}}],["0xf00",{"_index":2937,"t":{"539":{"position":[[64,5],[134,5],[204,5],[381,5]]},"545":{"position":[[71,5],[134,5]]}}}],["0xf8ff",{"_index":1274,"t":{"178":{"position":[[833,8]]}}}],["0xf97e180c050e5ab072211ad2c213eb5aee4df134",{"_index":2102,"t":{"294":{"position":[[589,45],[2031,45]]}}}],["1",{"_index":146,"t":{"19":{"position":[[564,1],[1144,1],[2875,1],[3393,1]]},"99":{"position":[[294,1],[639,1]]},"180":{"position":[[256,1]]},"202":{"position":[[1060,1],[1128,1],[1237,1],[1316,1],[1399,1],[1481,1],[1564,1],[1647,1],[1729,1],[1812,1],[1895,1],[1978,1],[2061,1],[2144,1],[2227,1],[2310,1],[2393,1],[2476,1]]},"239":{"position":[[674,1]]},"241":{"position":[[1519,2],[2634,1],[2658,3]]},"342":{"position":[[888,1],[1081,1],[2174,2]]},"495":{"position":[[289,2],[415,2]]},"556":{"position":[[396,2],[1829,1]]},"560":{"position":[[1783,3],[2591,2]]}}}],["1.00",{"_index":1259,"t":{"178":{"position":[[563,4],[622,4],[681,4],[740,4],[799,4],[864,4],[1139,5],[1173,4]]}}}],["1.1",{"_index":2395,"t":{"342":{"position":[[1320,3]]}}}],["1.20",{"_index":1279,"t":{"178":{"position":[[929,4]]}}}],["1.20.0",{"_index":2069,"t":{"280":{"position":[[214,6]]}}}],["1.50",{"_index":1282,"t":{"178":{"position":[[995,4]]}}}],["1.6",{"_index":2387,"t":{"342":{"position":[[1121,3]]}}}],["10",{"_index":2824,"t":{"484":{"position":[[426,2],[456,2]]},"560":{"position":[[910,5]]}}}],["100",{"_index":469,"t":{"83":{"position":[[1242,3],[7488,3],[9759,6],[9776,6],[9953,5]]},"320":{"position":[[1242,3],[7348,3]]},"488":{"position":[[579,4]]},"506":{"position":[[541,5]]},"517":{"position":[[3321,6],[3338,6],[3515,5]]},"560":{"position":[[367,6],[384,6]]},"564":{"position":[[401,4]]}}}],["100%free",{"_index":2873,"t":{"493":{"position":[[510,9],[557,9]]}}}],["100*100/(100+percentag",{"_index":2976,"t":{"560":{"position":[[2474,25]]}}}],["100,000",{"_index":1656,"t":{"233":{"position":[[622,8]]}}}],["1000",{"_index":2444,"t":{"342":{"position":[[3264,5]]}}}],["10000/(100+25",{"_index":2979,"t":{"560":{"position":[[2681,14]]}}}],["1000hz",{"_index":1513,"t":{"204":{"position":[[693,7]]}}}],["100gb",{"_index":2677,"t":{"440":{"position":[[393,5]]}}}],["100hz",{"_index":1512,"t":{"204":{"position":[[684,5]]}}}],["10mbp",{"_index":85,"t":{"8":{"position":[[304,6],[342,7]]},"440":{"position":[[229,6],[267,7]]}}}],["11",{"_index":2300,"t":{"338":{"position":[[2551,2],[2592,2]]},"486":{"position":[[2106,2],[2147,2]]}}}],["12000",{"_index":584,"t":{"83":{"position":[[4643,5],[5771,5]]},"320":{"position":[[4610,5],[5646,5]]}}}],["123919",{"_index":1471,"t":{"202":{"position":[[1578,6]]}}}],["127.0.0.1",{"_index":154,"t":{"19":{"position":[[747,9]]},"83":{"position":[[3303,11],[6294,11],[8578,11]]},"320":{"position":[[3303,11],[6154,11]]},"407":{"position":[[2327,11]]},"517":{"position":[[1647,11],[5503,11]]}}}],["130",{"_index":77,"t":{"8":{"position":[[217,3]]},"440":{"position":[[142,3]]}}}],["13:35:27.967",{"_index":2241,"t":{"338":{"position":[[528,14]]},"486":{"position":[[83,14]]}}}],["13:35:28.344",{"_index":2245,"t":{"338":{"position":[[655,14]]},"486":{"position":[[210,14]]}}}],["13:35:49.828",{"_index":2248,"t":{"338":{"position":[[742,14]]},"486":{"position":[[297,14]]}}}],["13:35:51.955[chain",{"_index":2253,"t":{"338":{"position":[[954,19]]},"486":{"position":[[509,19]]}}}],["13:35:51.969[eth1",{"_index":2255,"t":{"338":{"position":[[1019,18]]},"486":{"position":[[574,18]]}}}],["13:35:51.975[execut",{"_index":2257,"t":{"338":{"position":[[1092,23]]},"486":{"position":[[647,23]]}}}],["13:35:51.977",{"_index":2258,"t":{"338":{"position":[[1173,14]]},"486":{"position":[[728,14]]}}}],["13:36:21.128[network",{"_index":2260,"t":{"338":{"position":[[1244,21]]},"486":{"position":[[799,21]]}}}],["13:36:21.727[network",{"_index":2261,"t":{"338":{"position":[[1320,21]]},"486":{"position":[[875,21]]}}}],["13:36:27.677[network",{"_index":2263,"t":{"338":{"position":[[1436,21]]},"486":{"position":[[991,21]]}}}],["13:36:28.134[network",{"_index":2270,"t":{"338":{"position":[[1782,21]]},"486":{"position":[[1337,21]]}}}],["13:36:28.137[metric",{"_index":2275,"t":{"338":{"position":[[1912,21]]},"486":{"position":[[1467,21]]}}}],["13:36:28.256[rest",{"_index":2277,"t":{"338":{"position":[[2005,18]]},"486":{"position":[[1560,18]]}}}],["13:36:28.257",{"_index":2279,"t":{"338":{"position":[[2089,14]]},"486":{"position":[[1644,14]]}}}],["13:36:36.461[execut",{"_index":2287,"t":{"338":{"position":[[2264,23]]},"486":{"position":[[1819,23]]}}}],["13:36:53.019",{"_index":2290,"t":{"338":{"position":[[2361,14]]},"486":{"position":[[1916,14]]}}}],["13:38:53.168",{"_index":2301,"t":{"338":{"position":[[2561,14]]},"486":{"position":[[2116,14]]}}}],["13:38:58.051[network",{"_index":2310,"t":{"338":{"position":[[2759,21]]},"486":{"position":[[2314,21]]}}}],["13:38:58.132[sync",{"_index":2312,"t":{"338":{"position":[[2824,18]]},"486":{"position":[[2379,18]]}}}],["13:39:05.001",{"_index":2313,"t":{"338":{"position":[[2886,14]]},"486":{"position":[[2441,14]]}}}],["13:39:17.000",{"_index":2320,"t":{"338":{"position":[[3039,14]]},"486":{"position":[[2594,14]]}}}],["13:39:29.000",{"_index":2326,"t":{"338":{"position":[[3192,14]]},"486":{"position":[[2747,14]]}}}],["14:17",{"_index":1495,"t":{"202":{"position":[[2500,5]]}}}],["15",{"_index":2357,"t":{"340":{"position":[[2148,4]]}}}],["152786",{"_index":1477,"t":{"202":{"position":[[1826,6]]}}}],["1552658472.json",{"_index":2766,"t":{"472":{"position":[[1183,15]]},"474":{"position":[[2293,15]]}}}],["15:13:41.298",{"_index":2375,"t":{"342":{"position":[[702,14],[897,14]]}}}],["15:13:53.151",{"_index":2386,"t":{"342":{"position":[[1090,14]]}}}],["15:14:05.425",{"_index":2394,"t":{"342":{"position":[[1289,14]]}}}],["15:14:53.001",{"_index":2403,"t":{"342":{"position":[[1488,14]]}}}],["15:15:01.443[network",{"_index":2411,"t":{"342":{"position":[[1684,21]]}}}],["15:15:01.446[sync",{"_index":2412,"t":{"342":{"position":[[1749,18]]}}}],["15:15:05.000",{"_index":2413,"t":{"342":{"position":[[1811,14]]}}}],["15:15:17.003",{"_index":2420,"t":{"342":{"position":[[1963,14]]}}}],["15:15:41.001",{"_index":2425,"t":{"342":{"position":[[2115,14]]}}}],["15:15:53.001",{"_index":2430,"t":{"342":{"position":[[2277,14]]}}}],["15:16:05.000",{"_index":2432,"t":{"342":{"position":[[2439,14]]}}}],["15:16:17.017",{"_index":2437,"t":{"342":{"position":[[2591,14]]}}}],["15:24:08.034",{"_index":2366,"t":{"342":{"position":[[360,14]]}}}],["15:24:17.000",{"_index":2373,"t":{"342":{"position":[[531,14]]}}}],["16",{"_index":75,"t":{"8":{"position":[[199,2]]},"178":{"position":[[558,2],[617,2],[676,2],[735,2],[794,2],[859,2],[924,2],[990,2]]},"440":{"position":[[124,2]]}}}],["1654128694.json",{"_index":2956,"t":{"556":{"position":[[162,17]]}}}],["1669713528",{"_index":150,"t":{"19":{"position":[[700,10],[1809,10]]}}}],["167991/6",{"_index":231,"t":{"19":{"position":[[2826,8]]}}}],["16uiu2hamaccmcexcgt3zctjl2rqjz2mvdjh6u6fe26hgd2fonrww",{"_index":2272,"t":{"338":{"position":[[1817,54]]},"486":{"position":[[1372,54]]}}}],["17/node",{"_index":1579,"t":{"221":{"position":[[125,7]]}}}],["180",{"_index":1525,"t":{"204":{"position":[[1424,3]]}}}],["183831",{"_index":1475,"t":{"202":{"position":[[1743,6]]}}}],["18550/tcp",{"_index":2570,"t":{"381":{"position":[[541,9]]}}}],["189636",{"_index":2450,"t":{"342":{"position":[[3698,6]]}}}],["1gb",{"_index":2210,"t":{"324":{"position":[[195,3]]}}}],["2",{"_index":203,"t":{"19":{"position":[[1633,1]]},"83":{"position":[[4744,1]]},"178":{"position":[[1002,1]]},"202":{"position":[[1183,1]]},"239":{"position":[[659,4]]},"241":{"position":[[1504,4],[2643,4],[2669,4]]},"320":{"position":[[4711,1]]},"324":{"position":[[161,1]]},"342":{"position":[[928,1],[1479,1],[2336,2]]},"488":{"position":[[672,1]]},"490":{"position":[[173,2],[313,2]]},"495":{"position":[[308,2],[434,2]]},"556":{"position":[[1425,2],[1774,2]]},"560":{"position":[[2746,2]]},"564":{"position":[[494,1]]}}}],["2**64",{"_index":2971,"t":{"560":{"position":[[1774,6]]}}}],["2,3,3,2",{"_index":1275,"t":{"178":{"position":[[849,7],[914,7],[980,7]]}}}],["2.0",{"_index":2090,"t":{"284":{"position":[[7,3]]},"312":{"position":[[7,3]]}}}],["2.32",{"_index":2292,"t":{"338":{"position":[[2411,4]]},"486":{"position":[[1966,4]]}}}],["2.5",{"_index":2376,"t":{"342":{"position":[[733,3]]}}}],["2.78",{"_index":2377,"t":{"342":{"position":[[752,4],[945,4]]}}}],["20",{"_index":552,"t":{"83":{"position":[[3629,2]]},"320":{"position":[[3615,2]]},"342":{"position":[[357,2],[528,2],[699,2],[894,2],[1087,2],[1286,2],[1485,2],[1681,2],[1746,2],[1808,2],[1960,2],[2112,2],[2274,2],[2436,2],[2588,2]]},"517":{"position":[[2409,2]]}}}],["200",{"_index":81,"t":{"8":{"position":[[244,3]]},"440":{"position":[[169,3]]}}}],["2000",{"_index":590,"t":{"83":{"position":[[4883,4]]},"320":{"position":[[4850,4]]},"324":{"position":[[263,5]]}}}],["200gb",{"_index":2866,"t":{"493":{"position":[[50,5],[366,6]]}}}],["2013",{"_index":1847,"t":{"257":{"position":[[334,4]]}}}],["2014",{"_index":1852,"t":{"257":{"position":[[401,5]]}}}],["2015",{"_index":1856,"t":{"257":{"position":[[444,5]]}}}],["2016",{"_index":1918,"t":{"263":{"position":[[500,5]]}}}],["2017",{"_index":1861,"t":{"257":{"position":[[531,4]]}}}],["2023",{"_index":1449,"t":{"202":{"position":[[1102,4]]},"263":{"position":[[1633,4]]}}}],["203172",{"_index":1465,"t":{"202":{"position":[[1330,6]]}}}],["2066257538",{"_index":2084,"t":{"280":{"position":[[1238,11]]}}}],["2085004",{"_index":1463,"t":{"202":{"position":[[1290,7],[1373,7],[1455,7],[1538,7],[1621,7],[1703,7],[1786,7],[1869,7],[1952,7],[2035,7],[2118,7],[2201,7],[2284,7],[2367,7],[2450,7]]}}}],["21",{"_index":1494,"t":{"202":{"position":[[2497,2]]}}}],["218473",{"_index":1481,"t":{"202":{"position":[[1992,6]]}}}],["22",{"_index":1447,"t":{"202":{"position":[[1086,2],[1149,2],[1208,2],[1263,2],[1341,2],[1423,2],[1506,2],[1589,2],[1671,2],[1754,2],[1837,2],[1920,2],[2003,2],[2086,2],[2169,2],[2252,2],[2335,2],[2418,2]]}}}],["22.log",{"_index":1451,"t":{"202":{"position":[[1110,6]]}}}],["2333",{"_index":2992,"t":{"574":{"position":[[337,4],[393,4]]},"581":{"position":[[209,4],[254,4]]}}}],["2334",{"_index":2993,"t":{"574":{"position":[[350,4],[406,4]]},"581":{"position":[[222,4],[267,4]]}}}],["2335",{"_index":2933,"t":{"527":{"position":[[24,4]]},"556":{"position":[[234,4]]},"574":{"position":[[233,4]]},"581":{"position":[[116,4]]}}}],["25",{"_index":2978,"t":{"560":{"position":[[2634,3]]}}}],["262333",{"_index":1479,"t":{"202":{"position":[[1909,6]]}}}],["2861242",{"_index":1461,"t":{"202":{"position":[[1251,7]]}}}],["297",{"_index":2398,"t":{"342":{"position":[[1383,4]]}}}],["2>&1",{"_index":1726,"t":{"239":{"position":[[290,4]]},"241":{"position":[[1008,4]]}}}],["2mb",{"_index":2212,"t":{"324":{"position":[[241,3]]}}}],["3",{"_index":1258,"t":{"178":{"position":[[554,1],[613,1],[672,1],[731,1],[790,1]]},"241":{"position":[[2577,3],[2627,3]]},"495":{"position":[[327,2],[453,2]]},"560":{"position":[[2917,2]]}}}],["3.12",{"_index":2596,"t":{"401":{"position":[[118,4]]}}}],["3.5mb",{"_index":1527,"t":{"204":{"position":[[1468,5]]}}}],["3.7",{"_index":2291,"t":{"338":{"position":[[2392,3]]},"486":{"position":[[1947,3]]}}}],["3.82",{"_index":2388,"t":{"342":{"position":[[1140,4]]}}}],["30",{"_index":1854,"t":{"257":{"position":[[436,2]]}}}],["300000",{"_index":2615,"t":{"421":{"position":[[272,6],[351,6]]}}}],["3000000",{"_index":2918,"t":{"506":{"position":[[494,9]]}}}],["30000000",{"_index":701,"t":{"83":{"position":[[9479,8]]},"506":{"position":[[254,10],[705,10]]},"517":{"position":[[2899,8]]}}}],["30303/tcp+udp",{"_index":2565,"t":{"381":{"position":[[267,13]]}}}],["304917",{"_index":1485,"t":{"202":{"position":[[2158,6]]}}}],["30gb",{"_index":2209,"t":{"324":{"position":[[163,4]]}}}],["31",{"_index":2240,"t":{"338":{"position":[[525,2],[652,2],[739,2],[951,2],[1016,2],[1089,2],[1170,2],[1241,2],[1317,2],[1433,2],[1779,2],[1909,2],[2002,2],[2086,2],[2261,2],[2358,2],[2558,2],[2756,2],[2821,2],[2883,2],[3036,2],[3189,2]]},"486":{"position":[[80,2],[207,2],[294,2],[506,2],[571,2],[644,2],[725,2],[796,2],[872,2],[988,2],[1334,2],[1464,2],[1557,2],[1641,2],[1816,2],[1913,2],[2113,2],[2311,2],[2376,2],[2438,2],[2591,2],[2744,2]]}}}],["32",{"_index":100,"t":{"10":{"position":[[238,2]]},"83":{"position":[[8980,2]]},"332":{"position":[[27,2],[227,3]]},"436":{"position":[[379,2]]},"448":{"position":[[179,2]]},"517":{"position":[[2049,2]]}}}],["32bit",{"_index":1620,"t":{"229":{"position":[[628,5],[676,7]]}}}],["3450",{"_index":67,"t":{"8":{"position":[[139,4]]},"440":{"position":[[64,4]]}}}],["360",{"_index":2389,"t":{"342":{"position":[[1184,4]]}}}],["366788",{"_index":1483,"t":{"202":{"position":[[2075,6]]}}}],["381",{"_index":400,"t":{"65":{"position":[[113,3]]}}}],["4",{"_index":98,"t":{"10":{"position":[[225,1]]},"476":{"position":[[1136,2]]}}}],["4.01",{"_index":2302,"t":{"338":{"position":[[2610,4]]},"486":{"position":[[2165,4]]}}}],["4.33",{"_index":2396,"t":{"342":{"position":[[1339,4]]}}}],["4.4mb",{"_index":1529,"t":{"204":{"position":[[1510,6]]}}}],["420809",{"_index":1469,"t":{"202":{"position":[[1495,6]]}}}],["421",{"_index":1454,"t":{"202":{"position":[[1141,3]]}}}],["44",{"_index":2304,"t":{"338":{"position":[[2654,3]]},"486":{"position":[[2209,3]]}}}],["45",{"_index":2406,"t":{"342":{"position":[[1580,3]]}}}],["450675",{"_index":1489,"t":{"202":{"position":[[2324,6]]}}}],["4700",{"_index":70,"t":{"8":{"position":[[178,4]]},"440":{"position":[[103,4]]}}}],["4gb",{"_index":2214,"t":{"324":{"position":[[276,3]]}}}],["5",{"_index":66,"t":{"8":{"position":[[137,1]]},"83":{"position":[[2777,1]]},"290":{"position":[[1216,1]]},"320":{"position":[[2777,1]]},"342":{"position":[[1280,1]]},"407":{"position":[[2065,1]]},"421":{"position":[[318,1]]},"440":{"position":[[62,1]]},"474":{"position":[[2605,3]]},"517":{"position":[[1216,1]]}}}],["5.00",{"_index":2404,"t":{"342":{"position":[[1536,4]]}}}],["50",{"_index":2081,"t":{"280":{"position":[[1048,4]]}}}],["5062",{"_index":670,"t":{"83":{"position":[[8500,4]]},"517":{"position":[[1569,4]]}}}],["5062/tcp",{"_index":2569,"t":{"381":{"position":[[499,8]]}}}],["5064",{"_index":628,"t":{"83":{"position":[[6194,4]]},"517":{"position":[[5403,4]]}}}],["5064/tcp",{"_index":2573,"t":{"381":{"position":[[612,8]]}}}],["515",{"_index":2295,"t":{"338":{"position":[[2455,4]]},"486":{"position":[[2010,4]]}}}],["5375718",{"_index":236,"t":{"19":{"position":[[2885,7],[2902,8]]}}}],["559",{"_index":1493,"t":{"202":{"position":[[2489,3]]}}}],["56",{"_index":1257,"t":{"178":{"position":[[549,2],[608,2],[667,2],[726,2],[785,2],[844,2],[909,2],[975,2]]}}}],["576",{"_index":2281,"t":{"338":{"position":[[2168,4]]},"486":{"position":[[1723,4]]}}}],["586238",{"_index":1487,"t":{"202":{"position":[[2241,6]]}}}],["59",{"_index":2309,"t":{"338":{"position":[[2749,2]]},"486":{"position":[[2304,2]]}}}],["6",{"_index":2419,"t":{"342":{"position":[[1954,1],[2106,1]]},"474":{"position":[[2613,4]]},"478":{"position":[[1715,4]]}}}],["6.007",{"_index":232,"t":{"19":{"position":[[2835,5]]}}}],["6.4",{"_index":2907,"t":{"501":{"position":[[499,4]]}}}],["60",{"_index":1497,"t":{"204":{"position":[[42,2],[1219,2],[1488,2]]}}}],["60000",{"_index":637,"t":{"83":{"position":[[6582,5]]},"320":{"position":[[6442,5]]},"421":{"position":[[190,5]]},"517":{"position":[[5791,5]]}}}],["6045",{"_index":1835,"t":{"255":{"position":[[628,5]]}}}],["6262966",{"_index":2379,"t":{"342":{"position":[[789,7]]}}}],["6263965",{"_index":2385,"t":{"342":{"position":[[982,7]]}}}],["6264018",{"_index":2368,"t":{"342":{"position":[[432,7],[603,7]]}}}],["6264966",{"_index":2378,"t":{"342":{"position":[[773,7]]}}}],["6264967",{"_index":2384,"t":{"342":{"position":[[966,7],[1161,7]]}}}],["6264968",{"_index":2397,"t":{"342":{"position":[[1360,7]]}}}],["6264972",{"_index":2405,"t":{"342":{"position":[[1557,7]]}}}],["6264973",{"_index":2414,"t":{"342":{"position":[[1847,7]]}}}],["6264974",{"_index":2421,"t":{"342":{"position":[[1999,7]]}}}],["6264976",{"_index":2426,"t":{"342":{"position":[[2151,7]]}}}],["6264977",{"_index":2431,"t":{"342":{"position":[[2313,7]]}}}],["6264978",{"_index":2433,"t":{"342":{"position":[[2475,7]]}}}],["6264979",{"_index":2438,"t":{"342":{"position":[[2627,7]]}}}],["6265018",{"_index":2367,"t":{"342":{"position":[[416,7]]}}}],["6265019",{"_index":2374,"t":{"342":{"position":[[587,7]]}}}],["64",{"_index":2220,"t":{"332":{"position":[[35,3]]},"448":{"position":[[370,2]]},"450":{"position":[[62,2]]}}}],["68044",{"_index":1467,"t":{"202":{"position":[[1413,5]]}}}],["69",{"_index":2325,"t":{"338":{"position":[[3182,2]]},"486":{"position":[[2737,2]]}}}],["7",{"_index":69,"t":{"8":{"position":[[176,1]]},"342":{"position":[[2734,1]]},"440":{"position":[[101,1]]}}}],["70",{"_index":2319,"t":{"338":{"position":[[3029,2]]},"486":{"position":[[2584,2]]}}}],["72",{"_index":1255,"t":{"178":{"position":[[533,2]]},"257":{"position":[[455,2]]}}}],["73",{"_index":1261,"t":{"178":{"position":[[592,2]]}}}],["74",{"_index":1264,"t":{"178":{"position":[[651,2]]},"338":{"position":[[3335,2]]},"486":{"position":[[2890,2]]}}}],["75",{"_index":1267,"t":{"178":{"position":[[710,2]]}}}],["76",{"_index":1270,"t":{"178":{"position":[[769,2]]}}}],["768470",{"_index":1491,"t":{"202":{"position":[[2407,6]]}}}],["77",{"_index":1273,"t":{"178":{"position":[[828,2]]}}}],["777",{"_index":1523,"t":{"204":{"position":[[1302,3]]}}}],["778",{"_index":202,"t":{"19":{"position":[[1619,4]]},"371":{"position":[[93,3]]}}}],["78",{"_index":1277,"t":{"178":{"position":[[893,2]]}}}],["79",{"_index":1281,"t":{"178":{"position":[[958,2]]}}}],["8",{"_index":72,"t":{"8":{"position":[[190,1]]},"19":{"position":[[604,1],[682,1],[1791,1]]},"81":{"position":[[32,1],[88,1]]},"83":{"position":[[11871,1]]},"178":{"position":[[1409,1]]},"342":{"position":[[1675,1],[2268,1],[2430,1],[2582,1]]},"440":{"position":[[115,1]]}}}],["80",{"_index":2980,"t":{"560":{"position":[[2698,2]]}}}],["8008",{"_index":2183,"t":{"320":{"position":[[6054,4]]},"407":{"position":[[2227,4]]},"427":{"position":[[271,4]]}}}],["8008/tcp",{"_index":2572,"t":{"381":{"position":[[576,8]]}}}],["8080",{"_index":2113,"t":{"294":{"position":[[2406,4]]}}}],["8545",{"_index":2339,"t":{"338":{"position":[[4069,4]]}}}],["8545/tcp",{"_index":2574,"t":{"381":{"position":[[646,8]]}}}],["8551",{"_index":2219,"t":{"330":{"position":[[117,5]]},"448":{"position":[[155,5],[513,5]]}}}],["8551/tcp",{"_index":2575,"t":{"381":{"position":[[688,8]]}}}],["8gb",{"_index":1822,"t":{"253":{"position":[[59,3]]}}}],["8hw2gbkazdzmww3lshjfp_kdhi",{"_index":2267,"t":{"338":{"position":[[1694,26]]},"486":{"position":[[1249,26]]}}}],["9",{"_index":1729,"t":{"239":{"position":[[531,2]]},"342":{"position":[[1519,1]]}}}],["9/0",{"_index":1254,"t":{"178":{"position":[[527,3]]}}}],["9/1",{"_index":1260,"t":{"178":{"position":[[586,3]]}}}],["9/2",{"_index":1263,"t":{"178":{"position":[[645,3]]}}}],["9/3",{"_index":1266,"t":{"178":{"position":[[704,3]]}}}],["9/4",{"_index":1269,"t":{"178":{"position":[[763,3]]}}}],["9/5",{"_index":1272,"t":{"178":{"position":[[822,3]]}}}],["9/6",{"_index":1276,"t":{"178":{"position":[[887,3]]}}}],["9/7",{"_index":1280,"t":{"178":{"position":[[952,3]]}}}],["90",{"_index":2921,"t":{"506":{"position":[[751,4]]}}}],["9000",{"_index":156,"t":{"19":{"position":[[769,4]]},"83":{"position":[[6867,4]]},"320":{"position":[[6727,4]]},"407":{"position":[[813,4]]}}}],["9000/tcp+udp",{"_index":2566,"t":{"381":{"position":[[322,12]]}}}],["9001",{"_index":209,"t":{"19":{"position":[[1858,4]]}}}],["9090",{"_index":649,"t":{"83":{"position":[[7188,4]]},"320":{"position":[[7048,4]]},"407":{"position":[[956,4]]}}}],["9090/tcp+udp",{"_index":2567,"t":{"381":{"position":[[377,12]]}}}],["917504",{"_index":1459,"t":{"202":{"position":[[1197,6]]}}}],["94391",{"_index":1473,"t":{"202":{"position":[[1661,5]]}}}],["9596",{"_index":538,"t":{"83":{"position":[[3372,4]]},"320":{"position":[[3372,4]]},"338":{"position":[[4077,4]]}}}],["9596/tcp",{"_index":2568,"t":{"381":{"position":[[462,8]]}}}],["9597",{"_index":211,"t":{"19":{"position":[[1877,4]]}}}],["9634080",{"_index":2280,"t":{"338":{"position":[[2145,7]]},"486":{"position":[[1700,7]]}}}],["9634082",{"_index":2294,"t":{"338":{"position":[[2432,7]]},"486":{"position":[[1987,7]]}}}],["9634092",{"_index":2303,"t":{"338":{"position":[[2631,7]]},"486":{"position":[[2186,7]]}}}],["9634093",{"_index":2314,"t":{"338":{"position":[[2922,7]]},"486":{"position":[[2477,7]]}}}],["9634094",{"_index":2321,"t":{"338":{"position":[[3075,7]]},"486":{"position":[[2630,7]]}}}],["9634095",{"_index":2327,"t":{"338":{"position":[[3228,7]]},"486":{"position":[[2783,7]]}}}],["9701529",{"_index":1446,"t":{"202":{"position":[[1074,7]]}}}],["99",{"_index":1505,"t":{"204":{"position":[[498,2],[1136,2]]}}}],["997hz",{"_index":1511,"t":{"204":{"position":[[667,5],[1478,5]]}}}],["99hz",{"_index":1510,"t":{"204":{"position":[[659,4],[1415,4]]}}}],["9]{40",{"_index":558,"t":{"83":{"position":[[3659,9]]},"320":{"position":[[3645,8]]},"517":{"position":[[2439,9]]}}}],["_",{"_index":962,"t":{"113":{"position":[[807,1]]}}}],["__libc_start",{"_index":1556,"t":{"212":{"position":[[333,13]]}}}],["_byte",{"_index":986,"t":{"113":{"position":[[1753,6]]}}}],["_dirti",{"_index":964,"t":{"113":{"position":[[843,7]]}}}],["_second",{"_index":985,"t":{"113":{"position":[[1741,8]]}}}],["a+r",{"_index":2693,"t":{"443":{"position":[[357,3]]}}}],["a57ca19d47bb",{"_index":1567,"t":{"217":{"position":[[150,12]]}}}],["ab",{"_index":2810,"t":{"480":{"position":[[1521,4]]}}}],["abbrevi",{"_index":1068,"t":{"126":{"position":[[453,14]]}}}],["abil",{"_index":2607,"t":{"415":{"position":[[17,7]]}}}],["abov",{"_index":94,"t":{"10":{"position":[[112,5]]},"21":{"position":[[145,6]]},"33":{"position":[[104,5]]},"83":{"position":[[7421,5]]},"97":{"position":[[167,5]]},"200":{"position":[[393,5]]},"296":{"position":[[407,5]]},"320":{"position":[[7281,5]]},"383":{"position":[[107,6]]},"464":{"position":[[1037,5]]},"474":{"position":[[2331,5]]},"478":{"position":[[2394,5]]},"552":{"position":[[95,5]]},"556":{"position":[[86,6]]}}}],["absolut",{"_index":2358,"t":{"340":{"position":[[2399,10]]}}}],["acceler",{"_index":2336,"t":{"338":{"position":[[3806,10]]}}}],["accept",{"_index":445,"t":{"83":{"position":[[346,8]]},"229":{"position":[[1173,7]]},"290":{"position":[[346,8]]},"320":{"position":[[346,8]]},"407":{"position":[[346,8]]},"517":{"position":[[346,8]]},"560":{"position":[[2386,6],[2606,6]]}}}],["access",{"_index":388,"t":{"61":{"position":[[128,6]]},"83":{"position":[[3164,6],[8624,6]]},"126":{"position":[[305,10]]},"227":{"position":[[31,6]]},"268":{"position":[[705,6],[809,9],[1036,10]]},"272":{"position":[[0,6]]},"280":{"position":[[546,6],[991,6]]},"294":{"position":[[1371,10]]},"320":{"position":[[3164,6]]},"381":{"position":[[203,6]]},"432":{"position":[[1048,6]]},"499":{"position":[[347,8],[513,6]]},"517":{"position":[[1693,6]]}}}],["accordingli",{"_index":1086,"t":{"128":{"position":[[916,12]]}}}],["account",{"_index":2610,"t":{"415":{"position":[[297,7]]},"419":{"position":[[272,7]]}}}],["accur",{"_index":1957,"t":{"263":{"position":[[1904,8]]}}}],["accuraci",{"_index":2658,"t":{"432":{"position":[[1352,8]]},"497":{"position":[[150,9],[485,9]]}}}],["achiev",{"_index":1204,"t":{"170":{"position":[[294,7]]},"253":{"position":[[261,7]]}}}],["act",{"_index":2518,"t":{"369":{"position":[[751,3]]}}}],["action",{"_index":321,"t":{"39":{"position":[[74,7]]},"120":{"position":[[582,6]]},"156":{"position":[[861,10]]},"194":{"position":[[537,8]]},"259":{"position":[[639,7]]},"497":{"position":[[959,6]]}}}],["activ",{"_index":453,"t":{"83":{"position":[[628,10]]},"257":{"position":[[549,8]]},"290":{"position":[[628,10]]},"320":{"position":[[628,10]]},"355":{"position":[[332,11]]},"375":{"position":[[1056,8],[1186,6]]},"388":{"position":[[59,9]]},"391":{"position":[[486,6]]},"407":{"position":[[628,10]]},"411":{"position":[[3,8]]},"434":{"position":[[61,8]]},"480":{"position":[[2118,9]]},"517":{"position":[[628,10]]}}}],["active=2",{"_index":2858,"t":{"488":{"position":[[1943,9]]},"564":{"position":[[1765,9]]}}}],["actual",{"_index":298,"t":{"33":{"position":[[35,6]]},"55":{"position":[[159,6]]},"97":{"position":[[307,6]]},"99":{"position":[[135,6]]},"190":{"position":[[1789,8]]},"229":{"position":[[886,6]]},"233":{"position":[[1838,8]]},"241":{"position":[[2296,6]]},"263":{"position":[[1929,6]]},"294":{"position":[[751,6]]},"363":{"position":[[67,8]]}}}],["actuat",{"_index":1146,"t":{"156":{"position":[[135,7]]},"170":{"position":[[131,8]]}}}],["ad",{"_index":1159,"t":{"156":{"position":[[707,5]]},"174":{"position":[[123,5],[246,5],[312,5],[367,5],[771,5],[929,5]]},"180":{"position":[[449,5]]},"186":{"position":[[217,6]]},"188":{"position":[[77,6]]},"202":{"position":[[429,5]]},"476":{"position":[[914,5]]},"484":{"position":[[242,6]]},"501":{"position":[[308,6]]},"558":{"position":[[735,5]]}}}],["adapt",{"_index":1311,"t":{"186":{"position":[[192,5]]},"268":{"position":[[1119,9]]},"379":{"position":[[436,9]]},"413":{"position":[[16,5]]},"432":{"position":[[279,10]]}}}],["add",{"_index":93,"t":{"10":{"position":[[96,3]]},"21":{"position":[[75,3]]},"109":{"position":[[342,3]]},"113":{"position":[[1445,3],[1712,3]]},"115":{"position":[[492,3],[735,3]]},"174":{"position":[[199,3]]},"188":{"position":[[270,3]]},"196":{"position":[[1170,3]]},"200":{"position":[[485,3]]},"235":{"position":[[1206,4]]},"239":{"position":[[525,3]]},"255":{"position":[[406,4]]},"280":{"position":[[1302,3]]},"334":{"position":[[73,3]]},"429":{"position":[[119,3]]},"443":{"position":[[71,3],[390,3]]},"466":{"position":[[335,3]]},"558":{"position":[[464,3]]}}}],["addit",{"_index":262,"t":{"21":{"position":[[108,8]]},"109":{"position":[[809,10]]},"186":{"position":[[224,10]]},"202":{"position":[[580,8]]},"348":{"position":[[137,10],[246,10]]},"379":{"position":[[374,9]]},"407":{"position":[[974,10],[1066,10]]},"508":{"position":[[96,10]]}}}],["address",{"_index":554,"t":{"83":{"position":[[3638,8],[6225,7],[6666,7],[7004,7],[8125,9],[8725,9]]},"118":{"position":[[359,9]]},"190":{"position":[[733,10]]},"202":{"position":[[486,10]]},"229":{"position":[[800,7]]},"263":{"position":[[2226,7]]},"294":{"position":[[579,7],[719,10],[2021,7],[2161,10]]},"320":{"position":[[3624,8],[6085,7],[6526,7],[6864,7],[7985,9]]},"348":{"position":[[312,8]]},"352":{"position":[[73,10]]},"369":{"position":[[285,10]]},"371":{"position":[[231,8]]},"379":{"position":[[801,11]]},"407":{"position":[[684,7],[845,7],[1483,9],[2258,7]]},"419":{"position":[[592,7]]},"452":{"position":[[195,8],[242,7],[309,7],[384,7],[448,7]]},"464":{"position":[[946,7]]},"493":{"position":[[302,7]]},"517":{"position":[[1794,9],[2418,8],[5434,7]]},"521":{"position":[[71,9]]},"525":{"position":[[71,9]]},"547":{"position":[[118,7],[297,7]]},"558":{"position":[[151,8],[204,8],[261,7],[343,7],[407,7],[682,7],[829,8]]},"562":{"position":[[134,7]]}}}],["address=http://0.0.0.0:9596",{"_index":2278,"t":{"338":{"position":[[2054,27]]},"486":{"position":[[1609,27]]}}}],["address=http://127.0.0.1:8008",{"_index":2276,"t":{"338":{"position":[[1968,29]]},"486":{"position":[[1523,29]]}}}],["adher",{"_index":375,"t":{"53":{"position":[[67,8]]},"109":{"position":[[193,8]]}}}],["adjust",{"_index":1517,"t":{"204":{"position":[[839,6],[1030,6]]},"421":{"position":[[18,6]]}}}],["admin",{"_index":1445,"t":{"202":{"position":[[1062,5],[1068,5],[1130,5],[1185,5],[1191,5],[1239,5],[1245,5],[1318,5],[1324,5],[1401,5],[1407,5],[1483,5],[1489,5],[1566,5],[1572,5],[1649,5],[1655,5],[1731,5],[1737,5],[1814,5],[1820,5],[1897,5],[1903,5],[1980,5],[1986,5],[2063,5],[2069,5],[2146,5],[2152,5],[2229,5],[2235,5],[2312,5],[2318,5],[2395,5],[2401,5],[2478,5]]}}}],["admin@12.34.56.78",{"_index":1434,"t":{"202":{"position":[[362,18]]},"204":{"position":[[1097,18],[1222,18],[1272,18]]}}}],["admin@12.34.56.78:/home/devops/beacon/out.perf",{"_index":1530,"t":{"204":{"position":[[1521,46]]}}}],["adopt",{"_index":1942,"t":{"263":{"position":[[1299,8]]}}}],["advanc",{"_index":2811,"t":{"480":{"position":[[1579,7]]}}}],["advantag",{"_index":1738,"t":{"241":{"position":[[77,10],[133,9]]}}}],["advers",{"_index":1947,"t":{"263":{"position":[[1544,11]]}}}],["advertis",{"_index":2516,"t":{"369":{"position":[[697,13]]}}}],["advic",{"_index":2655,"t":{"432":{"position":[[1314,7]]},"497":{"position":[[97,7]]}}}],["affect",{"_index":1515,"t":{"204":{"position":[[750,6]]}}}],["afford",{"_index":1924,"t":{"263":{"position":[[613,8]]}}}],["afterward",{"_index":1860,"t":{"257":{"position":[[517,10]]}}}],["again",{"_index":1749,"t":{"241":{"position":[[733,6]]}}}],["against",{"_index":715,"t":{"83":{"position":[[9817,7]]},"99":{"position":[[375,7]]},"204":{"position":[[948,8]]},"263":{"position":[[338,7],[1536,7],[2583,7]]},"268":{"position":[[308,7]]},"517":{"position":[[3379,7]]},"560":{"position":[[425,7],[2413,7]]}}}],["aggreg",{"_index":301,"t":{"33":{"position":[[83,9]]},"574":{"position":[[67,9],[151,9]]},"581":{"position":[[45,9]]}}}],["agreement",{"_index":909,"t":{"107":{"position":[[454,9]]}}}],["aid",{"_index":1337,"t":{"190":{"position":[[522,3]]}}}],["aim",{"_index":1142,"t":{"150":{"position":[[54,3]]},"342":{"position":[[29,4]]},"357":{"position":[[277,3]]}}}],["alchemi",{"_index":2177,"t":{"302":{"position":[[179,8]]}}}],["alert",{"_index":2619,"t":{"423":{"position":[[96,8]]}}}],["alia",{"_index":609,"t":{"83":{"position":[[5461,5]]},"118":{"position":[[915,5]]},"391":{"position":[[368,5]]},"480":{"position":[[928,5]]},"517":{"position":[[2922,5]]},"560":{"position":[[1086,5],[1311,5],[1722,5]]}}}],["alloc",{"_index":1594,"t":{"225":{"position":[[737,9],[905,9]]},"235":{"position":[[523,11],[1191,10],[1424,11],[1615,12]]},"241":{"position":[[270,11],[3051,12]]},"493":{"position":[[390,10]]}}}],["allocations/d",{"_index":1741,"t":{"241":{"position":[[255,14]]}}}],["allow",{"_index":225,"t":{"19":{"position":[[2589,5]]},"83":{"position":[[3179,5],[5949,7],[8092,5],[8639,5]]},"128":{"position":[[306,5]]},"156":{"position":[[736,5]]},"188":{"position":[[158,6]]},"200":{"position":[[527,5],[653,5]]},"204":{"position":[[296,5]]},"206":{"position":[[74,6]]},"235":{"position":[[1523,6]]},"237":{"position":[[947,5]]},"268":{"position":[[1227,5]]},"292":{"position":[[68,8]]},"294":{"position":[[1332,5]]},"320":{"position":[[3179,5],[5824,7],[7952,5]]},"340":{"position":[[664,5]]},"350":{"position":[[408,6]]},"355":{"position":[[43,6],[257,8]]},"361":{"position":[[48,6]]},"375":{"position":[[1170,6]]},"379":{"position":[[354,6]]},"381":{"position":[[88,5]]},"405":{"position":[[114,6]]},"407":{"position":[[1446,5]]},"432":{"position":[[612,6]]},"452":{"position":[[97,6]]},"454":{"position":[[259,6]]},"464":{"position":[[300,6]]},"474":{"position":[[189,5]]},"499":{"position":[[152,6]]},"504":{"position":[[248,5]]},"517":{"position":[[1708,5]]},"556":{"position":[[993,5],[1107,5]]},"558":{"position":[[69,6]]},"578":{"position":[[478,8]]}}}],["allowforcedupd",{"_index":2053,"t":{"278":{"position":[[848,19]]}}}],["alon",{"_index":1202,"t":{"170":{"position":[[230,5]]}}}],["along",{"_index":1157,"t":{"156":{"position":[[623,5]]},"166":{"position":[[377,5]]},"227":{"position":[[518,5]]},"245":{"position":[[195,5]]},"361":{"position":[[410,5]]},"409":{"position":[[274,5]]},"484":{"position":[[91,5],[224,5]]}}}],["alongsid",{"_index":2622,"t":{"425":{"position":[[248,9]]}}}],["alpha",{"_index":689,"t":{"83":{"position":[[9172,5]]},"504":{"position":[[19,5]]},"517":{"position":[[2241,5]]}}}],["alphabet",{"_index":288,"t":{"27":{"position":[[131,12]]},"63":{"position":[[33,15]]},"261":{"position":[[239,12]]}}}],["alreadi",{"_index":224,"t":{"19":{"position":[[2462,7]]},"97":{"position":[[79,7]]},"237":{"position":[[701,7]]},"294":{"position":[[927,7]]},"326":{"position":[[213,7]]},"466":{"position":[[25,7]]}}}],["altair",{"_index":2017,"t":{"268":{"position":[[1180,6]]}}}],["alter",{"_index":2477,"t":{"352":{"position":[[399,8]]}}}],["altern",{"_index":2176,"t":{"302":{"position":[[149,12]]},"371":{"position":[[898,14]]},"501":{"position":[[631,14]]},"554":{"position":[[155,14]]}}}],["although",{"_index":1730,"t":{"239":{"position":[[567,8]]},"350":{"position":[[336,8]]}}}],["alway",{"_index":844,"t":{"99":{"position":[[14,6]]},"190":{"position":[[861,6]]},"298":{"position":[[262,6]]},"419":{"position":[[632,6]]},"560":{"position":[[1133,6],[1621,6],[2788,6],[3036,6]]}}}],["amd",{"_index":64,"t":{"8":{"position":[[127,3],[166,3]]},"440":{"position":[[52,3],[91,3]]}}}],["amd64",{"_index":2668,"t":{"436":{"position":[[152,5]]}}}],["amongst",{"_index":179,"t":{"19":{"position":[[1172,7]]}}}],["amount",{"_index":1654,"t":{"233":{"position":[[470,6]]},"324":{"position":[[130,8]]},"375":{"position":[[410,7]]},"421":{"position":[[468,7]]}}}],["analysi",{"_index":1321,"t":{"190":{"position":[[10,8],[241,8],[1033,9],[1158,9],[1356,8],[1768,9]]},"192":{"position":[[131,8]]},"206":{"position":[[90,8]]},"217":{"position":[[205,9]]},"227":{"position":[[201,8]]},"229":{"position":[[950,8]]},"233":{"position":[[0,8]]},"235":{"position":[[64,8],[167,9],[479,9],[692,8],[1730,9],[1821,8]]},"245":{"position":[[1870,8]]},"357":{"position":[[373,8]]}}}],["analyz",{"_index":1548,"t":{"210":{"position":[[127,9]]},"225":{"position":[[415,9],[1217,7]]},"227":{"position":[[71,9]]},"231":{"position":[[14,7]]},"241":{"position":[[2156,7]]}}}],["andrea",{"_index":1973,"t":{"265":{"position":[[67,7]]}}}],["annot",{"_index":339,"t":{"41":{"position":[[305,9],[344,9]]}}}],["announc",{"_index":2525,"t":{"371":{"position":[[507,8],[665,9]]},"434":{"position":[[203,13],[265,13]]}}}],["anomali",{"_index":2335,"t":{"338":{"position":[[3776,10]]}}}],["anoth",{"_index":1659,"t":{"233":{"position":[[879,7]]},"361":{"position":[[8,7]]},"391":{"position":[[549,7]]},"405":{"position":[[158,8]]},"464":{"position":[[120,7]]},"474":{"position":[[403,7]]},"478":{"position":[[1731,7],[1760,7]]}}}],["antonopoulo",{"_index":1975,"t":{"265":{"position":[[78,12]]}}}],["anyth",{"_index":716,"t":{"83":{"position":[[9901,8]]},"517":{"position":[[3463,8]]},"560":{"position":[[509,8]]}}}],["apach",{"_index":2089,"t":{"284":{"position":[[0,6]]},"312":{"position":[[0,6]]}}}],["api",{"_index":296,"t":{"31":{"position":[[75,4]]},"61":{"position":[[231,3],[299,3]]},"83":{"position":[[810,4],[2807,3],[2892,4],[3213,3],[3277,3],[3346,3],[3417,3],[3759,4],[4483,3],[4605,3],[4718,3],[4857,3],[5174,5],[5429,4],[5628,3],[5733,3],[8182,3],[8277,3],[8398,3],[8474,3],[8552,3],[8680,3]]},"93":{"position":[[684,4]]},"109":{"position":[[376,3]]},"115":{"position":[[140,4]]},"118":{"position":[[846,4]]},"148":{"position":[[152,3],[332,3]]},"174":{"position":[[585,3],[636,3],[755,3]]},"229":{"position":[[1024,3]]},"272":{"position":[[148,3]]},"278":{"position":[[541,3]]},"290":{"position":[[1280,3]]},"320":{"position":[[810,4],[2807,3],[2892,4],[3213,3],[3277,3],[3346,3],[3417,3],[4450,3],[4572,3],[4685,3],[4824,3],[5141,5],[5396,4],[5503,3],[5608,3]]},"330":{"position":[[58,3]]},"338":{"position":[[2043,3],[3946,4]]},"344":{"position":[[703,4]]},"346":{"position":[[64,4]]},"371":{"position":[[964,3]]},"381":{"position":[[490,3],[532,3]]},"419":{"position":[[243,3]]},"448":{"position":[[143,3]]},"486":{"position":[[1598,3]]},"499":{"position":[[371,3],[393,3]]},"508":{"position":[[272,3]]},"517":{"position":[[1251,3],[1346,3],[1467,3],[1543,3],[1621,3],[1749,3],[2539,4]]},"558":{"position":[[964,4]]},"560":{"position":[[709,4],[2204,3]]},"578":{"position":[[322,3],[352,3]]}}}],["api'",{"_index":1200,"t":{"170":{"position":[[103,6]]}}}],["app",{"_index":2609,"t":{"415":{"position":[[262,3]]}}}],["appar",{"_index":1658,"t":{"233":{"position":[[835,8]]}}}],["appear",{"_index":2709,"t":{"443":{"position":[[1121,7]]}}}],["append",{"_index":1625,"t":{"229":{"position":[[911,7]]}}}],["appendix",{"_index":2678,"t":{"440":{"position":[[448,8]]}}}],["appli",{"_index":279,"t":{"25":{"position":[[169,7]]},"83":{"position":[[9744,5]]},"128":{"position":[[447,5],[634,7],[764,7]]},"440":{"position":[[413,7]]},"490":{"position":[[73,5]]},"517":{"position":[[3306,5]]},"560":{"position":[[352,5],[622,7]]}}}],["applic",{"_index":932,"t":{"109":{"position":[[701,10]]},"118":{"position":[[147,11],[392,11]]},"144":{"position":[[92,13]]},"225":{"position":[[801,12]]},"229":{"position":[[513,11]]},"233":{"position":[[1325,11]]},"235":{"position":[[885,11]]},"241":{"position":[[682,12],[1759,11]]},"245":{"position":[[2197,13]]},"294":{"position":[[943,11]]}}}],["applications/kde/heaptrack_gui.app",{"_index":1818,"t":{"245":{"position":[[2237,35]]}}}],["appreci",{"_index":1514,"t":{"204":{"position":[[738,11]]}}}],["approach",{"_index":979,"t":{"113":{"position":[[1508,10]]},"166":{"position":[[407,9]]},"184":{"position":[[30,10]]},"241":{"position":[[114,9]]},"268":{"position":[[797,8]]},"352":{"position":[[1044,8]]},"375":{"position":[[1161,8]]},"423":{"position":[[105,9]]}}}],["appropri",{"_index":1233,"t":{"174":{"position":[[507,11]]},"253":{"position":[[153,11]]},"499":{"position":[[455,11]]},"560":{"position":[[1003,11]]}}}],["apr",{"_index":2365,"t":{"342":{"position":[[353,3],[524,3],[695,3],[890,3],[1083,3],[1282,3],[1481,3],[1677,3],[1742,3],[1804,3],[1956,3],[2108,3],[2270,3],[2432,3],[2584,3]]}}}],["apt",{"_index":1423,"t":{"200":{"position":[[244,3],[304,3]]},"237":{"position":[[288,3],[310,3]]},"241":{"position":[[1171,3],[1193,3]]},"243":{"position":[[14,4],[19,3],[65,3],[87,3]]},"443":{"position":[[132,3],[152,3],[412,3],[789,3],[809,3],[899,3]]}}}],["aptitud",{"_index":1777,"t":{"243":{"position":[[30,8]]}}}],["arbitrag",{"_index":2455,"t":{"344":{"position":[[102,9]]}}}],["arbitrari",{"_index":1030,"t":{"120":{"position":[[252,9]]}}}],["arch=$(dpkg",{"_index":2696,"t":{"443":{"position":[[478,12]]}}}],["architectur",{"_index":2697,"t":{"443":{"position":[[499,13]]}}}],["arg",{"_index":444,"t":{"83":{"position":[[340,5]]},"290":{"position":[[340,5]]},"320":{"position":[[340,5]]},"407":{"position":[[340,5]]},"478":{"position":[[2304,6]]},"517":{"position":[[340,5]]}}}],["args.sh",{"_index":2714,"t":{"450":{"position":[[16,7],[42,7]]}}}],["argument",{"_index":787,"t":{"91":{"position":[[246,10]]},"186":{"position":[[235,9]]},"229":{"position":[[371,9]]},"255":{"position":[[9,9],[141,10],[172,8],[212,10],[351,9]]},"340":{"position":[[1048,9]]},"466":{"position":[[350,9]]},"480":{"position":[[748,8],[2140,9]]}}}],["aris",{"_index":2891,"t":{"497":{"position":[[698,7]]}}}],["aros",{"_index":1950,"t":{"263":{"position":[[1703,5]]}}}],["around",{"_index":1440,"t":{"202":{"position":[[877,6]]},"225":{"position":[[1144,6]]},"237":{"position":[[1485,6]]},"375":{"position":[[698,6]]},"576":{"position":[[224,6]]}}}],["array",{"_index":1607,"t":{"227":{"position":[[795,7],[899,6]]},"233":{"position":[[663,5],[678,5],[742,5]]},"268":{"position":[[1139,5]]},"296":{"position":[[562,5]]}}}],["arriv",{"_index":1296,"t":{"178":{"position":[[2194,6]]}}}],["arsen",{"_index":1660,"t":{"233":{"position":[[900,7]]}}}],["art",{"_index":1649,"t":{"233":{"position":[[23,3],[2028,3]]}}}],["articl",{"_index":2659,"t":{"432":{"position":[[1388,7],[1483,8]]},"497":{"position":[[5,7],[243,8],[559,7],[751,7],[811,8]]}}}],["artifact",{"_index":1713,"t":{"237":{"position":[[1189,9]]}}}],["ascii",{"_index":1031,"t":{"120":{"position":[[287,5]]}}}],["ask",{"_index":907,"t":{"107":{"position":[[418,5]]},"248":{"position":[[83,5]]},"373":{"position":[[217,3]]},"543":{"position":[[128,3]]},"556":{"position":[[925,3]]}}}],["aspect",{"_index":1050,"t":{"122":{"position":[[304,6]]}}}],["ass",{"_index":1158,"t":{"156":{"position":[[640,5]]}}}],["assault",{"_index":1921,"t":{"263":{"position":[[576,8]]}}}],["assemblyscript",{"_index":2988,"t":{"572":{"position":[[167,14]]},"583":{"position":[[134,14]]}}}],["assert",{"_index":990,"t":{"115":{"position":[[496,9],[571,9],[666,9],[704,9]]},"156":{"position":[[687,12],[1479,11]]},"172":{"position":[[321,10],[435,10]]},"174":{"position":[[100,10],[184,10],[228,10],[352,10],[481,10],[554,10],[668,6],[784,9],[840,8],[909,10],[1277,10],[1306,10]]},"176":{"position":[[61,11]]}}}],["asset",{"_index":2577,"t":{"386":{"position":[[68,6]]}}}],["assign",{"_index":2908,"t":{"504":{"position":[[126,6]]}}}],["assist",{"_index":112,"t":{"14":{"position":[[173,6]]},"411":{"position":[[416,6]]},"432":{"position":[[942,6]]}}}],["associ",{"_index":1820,"t":{"250":{"position":[[57,10]]},"255":{"position":[[493,10]]},"263":{"position":[[888,10]]},"352":{"position":[[1091,10]]},"375":{"position":[[291,10]]},"419":{"position":[[562,9]]}}}],["assum",{"_index":1411,"t":{"198":{"position":[[11,7]]},"233":{"position":[[1458,7]]},"237":{"position":[[0,6],[657,7]]},"245":{"position":[[471,7]]},"278":{"position":[[25,6]]},"326":{"position":[[196,7]]},"338":{"position":[[128,6]]},"348":{"position":[[730,7]]},"436":{"position":[[11,7]]},"480":{"position":[[240,8]]},"493":{"position":[[322,8]]}}}],["async",{"_index":2058,"t":{"278":{"position":[[1082,5],[1260,5]]}}}],["async_hook",{"_index":842,"t":{"97":{"position":[[420,13]]}}}],["att",{"_index":1283,"t":{"178":{"position":[[1108,3]]}}}],["attach",{"_index":1746,"t":{"241":{"position":[[618,9]]},"478":{"position":[[269,9],[608,10]]}}}],["attack",{"_index":1630,"t":{"229":{"position":[[1152,7]]},"263":{"position":[[398,7],[490,6],[922,7],[2618,8]]},"340":{"position":[[193,9],[231,6]]},"352":{"position":[[562,9],[1118,8]]},"381":{"position":[[218,7]]},"403":{"position":[[144,8]]},"464":{"position":[[550,8]]}}}],["attcount",{"_index":1251,"t":{"178":{"position":[[384,8],[2001,9]]}}}],["attempt",{"_index":1965,"t":{"263":{"position":[[2213,9]]},"352":{"position":[[1603,7]]}}}],["attent",{"_index":2775,"t":{"474":{"position":[[2564,9]]}}}],["attest",{"_index":1292,"t":{"178":{"position":[[2025,12],[2140,13],[2160,12]]},"259":{"position":[[734,12]]},"263":{"position":[[1714,12],[1788,13],[2002,12],[2136,12],[2277,13]]},"488":{"position":[[1999,12],[2072,12]]},"499":{"position":[[286,13]]},"564":{"position":[[1821,12],[1894,12]]}}}],["attestationparticipationassert",{"_index":1239,"t":{"174":{"position":[[1023,33]]}}}],["attestationscountassert",{"_index":1238,"t":{"174":{"position":[[996,26]]}}}],["attester_slash",{"_index":863,"t":{"99":{"position":[[708,17]]}}}],["authent",{"_index":602,"t":{"83":{"position":[[5112,14],[5371,14],[8246,14],[8402,14]]},"320":{"position":[[5079,14],[5338,14]]},"330":{"position":[[27,14]]},"332":{"position":[[91,12]]},"338":{"position":[[3983,14]]},"448":{"position":[[494,13]]},"517":{"position":[[1315,14],[1471,14]]}}}],["author",{"_index":2656,"t":{"432":{"position":[[1326,6],[1404,6]]},"497":{"position":[[109,6],[381,6],[599,6],[1020,6]]}}}],["authrpc.jwtsecret",{"_index":2228,"t":{"336":{"position":[[27,17],[402,17],[523,17]]}}}],["auto",{"_index":720,"t":{"83":{"position":[[10044,4]]},"517":{"position":[[3606,4]]}}}],["automat",{"_index":875,"t":{"101":{"position":[[574,13]]},"196":{"position":[[1028,13]]},"255":{"position":[[392,13]]},"365":{"position":[[14,13]]},"495":{"position":[[125,13]]},"501":{"position":[[235,13]]},"556":{"position":[[1303,13]]},"560":{"position":[[220,13]]}}}],["aux",{"_index":1731,"t":{"239":{"position":[[610,3]]},"241":{"position":[[1455,3]]}}}],["avail",{"_index":78,"t":{"8":{"position":[[224,9],[251,9]]},"91":{"position":[[223,9]]},"101":{"position":[[280,9]]},"158":{"position":[[41,9]]},"170":{"position":[[607,9]]},"186":{"position":[[141,9]]},"225":{"position":[[199,9]]},"235":{"position":[[1770,9]]},"245":{"position":[[1442,9]]},"280":{"position":[[628,9],[790,9]]},"328":{"position":[[392,9]]},"338":{"position":[[158,9],[248,9]]},"340":{"position":[[378,9],[548,9]]},"348":{"position":[[355,9]]},"440":{"position":[[149,9],[176,9],[298,9]]},"456":{"position":[[170,9]]},"493":{"position":[[708,9]]},"497":{"position":[[793,9]]},"512":{"position":[[31,9]]},"515":{"position":[[48,9]]},"558":{"position":[[935,9]]},"560":{"position":[[1917,10],[2849,9]]}}}],["averag",{"_index":1294,"t":{"178":{"position":[[2076,7]]},"324":{"position":[[68,7]]}}}],["avoid",{"_index":478,"t":{"83":{"position":[[1409,5]]},"120":{"position":[[0,5]]},"320":{"position":[[1409,5]]},"352":{"position":[[1557,5]]}}}],["await",{"_index":2045,"t":{"278":{"position":[[634,5],[758,5],[801,5],[953,5]]},"280":{"position":[[726,5],[862,5]]},"294":{"position":[[651,5],[2093,5]]}}}],["awar",{"_index":2352,"t":{"340":{"position":[[1428,5]]}}}],["away",{"_index":1507,"t":{"204":{"position":[[536,4]]},"340":{"position":[[2452,4]]}}}],["awk",{"_index":1734,"t":{"239":{"position":[[647,3]]},"241":{"position":[[1492,3],[2573,3],[2623,3]]}}}],["b",{"_index":2591,"t":{"393":{"position":[[82,1]]}}}],["back",{"_index":1091,"t":{"134":{"position":[[6,4]]},"152":{"position":[[6,4]]},"154":{"position":[[6,4]]},"176":{"position":[[6,4]]},"182":{"position":[[6,4]]},"196":{"position":[[858,4],[1226,4]]},"198":{"position":[[419,4]]},"235":{"position":[[1317,4]]}}}],["backward",{"_index":2498,"t":{"361":{"position":[[208,9]]}}}],["bad",{"_index":1993,"t":{"268":{"position":[[260,4]]}}}],["bail",{"_index":851,"t":{"99":{"position":[[289,4],[634,4]]}}}],["balanc",{"_index":1927,"t":{"263":{"position":[[817,8]]},"294":{"position":[[641,7],[2083,7]]},"547":{"position":[[330,8]]}}}],["bandwidth",{"_index":2541,"t":{"375":{"position":[[476,10]]}}}],["bar",{"_index":1638,"t":{"231":{"position":[[242,3]]}}}],["bare",{"_index":1212,"t":{"172":{"position":[[174,4]]}}}],["base",{"_index":342,"t":{"41":{"position":[[436,5]]},"69":{"position":[[62,5]]},"95":{"position":[[64,5]]},"109":{"position":[[467,5]]},"113":{"position":[[1863,5]]},"140":{"position":[[55,6]]},"231":{"position":[[172,5]]},"255":{"position":[[444,5]]},"257":{"position":[[658,5]]},"352":{"position":[[450,5]]},"375":{"position":[[375,5],[654,5]]},"432":{"position":[[89,5]]}}}],["bash",{"_index":2580,"t":{"386":{"position":[[198,4]]}}}],["basi",{"_index":905,"t":{"107":{"position":[[351,6]]},"170":{"position":[[401,5]]}}}],["basic",{"_index":1115,"t":{"138":{"position":[[666,5]]},"200":{"position":[[513,5]]},"202":{"position":[[14,5]]},"306":{"position":[[73,5]]},"326":{"position":[[62,5]]},"365":{"position":[[215,5]]}}}],["batch",{"_index":2175,"t":{"300":{"position":[[27,5]]}}}],["be",{"_index":1289,"t":{"178":{"position":[[1333,5],[1555,5]]},"233":{"position":[[325,5],[861,5],[1933,5],[1994,5]]},"241":{"position":[[455,5]]},"259":{"position":[[275,5],[377,5]]},"261":{"position":[[82,5]]},"263":{"position":[[1439,5]]},"272":{"position":[[545,5]]},"340":{"position":[[978,5]]},"352":{"position":[[850,5],[1563,5]]},"363":{"position":[[632,5]]},"369":{"position":[[1192,5]]},"419":{"position":[[726,5]]},"590":{"position":[[195,5]]}}}],["beacon",{"_index":24,"t":{"6":{"position":[[199,6],[314,6]]},"19":{"position":[[115,6],[572,6],[883,6],[954,6],[2377,6]]},"29":{"position":[[88,6]]},"33":{"position":[[42,6],[151,6]]},"37":{"position":[[52,6],[126,6]]},"41":{"position":[[164,6]]},"55":{"position":[[71,6],[166,6],[269,6]]},"79":{"position":[[20,6]]},"81":{"position":[[15,6]]},"83":{"position":[[798,6],[1022,6],[2957,9],[9727,6],[10136,6],[10777,6],[10918,6]]},"101":{"position":[[165,6],[204,6],[450,6],[475,6]]},"164":{"position":[[41,6]]},"186":{"position":[[252,6]]},"188":{"position":[[150,7]]},"202":{"position":[[101,6],[224,6],[276,6],[404,6],[1095,6]]},"204":{"position":[[1198,8]]},"237":{"position":[[46,6],[242,6]]},"239":{"position":[[13,7],[42,9],[236,6]]},"241":{"position":[[801,7],[830,9],[954,6]]},"253":{"position":[[29,6]]},"261":{"position":[[69,6]]},"272":{"position":[[13,6]]},"278":{"position":[[51,6]]},"290":{"position":[[1243,6]]},"314":{"position":[[193,6]]},"316":{"position":[[6,6]]},"318":{"position":[[6,6],[70,6]]},"320":{"position":[[798,6],[1022,6],[2957,9]]},"322":{"position":[[85,6],[321,6],[360,6],[394,6],[805,6]]},"324":{"position":[[700,6]]},"326":{"position":[[173,6]]},"328":{"position":[[199,6],[245,6],[502,6]]},"334":{"position":[[28,6]]},"338":{"position":[[22,7],[58,6],[366,6],[776,6],[3926,6],[4030,6]]},"340":{"position":[[366,6],[526,6],[675,6],[790,6],[1066,6],[1322,6]]},"342":{"position":[[13,6],[3068,6],[3804,6]]},"348":{"position":[[40,6],[391,6]]},"350":{"position":[[322,6],[385,6]]},"355":{"position":[[188,6]]},"357":{"position":[[221,6],[319,6]]},"359":{"position":[[161,6]]},"363":{"position":[[584,6]]},"369":{"position":[[1332,6]]},"371":{"position":[[952,6]]},"373":{"position":[[51,6]]},"381":{"position":[[337,6],[392,6],[473,6],[587,6]]},"405":{"position":[[49,6]]},"417":{"position":[[66,6]]},"425":{"position":[[269,6]]},"427":{"position":[[382,6]]},"464":{"position":[[312,6],[732,6]]},"478":{"position":[[183,6],[433,6],[737,6],[1017,6],[1322,6]]},"480":{"position":[[1771,6],[2342,6]]},"486":{"position":[[5,6],[331,6]]},"488":{"position":[[972,6],[1064,6],[1123,6],[1217,6],[1564,6],[1753,6],[2190,6]]},"499":{"position":[[300,6]]},"517":{"position":[[3289,6],[3698,6],[4339,6],[4480,6]]},"521":{"position":[[218,6]]},"525":{"position":[[218,6]]},"558":{"position":[[719,6]]},"560":{"position":[[21,6],[163,6],[335,6],[637,6],[702,6],[1502,6]]},"562":{"position":[[113,6],[202,6],[335,6]]},"564":{"position":[[794,6],[886,6],[945,6],[1039,6],[1386,6],[1575,6]]},"578":{"position":[[371,6]]}}}],["beacon\",\"config\",\"debug\",\"events\",\"node\",\"validator\",\"lightcli",{"_index":532,"t":{"83":{"position":[[3066,69]]},"320":{"position":[[3066,69]]}}}],["beacon.log",{"_index":2188,"t":{"322":{"position":[[851,10]]}}}],["beacon/perf.out",{"_index":1524,"t":{"204":{"position":[[1306,17]]}}}],["beacon/valid",{"_index":2816,"t":{"480":{"position":[[2157,16]]}}}],["beacon_lodestar.log",{"_index":1304,"t":{"180":{"position":[[258,20]]}}}],["beacon_run.sh",{"_index":1456,"t":{"202":{"position":[[1158,13]]}}}],["beaconapiurl",{"_index":2027,"t":{"276":{"position":[[114,12]]},"290":{"position":[[1220,13]]}}}],["beaconcha.in",{"_index":634,"t":{"83":{"position":[[6434,13]]},"320":{"position":[[6294,13]]},"415":{"position":[[144,13],[209,12]]},"419":{"position":[[225,13]]},"517":{"position":[[5643,13]]}}}],["beaconchain_current_finalized_epoch",{"_index":2637,"t":{"429":{"position":[[388,35]]}}}],["beaconchain_current_slot",{"_index":2636,"t":{"429":{"position":[[363,24]]}}}],["beaconchain_p",{"_index":2635,"t":{"429":{"position":[[345,17]]}}}],["beaconnod",{"_index":673,"t":{"83":{"position":[[8712,12],[8749,10]]},"517":{"position":[[1781,12],[1818,10]]},"521":{"position":[[58,12],[95,10]]},"525":{"position":[[58,12],[95,10]]}}}],["beaconurl",{"_index":2112,"t":{"294":{"position":[[2348,10]]}}}],["bearer",{"_index":667,"t":{"83":{"position":[[8239,6],[8364,6]]},"517":{"position":[[1308,6],[1433,6]]}}}],["becom",{"_index":1685,"t":{"235":{"position":[[612,6]]},"268":{"position":[[1022,8]]},"324":{"position":[[430,6]]},"352":{"position":[[707,7]]}}}],["befor",{"_index":567,"t":{"83":{"position":[[3923,6]]},"93":{"position":[[490,6]]},"97":{"position":[[365,6]]},"99":{"position":[[464,6]]},"122":{"position":[[314,7]]},"126":{"position":[[111,6]]},"166":{"position":[[171,6]]},"190":{"position":[[222,7]]},"192":{"position":[[665,6]]},"194":{"position":[[0,6]]},"320":{"position":[[3710,6],[3876,6]]},"344":{"position":[[234,6]]},"432":{"position":[[1188,6],[1564,6]]},"436":{"position":[[101,6]]},"588":{"position":[[169,6]]},"590":{"position":[[206,6]]}}}],["begin",{"_index":879,"t":{"103":{"position":[[16,5]]},"210":{"position":[[121,5]]},"350":{"position":[[715,7]]},"369":{"position":[[177,6]]}}}],["behavior",{"_index":1101,"t":{"138":{"position":[[313,8]]},"294":{"position":[[899,8],[1518,8]]},"480":{"position":[[1274,8]]}}}],["behind",{"_index":1297,"t":{"178":{"position":[[2220,6]]},"342":{"position":[[3112,6],[3207,6]]},"381":{"position":[[17,6]]},"383":{"position":[[43,6]]}}}],["below",{"_index":121,"t":{"19":{"position":[[198,5]]},"27":{"position":[[87,5]]},"63":{"position":[[0,5]]},"122":{"position":[[415,5]]},"128":{"position":[[385,6]]},"172":{"position":[[446,5]]},"174":{"position":[[1288,6]]},"202":{"position":[[260,6]]},"204":{"position":[[18,5]]},"231":{"position":[[477,6]]},"237":{"position":[[151,5]]},"241":{"position":[[1885,5]]},"294":{"position":[[103,5]]},"314":{"position":[[99,5]]},"379":{"position":[[89,5]]},"395":{"position":[[84,5]]},"443":{"position":[[459,6]]},"472":{"position":[[577,6]]},"474":{"position":[[1645,6],[2485,6]]},"478":{"position":[[1701,5],[2476,6]]},"560":{"position":[[1284,6]]}}}],["belt",{"_index":1329,"t":{"190":{"position":[[295,5]]}}}],["ben",{"_index":1970,"t":{"265":{"position":[[36,3]]}}}],["benchmark",{"_index":1130,"t":{"144":{"position":[[263,9]]}}}],["benefici",{"_index":1553,"t":{"212":{"position":[[236,11]]},"355":{"position":[[363,10]]},"359":{"position":[[61,10]]}}}],["benefit",{"_index":1773,"t":{"241":{"position":[[2930,8]]}}}],["best",{"_index":893,"t":{"105":{"position":[[53,4]]},"113":{"position":[[1666,4]]},"198":{"position":[[288,4]]},"206":{"position":[[11,4]]},"231":{"position":[[6,4]]},"233":{"position":[[54,4]]},"241":{"position":[[2806,4]]},"432":{"position":[[1137,4]]}}}],["besu",{"_index":2231,"t":{"336":{"position":[[263,5]]},"432":{"position":[[797,4]]},"466":{"position":[[506,4]]},"478":{"position":[[1100,4],[1193,4]]},"480":{"position":[[444,5]]}}}],["better",{"_index":1686,"t":{"235":{"position":[[783,7]]}}}],["between",{"_index":589,"t":{"83":{"position":[[4797,7],[6509,7],[11450,7]]},"227":{"position":[[578,7],[709,7]]},"320":{"position":[[4764,7],[6369,7]]},"369":{"position":[[204,7]]},"377":{"position":[[212,7]]},"421":{"position":[[38,7]]},"476":{"position":[[638,7]]},"480":{"position":[[327,7]]},"517":{"position":[[5012,7],[5718,7]]},"560":{"position":[[3076,7]]}}}],["beyond",{"_index":2492,"t":{"352":{"position":[[1630,6]]}}}],["bid",{"_index":2726,"t":{"454":{"position":[[287,3],[386,3]]}}}],["binari",{"_index":14,"t":{"6":{"position":[[47,9]]},"45":{"position":[[56,9]]},"91":{"position":[[135,6]]},"190":{"position":[[1082,6],[1234,6],[1312,6],[1581,6],[1742,6]]},"196":{"position":[[99,6]]},"235":{"position":[[863,7]]},"237":{"position":[[924,6]]},"245":{"position":[[59,6],[1857,8]]},"253":{"position":[[375,6]]},"294":{"position":[[2207,7]]},"386":{"position":[[0,8]]},"403":{"position":[[87,8]]},"572":{"position":[[76,6]]},"583":{"position":[[54,6]]}}}],["bind",{"_index":397,"t":{"65":{"position":[[77,9]]}}}],["bindaddr4=/ip4/0.0.0.0/udp/9000",{"_index":2269,"t":{"338":{"position":[[1743,31]]},"371":{"position":[[866,31]]},"486":{"position":[[1298,31]]}}}],["bit",{"_index":1171,"t":{"156":{"position":[[1394,3],[1531,4]]},"202":{"position":[[740,3]]},"227":{"position":[[947,3]]},"245":{"position":[[86,3]]}}}],["bitcoin",{"_index":1846,"t":{"257":{"position":[[237,8]]}}}],["bl",{"_index":2926,"t":{"512":{"position":[[210,3]]},"543":{"position":[[9,3],[187,3]]},"545":{"position":[[8,3],[98,3]]},"547":{"position":[[199,3]]},"552":{"position":[[32,3]]},"574":{"position":[[47,3],[131,3],[206,3],[306,3]]},"581":{"position":[[0,3],[25,3],[55,3],[89,3],[135,3],[178,3],[227,3]]}}}],["blank",{"_index":2340,"t":{"340":{"position":[[37,5]]}}}],["blend",{"_index":2546,"t":{"375":{"position":[[943,5]]}}}],["blind",{"_index":728,"t":{"83":{"position":[[10268,7]]},"109":{"position":[[415,7]]},"517":{"position":[[3830,7]]}}}],["blindedloc",{"_index":727,"t":{"83":{"position":[[10222,13]]},"517":{"position":[[3784,13]]}}}],["blob",{"_index":571,"t":{"83":{"position":[[4034,5]]},"320":{"position":[[3987,5]]}}}],["block",{"_index":449,"t":{"83":{"position":[[447,5],[490,5],[524,5],[568,5],[608,5],[1251,5],[3579,5],[8955,6],[9517,5],[9711,5],[9791,5],[9835,6],[10023,5],[10067,6],[10163,5],[10259,5]]},"109":{"position":[[398,5],[423,5]]},"115":{"position":[[888,5]]},"128":{"position":[[164,7]]},"178":{"position":[[2413,5],[2494,5],[2575,5]]},"259":{"position":[[253,7],[407,6],[453,5],[544,6],[674,5],[1012,5]]},"268":{"position":[[592,5]]},"290":{"position":[[447,5],[490,5],[524,5],[568,5],[608,5]]},"298":{"position":[[314,5]]},"320":{"position":[[447,5],[490,5],[524,5],[568,5],[608,5],[1251,5],[3565,5]]},"322":{"position":[[281,6],[372,6]]},"338":{"position":[[2192,6],[2479,6],[2677,6],[2957,6],[3110,6],[3263,6]]},"340":{"position":[[913,5]]},"342":{"position":[[249,5],[459,6],[630,6],[816,6],[1009,6],[1208,6],[1407,6],[1603,6],[1882,6],[2034,6],[2196,6],[2358,6],[2510,6],[2662,6],[2955,6],[3280,5],[3337,5],[3448,5]]},"344":{"position":[[318,5]]},"346":{"position":[[267,5],[313,5],[369,7]]},"352":{"position":[[997,6]]},"357":{"position":[[40,6],[64,5],[120,6]]},"359":{"position":[[28,6],[221,6]]},"361":{"position":[[201,6],[360,5]]},"363":{"position":[[625,6],[754,6]]},"407":{"position":[[447,5],[490,5],[524,5],[568,5],[608,5]]},"432":{"position":[[1074,7]]},"452":{"position":[[164,7]]},"454":{"position":[[333,5]]},"464":{"position":[[855,5]]},"486":{"position":[[1747,6],[2034,6],[2232,6],[2512,6],[2665,6],[2818,6]]},"499":{"position":[[307,7]]},"517":{"position":[[447,5],[490,5],[524,5],[568,5],[608,5],[2024,6],[2359,5],[3079,5],[3273,5],[3353,5],[3397,6],[3585,5],[3629,6],[3725,5],[3821,5]]},"558":{"position":[[120,7]]},"560":{"position":[[123,5],[319,5],[399,5],[443,6],[895,5],[1167,6],[1383,6],[1559,5],[1655,5],[1817,6],[1843,5],[1879,5],[2117,5],[2177,5],[2225,5],[2403,5],[2439,5],[2623,5],[2674,6],[2822,6],[2867,5],[2896,5],[3070,5],[3127,5]]}}}],["blockchain",{"_index":346,"t":{"43":{"position":[[82,10]]},"257":{"position":[[114,10],[272,10]]},"268":{"position":[[81,10],[329,11],[532,11],[1078,10]]},"350":{"position":[[58,10]]},"352":{"position":[[159,10],[408,10],[654,10],[1356,10]]}}}],["blockresult",{"_index":996,"t":{"115":{"position":[[803,11]]}}}],["blockresult.id",{"_index":999,"t":{"115":{"position":[[894,17]]}}}],["blockroot>:_.log",{"_index":1303,"t":{"180":{"position":[[212,19]]}}}],["typescript",{"_index":6,"t":{"4":{"position":[[57,10]]},"6":{"position":[[173,10]]},"31":{"position":[[25,10]]},"51":{"position":[[31,10]]},"65":{"position":[[27,10]]},"67":{"position":[[49,10]]},"71":{"position":[[40,10]]},"93":{"position":[[201,10]]},"113":{"position":[[732,10]]},"257":{"position":[[647,10]]},"261":{"position":[[302,12]]},"280":{"position":[[1067,12]]},"576":{"position":[[37,10],[185,10]]},"578":{"position":[[220,10]]}}}],["typic",{"_index":1179,"t":{"160":{"position":[[12,7]]}}}],["typo",{"_index":881,"t":{"103":{"position":[[80,6]]}}}],["ubuntu",{"_index":2638,"t":{"432":{"position":[[82,6],[675,6]]},"436":{"position":[[125,6]]},"440":{"position":[[368,6]]},"443":{"position":[[721,7],[756,6]]},"493":{"position":[[22,6]]}}}],["udp",{"_index":640,"t":{"83":{"position":[[6692,3],[6791,3],[6893,3],[7030,3],[7111,3],[7215,3],[7886,3],[8062,3]]},"320":{"position":[[6552,3],[6651,3],[6753,3],[6890,3],[6971,3],[7075,3],[7746,3],[7922,3]]},"369":{"position":[[1014,3]]},"379":{"position":[[610,3]]},"407":{"position":[[769,3],[912,3],[1304,3],[1416,3]]}}}],["ui",{"_index":541,"t":{"83":{"position":[[3410,2]]},"122":{"position":[[158,2]]},"320":{"position":[[3410,2]]}}}],["uid",{"_index":1047,"t":{"122":{"position":[[204,3]]}}}],["ulimit",{"_index":1378,"t":{"194":{"position":[[62,6]]}}}],["unam",{"_index":1424,"t":{"200":{"position":[[332,6]]}}}],["unassign",{"_index":889,"t":{"103":{"position":[[249,10]]}}}],["under",{"_index":411,"t":{"69":{"position":[[104,5]]},"156":{"position":[[550,5]]},"194":{"position":[[463,5]]},"229":{"position":[[86,5]]},"363":{"position":[[93,5]]},"386":{"position":[[58,5]]},"391":{"position":[[543,5]]},"434":{"position":[[128,5],[249,5]]},"466":{"position":[[257,5],[298,5]]},"493":{"position":[[786,5]]}}}],["undergo",{"_index":3000,"t":{"588":{"position":[[21,9]]}}}],["underscor",{"_index":1922,"t":{"263":{"position":[[585,12],[2513,11]]}}}],["understand",{"_index":43,"t":{"6":{"position":[[408,10]]},"120":{"position":[[99,10]]},"225":{"position":[[1199,10]]},"227":{"position":[[95,13],[151,10]]},"233":{"position":[[2056,13]]},"306":{"position":[[79,13]]},"322":{"position":[[598,10]]},"357":{"position":[[355,13]]},"365":{"position":[[221,13]]}}}],["understood",{"_index":1605,"t":{"227":{"position":[[737,11]]}}}],["undesir",{"_index":2010,"t":{"268":{"position":[[920,10]]}}}],["unfilt",{"_index":1552,"t":{"212":{"position":[[218,10]]}}}],["unforgiv",{"_index":1124,"t":{"144":{"position":[[14,11]]}}}],["unfortun",{"_index":2082,"t":{"280":{"position":[[1135,13]]},"302":{"position":[[79,14]]}}}],["uniqu",{"_index":2960,"t":{"558":{"position":[[784,6]]}}}],["unit",{"_index":789,"t":{"93":{"position":[[40,4]]},"113":{"position":[[1459,4],[1720,4],[1901,4]]},"140":{"position":[[160,4],[180,4]]}}}],["unknown",{"_index":1499,"t":{"204":{"position":[[145,8]]},"212":{"position":[[427,14]]},"255":{"position":[[0,8],[164,7],[204,7]]},"363":{"position":[[124,7]]}}}],["unless",{"_index":973,"t":{"113":{"position":[[1255,6]]},"192":{"position":[[213,6]]},"476":{"position":[[49,6]]},"560":{"position":[[1390,6],[1824,6]]}}}],["unlik",{"_index":2003,"t":{"268":{"position":[[462,6]]},"352":{"position":[[179,6]]}}}],["unlimit",{"_index":1380,"t":{"194":{"position":[[72,9]]}}}],["unpin",{"_index":806,"t":{"93":{"position":[[753,8]]},"115":{"position":[[209,8]]}}}],["unpkg",{"_index":2071,"t":{"280":{"position":[[299,5]]}}}],["unrealist",{"_index":2493,"t":{"352":{"position":[[1665,15]]}}}],["unrecogn",{"_index":1067,"t":{"126":{"position":[[431,12]]}}}],["unsaf",{"_index":2779,"t":{"476":{"position":[[155,7]]}}}],["unstabl",{"_index":1044,"t":{"122":{"position":[[110,8]]},"241":{"position":[[641,8]]},"388":{"position":[[205,8]]},"462":{"position":[[106,8],[457,8]]}}}],["unsur",{"_index":878,"t":{"103":{"position":[[0,6]]}}}],["until",{"_index":935,"t":{"109":{"position":[[908,5]]},"239":{"position":[[396,5]]},"241":{"position":[[1313,5]]},"361":{"position":[[234,5]]},"403":{"position":[[153,5]]}}}],["untim",{"_index":1966,"t":{"263":{"position":[[2268,8]]}}}],["unus",{"_index":2649,"t":{"432":{"position":[[1082,6]]}}}],["unverifiedwhitelist",{"_index":2123,"t":{"298":{"position":[[131,19],[176,19]]}}}],["unwant",{"_index":2564,"t":{"381":{"position":[[194,8]]}}}],["unzip",{"_index":2624,"t":{"427":{"position":[[68,5]]}}}],["up",{"_index":130,"t":{"19":{"position":[[328,2],[512,2]]},"21":{"position":[[7,2]]},"95":{"position":[[55,2]]},"99":{"position":[[572,2]]},"101":{"position":[[198,2],[417,2]]},"144":{"position":[[157,2]]},"156":{"position":[[1443,2]]},"170":{"position":[[13,2]]},"190":{"position":[[124,2]]},"192":{"position":[[814,2]]},"231":{"position":[[278,2]]},"259":{"position":[[151,2]]},"276":{"position":[[24,2]]},"280":{"position":[[854,2]]},"334":{"position":[[14,2]]},"350":{"position":[[223,2]]},"355":{"position":[[150,2]]},"359":{"position":[[131,2]]},"365":{"position":[[372,2]]},"369":{"position":[[245,3]]},"391":{"position":[[524,2]]},"409":{"position":[[159,2]]},"415":{"position":[[183,2]]},"478":{"position":[[1617,2]]},"480":{"position":[[1676,2]]},"488":{"position":[[2226,3]]}}}],["updat",{"_index":336,"t":{"41":{"position":[[228,8]]},"103":{"position":[[130,8]]},"118":{"position":[[646,8]]},"122":{"position":[[456,7]]},"126":{"position":[[38,8]]},"134":{"position":[[64,8]]},"152":{"position":[[64,8]]},"154":{"position":[[64,8]]},"182":{"position":[[64,8]]},"192":{"position":[[445,8]]},"200":{"position":[[148,8],[415,6]]},"202":{"position":[[160,8]]},"204":{"position":[[363,6]]},"237":{"position":[[296,6]]},"241":{"position":[[1179,6]]},"243":{"position":[[73,6]]},"278":{"position":[[1141,8],[1323,8]]},"320":{"position":[[3681,6]]},"359":{"position":[[283,7]]},"411":{"position":[[25,6]]},"443":{"position":[[140,6],[714,6],[740,7],[797,6]]},"480":{"position":[[2483,6]]},"495":{"position":[[3,6]]}}}],["updateheadersonforcedupd",{"_index":2054,"t":{"278":{"position":[[874,28]]}}}],["upgrad",{"_index":1194,"t":{"166":{"position":[[187,8]]},"265":{"position":[[14,9]]},"379":{"position":[[400,9]]},"443":{"position":[[817,7]]}}}],["upload",{"_index":86,"t":{"8":{"position":[[311,6],[350,6]]},"440":{"position":[[236,6],[275,6]]}}}],["upnp",{"_index":2576,"t":{"383":{"position":[[26,5]]}}}],["upon",{"_index":2485,"t":{"352":{"position":[[960,4],[1390,4]]},"401":{"position":[[62,4]]},"541":{"position":[[79,4]]}}}],["uppercase_with_underscor",{"_index":958,"t":{"113":{"position":[[585,27]]}}}],["upsid",{"_index":1744,"t":{"241":{"position":[[474,7]]}}}],["url",{"_index":455,"t":{"83":{"position":[[686,3],[786,3],[4180,4],[4451,4],[5604,3],[11007,3]]},"231":{"position":[[238,3],[313,3]]},"290":{"position":[[1234,3]]},"294":{"position":[[431,5],[1850,5]]},"320":{"position":[[686,3],[786,3],[4147,4],[4418,4],[5479,3]]},"340":{"position":[[622,3],[1120,4],[1405,4],[1474,3]]},"348":{"position":[[200,4]]},"419":{"position":[[104,4],[670,3]]},"460":{"position":[[211,3]]},"464":{"position":[[909,4],[1018,4]]},"480":{"position":[[613,4],[2194,3]]},"517":{"position":[[4569,3]]}}}],["url=http://localhost:8661",{"_index":2259,"t":{"338":{"position":[[1211,25]]},"486":{"position":[[766,25]]}}}],["urls=http://127.0.0.1:9596",{"_index":2842,"t":{"488":{"position":[[984,26]]},"564":{"position":[[806,26]]}}}],["urls=http://localhost:8551",{"_index":2256,"t":{"338":{"position":[[1058,26],[1139,26]]},"486":{"position":[[613,26],[694,26]]}}}],["us",{"_index":17,"t":{"6":{"position":[[91,3],[128,3]]},"19":{"position":[[174,4],[408,4],[1280,6],[1440,4],[2476,3]]},"25":{"position":[[205,4]]},"35":{"position":[[78,4]]},"39":{"position":[[34,4],[137,3]]},"49":{"position":[[113,5]]},"53":{"position":[[58,4]]},"55":{"position":[[114,4],[236,4],[321,4]]},"71":{"position":[[112,4]]},"77":{"position":[[82,4]]},"79":{"position":[[57,3]]},"83":{"position":[[1788,4],[2437,3],[3731,5],[3769,4],[4303,3],[5055,4],[5217,4],[5362,4],[7643,4],[8377,4],[8865,3],[9440,4],[10753,3],[11121,4],[11329,4]]},"89":{"position":[[5,5]]},"93":{"position":[[786,4]]},"95":{"position":[[112,4]]},"99":{"position":[[267,3],[402,3]]},"111":{"position":[[138,5]]},"113":{"position":[[25,5],[391,3],[613,3],[726,5],[902,3],[1230,3],[1314,3],[1882,3]]},"115":{"position":[[242,4]]},"120":{"position":[[336,3]]},"122":{"position":[[431,3]]},"126":{"position":[[360,3],[425,5]]},"138":{"position":[[473,6],[655,3]]},"140":{"position":[[125,4]]},"148":{"position":[[292,5]]},"160":{"position":[[147,4],[211,4],[275,4]]},"162":{"position":[[161,5]]},"166":{"position":[[292,4]]},"168":{"position":[[93,3]]},"174":{"position":[[660,4]]},"178":{"position":[[23,5],[1405,3]]},"186":{"position":[[32,3],[349,5]]},"188":{"position":[[390,3]]},"190":{"position":[[1020,3],[1377,6],[1471,5]]},"194":{"position":[[602,3],[736,3]]},"196":{"position":[[939,3]]},"198":{"position":[[250,3]]},"200":{"position":[[0,3],[556,7]]},"204":{"position":[[655,3],[909,4]]},"212":{"position":[[134,7]]},"225":{"position":[[403,6],[790,3]]},"227":{"position":[[193,3]]},"229":{"position":[[198,3],[1454,3]]},"231":{"position":[[217,5]]},"235":{"position":[[139,4],[624,7],[813,5],[1855,3]]},"237":{"position":[[341,5],[514,3]]},"241":{"position":[[461,5],[763,3],[2266,4]]},"245":{"position":[[215,6]]},"268":{"position":[[743,5],[1148,3]]},"272":{"position":[[516,3]]},"280":{"position":[[15,3],[128,3],[732,4],[834,3]]},"290":{"position":[[876,3]]},"294":{"position":[[8,3],[90,3],[838,3],[911,6],[1290,6]]},"296":{"position":[[363,5]]},"302":{"position":[[3,3],[173,5]]},"320":{"position":[[1788,4],[2437,3],[4270,3],[5022,4],[5184,4],[5329,4],[7503,4]]},"328":{"position":[[311,3]]},"332":{"position":[[83,4],[136,3],[242,3]]},"336":{"position":[[17,3],[98,3],[144,3],[229,3],[269,3],[350,3],[392,3],[473,3],[513,3],[594,3]]},"338":{"position":[[282,3]]},"340":{"position":[[1853,4]]},"342":{"position":[[3891,3]]},"348":{"position":[[439,4]]},"363":{"position":[[159,4],[713,3],[815,4]]},"371":{"position":[[495,3]]},"373":{"position":[[64,3],[105,4],[200,4]]},"388":{"position":[[494,3],[617,3]]},"391":{"position":[[99,3],[399,3],[473,3],[576,5]]},"399":{"position":[[33,4]]},"403":{"position":[[81,5],[210,3]]},"407":{"position":[[1725,3]]},"411":{"position":[[94,4]]},"413":{"position":[[83,3]]},"419":{"position":[[343,6],[476,3],[639,3]]},"421":{"position":[[400,6]]},"432":{"position":[[114,5],[225,3],[443,4],[570,5]]},"438":{"position":[[235,5]]},"454":{"position":[[65,3],[309,3]]},"456":{"position":[[5,5],[187,3]]},"458":{"position":[[68,4],[81,3]]},"460":{"position":[[54,3],[367,3]]},"462":{"position":[[54,5],[90,3],[278,3],[447,5]]},"464":{"position":[[20,3],[426,5],[1003,3]]},"466":{"position":[[154,6]]},"470":{"position":[[130,4]]},"472":{"position":[[343,5],[444,3],[570,3],[832,5],[1119,5]]},"474":{"position":[[933,4],[1521,5],[1638,3],[1928,5],[2229,5]]},"476":{"position":[[16,3],[33,3],[1056,3],[1152,3]]},"478":{"position":[[771,6],[1051,6],[1364,6],[1693,3],[1851,6],[2437,5]]},"480":{"position":[[691,5],[921,3],[1181,3],[1413,5],[1481,5],[1699,5],[1845,5],[2178,3]]},"482":{"position":[[64,5]]},"484":{"position":[[152,5],[385,5]]},"490":{"position":[[39,5]]},"495":{"position":[[200,5],[355,5],[480,5]]},"497":{"position":[[739,3],[886,4]]},"501":{"position":[[670,3],[790,3]]},"504":{"position":[[180,5]]},"517":{"position":[[876,3],[1446,4],[1934,3],[2511,5],[2549,4],[2860,4],[4315,3],[4683,4],[4891,4]]},"521":{"position":[[231,3]]},"525":{"position":[[231,3]]},"552":{"position":[[45,3],[174,5]]},"554":{"position":[[35,5],[210,3]]},"556":{"position":[[288,4],[490,5],[1386,3],[1731,5]]},"558":{"position":[[272,5],[597,3]]},"560":{"position":[[72,3],[1174,5],[2065,4],[2445,5]]},"562":{"position":[[7,3]]},"576":{"position":[[69,4]]},"578":{"position":[[8,6],[102,6],[114,4]]},"588":{"position":[[128,5]]},"590":{"position":[[201,4]]}}}],["usabl",{"_index":1687,"t":{"235":{"position":[[932,7]]}}}],["usag",{"_index":292,"t":{"29":{"position":[[57,5]]},"73":{"position":[[119,5]]},"83":{"position":[[9995,5]]},"204":{"position":[[764,5]]},"225":{"position":[[1246,6]]},"227":{"position":[[88,6]]},"294":{"position":[[959,5]]},"403":{"position":[[32,6]]},"472":{"position":[[646,5]]},"474":{"position":[[1714,5]]},"517":{"position":[[3557,5]]},"560":{"position":[[1274,5]]}}}],["useless",{"_index":1688,"t":{"235":{"position":[[969,7]]}}}],["useproduceblockv3",{"_index":717,"t":{"83":{"position":[[9961,18]]},"517":{"position":[[3523,18]]}}}],["useproduceblockv3=deneb",{"_index":2847,"t":{"488":{"position":[[1329,25]]},"564":{"position":[[1151,25]]}}}],["user",{"_index":1002,"t":{"118":{"position":[[101,5],[221,6],[754,5]]},"120":{"position":[[198,4]]},"146":{"position":[[77,4]]},"156":{"position":[[1021,4]]},"235":{"position":[[309,4]]},"248":{"position":[[92,5]]},"268":{"position":[[45,5]]},"328":{"position":[[550,6]]},"391":{"position":[[493,5],[557,5]]},"401":{"position":[[287,4]]},"409":{"position":[[60,5]]},"480":{"position":[[1185,4],[1587,5],[1661,5]]},"493":{"position":[[80,5]]},"543":{"position":[[136,4]]},"554":{"position":[[107,5],[186,4]]}}}],["usernam",{"_index":915,"t":{"109":{"position":[[99,8]]}}}],["users/ninja_user/.nvm/versions/node/v22.1.0/lib/node_modules/llnode/llnode.dylib",{"_index":1376,"t":{"192":{"position":[[887,83]]},"196":{"position":[[404,83]]}}}],["users/ninja_user/coredumps/node.coredump",{"_index":1396,"t":{"196":{"position":[[211,41],[320,43]]}}}],["usr/lib/heaptrack/libheaptrack_preload.so",{"_index":1762,"t":{"241":{"position":[[1691,42]]}}}],["usr/src/lodestar/packages/cli/bin/lodestar",{"_index":1432,"t":{"202":{"position":[[55,43]]},"204":{"position":[[1153,44]]}}}],["usual",{"_index":1165,"t":{"156":{"position":[[1056,7]]},"190":{"position":[[432,7]]},"229":{"position":[[581,7]]},"324":{"position":[[338,7]]}}}],["utf8",{"_index":681,"t":{"83":{"position":[[8969,4]]},"120":{"position":[[296,4]]},"517":{"position":[[2038,4]]}}}],["util",{"_index":29,"t":{"6":{"position":[[243,7]]},"53":{"position":[[20,4],[42,7]]},"59":{"position":[[33,9]]},"371":{"position":[[55,8]]},"425":{"position":[[125,9]]},"432":{"position":[[32,7]]},"464":{"position":[[350,9]]},"527":{"position":[[255,8]]},"550":{"position":[[43,9]]},"574":{"position":[[276,7]]},"581":{"position":[[148,7]]}}}],["utmost",{"_index":2362,"t":{"342":{"position":[[60,6]]}}}],["uv_",{"_index":1557,"t":{"212":{"position":[[347,4]]}}}],["v",{"_index":1733,"t":{"239":{"position":[[638,1]]},"241":{"position":[[1483,1]]},"388":{"position":[[358,1]]}}}],["v0",{"_index":2126,"t":{"298":{"position":[[341,2],[367,2],[650,2],[671,2],[1105,2],[1173,2],[1192,2],[1430,2],[1452,2]]}}}],["v1",{"_index":2136,"t":{"298":{"position":[[565,2],[715,2],[745,2],[944,2],[1127,2]]}}}],["v1.4",{"_index":2725,"t":{"454":{"position":[[253,5]]}}}],["v2",{"_index":2129,"t":{"298":{"position":[[407,2],[449,2],[483,2],[519,2],[583,2],[697,2],[765,2],[792,2],[816,2],[853,2],[878,2],[904,2],[927,2],[1156,2],[1284,2],[1327,2],[1372,2],[1403,2]]}}}],["v22",{"_index":2587,"t":{"391":{"position":[[130,4]]}}}],["v22.04",{"_index":2645,"t":{"432":{"position":[[682,6]]},"436":{"position":[[139,6]]}}}],["v22.1.0",{"_index":1704,"t":{"237":{"position":[[570,7]]}}}],["v5",{"_index":403,"t":{"67":{"position":[[113,3]]}}}],["v8",{"_index":1405,"t":{"196":{"position":[[920,2],[1331,2],[1411,2]]},"200":{"position":[[713,2]]},"202":{"position":[[444,2],[2564,2]]},"212":{"position":[[61,2]]},"225":{"position":[[922,2]]},"227":{"position":[[18,2],[232,2],[966,4]]},"229":{"position":[[603,2]]}}}],["v8.log",{"_index":1464,"t":{"202":{"position":[[1298,6],[1381,6],[1463,6],[1546,6],[1629,6],[1711,6],[1794,6],[1877,6],[1960,6],[2043,6],[2126,6],[2209,6],[2292,6],[2375,6],[2458,6],[2533,6]]}}}],["v8::intern",{"_index":1559,"t":{"212":{"position":[[366,15]]}}}],["valgrind",{"_index":1675,"t":{"235":{"position":[[213,8],[398,9],[588,8]]}}}],["valid",{"_index":118,"t":{"19":{"position":[[142,11],[606,10],[1678,10],[1996,10],[2080,10],[2176,10]]},"29":{"position":[[104,10]]},"61":{"position":[[33,9],[160,9],[191,9],[326,9]]},"79":{"position":[[45,11]]},"81":{"position":[[42,10]]},"83":{"position":[[2063,9],[3040,12],[3717,9],[7554,9],[8826,10],[9084,9],[10111,11],[10396,9],[10432,10],[11099,9],[11285,8],[11634,9],[11821,10],[11906,10],[12089,9]]},"101":{"position":[[220,10]]},"109":{"position":[[715,9]]},"158":{"position":[[141,5]]},"164":{"position":[[57,9]]},"168":{"position":[[56,10]]},"174":{"position":[[805,11],[821,11]]},"180":{"position":[[374,9]]},"259":{"position":[[42,10],[105,10],[227,10],[482,10],[532,8],[569,11],[996,11]]},"263":{"position":[[804,10],[1775,8]]},"268":{"position":[[419,10]]},"314":{"position":[[209,9]]},"320":{"position":[[2063,9],[3040,12],[3662,9],[3694,9],[7414,9]]},"322":{"position":[[440,9],[1100,9],[1196,9]]},"324":{"position":[[209,9]]},"338":{"position":[[790,5]]},"340":{"position":[[1584,8]]},"342":{"position":[[3371,5]]},"344":{"position":[[252,10]]},"346":{"position":[[143,9],[211,9]]},"348":{"position":[[218,9],[402,10]]},"352":{"position":[[503,11],[1479,10]]},"381":{"position":[[510,9],[623,9]]},"417":{"position":[[82,9]]},"419":{"position":[[577,11]]},"432":{"position":[[1173,9]]},"436":{"position":[[400,9]]},"450":{"position":[[125,11]]},"452":{"position":[[27,11],[57,10],[277,9],[643,11]]},"454":{"position":[[36,10],[131,10]]},"460":{"position":[[29,10]]},"468":{"position":[[68,11]]},"470":{"position":[[202,11],[228,9]]},"472":{"position":[[21,10],[266,9]]},"474":{"position":[[31,10],[215,9],[255,9],[480,9],[548,9],[669,9],[827,9],[980,11],[1006,9],[1430,9],[2382,10]]},"476":{"position":[[63,10],[194,10]]},"478":{"position":[[203,10],[453,10],[754,9],[1034,9],[1339,9],[1631,9],[1655,9],[1739,9],[1775,9],[1799,9],[1826,9]]},"480":{"position":[[1396,9],[1688,10],[1828,9],[2398,10]]},"486":{"position":[[345,5]]},"488":{"position":[[29,11],[59,9],[95,9],[196,10],[278,9],[1139,9],[1233,9],[1319,9],[1546,9],[1735,9],[1924,9],[2167,9]]},"497":{"position":[[207,8]]},"499":{"position":[[163,9],[211,9],[534,9]]},"501":{"position":[[72,9],[154,9],[289,9]]},"504":{"position":[[100,9],[324,9]]},"510":{"position":[[20,9]]},"512":{"position":[[50,9],[69,9],[106,9],[143,9],[160,9],[175,9],[200,9]]},"515":{"position":[[8,9],[105,9]]},"517":{"position":[[1895,10],[2153,9],[2497,9],[3673,11],[3958,9],[3994,10],[4661,9],[4847,8],[5196,9]]},"527":{"position":[[55,9]]},"529":{"position":[[7,9],[95,9]]},"531":{"position":[[121,9],[157,10]]},"533":{"position":[[29,10]]},"535":{"position":[[9,9],[62,9]]},"537":{"position":[[45,10],[128,10]]},"539":{"position":[[33,9],[81,9],[173,9],[265,9]]},"543":{"position":[[45,9],[147,9]]},"545":{"position":[[40,9],[88,9]]},"547":{"position":[[69,9]]},"550":{"position":[[66,9]]},"552":{"position":[[0,10],[145,9],[193,9]]},"554":{"position":[[359,10]]},"556":{"position":[[12,9],[500,9],[614,9],[710,9],[1343,10],[1394,9],[1458,10],[1503,9],[1588,9],[1618,9]]},"558":{"position":[[29,10],[228,9],[847,9]]},"560":{"position":[[82,9],[571,9],[750,9],[2086,10],[2552,5],[3021,9]]},"564":{"position":[[20,9],[58,9],[961,9],[1055,9],[1141,9],[1368,9],[1557,9],[1746,9]]}}}],["valid(17088105",{"_index":2381,"t":{"342":{"position":[[823,14],[1016,14]]}}}],["valid(17088167",{"_index":2391,"t":{"342":{"position":[[1215,14]]}}}],["valid(17088231",{"_index":2400,"t":{"342":{"position":[[1414,14]]}}}],["valid(17088475",{"_index":2408,"t":{"342":{"position":[[1610,14]]}}}],["valid(17088521",{"_index":2416,"t":{"342":{"position":[[1889,14]]}}}],["valid(17088522",{"_index":2423,"t":{"342":{"position":[[2041,14]]}}}],["valid(17088524",{"_index":2428,"t":{"342":{"position":[[2203,14],[2365,14]]}}}],["valid(17088526",{"_index":2435,"t":{"342":{"position":[[2517,14]]}}}],["valid(17088527",{"_index":2440,"t":{"342":{"position":[[2669,14]]}}}],["valid(20426365",{"_index":2297,"t":{"338":{"position":[[2486,14]]},"486":{"position":[[2041,14]]}}}],["valid(20426841",{"_index":2306,"t":{"338":{"position":[[2684,14]]},"486":{"position":[[2239,14]]}}}],["valid(20426886",{"_index":2316,"t":{"338":{"position":[[2964,14]]},"486":{"position":[[2519,14]]}}}],["valid(20426887",{"_index":2323,"t":{"338":{"position":[[3117,14]]},"486":{"position":[[2672,14]]}}}],["valid(20426888",{"_index":2329,"t":{"338":{"position":[[3270,14]]},"486":{"position":[[2825,14]]}}}],["validator'",{"_index":693,"t":{"83":{"position":[[9270,11]]},"470":{"position":[[94,11]]},"474":{"position":[[897,11]]},"517":{"position":[[2690,11]]},"547":{"position":[[318,11]]}}}],["validator(",{"_index":2620,"t":{"423":{"position":[[194,12]]}}}],["validator.log",{"_index":2193,"t":{"322":{"position":[[1149,13]]}}}],["validator_key",{"_index":2958,"t":{"556":{"position":[[649,16],[745,16],[883,14],[1148,14],[1646,16]]}}}],["validatorindex=1234567",{"_index":2853,"t":{"488":{"position":[[1577,23]]},"564":{"position":[[1399,23]]}}}],["validatorindex=1234568",{"_index":2855,"t":{"488":{"position":[[1766,23]]},"564":{"position":[[1588,23]]}}}],["validatormonitorlog",{"_index":502,"t":{"83":{"position":[[2037,21]]},"320":{"position":[[2037,21]]}}}],["validatorsdbdir",{"_index":2194,"t":{"322":{"position":[[1224,15]]}}}],["validatorset1",{"_index":2768,"t":{"474":{"position":[[337,13],[760,13],[806,13]]}}}],["validatorset2",{"_index":2769,"t":{"474":{"position":[[384,13],[2341,13]]}}}],["valu",{"_index":192,"t":{"19":{"position":[[1419,6],[1747,6],[1943,6],[2153,5],[2231,6],[2450,6]]},"83":{"position":[[9797,5]]},"113":{"position":[[703,5]]},"160":{"position":[[20,6]]},"178":{"position":[[1882,5],[2236,5]]},"227":{"position":[[652,6],[839,6]]},"229":{"position":[[734,5],[766,5],[815,5],[901,5]]},"250":{"position":[[83,5]]},"253":{"position":[[165,6]]},"342":{"position":[[2773,7]]},"371":{"position":[[152,5]]},"421":{"position":[[152,5]]},"517":{"position":[[3359,5]]},"541":{"position":[[126,5]]},"560":{"position":[[405,5],[931,5],[1015,5],[2504,5],[2643,5]]}}}],["var",{"_index":2733,"t":{"456":{"position":[[59,5],[207,6]]},"476":{"position":[[279,5]]},"480":{"position":[[543,5],[1924,4],[2059,4]]}}}],["var/lib/goethereum/geth/chaindata/383234.ldb",{"_index":2868,"t":{"493":{"position":[[228,46]]}}}],["vari",{"_index":1784,"t":{"245":{"position":[[252,5]]}}}],["variabl",{"_index":954,"t":{"113":{"position":[[504,9],[1772,9]]},"120":{"position":[[382,9]]},"138":{"position":[[291,9],[354,8]]},"158":{"position":[[203,9]]},"235":{"position":[[1480,9]]},"253":{"position":[[310,8]]},"255":{"position":[[57,9],[423,9]]},"458":{"position":[[27,9]]},"460":{"position":[[220,8]]},"480":{"position":[[2218,8]]}}}],["varieti",{"_index":1909,"t":{"263":{"position":[[269,7]]},"409":{"position":[[116,7]]}}}],["variou",{"_index":270,"t":{"25":{"position":[[25,7]]},"55":{"position":[[218,7]]},"59":{"position":[[25,7],[69,7]]},"142":{"position":[[63,7]]},"156":{"position":[[358,7]]},"162":{"position":[[167,7]]},"164":{"position":[[16,7]]},"172":{"position":[[237,7],[629,7],[764,7],[850,7],[904,7]]},"174":{"position":[[602,7]]},"263":{"position":[[849,7]]},"365":{"position":[[246,7]]},"379":{"position":[[221,7],[736,7]]},"411":{"position":[[121,7]]}}}],["verb",{"_index":1407,"t":{"196":{"position":[[1182,4]]}}}],["verbiag",{"_index":882,"t":{"103":{"position":[[95,8]]}}}],["verbos",{"_index":510,"t":{"83":{"position":[[2239,9],[2332,10],[2496,9],[2585,10]]},"118":{"position":[[924,8]]},"290":{"position":[[678,9],[771,10],[935,9],[1024,10]]},"320":{"position":[[2239,9],[2332,10],[2496,9],[2585,10]]},"407":{"position":[[1527,9],[1620,10],[1784,9],[1873,10]]},"517":{"position":[[678,9],[771,10],[935,9],[1024,10]]}}}],["veri",{"_index":839,"t":{"97":{"position":[[356,4]]},"138":{"position":[[468,4]]},"156":{"position":[[246,4],[410,4]]},"190":{"position":[[255,4]]},"202":{"position":[[638,4]]},"227":{"position":[[48,4]]},"233":{"position":[[423,4],[696,4]]},"245":{"position":[[156,4]]},"324":{"position":[[346,4]]}}}],["verif",{"_index":366,"t":{"49":{"position":[[58,12]]},"348":{"position":[[687,12]]}}}],["verifi",{"_index":1186,"t":{"162":{"position":[[79,8]]},"268":{"position":[[626,6]]},"292":{"position":[[80,6]]},"294":{"position":[[809,6]]},"340":{"position":[[955,6]]},"361":{"position":[[109,6],[264,9],[377,8]]},"427":{"position":[[497,6]]},"464":{"position":[[138,6],[638,9],[771,6]]},"478":{"position":[[551,8]]},"488":{"position":[[1104,8],[1198,8]]},"564":{"position":[[926,8],[1020,8]]},"574":{"position":[[58,6],[142,6]]},"578":{"position":[[490,6]]},"581":{"position":[[36,6]]}}}],["versa",{"_index":1198,"t":{"168":{"position":[[76,6]]}}}],["version",{"_index":341,"t":{"41":{"position":[[354,7]]},"93":{"position":[[762,8]]},"115":{"position":[[218,8]]},"128":{"position":[[814,7],[860,7]]},"190":{"position":[[908,7],[1494,7],[1662,7]]},"196":{"position":[[1004,8]]},"237":{"position":[[528,7],[637,7],[682,7],[797,7],[848,7]]},"245":{"position":[[1065,7]]},"250":{"position":[[119,8]]},"280":{"position":[[221,8]]},"298":{"position":[[306,7]]},"344":{"position":[[488,8]]},"352":{"position":[[639,7]]},"361":{"position":[[16,7]]},"386":{"position":[[132,7]]},"388":{"position":[[412,7]]},"391":{"position":[[78,7],[111,7],[158,8],[307,7],[382,9],[422,7]]},"462":{"position":[[293,7],[343,8],[508,8]]},"588":{"position":[[161,7]]}}}],["version=v1.16.0/6ad9740",{"_index":2830,"t":{"488":{"position":[[379,24]]},"564":{"position":[[201,24]]}}}],["version=v1.21.0/ff35faa",{"_index":2243,"t":{"338":{"position":[[575,24]]},"486":{"position":[[130,24]]}}}],["version_codenam",{"_index":2701,"t":{"443":{"position":[[624,20]]}}}],["versu",{"_index":1695,"t":{"235":{"position":[[1413,6]]}}}],["vg/ubuntu",{"_index":2875,"t":{"493":{"position":[[532,9],[582,9],[627,9]]}}}],["via",{"_index":172,"t":{"19":{"position":[[1050,3],[1185,3],[2689,3],[3126,3]]},"43":{"position":[[121,3]]},"83":{"position":[[4275,3]]},"89":{"position":[[102,3]]},"95":{"position":[[165,3]]},"122":{"position":[[146,3]]},"170":{"position":[[140,3]]},"172":{"position":[[200,3]]},"174":{"position":[[581,3],[751,3]]},"192":{"position":[[488,3]]},"204":{"position":[[434,3]]},"225":{"position":[[1083,3]]},"241":{"position":[[1771,3],[2039,3]]},"245":{"position":[[332,3]]},"253":{"position":[[277,3]]},"320":{"position":[[4242,3]]},"340":{"position":[[241,3]]},"348":{"position":[[127,3],[578,3]]},"350":{"position":[[583,3]]},"361":{"position":[[157,3]]},"365":{"position":[[158,3]]},"369":{"position":[[317,3],[1010,3],[1088,3]]},"371":{"position":[[675,3]]},"377":{"position":[[276,3]]},"432":{"position":[[187,3]]},"499":{"position":[[375,3]]},"508":{"position":[[253,3]]},"537":{"position":[[70,3]]},"543":{"position":[[70,3]]},"556":{"position":[[53,3]]},"558":{"position":[[945,3]]},"560":{"position":[[1979,3]]}}}],["viabl",{"_index":2442,"t":{"342":{"position":[[2915,6]]}}}],["vice",{"_index":1197,"t":{"168":{"position":[[71,4]]}}}],["view",{"_index":34,"t":{"6":{"position":[[296,4]]},"206":{"position":[[163,4]]},"456":{"position":[[161,4]]},"464":{"position":[[694,4]]}}}],["viewer",{"_index":2531,"t":{"371":{"position":[[1017,6]]}}}],["virgil",{"_index":1980,"t":{"265":{"position":[[198,6]]}}}],["virtual",{"_index":1125,"t":{"144":{"position":[[26,7]]},"196":{"position":[[833,7]]},"200":{"position":[[574,7]]},"202":{"position":[[561,7]]}}}],["visual",{"_index":1048,"t":{"122":{"position":[[225,8],[297,6]]}}}],["vital",{"_index":2489,"t":{"352":{"position":[[1436,5]]}}}],["vitalik",{"_index":1849,"t":{"257":{"position":[[353,7]]},"265":{"position":[[178,7]]}}}],["vitalik'",{"_index":2343,"t":{"340":{"position":[[286,9]]}}}],["vite",{"_index":2068,"t":{"280":{"position":[[108,5]]}}}],["vitest",{"_index":373,"t":{"53":{"position":[[30,6]]},"97":{"position":[[7,8],[595,7],[642,6],[682,6]]},"99":{"position":[[619,6]]},"138":{"position":[[659,6]]}}}],["vitest'",{"_index":850,"t":{"99":{"position":[[271,8],[406,8]]}}}],["vitest.spec.config.t",{"_index":861,"t":{"99":{"position":[[650,21]]}}}],["vm",{"_index":1416,"t":{"200":{"position":[[131,2]]},"202":{"position":[[845,2]]},"227":{"position":[[402,2]]}}}],["volum",{"_index":2680,"t":{"440":{"position":[[483,7]]},"480":{"position":[[69,8]]},"493":{"position":[[477,6]]}}}],["voluntari",{"_index":2925,"t":{"512":{"position":[[185,9]]},"537":{"position":[[11,9]]},"539":{"position":[[10,9],[91,9],[150,9],[275,9]]},"541":{"position":[[104,9]]}}}],["vote",{"_index":1299,"t":{"178":{"position":[[2394,5],[2473,5],[2554,5]]},"259":{"position":[[518,6],[710,6]]},"322":{"position":[[1723,6],[1812,6]]}}}],["vs",{"_index":825,"t":{"95":{"position":[[157,2]]},"99":{"position":[[132,2]]},"186":{"position":[[183,2],[294,2]]},"188":{"position":[[394,2]]},"560":{"position":[[138,3]]}}}],["vscode/launch.json",{"_index":1310,"t":{"186":{"position":[[99,19]]}}}],["vulner",{"_index":3003,"t":{"590":{"position":[[16,13],[117,14],[181,13]]}}}],["wagyu",{"_index":2952,"t":{"554":{"position":[[229,5]]}}}],["wait",{"_index":1727,"t":{"239":{"position":[[299,4]]},"241":{"position":[[1017,4],[1830,4]]},"278":{"position":[[919,4]]},"464":{"position":[[467,4]]},"480":{"position":[[979,5],[1158,4]]}}}],["walk",{"_index":1412,"t":{"198":{"position":[[59,4]]},"227":{"position":[[281,7],[442,5],[627,6]]}}}],["wallet",{"_index":2185,"t":{"322":{"position":[[209,6]]}}}],["want",{"_index":177,"t":{"19":{"position":[[1118,4]]},"103":{"position":[[324,8]]},"113":{"position":[[1281,4]]},"194":{"position":[[562,4]]},"225":{"position":[[43,4]]},"239":{"position":[[502,4]]},"280":{"position":[[7,4]]},"294":{"position":[[1013,4],[1115,4]]},"452":{"position":[[698,4]]},"454":{"position":[[443,4]]},"458":{"position":[[50,4]]},"460":{"position":[[102,4],[359,4]]},"472":{"position":[[7,4]]},"474":{"position":[[17,4]]},"476":{"position":[[180,4],[323,4]]},"480":{"position":[[393,4],[505,4],[1326,4]]}}}],["warn",{"_index":514,"t":{"83":{"position":[[2316,7],[2569,7]]},"118":{"position":[[302,5]]},"200":{"position":[[94,7]]},"241":{"position":[[555,7],[601,8],[755,7]]},"290":{"position":[[755,7],[1008,7]]},"320":{"position":[[2316,7],[2569,7]]},"338":{"position":[[3887,7]]},"340":{"position":[[1410,7]]},"407":{"position":[[1604,7],[1857,7]]},"432":{"position":[[1223,7]]},"448":{"position":[[440,8]]},"452":{"position":[[0,7]]},"462":{"position":[[416,7]]},"476":{"position":[[0,7]]},"478":{"position":[[1590,7]]},"504":{"position":[[0,7]]},"517":{"position":[[755,7],[1008,7]]},"554":{"position":[[298,7]]},"556":{"position":[[1704,7]]}}}],["warrant",{"_index":2881,"t":{"497":{"position":[[125,7]]}}}],["warranti",{"_index":2884,"t":{"497":{"position":[[303,8],[434,10],[468,10]]}}}],["way",{"_index":1147,"t":{"156":{"position":[[157,3],[633,3]]},"170":{"position":[[183,3]]},"186":{"position":[[13,3]]},"192":{"position":[[110,3]]},"198":{"position":[[193,5]]},"227":{"position":[[528,4]]},"233":{"position":[[59,3]]},"235":{"position":[[1259,3],[1304,3]]},"245":{"position":[[205,3]]},"253":{"position":[[254,3]]},"268":{"position":[[361,3]]},"294":{"position":[[40,5]]},"361":{"position":[[420,4]]},"423":{"position":[[158,3]]}}}],["we'r",{"_index":936,"t":{"111":{"position":[[0,5],[132,5]]}}}],["weak",{"_index":461,"t":{"83":{"position":[[824,4],[1062,4],[1195,4],[1369,4],[1562,4],[1626,4]]},"320":{"position":[[824,4],[1062,4],[1195,4],[1369,4],[1562,4],[1626,4]]},"340":{"position":[[121,4],[262,4],[325,4],[2123,4]]},"352":{"position":[[0,4],[689,4],[889,5],[1278,4]]},"464":{"position":[[264,4]]}}}],["web",{"_index":1045,"t":{"122":{"position":[[154,3]]},"280":{"position":[[1094,3]]},"369":{"position":[[650,3]]}}}],["web3",{"_index":364,"t":{"49":{"position":[[22,4]]},"294":{"position":[[51,4],[125,4],[135,7],[546,4],[1544,4],[1554,7],[1988,4]]},"296":{"position":[[46,4]]}}}],["web3(provid",{"_index":2101,"t":{"294":{"position":[[557,15],[1999,15]]}}}],["web3.eth.getbalance(address",{"_index":2103,"t":{"294":{"position":[[657,28],[2099,28]]}}}],["web3.j",{"_index":2114,"t":{"296":{"position":[[208,8]]}}}],["web3.providers.httpprovider(\"https://lodestar",{"_index":2095,"t":{"294":{"position":[[247,45],[1666,45]]}}}],["web3sign",{"_index":2901,"t":{"499":{"position":[[61,11]]}}}],["webpack",{"_index":2067,"t":{"280":{"position":[[99,8]]}}}],["websit",{"_index":2025,"t":{"272":{"position":[[451,8]]}}}],["week",{"_index":1964,"t":{"263":{"position":[[2157,5]]},"324":{"position":[[172,4]]}}}],["weekli",{"_index":1088,"t":{"130":{"position":[[49,6]]}}}],["welcom",{"_index":2178,"t":{"314":{"position":[[0,8]]}}}],["well",{"_index":305,"t":{"33":{"position":[[228,5]]},"113":{"position":[[261,6]]},"190":{"position":[[349,4]]},"227":{"position":[[732,4]]},"245":{"position":[[116,4],[161,5]]},"363":{"position":[[276,4]]},"554":{"position":[[373,4]]}}}],["went",{"_index":1853,"t":{"257":{"position":[[423,4]]}}}],["wherebi",{"_index":1904,"t":{"263":{"position":[[85,7]]}}}],["whether",{"_index":493,"t":{"83":{"position":[[1833,7],[4112,7]]},"320":{"position":[[1833,7],[4065,7]]},"342":{"position":[[3349,7]]},"407":{"position":[[1157,7]]},"497":{"position":[[945,7]]}}}],["whichev",{"_index":1703,"t":{"237":{"position":[[518,9]]}}}],["white",{"_index":975,"t":{"113":{"position":[[1385,5]]}}}],["whole",{"_index":30,"t":{"6":{"position":[[255,5]]},"146":{"position":[[118,5]]},"190":{"position":[[142,5]]},"204":{"position":[[546,5]]},"227":{"position":[[613,5]]},"274":{"position":[[71,5]]},"308":{"position":[[71,5]]}}}],["wide",{"_index":1913,"t":{"263":{"position":[[354,4]]},"268":{"position":[[1134,4]]}}}],["wild",{"_index":1151,"t":{"156":{"position":[[230,5]]}}}],["window",{"_index":616,"t":{"83":{"position":[[5810,6]]},"231":{"position":[[433,6]]},"280":{"position":[[530,7]]},"320":{"position":[[5685,6]]}}}],["window.addeventlistener(\"domcontentload",{"_index":2079,"t":{"280":{"position":[[898,43]]}}}],["window.ethereum",{"_index":2109,"t":{"294":{"position":[[1390,16]]}}}],["window.lodestar.lightcli",{"_index":2076,"t":{"280":{"position":[[568,28],[1017,27]]}}}],["window.lodestar.lightclient.transport",{"_index":2077,"t":{"280":{"position":[[664,38]]}}}],["wip",{"_index":560,"t":{"83":{"position":[[3690,5]]},"517":{"position":[[2470,5]]}}}],["wire",{"_index":743,"t":{"83":{"position":[[10738,4],[10882,4]]},"517":{"position":[[4300,4],[4444,4]]}}}],["wish",{"_index":2784,"t":{"476":{"position":[[704,4]]}}}],["withdraw",{"_index":2944,"t":{"547":{"position":[[107,10],[141,11],[203,11]]}}}],["withdrawn",{"_index":2946,"t":{"547":{"position":[[357,10]]}}}],["within",{"_index":475,"t":{"83":{"position":[[1362,6]]},"109":{"position":[[839,6]]},"178":{"position":[[1483,6]]},"225":{"position":[[962,6]]},"320":{"position":[[1362,6]]},"340":{"position":[[695,6],[2112,6]]},"352":{"position":[[937,6]]},"359":{"position":[[35,6],[228,6]]},"446":{"position":[[42,6]]},"464":{"position":[[332,6]]},"472":{"position":[[926,6]]},"474":{"position":[[2036,6]]}}}],["withmevboost",{"_index":2796,"t":{"478":{"position":[[1293,12]]},"480":{"position":[[1937,12]]}}}],["without",{"_index":204,"t":{"19":{"position":[[1657,7]]},"99":{"position":[[62,7]]},"122":{"position":[[182,7]]},"194":{"position":[[673,7]]},"217":{"position":[[357,7]]},"235":{"position":[[977,7],[1048,7]]},"241":{"position":[[179,7],[2378,7],[2873,7]]},"268":{"position":[[735,7]]},"298":{"position":[[58,7]]},"352":{"position":[[1199,7]]},"355":{"position":[[96,7]]},"375":{"position":[[458,7]]},"497":{"position":[[295,7],[361,7]]},"499":{"position":[[191,7]]},"560":{"position":[[2565,7]]}}}],["withstand",{"_index":1920,"t":{"263":{"position":[[562,9]]}}}],["withtermin",{"_index":2791,"t":{"478":{"position":[[366,12]]},"480":{"position":[[795,12]]}}}],["withvalidatorkeystor",{"_index":2795,"t":{"478":{"position":[[1246,21],[1532,21],[2019,21]]},"480":{"position":[[1354,21],[1499,21]]}}}],["withvalidatormnemon",{"_index":2794,"t":{"478":{"position":[[956,21]]},"480":{"position":[[1455,22],[1707,21],[1786,21]]}}}],["wood",{"_index":1977,"t":{"265":{"position":[[101,4]]}}}],["word",{"_index":1066,"t":{"126":{"position":[[375,4],[444,5],[486,4]]}}}],["work",{"_index":125,"t":{"19":{"position":[[249,5]]},"41":{"position":[[290,6]]},"142":{"position":[[138,4]]},"146":{"position":[[124,5]]},"148":{"position":[[175,4]]},"156":{"position":[[302,4],[390,4],[672,8],[1290,5]]},"164":{"position":[[78,7]]},"190":{"position":[[1693,4]]},"192":{"position":[[376,4]]},"194":{"position":[[422,5]]},"196":{"position":[[666,7]]},"229":{"position":[[1396,7]]},"233":{"position":[[1485,7]]},"241":{"position":[[2696,7],[2782,4]]},"245":{"position":[[150,5],[275,6],[481,7]]},"257":{"position":[[558,7]]},"259":{"position":[[86,4]]},"322":{"position":[[140,4]]},"352":{"position":[[198,4],[473,4]]},"365":{"position":[[279,4]]},"443":{"position":[[1135,7]]}}}],["workaround",{"_index":1364,"t":{"192":{"position":[[458,10]]},"245":{"position":[[1149,10]]},"280":{"position":[[1279,10]]}}}],["worker",{"_index":357,"t":{"45":{"position":[[88,6]]},"186":{"position":[[321,7]]},"188":{"position":[[211,7],[296,6]]},"338":{"position":[[997,6],[1299,6],[1355,6],[1471,6]]},"369":{"position":[[1239,8]]},"371":{"position":[[795,6]]},"486":{"position":[[552,6],[854,6],[910,6],[1026,6]]}}}],["workspac",{"_index":1191,"t":{"162":{"position":[[363,9]]},"164":{"position":[[104,9]]},"168":{"position":[[118,9]]}}}],["world",{"_index":1600,"t":{"227":{"position":[[259,5]]},"344":{"position":[[589,5]]},"348":{"position":[[572,5]]},"443":{"position":[[1031,5]]}}}],["worth",{"_index":1781,"t":{"245":{"position":[[121,5]]}}}],["wrapper",{"_index":394,"t":{"65":{"position":[[38,7]]},"225":{"position":[[1135,8]]}}}],["write",{"_index":314,"t":{"37":{"position":[[109,5]]},"192":{"position":[[551,7]]},"229":{"position":[[265,6]]},"245":{"position":[[15,7]]},"493":{"position":[[222,5]]}}}],["written",{"_index":919,"t":{"109":{"position":[[265,7]]},"229":{"position":[[1305,8],[1373,7]]},"241":{"position":[[1623,7]]},"504":{"position":[[216,7]]}}}],["wrong",{"_index":836,"t":{"97":{"position":[[234,5]]},"115":{"position":[[881,6]]},"340":{"position":[[1497,5]]}}}],["wscheckpoint",{"_index":2100,"t":{"294":{"position":[[500,13],[1919,13]]}}}],["wsscheckpoint",{"_index":464,"t":{"83":{"position":[[895,13],[1001,14]]},"320":{"position":[[895,13],[1001,14]]},"340":{"position":[[1128,13],[1274,14],[1598,13]]},"363":{"position":[[891,13]]}}}],["x",{"_index":1453,"t":{"202":{"position":[[1126,1],[1181,1]]},"229":{"position":[[1487,1]]},"450":{"position":[[150,1]]},"452":{"position":[[734,1]]},"454":{"position":[[557,1]]},"464":{"position":[[1151,1]]},"466":{"position":[[615,1]]},"470":{"position":[[445,1]]},"474":{"position":[[1223,1]]},"476":{"position":[[1207,1]]}}}],["x.json",{"_index":2758,"t":{"472":{"position":[[612,7],[710,6]]},"474":{"position":[[1680,7],[1778,6]]}}}],["x64",{"_index":2646,"t":{"432":{"position":[[695,3]]}}}],["x86_64",{"_index":1399,"t":{"196":{"position":[[364,8]]}}}],["xarg",{"_index":1737,"t":{"239":{"position":[[678,5]]},"241":{"position":[[2676,5]]}}}],["xcode",{"_index":1359,"t":{"192":{"position":[[240,5]]}}}],["xdg_data_home/lodestar/$network_nam",{"_index":2332,"t":{"338":{"position":[[3563,38]]}}}],["xr",{"_index":1458,"t":{"202":{"position":[[1178,2]]}}}],["xxxx",{"_index":2585,"t":{"388":{"position":[[420,5],[432,5]]}}}],["xxxxx.json",{"_index":2764,"t":{"472":{"position":[[1078,10]]},"474":{"position":[[2188,10]]}}}],["y",{"_index":1701,"t":{"237":{"position":[[319,1]]},"241":{"position":[[1210,1]]},"243":{"position":[[104,1]]},"443":{"position":[[826,1]]},"450":{"position":[[157,1]]},"452":{"position":[[741,1]]},"454":{"position":[[564,1]]},"464":{"position":[[1158,1]]},"466":{"position":[[622,1]]},"470":{"position":[[452,1]]},"474":{"position":[[1230,1]]},"476":{"position":[[1214,1]]}}}],["yaml",{"_index":447,"t":{"83":{"position":[[370,6],[9038,4]]},"290":{"position":[[370,6]]},"320":{"position":[[370,6]]},"407":{"position":[[370,6]]},"504":{"position":[[227,4]]},"508":{"position":[[54,4]]},"517":{"position":[[370,6],[2107,4]]}}}],["yamux",{"_index":416,"t":{"73":{"position":[[21,5],[73,5]]},"568":{"position":[[143,5]]}}}],["yarn",{"_index":776,"t":{"87":{"position":[[18,4]]},"91":{"position":[[48,4],[84,4]]},"93":{"position":[[21,4],[59,4],[102,4],[140,4],[175,4],[226,4],[465,4],[505,4]]},"97":{"position":[[677,4]]},"99":{"position":[[614,4]]},"107":{"position":[[225,5],[240,4]]},"113":{"position":[[444,4],[944,4],[1031,4]]},"126":{"position":[[172,4],[241,4]]},"136":{"position":[[74,4]]},"162":{"position":[[358,4]]},"164":{"position":[[99,4]]},"168":{"position":[[113,4]]},"208":{"position":[[274,4]]},"210":{"position":[[56,4]]},"237":{"position":[[1218,4],[1232,4],[1275,4]]},"304":{"position":[[13,4]]},"391":{"position":[[18,4]]},"395":{"position":[[123,4]]},"397":{"position":[[27,4]]},"401":{"position":[[92,5]]}}}],["ye",{"_index":2940,"t":{"541":{"position":[[244,4]]}}}],["year",{"_index":2213,"t":{"324":{"position":[[249,5],[284,5]]}}}],["yml",{"_index":446,"t":{"83":{"position":[[364,5]]},"290":{"position":[[364,5]]},"320":{"position":[[364,5]]},"407":{"position":[[364,5]]},"517":{"position":[[364,5]]}}}],["you'r",{"_index":896,"t":{"107":{"position":[[10,6],[288,6]]},"476":{"position":[[56,6]]}}}],["you'v",{"_index":899,"t":{"107":{"position":[[158,6]]},"476":{"position":[[907,6]]},"478":{"position":[[544,6]]}}}],["young",{"_index":2333,"t":{"338":{"position":[[3604,5]]}}}],["your/home/directory/.nvm/versions/node/v20.10.0/bin/node_debug",{"_index":1711,"t":{"237":{"position":[[1060,63]]}}}],["yourself",{"_index":1036,"t":{"120":{"position":[[466,8]]}}}],["zero",{"_index":524,"t":{"83":{"position":[[2728,6]]},"290":{"position":[[1167,6]]},"320":{"position":[[2728,6]]},"407":{"position":[[2016,6]]},"409":{"position":[[205,4]]},"517":{"position":[[1167,6]]},"521":{"position":[[237,4]]},"525":{"position":[[237,4]]}}}],["zip",{"_index":2625,"t":{"427":{"position":[[89,4]]}}}],["zoom",{"_index":1535,"t":{"206":{"position":[[103,7]]}}}],["zsh",{"_index":1373,"t":{"192":{"position":[[714,3]]}}}],["zshrc",{"_index":1370,"t":{"192":{"position":[[638,8],[718,8]]}}}],["zstd",{"_index":1801,"t":{"245":{"position":[[1016,4]]}}}]],"pipeline":["stemmer"]}}] \ No newline at end of file diff --git a/search/index.html b/search/index.html index 5eef7b9b9ae..e4a30f30e7f 100644 --- a/search/index.html +++ b/search/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/security/index.html b/security/index.html index da6b2810176..c602eb24560 100644 --- a/security/index.html +++ b/security/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/supporting-libraries/index.html b/supporting-libraries/index.html index 489930d7901..4ca2aa5c038 100644 --- a/supporting-libraries/index.html +++ b/supporting-libraries/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - + diff --git a/supporting-libraries/libraries/index.html b/supporting-libraries/libraries/index.html index 9912749efbe..ed9c04064ee 100644 --- a/supporting-libraries/libraries/index.html +++ b/supporting-libraries/libraries/index.html @@ -4,7 +4,7 @@ Lodestar Documentation - +