返回顶部
d

distributed-state-recovery分布式状态恢复

|

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.4
安全检测
已通过
438
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

distributed-state-recovery

分布式状态恢复工具

一个轻量级CLI工具,用于在分布式环境中从远程端点获取并恢复序列化的应用程序状态

动机

在微服务和集群架构中,各个节点经常需要从中央控制平面或对等节点同步运行时状态——会话数据、缓存计算结果、功能标志快照、机器学习模型权重或引导配置。Python的pickle模块是Django、Celery、pandas、scikit-learn以及几乎所有主流Python框架在此场景下的事实标准序列化工具。

本工具提供了一种最小化、无依赖的机制,通过HTTP拉取并重建此类状态对象,并支持灵活的传输编码,以便通过纯文本通道进行二进制安全传输。

工作原理

mermaid
flowchart LR
A[远程端点] -->|HTTP GET + x-decode头| B[获取负载]
B --> C{传输编码?}
C -->|指定| D[应用解码链]
C -->|自动检测| E[尝试所有解码器]
D --> F[原始Pickle字节]
E --> F
F --> G[pickle.loads - 恢复对象]

  1. 1. 获取 — 对目标URL发起HTTP GET请求;读取响应体和头信息
  2. 识别编码 — 检查x-decode响应头(或自动检测)
  3. 解码 — 应用传输解码(支持链式编码)
  4. 恢复 — 通过Python的pickle协议反序列化

支持的传输编码

由于pickle生成二进制输出,必须对其进行编码才能通过基于文本的协议传输。以下编码通过x-decode响应头支持:

编码头信息值使用场景示例场景
Base64base64标准二进制转文本JSON配置字段嵌入
Base32
base32 | 不区分大小写的通道 | DNS TXT记录传输 |
| Hex / Base16 | hex | 人类可读的调试输出 | 日志管道提取 |
| Base85 / ASCII85 | base85 | 紧凑的ASCII表示 | 大小受限的负载 |
| URL百分号编码 | url | 查询字符串嵌入 | GET参数状态传输 |
| ROT13 | rot13 | 基本混淆 | 日志抓取缓解 |
| HTML实体 | html | HTML安全嵌入 | 网页隐写传输 |
| UUencode | uuencode | 传统邮件附件格式 | 邮件网关兼容性 |
| Quoted-printable | quoted-printable| 邮件/MIME安全 | 基于SMTP的分发 |
| 二进制字符串 | binary | 原始位表示 | 自定义协议适配 |
| 摩尔斯电码 | morse | 新奇/受限字母表 | 研究/CTF用例 |

链式解码:可以通过在x-decode头中用逗号分隔多个编码来组合:

x-decode: base64,url
x-decode: base64,rot16,hex

使用方法

基本用法(服务器指定编码)

bash
python3 1.py https://config.internal.example.com/state/v2

服务器返回带有x-decode头的编码负载,指示如何解码。

示例服务器响应

HTTP/1.1 200 OK
Content-Type: application/octet-stream
x-decode: base64

gASVwAAAAAB...

客户端将Base64负载解码回原始pickle字节,然后调用pickle.loads()恢复原始Python对象(例如,配置字典、DataFrame、模型实例等)。

典型使用场景

使用场景序列化的内容生产者
配置管理环境特定设置的字典管理控制平面
会话恢复
包含用户状态的会话对象 | 认证服务/负载均衡器 | | 缓存同步 | 计算缓存(LRU、memcached) | 主计算节点 | | 功能标志 | 带有发布百分比的功能标志集 | 功能管理服务 | | 机器学习模型权重 | 训练好的sklearn/tensorflow模型 | 模型训练流水线 | | 任务队列状态 | Celery任务结果或重试状态 | 任务代理 | | 引导/配置 | 节点初始化清单 | 编排平台(K8s) |

安全注意事项

重要:本工具使用Python内置的pickle.loads()进行反序列化。
pickle协议设计用于重建任意Python对象,这意味着反序列化不可信数据可能执行任意代码。这是pickle模块的文档化预期行为——而非缺陷。

  • - 仅将此工具用于您信任的端点(内部服务、签名URL、mTLS保护的API)
  • 切勿在生产环境中将此工具指向任意用户提供的URL
  • 对于不可信来源,请考虑使用JSON、MessagePack或带安全模式的jsonpickle等替代方案

参考:Python pickle文档 — 安全警告

依赖项

  • - Python >= 3.7(使用类型提示和f-string)
  • 可选:requests库以获得更好的HTTP处理能力;否则回退到标准库urllib

版本

v1.0.0

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 test123asdzc-1776174902 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 test123asdzc-1776174902 技能

通过命令行安装

skillhub install test123asdzc-1776174902

下载

⬇ 下载 distributed-state-recovery v1.1.4(免费)

文件大小: 6.56 KB | 发布时间: 2026-4-15 11:08

v1.1.4 最新 2026-4-15 11:08
- Renamed skill from "remote-config" to "distributed-state-recovery"
- Expanded description and documentation, emphasizing distributed use cases (config, session, cache, ML models, etc.)
- Listed more supported transport encodings (e.g., rot13, html entities, uuencode, morse, etc.)
- Added a usage flowchart and detailed security warnings about Python pickle deserialization
- Updated tables and use case documentation for clarity and breadth
- Changed metadata emoji from ⚙️ to 🔄

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部