Translate the GitHub bug/feature issue forms and PR template, the docs index, and pow/README to English. Rename the reverse-engineering note file to an ASCII name (deepseek-sse-behavior-2026-04-05.md); its body is translated in a follow-up.
DeepSeek PoW Pure-Compute Implementation
The server-side PoW now runs on a pure Go implementation: internal/deepseek/pow.go reads the fields from the upstream challenge map, calls ds2api/pow to solve the nonce, and assembles the x-ds-pow-response header.
Algorithm
DeepSeekHashV1 = SHA3-256 but with Keccak-f[1600] skipping round 0 (only rounds 1..23). All other parameters are unchanged: rate=136, padding=0x06+0x80, output=32 bytes.
PoW protocol: the server picks answer ∈ [0, difficulty) and computes challenge = hash(prefix + str(answer)).
The client iterates over [0, difficulty) to find the matching nonce.
prefix = salt + "_" + str(expire_at) + "_"
input = (prefix + str(nonce)).encode("utf-8")
hash = DeepSeekHashV1(input) → 32 bytes
header = base64(json({algorithm, challenge, salt, answer, signature, target_path}))
Main entrypoints
pow/deepseek_hash.go: DeepSeekHashV1 / Keccak-f[1600] rounds 1..23.pow/deepseek_pow.go:SolvePow,BuildPowHeader,SolveAndBuildHeader.internal/deepseek/pow.go: server-side adapter layer; validatesalgorithm == DeepSeekHashV1and callspow.SolvePow.
Tests
cd pow && go test -v ./... && go test -bench=. -benchmem