当前页面已进入跨页知识网络层:不仅展示本页拓扑,还明确它在整站里的分类、被哪些页面引用、又继续指向哪些专题与证据页。
flowchart TD
subgraph CurrentQuery["当前已具备的链上查询面"]
Node["MSG 全节点"] --> RPC["Tendermint RPC / JSON-RPC / REST / gRPC"]
RPC --> Status["/api/v1/status"]
RPC --> Balance["/api/v1/bank/balances"]
RPC --> Tx["/broadcast_tx_commit / tx 查询"]
RPC --> ContractList["/api/v1/contracts"]
RPC --> CanonicalList["/api/v1/contracts?source=canonical"]
RPC --> GetLogs["JSON-RPC eth_getLogs"]
RPC --> HashSearch["/api/v1/search?q="]
REST["pkg/api/rest/server.go"] --> Node
end
subgraph CurrentIndexBase["当前已存在的索引与事件基础"]
Listener["pkg/indexer/event_listener.go"] --> Poll["轮询区块高度 / 拉取区块"]
Poll --> Parse["解析交易与事件"]
Parse --> Swap["SwapEvent / DEX 事件处理"]
Swap --> WS["WSHub 广播"]
WS --> WSFilter["WS logs address/topics 过滤"]
end
subgraph LocalExplorer["本地已闭环的 Explorer 子门禁"]
SourceMeta["合约 source/interface/wasm metadata"]
SourceVerify["source verification state"]
SelectedEvents["选中合约事件查询"]
CommittedIndex["committed block/tx hash index"]
CanonicalCheck["命中后重读 committed block
做 canonical 校验"]
FailClosed["索引 stale/mismatch -> HTTP 503 fail-closed"]
end
subgraph TargetExplorer["完整 Explorer 目标形态"]
Fetcher["通用 Indexer / Block / Tx / Event Fetcher"]
Parser["通用 Decoder / Parser"]
DB[(PostgreSQL)]
Redis[(Redis)]
API["Explorer API"]
Web["Subscan-like / Mintscan-like UI"]
end
ContractList --> SourceMeta
CanonicalList --> SourceMeta
HashSearch --> CommittedIndex
CommittedIndex --> CanonicalCheck
CanonicalCheck --> FailClosed
SourceMeta --> SourceVerify
GetLogs --> SelectedEvents
WSFilter --> SelectedEvents
RPC --> Fetcher
REST --> Fetcher
Parse --> Fetcher
Fetcher --> Parser
Parser --> DB
Parser --> Redis
API --> DB
API --> Redis
Web --> API
SourceVerify --> Boundary["边界: live/public Explorer / indexed logs / release signing 仍待完成"]
SelectedEvents --> Boundary
FailClosed --> Boundary