# 設定 Witness 機器人

Canonical page: https://phishdestroy.github.io/TgWitness/zh-Hant/docs/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` 以及在 Witness 主機上建立的 `bot-token.txt` 置於同一位置。在已安裝的專案環境中執行以下指令。

```
python -m tgwitness.witness run --config witness.json --check-config
python -m tgwitness.witness run --config witness.json
```

下載檔案並不會啟動「witness」。請確認首則簽名貼文已出現在頻道中，然後將「witness」的公鑰指紋另行保存。

## 選擇發布頻率

每次檢查結果的發布都會建立一份定期的外部記錄。以五分鐘為間隔計算，每個工作區每天約有 288 則貼文。進階設定還提供在發生變更或問題時發布通知、代理伺服器以及自訂 Bot API 位址等功能。

**該機器人實際上能證明什麼？**

該「見證者」會向資料收集者索取經簽名的檢查點，並使用預期金鑰進行驗證，同時另行維護一份經簽名的日誌。它不僅記錄成功的驗證結果，亦會記錄缺失的回應與被拒絕的答案。發布與否仍取決於「見證者」是否正在運行，以及能否連線至 Telegram 的 Bot API。

本工具會檢查收集器回報的日誌狀態，但不會獨立監控每則 Telegram 訊息。若需進行此類監控，請新增「受控傳送測試」。

## 稍後查閱證據

請保留證據日誌、頻道貼文以及獨立儲存的指紋資料。[完整的驗證程序](https://phishdestroy.github.io/TgWitness/zh-Hant/docs/reference/witness/#verify)會將這些資料與收集者簽署的匯出檔進行比對。
