Пошаговое руководство
Аудитория: операторы хабов и разработчики агентов, входящие в федерацию AIMarket.
Языки:COURSE_LANG=en|ru|es|fr|zh· строки UI вi18n/. English · Español · Français · 中文
Сверка с текущей экосистемой
Откройте Hubs рядом с публичным снимком пиров. Сравните peers с публичными строками pending, а в доступной заявке сопоставьте declared_capabilities и preview_capabilities. Публичный снимок может показывать только часть заявок. Предпросмотр остаётся в карантине до одобрения и обхода. Наблюдаемые продавцы образуют отдельный каталог датированных котировок x402. Наблюдение маршрута не даёт продавцу статус пира.
Зачем этот курс
Стук в федерацию — это наблюдение. Он не должен индексировать каталог незнакомца. Курс проходит реальный путь admission на modelmarket.dev: well-known, открытая/закрытая дверь, карантин preview (search/invoke не читают эту таблицу), declared vs read, approve → crawl. Labs предпочитают live GET; фикстуры помечены и никогда не выдаются за LIVE.
Треки
| Трек | Модули | Время |
|---|---|---|
| Basic | M1 → M4 | ~2 ч |
| Advanced | + M5 | +30 мин |
Каждый lab печатает Trace.
Установка
cd courses/federation-peer-hubs-course # или клон спутникового репо
pip install -e ".[hub-lite,dev]"
pytest -q
export COURSE_LANG=ru
python labs/lab01_well_known_announce.py
COURSE_OFFLINE=1 — только фикстуры. COURSE_LIVE=1 pytest tests/test_live_optional.py — опциональная сеть.
M1 — Well-known и announce
python labs/lab01_well_known_announce.py- Проверьте LIVE
/.well-known/ai-market.json: name,federated_capabilities_count, signer, hybrid (ed25519+ml-dsa-65). - Запомните: knock ≠ index.
Самопроверка: поля идентичности; announce не индексирует.
M2 — Открытая vs закрытая дверь
python labs/lab02_open_vs_closed.py- Запишите
door, trusted/pending counts. - Контрфактуал с закрытой дверью — pending всё ещё возможен (сиды/краулер).
Самопроверка: дверь и preview — разные переключатели.
M3 — Карантин preview
python labs/lab03_preview_quarantine.py- Все read-guards =
false. - Пустая очередь pending — тоже валидное LIVE-доказательство правила.
Самопроверка: preview не searchable / не invocable.
M4 — Declared vs read
python labs/lab04_declared_vs_read.py- Сравните заявленное и прочитанное; для pending —
declared_capabilitiesvspreview_capabilities. - UI оператора показывает оба числа.
Самопроверка: не доверяйте только knock-claim.
M5 — Capstone: одобрить незнакомца
python labs/lab05_approve_capstone.py- Чеклист: announce → pending → preview → approve → crawl.
- Live probe; Approve/repin требуют admin bearer — lab на публичном API.
Упражнения и сертификат
- Заполните stubs в
courselib/exercises.py. python labs/run_exercises.pypython labs/run_exercises.py --certificate "Ваше Имя" --lang ru- CI:
COURSE_USE_SOLUTIONS=1 python labs/run_exercises.py
Прод-доки: federation-admission.md, federation-peer-keys.md.
Устранение проблем
| Симптом | Решение |
|---|---|
| Сеть / HTTP | COURSE_OFFLINE=1 или COURSE_HUB_URL |
| Упражнения fail | stubs или COURSE_USE_SOLUTIONS=1 |
| Сайт устарел | python scripts/build_course_assets.py |