Settings
This commit is contained in:
parent
1ad517098a
commit
ca4e4b24e0
@ -6,7 +6,7 @@ ARG GITVERSION=docker
|
||||
|
||||
RUN apk add make jq git gcc musl-dev linux-headers
|
||||
|
||||
COPY ./proxyd /app
|
||||
COPY . /app
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
@ -16,7 +16,7 @@ FROM alpine:3.18
|
||||
|
||||
RUN apk add bind-tools jq curl bash git redis
|
||||
|
||||
COPY ./proxyd/entrypoint.sh /bin/entrypoint.sh
|
||||
COPY ./entrypoint.sh /bin/entrypoint.sh
|
||||
|
||||
RUN apk update && \
|
||||
apk add ca-certificates && \
|
||||
@ -24,9 +24,11 @@ RUN apk update && \
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
VOLUME /etc/proxyd
|
||||
# VOLUME /etc/proxyd
|
||||
|
||||
ADD ./docker.toml /proxyd.toml
|
||||
|
||||
COPY --from=builder /app/bin/proxyd /bin/proxyd
|
||||
|
||||
ENTRYPOINT ["/bin/entrypoint.sh"]
|
||||
CMD ["/bin/proxyd", "/etc/proxyd/proxyd.toml"]
|
||||
CMD ["/bin/proxyd", "/proxyd.toml"]
|
20
proxyd/docker-compose.yml
Normal file
20
proxyd/docker-compose.yml
Normal file
@ -0,0 +1,20 @@
|
||||
services:
|
||||
redis:
|
||||
container_name: redis
|
||||
image: redis:6.2-alpine
|
||||
restart: always
|
||||
#networks:
|
||||
# - tornado_net
|
||||
command: ["redis-server"]
|
||||
proxyd:
|
||||
container_name: proxyd
|
||||
image: proxyd
|
||||
restart: always
|
||||
#networks:
|
||||
# - tornado_net
|
||||
environment:
|
||||
- REDIS_URL=redis://redis:6379
|
||||
- RPC_URL=
|
||||
- WS_URL=
|
||||
ports:
|
||||
- '127.0.0.1:8544:8544'
|
171
proxyd/docker.toml
Normal file
171
proxyd/docker.toml
Normal file
@ -0,0 +1,171 @@
|
||||
ws_method_whitelist = [
|
||||
"eth_subscribe",
|
||||
"eth_unsubscribe",
|
||||
"eth_blobBaseFee",
|
||||
"eth_blockNumber",
|
||||
"eth_call",
|
||||
"eth_chainId",
|
||||
"eth_estimateGas",
|
||||
"eth_feeHistory",
|
||||
"eth_gasPrice",
|
||||
"eth_getAccount",
|
||||
"eth_getBalance",
|
||||
"eth_getBlockByHash",
|
||||
"eth_getBlockByNumber",
|
||||
"eth_getBlockReceipts",
|
||||
"eth_getBlockTransactionCountByHash",
|
||||
"eth_getBlockTransactionCountByNumber",
|
||||
"eth_getCode",
|
||||
"eth_getFilterChanges",
|
||||
"eth_getFilterLogs",
|
||||
"eth_getLogs",
|
||||
"eth_getProof",
|
||||
"eth_getStorageAt",
|
||||
"eth_getTransactionByBlockHashAndIndex",
|
||||
"eth_getTransactionByBlockNumberAndIndex",
|
||||
"eth_getTransactionByHash",
|
||||
"eth_getTransactionCount",
|
||||
"eth_getTransactionReceipt",
|
||||
"eth_getUncleCountByBlockHash",
|
||||
"eth_getUncleCountByBlockNumber",
|
||||
"eth_maxPriorityFeePerGas",
|
||||
"eth_newBlockFilter",
|
||||
"eth_newFilter",
|
||||
"eth_newPendingTransactionFilter",
|
||||
"eth_syncing",
|
||||
"eth_uninstallFilter",
|
||||
"eth_sendRawTransaction",
|
||||
"net_version",
|
||||
"web3_clientVersion",
|
||||
"web3_sha3",
|
||||
# tracers for archive nodes
|
||||
"trace_block",
|
||||
"trace_call",
|
||||
"trace_callMany",
|
||||
"trace_filter",
|
||||
"trace_rawTransaction",
|
||||
"trace_replayBlockTransactions",
|
||||
"trace_replayTransaction",
|
||||
"trace_transaction",
|
||||
"debug_getBadBlocks",
|
||||
"debug_storageRangeAt",
|
||||
"debug_getTrieFlushInterval",
|
||||
"debug_traceBlock",
|
||||
"debug_traceBlockByHash",
|
||||
"debug_traceBlockByNumber",
|
||||
"debug_traceCall",
|
||||
"debug_traceTransaction",
|
||||
]
|
||||
ws_backend_group = "main"
|
||||
|
||||
[rpc_method_mappings]
|
||||
eth_blobBaseFee = "main"
|
||||
eth_blockNumber = "main"
|
||||
eth_call = "main"
|
||||
eth_chainId = "main"
|
||||
eth_estimateGas = "main"
|
||||
eth_feeHistory = "main"
|
||||
eth_gasPrice = "main"
|
||||
eth_getAccount = "main"
|
||||
eth_getBalance = "main"
|
||||
eth_getBlockByHash = "main"
|
||||
eth_getBlockByNumber = "main"
|
||||
eth_getBlockReceipts = "main"
|
||||
eth_getBlockTransactionCountByHash = "main"
|
||||
eth_getBlockTransactionCountByNumber = "main"
|
||||
eth_getCode = "main"
|
||||
eth_getFilterChanges = "main"
|
||||
eth_getFilterLogs = "main"
|
||||
eth_getLogs = "main"
|
||||
eth_getProof = "main"
|
||||
eth_getStorageAt = "main"
|
||||
eth_getTransactionByBlockHashAndIndex = "main"
|
||||
eth_getTransactionByBlockNumberAndIndex = "main"
|
||||
eth_getTransactionByHash = "main"
|
||||
eth_getTransactionCount = "main"
|
||||
eth_getTransactionReceipt = "main"
|
||||
eth_getUncleCountByBlockHash = "main"
|
||||
eth_getUncleCountByBlockNumber = "main"
|
||||
eth_maxPriorityFeePerGas = "main"
|
||||
eth_newBlockFilter = "main"
|
||||
eth_newFilter = "main"
|
||||
eth_newPendingTransactionFilter = "main"
|
||||
eth_syncing = "main"
|
||||
eth_uninstallFilter = "main"
|
||||
eth_sendRawTransaction = "main"
|
||||
net_version = "main"
|
||||
web3_clientVersion = "main"
|
||||
web3_sha3 = "main"
|
||||
trace_block = "main"
|
||||
trace_call = "main"
|
||||
trace_callMany = "main"
|
||||
trace_filter = "main"
|
||||
trace_rawTransaction = "main"
|
||||
trace_replayBlockTransactions = "main"
|
||||
trace_replayTransaction = "main"
|
||||
trace_transaction = "main"
|
||||
debug_getBadBlocks = "main"
|
||||
debug_storageRangeAt = "main"
|
||||
debug_getTrieFlushInterval = "main"
|
||||
debug_traceBlock = "main"
|
||||
debug_traceBlockByHash = "main"
|
||||
debug_traceBlockByNumber = "main"
|
||||
debug_traceCall = "main"
|
||||
debug_traceTransaction = "main"
|
||||
|
||||
[server]
|
||||
rpc_host = "0.0.0.0"
|
||||
rpc_port = 8544
|
||||
enable_ws = true
|
||||
max_body_size_bytes = 10485760
|
||||
max_concurrent_rpcs = 1000
|
||||
log_level = "info"
|
||||
allow_direct = true
|
||||
|
||||
[cache]
|
||||
enabled = true
|
||||
ttl = "14s"
|
||||
|
||||
[redis]
|
||||
url = "$REDIS_URL"
|
||||
|
||||
[metrics]
|
||||
enabled = true
|
||||
host = "0.0.0.0"
|
||||
port = 9761
|
||||
|
||||
[rate_limit]
|
||||
use_redis = true
|
||||
base_rate = 2000
|
||||
base_interval = "60s"
|
||||
|
||||
[backend]
|
||||
response_timeout_seconds = 120
|
||||
max_response_size_bytes = 5242880
|
||||
max_retries = 3
|
||||
out_of_service_seconds = 600
|
||||
max_latency_threshold = "30s"
|
||||
max_degraded_latency_threshold = "10s"
|
||||
max_error_rate_threshold = 0.3
|
||||
|
||||
[backends]
|
||||
[backends.main]
|
||||
rpc_url = "$RPC_URL"
|
||||
ws_url = "$WS_URL"
|
||||
max_rps = 100
|
||||
max_ws_conns = 100
|
||||
consensus_skip_peer_count = true
|
||||
consensus_receipts_target = "eth_getBlockReceipts"
|
||||
|
||||
[backend_groups]
|
||||
[backend_groups.main]
|
||||
backends = ["main"]
|
||||
consensus_aware = false
|
||||
# consensus_aware = true
|
||||
consensus_ban_period = "1m"
|
||||
consensus_max_update_threshold = "20s"
|
||||
consensus_max_block_lag = 16
|
||||
# Maximum block range (for eth_getLogs method), no default
|
||||
# consensus_max_block_range = 20000
|
||||
# Minimum peer count, default 3
|
||||
# consensus_min_peer_count = 4
|
@ -64,7 +64,9 @@ func RewriteRequest(rctx RewriteContext, req *RPCReq, res *RPCRes) (RewriteResul
|
||||
switch req.Method {
|
||||
case "eth_getLogs",
|
||||
"eth_newFilter":
|
||||
return rewriteRange(rctx, req, res, 0)
|
||||
// return rewriteRange(rctx, req, res, 0)
|
||||
// Tornado: disable range check unti the UI is fixed
|
||||
return RewriteNone, nil
|
||||
case "debug_getRawReceipts", "consensus_getReceipts":
|
||||
return rewriteParam(rctx, req, res, 0, true, false)
|
||||
case "eth_getBalance",
|
||||
@ -307,4 +309,4 @@ func rewriteTagBlockNumberOrHash(rctx RewriteContext, current *rpc.BlockNumberOr
|
||||
}
|
||||
|
||||
return current, false, nil
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user