Guía paso a paso
Audiencia: operadores de hub y builders que se unen a la federación AIMarket.
Idiomas:COURSE_LANG=en|ru|es|fr|zh· cadenas UI eni18n/. English · Русский · Français · 中文
Comprobación con el ecosistema actual
Abre Hubs junto con la instantánea pública de pares. Compara peers con las filas públicas pending y, si hay una solicitud, coteja declared_capabilities con preview_capabilities. La vista pública puede omitir filas. La vista previa queda en cuarentena hasta la aprobación y el rastreo. Los vendedores observados tienen un catálogo aparte de cotizaciones x402 fechadas. Observar una ruta no admite al vendedor como par.
Por qué este curso
Un knock de federación es una observación. Nunca debe indexar el catálogo de un extraño. El curso sigue la admisión real de modelmarket.dev: well-known, puerta abierta/cerrada, cuarentena preview (search/invoke no leen esa tabla), declared vs read, approve → crawl. Los labs prefieren GET públicos en vivo; los fixtures están etiquetados y nunca se presentan como LIVE.
Pistas
| Pista | Módulos | Tiempo |
|---|---|---|
| Basic | M1 → M4 | ~2 h |
| Advanced | + M5 | +30 min |
Cada lab imprime un Trace.
Instalación
cd courses/federation-peer-hubs-course
pip install -e ".[hub-lite,dev]"
pytest -q
export COURSE_LANG=es
python labs/lab01_well_known_announce.py
COURSE_OFFLINE=1 = fixtures. COURSE_LIVE=1 pytest tests/test_live_optional.py = red opcional.
M1 — Well-known y announce
- Ejecuta el lab 01.
- Confirma LIVE
/.well-known/ai-market.json: name, conteos, signer, firma híbrida. - knock ≠ index.
M2 — Puerta abierta vs cerrada
- Lab 02 contra
/federation/peers. - Anota
door, trusted, pending. - Contrafactual con puerta cerrada: pending aún puede existir.
M3 — Cuarentena preview
- Lab 03; los tres read guards en
false. - Cola pending vacía sigue siendo evidencia válida de la regla.
M4 — Declared vs read
- Lab 04: compara claims vs conteos verificados.
- Pending:
declared_capabilitiesvspreview_capabilities. - La UI debe mostrar ambos.
M5 — Capstone: aprobar un extraño
- Checklist announce → pending → preview → approve → crawl.
- Probe live; Approve necesita bearer admin — el lab se detiene en la API pública.
Ejercicios y certificado
- Completa stubs en
courselib/exercises.py. python labs/run_exercises.pypython labs/run_exercises.py --certificate "Tu Nombre" --lang es- CI:
COURSE_USE_SOLUTIONS=1 python labs/run_exercises.py
Docs: federation-admission.md, federation-peer-keys.md.
Solución de problemas
| Síntoma | Fix |
|---|---|
| Red / HTTP | COURSE_OFFLINE=1 o COURSE_HUB_URL |
| Ejercicios fallan | stubs o COURSE_USE_SOLUTIONS=1 |
| Site viejo | python scripts/build_course_assets.py |