Documentation
¶
Index ¶
- type Config
- type DatabaseConfig
- type Empty
- type EndpointConfig
- type EndpointSshConfig
- type MainMenuItem
- type Meta
- type MevRelayConfig
- type NamedValidator
- type NavigationGroup
- type NavigationLink
- type PageData
- type PebbleBlockDBConfig
- type PgsqlDatabaseConfig
- type PgsqlWriterDatabaseConfig
- type S3BlockDBConfig
- type SqliteDatabaseConfig
- type TxSignatureBytes
- type TxSignatureLookupStatus
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Logging struct {
OutputLevel string `yaml:"outputLevel" envconfig:"LOGGING_OUTPUT_LEVEL"`
OutputStderr bool `yaml:"outputStderr" envconfig:"LOGGING_OUTPUT_STDERR"`
FilePath string `yaml:"filePath" envconfig:"LOGGING_FILE_PATH"`
FileLevel string `yaml:"fileLevel" envconfig:"LOGGING_FILE_LEVEL"`
} `yaml:"logging"`
Server struct {
Port string `yaml:"port" envconfig:"FRONTEND_SERVER_PORT"`
Host string `yaml:"host" envconfig:"FRONTEND_SERVER_HOST"`
} `yaml:"server"`
Chain struct {
DisplayName string `yaml:"displayName" envconfig:"CHAIN_DISPLAY_NAME"`
// optional features
WhiskForkEpoch *uint64 `yaml:"whiskForkEpoch" envconfig:"WHISK_FORK_EPOCH"`
} `yaml:"chain"`
Frontend struct {
Enabled bool `yaml:"enabled" envconfig:"FRONTEND_ENABLED"`
Debug bool `yaml:"debug" envconfig:"FRONTEND_DEBUG"`
Pprof bool `yaml:"pprof" envconfig:"FRONTEND_PPROF"`
Minify bool `yaml:"minify" envconfig:"FRONTEND_MINIFY"`
SiteDomain string `yaml:"siteDomain" envconfig:"FRONTEND_SITE_DOMAIN"`
SiteLogo string `yaml:"siteLogo" envconfig:"FRONTEND_SITE_LOGO"`
SiteName string `yaml:"siteName" envconfig:"FRONTEND_SITE_NAME"`
SiteSubtitle string `yaml:"siteSubtitle" envconfig:"FRONTEND_SITE_SUBTITLE"`
SiteDescription string `yaml:"siteDescription" envconfig:"FRONTEND_SITE_DESCRIPTION"`
EthExplorerLink string `yaml:"ethExplorerLink" envconfig:"FRONTEND_ETH_EXPLORER_LINK"`
PublicRPCUrl string `yaml:"publicRpcUrl" envconfig:"FRONTEND_PUBLIC_RPC_URL"`
RainbowkitProjectId string `yaml:"rainbowkitProjectId" envconfig:"FRONTEND_RAINBOWKIT_PROJECT_ID"`
ValidatorNamesYaml string `yaml:"validatorNamesYaml" envconfig:"FRONTEND_VALIDATOR_NAMES_YAML"`
ValidatorNamesInventory string `yaml:"validatorNamesInventory" envconfig:"FRONTEND_VALIDATOR_NAMES_INVENTORY"`
ValidatorNamesRefreshInterval time.Duration `yaml:"validatorNamesRefreshInterval" envconfig:"FRONTEND_VALIDATOR_REFRESH_INTERVAL"`
ValidatorNamesResolveInterval time.Duration `yaml:"validatorNamesResolveInterval" envconfig:"FRONTEND_VALIDATOR_RESOLVE_INTERVAL"`
PageCallTimeout time.Duration `yaml:"pageCallTimeout" envconfig:"FRONTEND_PAGE_CALL_TIMEOUT"`
HttpReadTimeout time.Duration `yaml:"httpReadTimeout" envconfig:"FRONTEND_HTTP_READ_TIMEOUT"`
HttpWriteTimeout time.Duration `yaml:"httpWriteTimeout" envconfig:"FRONTEND_HTTP_WRITE_TIMEOUT"`
HttpIdleTimeout time.Duration `yaml:"httpIdleTimeout" envconfig:"FRONTEND_HTTP_IDLE_TIMEOUT"`
AllowDutyLoading bool `yaml:"allowDutyLoading" envconfig:"FRONTEND_ALLOW_DUTY_LOADING"`
ShowSensitivePeerInfos bool `yaml:"showSensitivePeerInfos" envconfig:"FRONTEND_SHOW_SENSITIVE_PEER_INFOS"`
ShowPeerDASInfos bool `yaml:"showPeerDASInfos" envconfig:"FRONTEND_SHOW_PEER_DAS_INFOS"`
ShowSubmitDeposit bool `yaml:"showSubmitDeposit" envconfig:"FRONTEND_SHOW_SUBMIT_DEPOSIT"`
ShowSubmitElRequests bool `yaml:"showSubmitElRequests" envconfig:"FRONTEND_SHOW_SUBMIT_EL_REQUESTS"`
} `yaml:"frontend"`
Api struct {
Enabled bool `yaml:"enabled" envconfig:"API_ENABLED"`
CorsOrigins []string `yaml:"corsOrigins" envconfig:"API_CORS_ORIGINS"`
} `yaml:"api"`
RateLimit struct {
Enabled bool `yaml:"enabled" envconfig:"RATELIMIT_ENABLED"`
ProxyCount uint `yaml:"proxyCount" envconfig:"RATELIMIT_PROXY_COUNT"`
Rate uint `yaml:"rate" envconfig:"RATELIMIT_RATE"`
Burst uint `yaml:"burst" envconfig:"RATELIMIT_BURST"`
} `yaml:"rateLimit"`
BeaconApi struct {
Endpoint string `yaml:"endpoint" envconfig:"BEACONAPI_ENDPOINT"`
Endpoints []EndpointConfig `yaml:"endpoints"`
LocalCacheSize int `yaml:"localCacheSize" envconfig:"BEACONAPI_LOCAL_CACHE_SIZE"`
SkipFinalAssignments bool `yaml:"skipFinalAssignments" envconfig:"BEACONAPI_SKIP_FINAL_ASSIGNMENTS"`
AssignmentsCacheSize int `yaml:"assignmentsCacheSize" envconfig:"BEACONAPI_ASSIGNMENTS_CACHE_SIZE"`
RedisCacheAddr string `yaml:"redisCacheAddr" envconfig:"BEACONAPI_REDIS_CACHE_ADDR"`
RedisCachePrefix string `yaml:"redisCachePrefix" envconfig:"BEACONAPI_REDIS_CACHE_PREFIX"`
} `yaml:"beaconapi"`
ExecutionApi struct {
Endpoint string `yaml:"endpoint" envconfig:"EXECUTIONAPI_ENDPOINT"`
Endpoints []EndpointConfig `yaml:"endpoints"`
LogBatchSize int `yaml:"logBatchSize" envconfig:"EXECUTIONAPI_LOG_BATCH_SIZE"`
DepositDeployBlock int `yaml:"depositDeployBlock" envconfig:"EXECUTIONAPI_DEPOSIT_DEPLOY_BLOCK"` // el block number from where to crawl the deposit system contract (should be <=, but close to deposit contract deployment)
ElectraDeployBlock int `yaml:"electraDeployBlock" envconfig:"EXECUTIONAPI_ELECTRA_DEPLOY_BLOCK"` // el block number from where to crawl the electra system contracts (should be <=, but close to electra fork activation block)
} `yaml:"executionapi"`
Indexer struct {
ResyncFromEpoch *uint64 `yaml:"resyncFromEpoch" envconfig:"INDEXER_RESYNC_FROM_EPOCH"`
ResyncForceUpdate bool `yaml:"resyncForceUpdate" envconfig:"INDEXER_RESYNC_FORCE_UPDATE"`
InMemoryEpochs uint16 `yaml:"inMemoryEpochs" envconfig:"INDEXER_IN_MEMORY_EPOCHS"`
ActivityHistoryLength uint16 `yaml:"activityHistoryLength" envconfig:"INDEXER_ACTIVITY_HISTORY_LENGTH"`
DisableSynchronizer bool `yaml:"disableSynchronizer" envconfig:"INDEXER_DISABLE_SYNCHRONIZER"`
SyncEpochCooldown uint `yaml:"syncEpochCooldown" envconfig:"INDEXER_SYNC_EPOCH_COOLDOWN"`
MaxParallelValidatorSetRequests uint `yaml:"maxParallelValidatorSetRequests" envconfig:"INDEXER_MAX_PARALLEL_VALIDATOR_SET_REQUESTS"`
DisableBlockDB bool `yaml:"disableBlockDB" envconfig:"INDEXER_DISABLE_BLOCK_DB"`
PubkeyCachePath string `yaml:"pubkeyCachePath" envconfig:"INDEXER_PUBKEY_CACHE_PATH"`
BadChainRoots []string `yaml:"badChainRoots" envconfig:"INDEXER_BAD_CHAIN_ROOTS"`
} `yaml:"indexer"`
TxSignature struct {
DisableLookupLoop bool `yaml:"disableLookupLoop" envconfig:"TXSIG_DISABLE_LOOKUP_LOOP"`
LookupInterval time.Duration `yaml:"lookupInterval" envconfig:"TXSIG_LOOKUP_INTERVAL"`
LookupBatchSize uint64 `yaml:"lookupBatchSize" envconfig:"TXSIG_LOOKUP_INTERVAL"`
ConcurrencyLimit uint64 `yaml:"concurrencyLimit" envconfig:"TXSIG_CONCURRENCY_LIMIT"`
Disable4Bytes bool `yaml:"disable4Bytes" envconfig:"TXSIG_DISABLE_4BYTES"`
RecheckTimeout time.Duration `yaml:"recheckTimeout" envconfig:"TXSIG_RECHECK_TIMEOUT"`
} `yaml:"txsig"`
MevIndexer struct {
Relays []MevRelayConfig `yaml:"relays"`
RefreshInterval time.Duration `yaml:"refreshInterval" envconfig:"MEVINDEXER_REFRESH_INTERVAL"`
} `yaml:"mevIndexer"`
Database DatabaseConfig `yaml:"database"`
BlockDb struct {
Engine string `yaml:"engine" envconfig:"BLOCKDB_ENGINE"`
Pebble PebbleBlockDBConfig `yaml:"pebble"`
S3 S3BlockDBConfig `yaml:"s3"`
} `yaml:"blockDb"`
KillSwitch struct {
DisableSSZEncoding bool `yaml:"disableSSZEncoding" envconfig:"KILLSWITCH_DISABLE_SSZ_ENCODING"`
DisableSSZRequests bool `yaml:"disableSSZRequests" envconfig:"KILLSWITCH_DISABLE_SSZ_REQUESTS"`
DisableBlockCompression bool `yaml:"disableBlockCompression" envconfig:"KILLSWITCH_DISABLE_BLOCK_COMPRESSION"`
} `yaml:"killSwitch"`
}
Config is a struct to hold the configuration data
type DatabaseConfig ¶ added in v1.15.0
type DatabaseConfig struct {
Engine string `yaml:"engine" envconfig:"DATABASE_ENGINE"`
Sqlite *SqliteDatabaseConfig `yaml:"sqlite"`
Pgsql *PgsqlDatabaseConfig `yaml:"pgsql"`
PgsqlWriter *PgsqlWriterDatabaseConfig `yaml:"pgsqlWriter"`
}
type EndpointConfig ¶
type EndpointSshConfig ¶
type MainMenuItem ¶
type MainMenuItem struct {
Label string
Path string
IsActive bool
HasBigGroups bool // if HasBigGroups is set to true then the NavigationGroups will be ordered horizontally and their Label will be shown
Groups []NavigationGroup
}
type Meta ¶
type Meta struct {
Title string
Description string
Domain string
Path string
Tlabel1 string
Tdata1 string
Tlabel2 string
Tdata2 string
Templates string
}
Meta is a struct to hold metadata about the page
type MevRelayConfig ¶
type NamedValidator ¶
type NavigationGroup ¶
type NavigationGroup struct {
}
type NavigationLink ¶
type NavigationLink struct {
}
type PageData ¶
type PageData struct {
Active string
Meta *Meta
Data interface{}
Version string
BuildTime string
Year int
ExplorerLogo string
ExplorerTitle string
ExplorerSubtitle string
ChainSlotsPerEpoch uint64
ChainSecondsPerSlot uint64
ChainGenesisTimestamp uint64
CurrentEpoch uint64
LatestFinalizedEpoch uint64
CurrentSlot uint64
FinalizationDelay uint64
IsReady bool
Mainnet bool
DepositContract string
InfoBanner *template.HTML
ClientsUpdated bool
Lang string
NoAds bool
Debug bool
DebugTemplates []string
MainMenuItems []MainMenuItem
}
PageData is a struct to hold web page data
type PebbleBlockDBConfig ¶ added in v1.15.0
type PgsqlDatabaseConfig ¶
type PgsqlDatabaseConfig struct {
Username string `yaml:"user" envconfig:"DATABASE_PGSQL_USERNAME"`
Password string `yaml:"password" envconfig:"DATABASE_PGSQL_PASSWORD"`
Name string `yaml:"name" envconfig:"DATABASE_PGSQL_NAME"`
Host string `yaml:"host" envconfig:"DATABASE_PGSQL_HOST"`
Port string `yaml:"port" envconfig:"DATABASE_PGSQL_PORT"`
MaxOpenConns int `yaml:"maxOpenConns" envconfig:"DATABASE_PGSQL_MAX_OPEN_CONNS"`
MaxIdleConns int `yaml:"maxIdleConns" envconfig:"DATABASE_PGSQL_MAX_IDLE_CONNS"`
}
type PgsqlWriterDatabaseConfig ¶ added in v1.15.0
type PgsqlWriterDatabaseConfig struct {
Username string `yaml:"user" envconfig:"DATABASE_PGSQL_WRITER_USERNAME"`
Password string `yaml:"password" envconfig:"DATABASE_PGSQL_WRITER_PASSWORD"`
Name string `yaml:"name" envconfig:"DATABASE_PGSQL_WRITER_NAME"`
Host string `yaml:"host" envconfig:"DATABASE_PGSQL_WRITER_HOST"`
Port string `yaml:"port" envconfig:"DATABASE_PGSQL_WRITER_PORT"`
MaxOpenConns int `yaml:"maxOpenConns" envconfig:"DATABASE_PGSQL_WRITER_MAX_OPEN_CONNS"`
MaxIdleConns int `yaml:"maxIdleConns" envconfig:"DATABASE_PGSQL_WRITER_MAX_IDLE_CONNS"`
}
type S3BlockDBConfig ¶ added in v1.15.0
type S3BlockDBConfig struct {
Endpoint string `yaml:"endpoint" envconfig:"BLOCKDB_S3_ENDPOINT"`
Secure bool `yaml:"secure" envconfig:"BLOCKDB_S3_SECURE"`
Bucket string `yaml:"bucket" envconfig:"BLOCKDB_S3_BUCKET"`
Region string `yaml:"region" envconfig:"BLOCKDB_S3_REGION"`
AccessKey string `yaml:"accessKey" envconfig:"BLOCKDB_S3_ACCESS_KEY"`
SecretKey string `yaml:"secretKey" envconfig:"BLOCKDB_S3_SECRET_KEY"`
Path string `yaml:"path" envconfig:"BLOCKDB_S3_PATH"`
MaxConcurrentUploads uint `yaml:"maxConcurrentUploads" envconfig:"BLOCKDB_S3_MAX_CONCURRENT_UPLOADS"`
UploadQueueSize uint `yaml:"uploadQueueSize" envconfig:"BLOCKDB_S3_UPLOAD_QUEUE_SIZE"`
}
type SqliteDatabaseConfig ¶
type TxSignatureBytes ¶
type TxSignatureBytes [4]byte
type TxSignatureLookupStatus ¶
type TxSignatureLookupStatus uint8
var ( TxSigStatusPending TxSignatureLookupStatus = 0 TxSigStatusFound TxSignatureLookupStatus = 1 TxSigStatusUnknown TxSignatureLookupStatus = 2 )
Click to show internal directories.
Click to hide internal directories.