resolver: multicall reads, keep-alive, workers and structured logs (#1883)

* resolver: queue up to 128 pending connections

* resolver: reuse connections to the node

* resolver: read each round in one multicall

* resolver: run worker processes, log durations

* resolver: keep smp-server connections alive

* resolver: test with pytest, lock dependencies

* resolver: structured logs and real client addresses

* resolver: refuse requests with a body

* resolver: harden pool, health and odd answers

* resolver: pin images, rotate logs

* resolver: stricter body check, redact RPC URL

* resolver: ship .env as .env.example

* resolver: pass settings from .env

* resolver: name the image snrc-resolve:local
This commit is contained in:
sh authored and GitHub committed 2026-10-01 09:10:42 +01:00
1 parent 234b5cd856
commit 053e83b704
12 files changed
+1770 -105

No files matched your search

+8 -9
View File
@@ -320,15 +320,14 @@ jobs:
- name: Clone project
uses: actions/checkout@v3
- name: Set up Python
# Matches the runtime stage of scripts/resolver/service/Dockerfile.
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Set up uv
# uv takes Python from .python-version, the version of the Dockerfile's runtime stage.
uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
- name: Install resolver dependencies
# Must match scripts/resolver/service/pyproject.toml.
run: python -m pip install "eth-hash[pycryptodome]>=0.7"
- name: Lint
working-directory: scripts/resolver/service
run: uv run --frozen ruff check .
- name: Test
run: python -m unittest discover -s scripts/resolver/service -v
working-directory: scripts/resolver/service
run: uv run --frozen pytest -v