Problem
I encountered an issue when using go-ethlibs with WebSocket connections to certain RPC nodes.
The jsonrpc.ID type in go-ethlibs is currently defined as uint64, but some RPC nodes (such as NodeReal) modify or coerce this value in their responses. This leads to mismatches between requests and responses, especially when trying to match IDs in WebSocket mode.
Example
Using wscat, I sent the following request:
{"method":"eth_blockNumber","params":[],"id":11576893527143237441,"jsonrpc":"2.0"}
But the response returned a different id:
{"jsonrpc":"2.0","id":11576893527143238000,"result":"0x3027dc4"}