ced5280571
* fix: OOM when eth_getLogs response too large Closes: #858 - add limit to number of logs of filter response - make block limit and log limit configurable * return error if exceeds log limit * Apply suggestions from code review * parse from config * read cli flags * add to config template * fix bloomFilter * changelog * add validation Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
68 lines
2.7 KiB
Go
68 lines
2.7 KiB
Go
package config
|
|
|
|
// DefaultConfigTemplate defines the configuration template for the EVM RPC configuration
|
|
const DefaultConfigTemplate = `
|
|
###############################################################################
|
|
### EVM Configuration ###
|
|
###############################################################################
|
|
|
|
[evm]
|
|
|
|
# Tracer defines the 'vm.Tracer' type that the EVM will use when the node is run in
|
|
# debug mode. To enable tracing use the '--trace' flag when starting your node.
|
|
# Valid types are: json|struct|access_list|markdown
|
|
tracer = "{{ .EVM.Tracer }}"
|
|
|
|
###############################################################################
|
|
### JSON RPC Configuration ###
|
|
###############################################################################
|
|
|
|
[json-rpc]
|
|
|
|
# Enable defines if the gRPC server should be enabled.
|
|
enable = {{ .JSONRPC.Enable }}
|
|
|
|
# Address defines the EVM RPC HTTP server address to bind to.
|
|
address = "{{ .JSONRPC.Address }}"
|
|
|
|
# Address defines the EVM WebSocket server address to bind to.
|
|
ws-address = "{{ .JSONRPC.WsAddress }}"
|
|
|
|
# API defines a list of JSON-RPC namespaces that should be enabled
|
|
# Example: "eth,txpool,personal,net,debug,web3"
|
|
api = "{{range $index, $elmt := .JSONRPC.API}}{{if $index}},{{$elmt}}{{else}}{{$elmt}}{{end}}{{end}}"
|
|
|
|
# GasCap sets a cap on gas that can be used in eth_call/estimateGas (0=infinite). Default: 25,000,000.
|
|
gas-cap = {{ .JSONRPC.GasCap }}
|
|
|
|
# EVMTimeout is the global timeout for eth_call. Default: 5s.
|
|
evm-timeout = "{{ .JSONRPC.EVMTimeout }}"
|
|
|
|
# TxFeeCap is the global tx-fee cap for send transaction. Default: 1eth.
|
|
txfee-cap = {{ .JSONRPC.TxFeeCap }}
|
|
|
|
# FilterCap sets the global cap for total number of filters that can be created
|
|
filter-cap = {{ .JSONRPC.FilterCap }}
|
|
|
|
# FeeHistoryCap sets the global cap for total number of blocks that can be fetched
|
|
feehistory-cap = {{ .JSONRPC.FeeHistoryCap }}
|
|
|
|
# LogsCap defines the max number of results can be returned from single 'eth_getLogs' query.
|
|
logs-cap = {{ .JSONRPC.LogsCap }}
|
|
|
|
# BlockRangeCap defines the max block range allowed for 'eth_getLogs' query.
|
|
block-range-cap = {{ .JSONRPC.BlockRangeCap }}
|
|
|
|
###############################################################################
|
|
### TLS Configuration ###
|
|
###############################################################################
|
|
|
|
[tls]
|
|
|
|
# Certificate path defines the cert.pem file path for the TLS configuration.
|
|
certificate-path = "{{ .TLS.CertificatePath }}"
|
|
|
|
# Key path defines the key.pem file path for the TLS configuration.
|
|
key-path = "{{ .TLS.KeyPath }}"
|
|
`
|