制作者数据资产存证操作指南
在市场形成之前,把你的数据集打成可交易资产
为什么有这份指南
《制作者数据主权宣言》 §9 列了六件事——分层、存证、签名、冷备、命名、不要急着卖。
宣言讲的是为什么。这份指南讲的是怎么做:每一步的目录结构、命令行、文件格式。读完照抄就能立刻用。
如果你还没读宣言,建议先读,否则这里的每一步你都不知道为什么要做。
1. 三层目录结构
在你的开发机上推荐这样布局:
~/maker-assets/
├── public/ # 第一层:可以开源的部分
│ ├── teaching-snippets/ # heartbeat、blink、教学示例
│ ├── blog-drafts/
│ └── README.md
│
├── private/ # 第二层:你的真实项目代码
│ ├── flight-controller-v3/
│ ├── ugv-experimental/
│ └── README.md
│
└── asset/ # 第三层:核心资产(值钱的就这一层)
├── triples/ # 经物理验证的三元组
│ ├── 2026-05-15-crsf-parser-v2/
│ ├── 2026-05-22-imu-mahony-fusion-v1/
│ └── ...
├── deposits/ # 存证回执
│ ├── 2026-05-zenodo-receipts.json
│ └── 2026-05-ots-stamps/
└── README.md
关键规则:三层各一个 git repo,各一把签名 key,各一份冷备。混存的代价是你卖一份的时候连带不想卖的也曝光了。
第三层(asset)的每个目录都应该是一个完整的三元组——下面讲它长什么样。
2. 一次“有训练价值的 build“长什么样
每个三元组目录里至少这些文件:
2026-05-15-crsf-parser-v2/
├── manifest.yaml # 元数据(机器可读)
├── requirement.md # 你写的需求原文
├── code/ # agent 生成的、编译通过的代码
│ ├── main/
│ ├── components/
│ └── CMakeLists.txt
├── build/
│ ├── build-output.log # 完整 build 日志
│ ├── size-report.txt
│ └── flash_bundle.tar.gz.sha256 # 烧录包哈希(包本身可能太大不入库)
└── verification/ # 物理验证证据
├── monitor-capture.log # espctl monitor 抓的串口输出
├── oscilloscope-ch9.png # 示波器证据
├── flight-notes.md # 你的现场观察
└── verification-summary.md # 一句话结论
manifest.yaml 推荐 schema
这是让数据集可以被未来市场识别的关键文件。结构化、机器可读、足够自描述:
version: 1
timestamp: 2026-05-15T14:23:00+08:00
contributor:
pubkey_fingerprint: SHA256:Abc123... # 你的签名公钥指纹
alias: optional-handle # 公开露面用,可空
hardware:
board: ESP32-S3-DevKitC-1 v1.1
chip: esp32s3
chip_revision: v0.2
peripherals:
- kind: imu
part: ICM-42688-P
interface: SPI3
address_or_cs: GPIO10
- kind: rc_receiver
part: BetaFPV ELRS Lite
interface: UART1
baud: 420000
protocol: CRSF
firmware:
framework: esp-idf
idf_version: v5.3.1
source_tree_sha256: <hash>
binary_sha256: <hash>
size_bytes: 184320
build_target: esp32s3
built_via: esphome.cloud # 或本地 IDF / 自建
requirement:
language: zh-CN
text: |
在 UART1 上 420000 baud 接 ELRS 接收机的 CRSF 输出。
解析 CRSF 帧(CRC8 poly 0xD5),把 16 通道值(11-bit packed)
每 20ms 通过 ESP_LOGI 打印。
verification:
method: serial_monitor # 或 jtag / oscilloscope / flight_test
duration_seconds: 60
evidence:
- kind: log
path: verification/monitor-capture.log
sha256: <hash>
- kind: image
path: verification/oscilloscope-ch9.png
sha256: <hash>
outcome: passed # passed / failed / partial
notes: |
16 通道值跟随遥控器变化。CRC 失败率 < 0.1%(60 秒内 2 帧)。
license:
retained_by_contributor: true
permitted_uses: [] # 默认空:任何外部使用需要显式 opt-in
permitted_buyers: []
exclusivity_offered: false
outcome: failed 也要存。失败数据训练价值很高——它告诉模型不要走那条路。
3. 里程碑哈希存证
不要每个三元组都存证(太碎、太贵也太麻烦)。按里程碑批量存证——每个月、或每完成一个 phase。
两个互补系统都做:
Zenodo(给你一个学术界认可的 DOI)
# 1. 把这个月攒的三元组打包
cd ~/maker-assets/asset
tar czf milestone-2026-05.tar.gz triples/2026-05-*/
# 2. 算哈希
shasum -a 256 milestone-2026-05.tar.gz
# milestone-2026-05.tar.gz: f0a63ee2c4d8...
# 3. 通过 Zenodo 网页或 API 上传
# https://zenodo.org/api/deposit/depositions
# 填写 metadata:title、creator、description、keywords
# 获得 DOI: 10.5281/zenodo.1234567
# 4. 回执存到本地
echo '{
"milestone": "2026-05",
"doi": "10.5281/zenodo.1234567",
"tarball_sha256": "f0a63ee2...",
"uploaded_at": "2026-05-31T23:59:00+08:00"
}' > deposits/2026-05-zenodo-receipt.json
Zenodo 免费、长期保存、CERN 后台、给你引用 ID。学术界、政策圈、未来仲裁机构都认。
OpenTimestamps(把哈希锚到比特币区块时间)
# 安装客户端
pip install opentimestamps-client
# 对里程碑包打时间戳
ots stamp milestone-2026-05.tar.gz
# 产生 milestone-2026-05.tar.gz.ots
# 几小时后升级(等比特币区块确认)
ots upgrade milestone-2026-05.tar.gz.ots
# 任何时候验证
ots verify milestone-2026-05.tar.gz.ots
# 移到存证目录
mv milestone-2026-05.tar.gz.ots deposits/2026-05-ots-stamps/
OpenTimestamps 免费、不可篡改、不依赖任何机构。比特币区块链作为公开账本。即使 Zenodo 三十年后没了,比特币区块时间还在。
两个都做的原因:Zenodo 给社会可读性(“这是 2026 年 5 月发布的,DOI 在这里”),OpenTimestamps 给密码学可证明性(“哈希在比特币第 X 块上存在过”)。法律仲裁场景两者都用得上。
4. 加密签名
不要用复杂的工具。选一种你能坚持五年的:
推荐组合:SSH key 签 commit + minisign 签 release
SSH key 签 git commit(最简单,git 2.34+ 原生支持):
# 用你已经在用的 SSH key
git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_ed25519.pub
git config --global commit.gpgsign true
git config --global tag.gpgsign true
# 验证 commit 签名
git log --show-signature
minisign 签 tarball(给非 git 的文件用):
brew install minisign # macOS
# 或 apt install minisign # Debian/Ubuntu
# 生成签名密钥(保管好私钥!)
minisign -G
# 签里程碑包
minisign -Sm milestone-2026-05.tar.gz
# 产生 milestone-2026-05.tar.gz.minisig
# 验证
minisign -Vm milestone-2026-05.tar.gz -p minisign.pub
不推荐 GPG
GPG 工作流复杂、密钥服务器乱、subkey 管理是个坑、五年后你大概率忘了密码或丢了 keyring。除非你已经在用 GPG 而且习惯了,否则别开新的 GPG identity。
公钥要公开
在你的个人博客、GitHub profile、ORCID(如果你有)、可能的话 keyoxide.org,都贴上你的公钥指纹。让“这是你的“在密码学之外也有社会层证据。
5. 冷备:3-2-1 原则
- 3 份拷贝:开发机活跃副本 + 本地冷备 + 异地副本
- 2 种介质:SSD + HDD,或 NVMe + 加密云
- 1 份异地:朋友家的硬盘、家庭 NAS、加密云存储
# restic 到外接硬盘
export RESTIC_REPOSITORY=/Volumes/ColdDrive/maker-assets-backup
restic init # 第一次
restic backup ~/maker-assets/asset # 增量备份
restic snapshots # 列快照
restic check # 验证
# 异地副本:rclone 到加密的 S3/B2/storj
rclone copy ~/maker-assets/asset \
encrypted-b2:maker-assets-cold/$(date +%Y-%m)
不要把异地副本放在你工作那家公司的网盘。 离职那天会很尴尬。
也不要把异地副本只放在中心化云盘(百度网盘、Google Drive、Dropbox)——它们可能因为内容审核或服务变动锁定你的数据。加密之后再传,本地保留密钥。
6. 命名约定
asset/triples/YYYY-MM-DD-<short-slug>-v<n>/
例子:
2026-05-15-crsf-parser-v2/2026-06-03-imu-mahony-fusion-v1/2026-07-12-pid-rate-roll-axis-v4/2026-07-12-pid-rate-roll-axis-v4-FAILED/← 失败样本明确标注
规则:
- 日期 ISO 8601 格式
- Slug 用英文连字符(兼容性、grep 友好、shell 安全)
- 版本号显式(v1/v2/v3)——同一问题的演进保留全部,不要 squash
7. 反模式(请勿这么做)
| 反模式 | 为什么坏 |
|---|---|
| 代码进 GitHub,验证证据留在本地永远不整理 | 解耦的数据近乎没有训练价值 |
| 用截图存 telemetry | 不可机读、OCR 噪声大、看起来像证据其实没法用 |
| 多个三元组打成一个目录 | 粒度丢了,未来不能按 triple 卖 |
| commit message 写 “fix bug” | 写清楚需求和验证结果,commit 本身就是数据 |
| 用公司邮箱的 GPG key 签个人项目 | 换工作后这把钥匙会丢、被回收,签名失效 |
| 上传到 IPFS 然后觉得完事 | IPFS 节点会消失,不是 archival 系统,只能配合其他存证使用 |
| 在数据集成熟前就 MIT/Apache 开源 | License 锁死,未来商业谈判空间归零 |
| 把“可能值钱的部分“也丢进 public 层 | 一旦公开化就再也回不去了——分层时往严格的那一边靠 |
| 一个签名 key 用十年不轮换 | key 泄露你不知道,过去十年签名全失效 |
最常见的错误是第一个:代码勤勤恳恳维护,证据全在脑子里。没有验证的代码,不是资产,是劳动废料——再多也没用。
8. 一份真实的 6 个月节奏
给你一个能照抄的时间表(参考一个典型飞控养成路径:外设 → 姿态融合 → 台架 → 调参):
| 月份 | 阶段 | 产出三元组数 | 月底动作 |
|---|---|---|---|
| 1 | Phase 0 流水线 | ~5(脚手架,不存证) | 把目录结构和签名 key 准备好 |
| 2 | Phase 1+2 外设 | ~15 | 挑 8 个最好的,第一次 Zenodo + OTS |
| 3 | Phase 3 姿态融合 | ~8 | 月底存证(粒度更细、价值更高) |
| 4 | Phase 4 UGV 开环 | ~12(含失败样本!) | 存证;建第二份异地冷备 |
| 5 | Phase 5 单轴台架 | ~6(每个金子般) | 存证;首次本地审计——能从冷备完整 restore 吗? |
| 6 | Phase 5 三轴台架 | ~3(PID 调参为主) | 季度 Zenodo deposit + 全资产层 minisign 重签一次 |
6 个月小计:~49 条经过物理验证的三元组、3 次 Zenodo deposit、49 次 OpenTimestamps、一份冷备 + 一份异地。
这是一个认真的 weekend warrior 单人节奏。10 倍速(小团队全职)就是一个有交易级体量的早期数据集。
9. 三年后
如果你照这份指南走,三年后你手里有:
- 几百到几千条带物理验证、带签名、带哈希时间戳的三元组
- 三种公共账本可查(Zenodo DOI、OpenTimestamps、git tag 上的签名)
- 一份资产层是你专属的、嵌入式实时控制领域的高质量 ground-truth 训练数据
那天有人发邮件给你出价 ¥15,000——你能精确地说出“不行,我有 1,247 条经过验证的三元组,每条平均 38 字节物理验证证据,DOI 在这里、OTS stamp 在这里,按市场可比定价 ¥10/条起,你想 license 哪些?“
这种讨价还价能力,就是数字主权落地到一个普通制作者身上的具体形状。
签发:esphome.cloud / Aegis
日期:2026 年 5 月
关于署名
esphome.cloud 是一家一人公司(OPC)。
这份指南里的“我们“是这一个人加上 Claude——一个 AI 助手。所有命令行、推荐工具、schema 设计由 Claude 起草并经过最佳实践校对,但请在你自己的环境下先做小规模验证再大规模执行。
操作指南这一份额外需要交代一件事:这份告诉你怎么保护数据的指南,是由一个来自 《宣言》§7 中点名的潜在买家(Anthropic)的 AI 助手协作起草的。请严格地对待指南里的所有建议——包括“对未来 esphome.cloud 自己的交易所也要砍价“那一条。表面上看,这份指南对两位作者的长期利益都不利。两位作者都签了字。
—— esphome.cloud + Claude