Commit Graph

60 Commits

Author SHA1 Message Date
67c08fe6c9 Rootstock: revert HOCON env-var sub - hardcode rpc-de-31 domain
${?DOMAIN} substitution caused rskj to crash with 'Can't read config'.
Hardcoding the host-specific domain for now (rootstock only runs on
de-31). For multi-host deployment later, would need a per-host
templated node.conf or a proxy that rewrites Host header.
2026-05-05 19:28:27 +00:00
7dc379dd05 Rootstock: include $DOMAIN in http hosts whitelist
rskj's hosts whitelist is exact-match (no wildcards). Use HOCON env-var
substitution ${?DOMAIN} to inject the per-host public domain into the
allowed list. Pass DOMAIN env var into the container via the rskj
template.

Allowed hosts list: [localhost, 127.0.0.1, ::1, ${?DOMAIN}]
- localhost variants for direct/internal access
- DOMAIN for traefik-forwarded requests (Host header = public domain)
2026-05-05 19:25:57 +00:00
bbb6205cb4 Rootstock: drop JVM -Dhosts.X props - let file config 'hosts = ["*"]' win
Setting hosts via -Dhosts.0=*, -Dhosts.1=*, etc creates an OBJECT in
HOCON (indexed entries), but rskj's schema expects LIST. Result: rskj
warns and falls back to default whitelist (localhost only).

Drop the hosts.X JVM properties entirely. The file /etc/rsk/node.conf
already declares hosts = ["*"] which IS a HOCON LIST. Without the JVM
override, the file value wins.
2026-05-05 19:16:27 +00:00
53697cb40d Rootstock: override RSKJ_SYS_PROPS to allow Host: * in http whitelist
The rsksmart/rskj:VETIVER-9.0.1 image bakes an env var:
  RSKJ_SYS_PROPS=-Drpc.providers.web.http.bind_address=0.0.0.0
                 -Drpc.providers.web.http.hosts.0=localhost
                 -Drpc.providers.web.http.hosts.1=127.0.0.1
                 -Drpc.providers.web.http.hosts.2=::1

These JVM -D system properties take precedence over /etc/rsk/node.conf
in HOCON, so the Host whitelist always resolves to {localhost,127.0.0.1,::1}.

Result: traefik routing to rskj at IP rootstock-mainnet-client:8545
arrives with Host header that doesn't match those three. rskj returns
HTTP 400, traefik translates to 502 Bad Gateway.

Override the env var in the compose template so the http hosts whitelist
contains '*' (any host). Traefik's ipallowlist middleware is the actual
gatekeeper. Affects rootstock-mainnet AND rootstock-bamboo.
2026-05-05 19:06:31 +00:00
abb3c4b189 Rootstock: hosts = ["*"] - allow all Host headers (was [])
VETIVER-9.0.1 enforces rpc.providers.web.http.hosts as a whitelist;
empty list / default rejects everything except 'Host: localhost'.

The traefik route uses 'customrequestheaders.Host=localhost' middleware
to rewrite the Host header, but that middleware appears not to be
applied for the rootstock route - real requests still arrive at rskj
with Host: rpc-de-XX.stakesquid.eu and rskj returns 400 Bad Request,
which traefik translates to 502 Bad Gateway.

Wildcard whitelist is fine here because traefik (with ipallowlist
middleware) is the actual gatekeeper.

Confirmed empirically: 'wget --header=Host:localhost' returns valid
JSON-RPC, anything else returns 400.
2026-05-05 18:56:08 +00:00
bc95c7e1a6 Rootstock: fix rpc.modules format for VETIVER (LIST -> OBJECT)
VETIVER-9.0.1 silently ignores rpc.modules when configured as a list of
{name,version,enabled} objects. Switch to canonical OBJECT format from
rskj's expected.conf:
  modules = { eth { version = "1.0", enabled = "true" } ... }

