CLI 参数
Vespera 的 CLI 以 -t 的“智能解析”为入口,并配合统一参数:-range / -addr / -file。旧参数仅用于兼容,不作为示例重点。
最常用的 4 条命令
扫描单个合约(Mode 1):
go run src/main.go -m mode1 -ai deepseek -t 0xYourAddress -s dao_governance -i dao_governance
扫描数据库中的目标(Mode 1 / Mode 2):
go run src/main.go -m mode1 -ai deepseek -s dao_governance -i dao_governance
go run src/main.go -m mode2 -ai deepseek
按区块范围扫描 DB 目标(start-end 会被识别为 DB 范围过滤):
go run src/main.go -m mode1 -ai deepseek -t 20000000-20001000 -s dao_governance -i dao_governance
从地址文件扫描(文件路径会被自动识别):
go run src/main.go -ai deepseek -m mode1 -t ./Contract-list/gvtest.txt -s dao_governance -i dao_governance -c eth -proxy http://127.0.0.1:7897
扫描参数
-m(模式)
mode1:定向扫描(模板驱动,适合“明确目标”)mode2:混合扫描(Slither + AI 验证,适合批量快速筛查)
-ai(模型/提供商)
chatgpt5/openai/gpt4:读取settings.yaml的ai.openaideepseek:读取ai.deepseekgemini:读取ai.geminilocal-llm/ollama:读取ai.local_llm(不需要api_key)
-s(提示词模板)
- 模板位置:
strategy/prompts/<mode>/<name>.tmpl(也支持从src/strategy/...运行) mode1下-s default(或空/all)会回退到generic_scanmode2下-s default(或空)会回退到default- 模板输出 JSON 需符合 模型输出 JSON 格式指南
-i(输入特征文件,仅 Mode 1)
- 用于 Mode 1 的漏洞特征/实验库(TOML)
- 支持写文件名或相对路径:
hourglassvul.toml(会在strategy/exp_libs/mode1/或src/strategy/exp_libs/mode1/中查找)./path/to/xxx.toml(按你给的路径读取)
-i all:扫描strategy/exp_libs/mode1/*.toml(找不到会回退尝试src/strategy/exp_libs/mode1/*.toml)
-t(目标来源 / 智能解析)
- 推荐用法:直接把“地址 / 文件 / 区块范围”传给
-t,程序会自动识别 - 也支持显式指定来源:
db | file | contract | last(一般不需要)
常用写法(更短):
# 地址 / 文件 / 范围会被自动识别
go run src/main.go -m mode1 -ai deepseek -t 0xYourAddress -s dao_governance -i dao_governance
go run src/main.go -m mode1 -ai deepseek -t ./targets.txt
go run src/main.go -m mode2 -ai deepseek -t 20000000-20001000
-addr(单地址)
- 一般不需要显式填写:
-t 0x...会自动写入目标地址 - 仍支持显式指定(一般不需要)
-file(目标文件)
- 一般不需要显式填写:
-t ./targets.txt会自动识别为目标文件 -d:下载地址文件- 文件内容:一行一个地址(最稳妥);也支持 YAML 列表/包装结构(由读取器决定)
-range(区块范围)
- 格式:
start-end -t传入start-end会自动按 DB 中的createblock过滤目标-d:按区块范围下载
-c(链) 可以自定义配置更多链
eth | bsc | base
-concurrency
- 并发 worker 数(默认 4)
-timeout
- 单次 AI 请求超时(Go
time.Duration,如60s、2m;默认120s)
-proxy
- HTTP 代理,例如
http://127.0.0.1:7897 - 同时影响下载/explorer/RPC 相关请求与 AI 请求
-r
- 报告输出目录(默认
reports)
-v
- 更详细的运行信息;并影响 AI 日志(Verbose 才记录完整 prompt/response,否则记录 hash)
下载参数
-d
- 启动下载流程(写入 MySQL)
- 优先级:
-file:按地址列表下载-range:按区块范围下载- 否则:从 DB 记录的最后区块继续
Benchmark(实验性)
-b / --benchmark
- 运行基准测试(本质上批量调用 mode1)
--database
- 数据集路径(默认
benchmark/dataset.json)
已弃用参数(兼容用,不推荐)
旧参数仍可用,但不会在示例中使用:
-d-range→-range-t-block→-range-t-file→-file-t-address→-addr