You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Found via bridge-off write-confirm testing on cc-smoke (after #49)
With #49 fixed, StateSearchMsg now parses block message AMTs and ParentMessageReceipts correctly (no more 'wrong number of fields'). But resolving a receipt / tx-by-hash bridge-off now fails one layer deeper:
msgsearch.fetchMsgMeta → enumerateAMTCIDs walks the message AMT and, when a message block (MsgMeta / AMT node / message body) isn't already in the embedded blockstore, asks the BlockGetter. In embedded curio-core that getter's source set includes the Glif HTTP fetcher; with --vm-bridge-rpc-disable those fetches time out, so StateSearchMsg errors and the receipt/by-hash path declines.
This is #44-class state availability, not an AMT or engine bug
Reads (eth_call) are ~100% local; the gap is the message/receipt block availability for the write-confirm loop.
Also observed: head-sync HTTP fallback points at Glif
On this bridge-off boot, chain/header/store/sync.go logged sync poll: Post https://…glif.io…: context deadline exceeded and gossipsub head-tracking sometimes took >30s to activate (flaky calibration libp2p peering). When gossipsub is healthy the head advances fine; when it isn't, the HTTP sync fallback is a hidden Glif dependency. Worth making the bridge-off mode refuse/!configure the HTTP sync fallback so the Glif dependency is explicit.
Make msgsearch's BlockGetter use a bitswap-with-retry source bridge-off (mirror evmexec_fetch.go's retryingBlockGetter) so a momentarily-uncached block resolves on a 3-5s retry instead of erroring out.
Ensure header-store HTTP sync fallback is disabled (not silently Glif) under --vm-bridge-rpc-disable.
Found via bridge-off write-confirm testing on cc-smoke (after #49)
With #49 fixed,
StateSearchMsgnow parses block message AMTs and ParentMessageReceipts correctly (no more 'wrong number of fields'). But resolving a receipt / tx-by-hash bridge-off now fails one layer deeper:msgsearch.fetchMsgMeta→enumerateAMTCIDswalks the message AMT and, when a message block (MsgMeta / AMT node / message body) isn't already in the embedded blockstore, asks theBlockGetter. In embedded curio-core that getter's source set includes the Glif HTTP fetcher; with--vm-bridge-rpc-disablethose fetches time out, soStateSearchMsgerrors and the receipt/by-hash path declines.This is #44-class state availability, not an AMT or engine bug
Also observed: head-sync HTTP fallback points at Glif
On this bridge-off boot,
chain/header/store/sync.gologgedsync poll: Post https://…glif.io…: context deadline exceededand gossipsub head-tracking sometimes took >30s to activate (flaky calibration libp2p peering). When gossipsub is healthy the head advances fine; when it isn't, the HTTP sync fallback is a hidden Glif dependency. Worth making the bridge-off mode refuse/!configure the HTTP sync fallback so the Glif dependency is explicit.Fix direction
msgsearch's BlockGetter use a bitswap-with-retry source bridge-off (mirror evmexec_fetch.go's retryingBlockGetter) so a momentarily-uncached block resolves on a 3-5s retry instead of erroring out.--vm-bridge-rpc-disable.Status