yousri52 commited on
Commit
f43f27c
·
1 Parent(s): 3371561

Revert app.js and start.sh to pre-fix state

Browse files
Files changed (2) hide show
  1. app.js +3 -16
  2. start.sh +0 -18
app.js CHANGED
@@ -4,23 +4,12 @@ const { spawn } = require("child_process");
4
 
5
  const app = express();
6
 
7
- // http-proxy-middleware (via node http-proxy) doesn't correctly relay
8
- // permessage-deflate compression negotiation for proxied WebSocket upgrades,
9
- // which causes clients to reject compressed frames from the upstream node
10
- // with "Invalid WebSocket frame: RSV1 must be clear". Stripping the
11
- // extension request header prevents compression from being negotiated at
12
- // all, avoiding the mismatch entirely.
13
- function stripWsCompression(proxyReq) {
14
- proxyReq.removeHeader("sec-websocket-extensions");
15
- }
16
-
17
  // Ethereum (Anvil) - serves JSON-RPC and WebSocket on the same port
18
  app.use("/eth", createProxyMiddleware({
19
  target: "http://127.0.0.1:8545",
20
  changeOrigin: true,
21
  ws: true,
22
- pathRewrite: { "^/eth": "" },
23
- on: { proxyReqWs: stripWsCompression }
24
  }));
25
 
26
  // Rootstock (Anvil) - serves JSON-RPC and WebSocket on the same port
@@ -28,8 +17,7 @@ app.use("/rootstock", createProxyMiddleware({
28
  target: "http://127.0.0.1:8546",
29
  changeOrigin: true,
30
  ws: true,
31
- pathRewrite: { "^/rootstock": "" },
32
- on: { proxyReqWs: stripWsCompression }
33
  }));
34
 
35
  // Solana - JSON-RPC on 8899, pubsub/WebSocket on a separate port (8900 by
@@ -43,8 +31,7 @@ app.use("/solana", createProxyMiddleware({
43
  req.headers.upgrade && req.headers.upgrade.toLowerCase() === "websocket"
44
  ? "http://127.0.0.1:8900"
45
  : "http://127.0.0.1:8899"
46
- ),
47
- on: { proxyReqWs: stripWsCompression }
48
  }));
49
 
50
  // Per-chain log files written by start.sh
 
4
 
5
  const app = express();
6
 
 
 
 
 
 
 
 
 
 
 
7
  // Ethereum (Anvil) - serves JSON-RPC and WebSocket on the same port
8
  app.use("/eth", createProxyMiddleware({
9
  target: "http://127.0.0.1:8545",
10
  changeOrigin: true,
11
  ws: true,
12
+ pathRewrite: { "^/eth": "" }
 
13
  }));
14
 
15
  // Rootstock (Anvil) - serves JSON-RPC and WebSocket on the same port
 
17
  target: "http://127.0.0.1:8546",
18
  changeOrigin: true,
19
  ws: true,
20
+ pathRewrite: { "^/rootstock": "" }
 
21
  }));
22
 
23
  // Solana - JSON-RPC on 8899, pubsub/WebSocket on a separate port (8900 by
 
31
  req.headers.upgrade && req.headers.upgrade.toLowerCase() === "websocket"
32
  ? "http://127.0.0.1:8900"
33
  : "http://127.0.0.1:8899"
34
+ )
 
35
  }));
36
 
37
  // Per-chain log files written by start.sh
start.sh CHANGED
@@ -27,28 +27,10 @@ anvil --host 0.0.0.0 --port 8546 --chain-id 30 \
27
  rm -f /data/solana/ledger.lock
28
  solana-test-validator \
29
  --ledger /data/solana \
30
- --gossip-host 127.0.0.1 \
31
  --log \
32
  > >(tee -a /data/logs/solana.log) 2>&1 &
33
  SOLANA_PID=$!
34
 
35
- # A restart that catches the ledger mid-write can leave it corrupted, which
36
- # makes the validator panic on boot every time thereafter ("Failed to
37
- # process bank 0 from ledger ... InvalidBlock(Incomplete)"), permanently
38
- # stuck in a crash loop. Detect an early exit and wipe the ledger to start
39
- # fresh from genesis once, rather than looping on the same panic forever.
40
- sleep 5
41
- if ! kill -0 $SOLANA_PID 2>/dev/null; then
42
- echo "WARNING: solana-test-validator crashed on boot (likely a corrupted ledger). Wiping /data/solana and retrying from genesis." >> /data/logs/solana.log
43
- rm -rf /data/solana
44
- mkdir -p /data/solana
45
- solana-test-validator \
46
- --ledger /data/solana \
47
- --log \
48
- > >(tee -a /data/logs/solana.log) 2>&1 &
49
- SOLANA_PID=$!
50
- fi
51
-
52
  # Wait a bit for chains to start
53
  sleep 3
54
 
 
27
  rm -f /data/solana/ledger.lock
28
  solana-test-validator \
29
  --ledger /data/solana \
 
30
  --log \
31
  > >(tee -a /data/logs/solana.log) 2>&1 &
32
  SOLANA_PID=$!
33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  # Wait a bit for chains to start
35
  sleep 3
36