Repository navigation
SolverQuip now survives a dropped connection to a Quip TestNet node. A node or proxy can close an idle websocket after a couple of minutes, and before this release the next chain read failed with a raw transport error. Reads now reconnect, check that the node still serves the same chain, and try again once.
Behaviour changes
- Chain reads that hit a dropped connection reconnect and retry once. If the retry fails, they raise
QuipConnectionError, as the receipt methods document, instead of a rawJSONDecodeError,WebSocketExceptionorOSError. - A connection lost while submitting raises
QuipSubmissionError, saying the outcome is unknown, because the extrinsic may already be on chain. Before, it surfaced as a rawJSONDecodeErrororBrokenPipeError. - A genesis mismatch stops at once with
GenesisMismatch, also when found on a reconnect or at a finality deadline. Before, it was retried as a plain connection error or reported as a finality stall. - The
quipextra now requiressubstrate-interface>=1.8.0(was>=1.7.4) and listswebsocket-client>=0.57.0,<2directly. On 1.7.x every read after a drop raisedAttributeError.
Packages
| Registry | Packages |
|---|---|
| crates.io | xqvm · xqasm |
| PyPI | xquad · xqsa · xqcp · xqffi |
pip install xquad==0.5.2Documentation: developers.quip.network/docs/xquad
Full changelog (3 changes)
Fixed
- xqsa: Keep a genesis mismatch's type and raise the client floor
- xqsa: Report a connection lost during a submit as a submit failure
- xqsa: Retry chain reads over a dropped connection
Full diff: v0.5.1...v0.5.2