fish2018/pansou · error
PoW验证数据无效
Error message
PoW验证数据无效
What it means
Validation error in solveRemotePowChallenge (plugin/gying/gying.go:1698): the challenge JSON decoded but required fields are missing/invalid (N or X empty, or T <= 0), so computing the proof-of-work is impossible. Indicates the site returned a structurally valid but incomplete challenge.
Solutions
- 打印 challenge 原始字段定位缺失项
- 确认站点 PoW 协议字段名未变更
- 对 T<=0 场景检查服务端时间参数含义
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at plugin/gying/gying.go:1698 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of fish2018/pansou@beaa561337 (2026-09-07).
Data as JSON: /api/errors/2a69846a3b7b2a14.
Report an issue: GitHub.
Appendix: source
Thrown at plugin/gying/gying.go:1698
if DebugLog {
fmt.Printf("[Gying] Remote PoW Challenge命中: url=%s powURL=%s\n", requestURL, powURL)
}
body, statusCode, _, err := p.requestWithChallengeRetry(scraper, http.MethodGet, powURL, "", "")
if err != nil {
return fmt.Errorf("获取PoW验证数据失败: %w", err)
}
if statusCode != http.StatusOK {
return fmt.Errorf("获取PoW验证数据失败: HTTP %d", statusCode)
}
var challenge ChallengePageData
if err := json.Unmarshal(body, &challenge); err != nil {
return fmt.Errorf("解析PoW验证数据失败: %w", err)
}
if challenge.N == "" || challenge.X == "" || challenge.T <= 0 {
return fmt.Errorf("PoW验证数据无效")
}
y, err := p.computePowResult(&challenge)
if err != nil {
return err
}
form := url.Values{}
form.Set("y", y)
return p.submitChallengeVerification(scraper, powURL, form)
}
func (p *GyingPlugin) buildPowURL(requestURL string) (string, error) {
parsedURL, err := url.Parse(requestURL)
if err != nil {
return "", fmt.Errorf("解析验证URL失败: %w", err)
}View on GitHub (pinned to beaa561337)