| 属性 | 值 |
|---|---|
| 字段编号 | 40600 |
| 类型 | BLOB |
| 所属表 | group_msg_table |
| 置信度 | ✅ 高(结构)/ ❓ 低(业务语义) |
40600 是结构化的状态/附加信息 Protobuf。当前数据可以稳定确认其 wire 结构,但不能仅凭该字段确定具体业务动作。
基于 540,018 行群消息:
- NULL:
5,019行; - 非 NULL:
534,999行; - wire parser 成功:
534,999行; - bbpb 成功:
534,999行; - group 专用超集强类型成功:
534,999行; - 非 NULL 强类型成功率:
100%。
统一定义和解析入口位于:
msgdb/proto/group_40600.protomsgdb/proto/group_40600_pb2.pymsgdb/proto/group_40600_parser.py
外层结构:
message StatusBody {
StatusMessage content = 40600;
}
message StatusMessage {
int64 status_timestamp = 42211;
int64 marker = 42261;
}| BLOB 长度 | 行数 | 主要结构 |
|---|---|---|
| 8 字节 | 530,872 | 42261 单字段,值通常为 0 |
| 16 字节 | 4,045 | 42211 + 42261 |
| 12 字节 | 73 | 42211 + 42261 的另一种长度组合 |
| 21/24/29/32/33/88 字节 | 少量 | 特殊消息类型的扩展结构 |
固定 8 字节内容对应一个只含 42261 的 Protobuf 消息,固定值并不否定其 Protobuf 身份。
42211 和 42261 目前只按结构命名。它们会出现在普通消息、回复、撤回、转发和系统消息等多个外层类型中,因此不能单独解释为回复、撤回或版本标记。需要结合 40011、40012 和其他消息字段进行后续研究。
40600 非 NULL 覆盖多种消息类型,主要包括:
40011=2:普通消息和媒体消息;40011=9:回复消息;40011=5:系统/撤回/特殊消息;40011=8/11:合并转发;40011=17:系统通知;- 其他文件、视频和语音类型。
16 字节结构高度集中于 40011=5,40012=4,但这只能说明结构与该消息分支相关,不能直接证明其就是撤回标志。
| 字段号 | 类型 | 当前解释 | 置信度 |
|---|---|---|---|
42211 |
int64 | 时间或操作时间字段;具体事件未定 | ❓ 低 |
42261 |
int64 | 标记/状态字段,通常为 0 |
❓ 低 |
group_40600_parser.py 优先使用 Body 强类型解析;失败时回退到 msgdb/proto/wire.py,保留原始 wire 字段。
解析器优先保证结构解码,不将 42211、42261 强行解释为撤回、回复或版本号。
40600 可以确认是 Protobuf wire 数据,group 专用 schema 对非 NULL 数据的强类型覆盖率为 100%。
但字段的业务语义仍保持低置信度,尤其是固定 8 字节标记以及 40011=5,40012=4 分支中的时间字段。
-
读取时保留
42211、42261的原始值和 wire 类型。 -
不将固定 8 字节结构直接命名为撤回、回复或版本标志。
-
解码超集:
msgdb/proto/group_40600.proto -
解码入口:
msgdb/proto/group_40600_parser.py