Without this, the RPC server starts but no modules are registered, so
eth_blockNumber returns method-not-found and show-status flags as 'error'
even though the chain itself imports blocks fine.

Also added 'hosts = []' under rpc.providers.web.http (LIST per
expected.conf, was missing). Same fix applied to bamboo testnet config.

Note: this only resolves mainnet. Bamboo still needs DB recreate due to
unrelated 'Invalid block header size: 22' corruption.
2026-05-05 18:34:09 +00:00
737ffdac32 Update versions: nethermind 1.35.7->1.37.1, rippled 3.0.0->3.1.2, nitro rc.2->rc.3, agave 3.1.4->3.1.14, geth 1.16.7->1.17.2, besu 25.12.0->26.4.0, erigon3 3.3.2->3.4.0, nimbus 25.11.1->26.3.1, juno 0.15.16->0.16.0, pathfinder 0.21.3->0.22.3, op-reth 1.9.3->1.10.2, scroll 5.10.0->5.10.6, cronos-zkevm 29.6.0->29.14.0, xlayer cdk-erigon 0.8.7.1->0.9.5, wemix 0.10.11->0.10.13, fuse nethermind 1.32.2->1.36.2, bitcoin-cash 0.32.4->0.33.1, rootstock REED-8.1.0->VETIVER-9.0.1, sonic 2.1.4->2.1.6, metis dtl 0.2.5->0.2.6, celo v2.1->v2.2, mantle 1.3.2->1.5.5, boba geth 1.101603->1.101609, zircuit 1.125.6->1.132.6, fraxtal 1.101603->1.101702, blast mainnet 1.4.0->1.8.0, bor 2.5.4->2.7.2, polygon erigon3 3.3.3->3.5.0, bsc 1.6.4->1.7.3, goat testnet3+mainnet, ronin 1.1.2->1.2.2, taiko geth 1.17.3->2.4.0, maru 9737a45->1.2.0, gnosis reth 0.1.8->1.1.11, berachain reth 1.3.1->1.4.0, dshackle 0.76.0->0.78.0
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-04-30 09:47:51 +00:00
d0291932bc Regenerate all compose files with version updates
- prysm v7.1.3, lighthouse v8.1.3, java-tron v4.8.1
- Add zero-gravity/aristotle chain (chainid 16661)
- Add tempo/mainnet compose files
- Add tempo to chainid exempt list (uses named chain specs)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 19:14:33 +00:00
42f845fa40 Update versions: avalanche, bitcoin-cash, celo, gnosis reth, rootstock, starknet pathfinder
- avalanche go: v1.14.1 → v1.14.2
- bitcoin-cash: 0.32.11 → 0.33.0
- celo geth: v1.17.1 → v1.17.2
- op.celo geth: celo-v2.2.1 → celo-v2.2.2
- gnosis reth: v1.0.3 → v1.1.11-eraimports
- rootstock rskj: REED-8.1.1 → VETIVER-9.0.0
- starknet pathfinder: v0.22.0 → v0.22.1

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-04-03 12:24:06 +00:00
3546d79e75 Update client versions: reth v1.11.3, sonic v2.1.6, mantle v1.5.1, scroll v5.10.6, bor 2.6.3, rippled 3.1.2, rskj REED-8.1.1
- ethereum reth: v1.11.2 → v1.11.3 (HIGH priority trie panic fix)
- sonic: v2.1.5 → v2.1.6 (security patches CVE-2026-26314, CVE-2026-26315)
- mantle op-geth+op-node: v1.4.2 → v1.5.1 (URGENT: Arsia fork 2026-03-25)
- scroll l2geth: scroll-v5.10.4 → scroll-v5.10.6 (EVM balance check fixes)
- polygon bor: 2.6.2 → 2.6.3 (stable patch)
- rippled: 3.1.1 → 3.1.2 (stable patch)
- rootstock rskj: REED-8.1.0 → REED-8.1.1 (patch)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 04:26:41 +00:00
rob
5c0fb760cc Remove nginx sidecar from rootstock, use traefik headers
- Service name simplified to rootstock-mainnet (no -client suffix)
- Traefik middlewares handle Host:localhost header rewriting
- Proper WS routing on port 8546

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 10:27:19 +00:00
rob
004476216e Remove nginx sidecar from rootstock, use traefik headers
Replace nginx proxy with traefik headers middleware for Host rewriting.
Fixes container IP mismatch issues on container restart.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 10:22:46 +00:00
goldsquid
f1d93eca01 update 2025-11-10 17:44:36 +07:00
goldsquid
918b7f546a update 2025-09-03 14:12:26 +07:00
goldsquid
6c66a4c2f4 update 2025-07-17 12:21:25 +07:00
Para Dox
d246befaea hail the anchors 2025-05-24 19:07:19 +07:00
Para Dox
6d0a5d9d6d node is refactored into it's own template 2025-05-24 18:04:16 +07:00
Para Dox
2a987f64a2 update 2025-05-22 19:25:14 +07:00
Para Dox
6e477bd5f0 renaming stuff 2025-05-19 13:05:42 +07:00
Para Dox
98abb33fc8 now with prometheus. hopefully 2025-05-18 13:11:00 +07:00
Para Dox
3d98079a2a fix the logging issue 2025-05-12 10:12:47 +07:00
Para Dox
002b2fa99c more thought 2025-04-28 22:14:28 +07:00
Para Dox
1f13edad78 more thought 2025-04-28 22:05:06 +07:00
Para Dox
fd2abeb162 jwtsecret 2025-04-28 21:48:56 +07:00
Para Dox
079aefb865 usage 2025-04-28 21:36:02 +07:00
Para Dox
37c16701f2 upstreams without testing 2025-04-20 16:26:24 +07:00
Para Dox
4f12b8d0ed hopefully nothing breaks 2025-04-19 00:24:44 +07:00
Para Dox
9bd49dd1d2 fix 2025-04-15 16:25:23 +07:00
Para Dox
55f544fc92 fix 2025-04-15 14:03:03 +07:00
Para Dox
ce7f425339 fix 2025-04-15 14:02:34 +07:00
Para Dox
8ea3f5b7d5 fix 2025-04-15 11:15:12 +07:00
Para Dox
22180bcf2d fix 2025-04-15 11:11:00 +07:00
Para Dox
81b368c9ed fix 2025-04-15 11:05:18 +07:00
Para Dox
10367e06fb fix 2025-04-15 05:42:52 +07:00
Para Dox
19cc4caa89 fix 2025-04-15 04:14:21 +07:00
Para Dox
2a3f74bd0d fix 2025-04-14 20:49:12 +07:00
Para Dox
f5de048804 fix 2025-04-14 20:48:36 +07:00
Para Dox
058517a20d fix 2025-04-14 20:46:24 +07:00
Para Dox
96d9081230 fix 2025-04-14 20:36:05 +07:00
Para Dox
8d0cbfc483 fix 2025-04-14 10:08:11 +07:00
Para Dox
8ba07ac2cf fix 2025-04-13 20:42:08 +07:00
Para Dox
a919bcdbbc fix 2025-04-13 20:37:01 +07:00
Para Dox
a74d493743 fix 2025-04-13 20:29:13 +07:00
Para Dox
42c9ebc55f fix 2025-04-13 20:26:01 +07:00
Para Dox
6df1ca59d5 fix 2025-04-13 17:52:13 +07:00
Para Dox
b12c5fd113 fix 2025-04-13 12:43:14 +07:00
Para Dox
160761f632 fix 2025-04-12 13:24:52 +07:00
Para Dox
889d64c1c0 fix 2025-04-12 13:23:17 +07:00
Para Dox
09d6593e85 fix 2025-04-12 13:16:53 +07:00
Para Dox
1b40e92de2 fix 2025-04-12 13:15:38 +07:00