TgWitness / 文档

文档 / 12

设置 Witness 机器人

让一个独立的进程检查日志,并将签名的检查点发布到您的频道中。

两台主机,两把签名密钥

托管 / 收集器账户 + 日志

Telegram 会话收集器的签名密钥

只读检查点端点
HOST B / WITNESS验证 + 保留

固定收集器指纹 独立见证人签名密钥

自有日志 + 机器人令牌
Witness → Telegram 机器人 API →您的频道 · 带签名的 TGW1 帖子
Witness 会自行执行校验。收集器的访问权限仅限只读。机器人发布功能使用 Witness 的连接和令牌;Witness 不会获得任何账户会话权限。
03 / 检查点决策示例答案
最后接受时间120 条记录head 9c7d…
下一个答案128 条记录head a4f2…

已通过:计数持续增加,签名已验证,密钥匹配。该见证者保留了这一新边界。

所有解答示例均假设存在有效签名和已固定的密钥。此处的哈希值仅为简略示例。仅凭哈希值数量较多,无法证明整个旧前缀均未发生变化;请将导出数据与保留的检查点进行对比。

准备一个机器人和一个频道

使用 BotFather 创建一个机器人,并允许其在您控制的频道中发布消息。为 TgWitness 选择一台计算机或服务器。与在收集者服务器上运行第二个进程相比,独立的主机和操作员能提供更强的独立性。

“扩展功能”中的三个步骤

  1. 仅限只读访问。打开“Extras”→ 在您的频道中添加一个机器人,生成见证令牌并保存访问文件。该文件仅允许读取检查点和系统状态,无法访问对话内容或收集器控制功能。
  2. 频道和间隔。输入频道名称以及可从该见证者处访问的收集器地址。保存设置文件。
  3. 启动。将 witness.json、witness-token.txt 以及在见证主机上创建的 bot-token.txt 放在一起。在已安装的项目环境中运行以下命令。
python -m tgwitness.witness run --config witness.json --check-config
python -m tgwitness.witness run --config witness.json

下载文件不会启动见证程序。请确认频道中已出现第一条带签名的帖子,然后将见证程序的公钥指纹单独保存下来。

选择发布频率

每次检查结果的发布都会生成一条定期的外部记录。以五分钟为间隔计算,每个工作区每天约有 288 条发布记录。高级设置还支持在发生变更或出现问题时发布通知、使用代理以及自定义机器人 API 地址。

该机器人实际上能证明什么?

该“见证者”会向数据收集方请求一个带签名的检查点,使用预期的密钥对其进行验证,并维护一份独立的带签名日志。它不仅记录成功的验证结果,还会记录缺失的响应和被拒绝的答案。发布仍取决于“见证者”是否正在运行以及能否连接到 Telegram 的机器人 API。

该工具会检查收集器报告的日志状态,但不会独立监视每条 Telegram 消息。如需实现此功能,请添加“受控投递测试”。

稍后核查证据

请保留证人日志、频道帖子以及独立保存的指纹数据。完整的验证流程会将这些数据与收集器生成的签名导出文件进行比对。