訊息基礎
建立 ECCP 帳號、連接客戶端,並驗證第一則端對端加密訊息。
更新於 2026-04-08/zh-hant/docs/getting-started
快速開始
當四個層次保持清楚時,ECCP 最容易理解:Layer 1 定義契約,Layer 2 承載節點,Layer 3 提供使用者體驗,Layer 4 則加入可選的生態系延伸能力。
需要準備什麼
- 一個支援 ECCP 的 homeserver,可由團隊自架或由可信任的營運者提供
- 一個客戶端,例如適合一般使用者的 PrivChat,或偏向營運者工作流的 exine
- 穩定的裝置身分,讓端對端金鑰在 session 更新後仍可延續
建立第一個帳號
ECCP 帳號永遠附屬於某個 homeserver 命名空間。提供者可以是公開、私有、邀請制,或完全自託管。
Bash snippet
Bash
1
2
3
4
5
6
7
8
curl -X POST https://chat.example.org/_eccp/client/v1/register \
-H "Content-Type: application/json" \
-d '{
"username": "ada",
"display_name": "Ada",
"password": "replace-me",
"device_name": "Ada Laptop"
}'驗證裝置身分
建立帳號時,客戶端會產生裝置金鑰並啟動第一個 X25519 握手。ECCP 將帳號憑證與裝置身分分離,讓密碼輪替不會暗中替換掉你的密碼學狀態。
傳送第一則加密事件
TypeScript snippet
TypeScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import { ECCPClient } from "@eccp/sdk";
const client = new ECCPClient({
baseUrl: "https://chat.example.org",
accessToken: process.env.ECCP_ACCESS_TOKEN!
});
const room = await client.rooms.create({
visibility: "private",
name: "第一個加密房間"
});
await client.rooms.send(room.id, {
type: "m.room.encrypted",
algorithm: "eccp.megolm.v1",
body: "Handshake complete."
});檢查跨裝置同步
在第二個客戶端上登入同一帳號,確認:
- 房間不需手動匯入就會出現。
- 裝置清單可以被看見。
- 金鑰交換完成後,訊息歷史能成功解密。