Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
TBP-NETWORK — Теория и реализация протокола TBP для защиты сетевого ИИ в малых и открытых веб-сетях | Kitploit
Инструменты/GitHubGitHub/philippeabraxas-jpg/tbp-network
Аутентификация и авторизацияОборонительные ИнструментыАудит конфигурацииКонтроль доступа к сетиСетевая безопасностьКриптографияУправление идентификацией и доступом (IAM)Реагирование на Инциденты
GitHubphilippeabraxas-jpg/tbp-network

TBP-NETWORK

Теория и реализация протокола TBP для защиты сетевого ИИ в малых и открытых веб-сетях

1513 ч 7 мин назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

TBP-NETWORK

Сетевая реализация Телеологического протокола ограничения (TBP) — аттестованное управление действиями ИИ-агентов в сети, от одной машины до корпоративных развёртываний вплоть до масштаба WWW.

« Существующий контроль доступа решает, попадёте ли вы внутрь; TBP решает, что вам разрешено делать, оказавшись внутри — и доказывает это. Мы управляем возможностями, а не моделями. »

Никогда не партнёрство по доверию — только по аттестованному рукопожатию. Именно этим и является данный репозиторий: межузловое рукопожатие (спецификация §3) и всё вокруг него — NAC, PEP, реестры ячеек — что расширяет управление TBP от одной машины до сети сущностей, которым приходится доверять друг другу, не просто доверяя друг другу.

Примечание о языке: эталонная спецификация теперь — docs/spec-en-v1.0.md (английский) — это документ, на который следует ориентироваться при код-аудитах. Рабочая заметка автора — более плотная, менее линейная, полезная для изучения обоснований дизайна, но не та, на которую следует ссылаться — существует на двух языках: docs/spec-v1.4.10.md (английский) и docs/spec-v1.4.10.fr.md (оригинал на французском). Та же конвенция применяется по всему репозиторию: каждый документ, изначально написанный на французском, теперь имеет английскую основную версию по исходному пути, а французский оригинал хранится рядом как <name>.fr.md. Глоссарий (docs/glossaire.md) по-прежнему имеет французский источник (§14 французского документа — это источник истины по терминологии) с колонкой английских пояснений для удобства чтения — это не изменилось.

Начните здесь

Полная спецификация — docs/spec-en-v1.0.md — она является источником истины для любого проектного или конфигурационного решения в этом репозитории. Этот README лишь резюмирует необходимое для ориентации; в случае сомнений — главенствует спецификация. Рабочая заметка (docs/spec-v1.4.10.md, английский перевод французского оригинала) не устарела по содержанию — это тот же протокол, разработанный там в первую очередь — но она не является цитируемым эталоном в дальнейшем.

Полезные ориентиры для её чтения:

  • §1 Доктрина — десять незыблемых правил.
  • §13 Последовательность реализации — порядок, которого следует придерживаться (HSM → OPA → PEP → NAC → транслятор), и точный объём пилота P1.
  • §9.1 Бюджет трения — пороги задержки и частоты арбитража, которые определяют, действительно ли работает развёртывание TBP; держите их в поле зрения при каждом конфигурационном решении.
  • docs/glossaire.md — один канонический термин на понятие, используемый последовательно в коде и документации этого репозитория (см. CONTRIBUTING.md).

Связь с основным репозиторием TBP

Сам протокол — спецификация, формальная доктрина, состязательные аудиты, основная реализация (подпись HSM, цепочка аудита Merkle, движок политик OPA) — находится в Responsible-Alliance-Protocol, лицензирован под Apache 2.0 (открытая), и вендорится в дерево здесь в tbp4.2.1/ как git-субмодуль, закреплённый на конкретном коммите — указатель, а не форк: этот репозиторий никогда не является местом для подачи issue или PR против того кода, только против сетевых компонентов развёртывания ниже. Этот репозиторий является сетевым развёртыванием того же протокола: NAC, локальные PEP, реестры ячеек, межузловое рукопожатие — компоненты, необходимые для переноса TBP с одной управляемой машины на управляемую сеть. На момент этого уведомления собственный код этого репозитория также под Apache 2.0 (см. Лицензирование ниже) — та же лицензия, что и у основного протокола, одна лицензия для обоих репозиториев, а не две. Ранее он использовал закрытую лицензию в течение начальной пилотной фазы; эта фаза завершена.

Поддержание субмодуля в актуальном состоянии: tbp4.2.1/ не обновляется сам — перевод его на более новый коммит Responsible-Alliance-Protocol является намеренным, проверяемым действием (cd tbp4.2.1 && git checkout <commit> && cd .. && git add tbp4.2.1 && git commit), никогда автоматическим. Закреплённый субмодуль, который молча отстаёт от исправления безопасности в upstream, хуже, чем отсутствие субмодуля вовсе — относитесь к его обновлению с той же тщательностью, что и к любому другому обновлению зависимости, и сначала проверьте собственный changelog основного репозитория.

Структура репозитория```

tbp4.2.1/ Git submodule: the core protocol (Responsible-Alliance-Protocol, pinned commit) — working implementation, tests, live at invarian.fr; includes tbp-v4-hard-shield/ (the OPA policy engine this repo's PEPs enforce against). Not copied: run git submodule update --init to fetch it; source of truth and issue tracker for this code stay in that repository. docs/ Specification (spec-en-v1.0.md, reference; spec-v1.4.10.md + spec-v1.4.10.fr.md, working note EN/FR), glossary, audits figs/ Figures referenced by the spec (see MANIFEST.md) policies/ ├── README.md How to generate capabilities.json correctly ├── gen_capabilities.sh + validate_determinism.go Generation + determinism gate └── rego/ Illustrative example Rego policies config/ ├── nftables/ Local PEP redirection + P1 router rules (§4.1, §5.1) ├── freeradius/ 802.1X / EAP-TLS + enrolment/revocation scripts (§5.1) └── sysctl/ Generic kernel hardening src/ ├── pep/ Local policy enforcement point (§4.1, §4.1-bis, §4.3): │ CWT/COSE token validation (Ed25519), memory-bounded │ fail-closed anti-replay, clock-status degraded mode, │ execution quotas, plan-as-contract gate, monitor→closed │ modes, pepd daemon │ └── postgres-extension/ Two-hook in-process PEP for PostgreSQL (§4.4) ├── broker/ Cell broker (§5.1): single entry point of the decision │ flow — orchestration, token issuer, emission envelope, │ HTTP server (brokerd), epoch/quorum/plan-contract wiring ├── cluster/ Multi-cell fencing (§7.2–§7.5): single-authority epochs │ (m-of-n verified, monotone, equivocation-detected), │ k-of-n quorum for class W, mirror/canary promotion ├── registry/ Cell registry (§6): Tessera POSIX cell log with signed │ checkpoints, disk backpressure, anchoring + TSA, │ attested state manifest, measured boot (§6.3) ├── supervision/ Independent monitor (§2, §6.2, §7.1): verified chain │ reading (ChainWatcher), divergence alerting, failover │ detection, read-only console, supervisord ├── telemetry/ Flow metadata exporters, anti-dribble (§4.1-bis) └── translator/ Translator (§4.5): runtime hardening (hardened systemd unit, seccomp allowlist, confinement audit) + controlled degradation state machine (structured-only, no cloud fallback; mirror failover / human escalation / default-deny per system class) + quality measurement (corpus replay, per-class FNR/FPR gate blocking CI, stratified human sampling, TBTM1 registry leaf) deploy/ Multi-machine deployment guides (router, cell, server, supervisor) with per-machine checklists, monitor→closed posture switch, and an executable selftest (82 controls) scripts/genesis/ Genesis ceremony tooling (epoch 0, controller keys §12) lab/ docker-compose PoC + containerlab P1 topology + netns tests (802.1X fail-closed, MAB/IoT VLAN, OCSP remediation) tests/ ├── p1_friction/ Friction budget (§9.1): thresholds + Go harness + leading indicators └── p2_redteam/ Attack scenarios (§13) + evidence-producing runner .github/ Issue templates, CI (Rego determinism gate + lint)

root@kitploit:~
**Текущий статус (на 2026-09-22): код развёртывания реализован и
протестирован по всему пути — genesis → fencing → registry → broker → PEP →
supervision → translator → deployment.** Каждый пакет `src/` несёт свой
собственный набор тестов (модульные/интеграционные тесты на Go, Python для
инструментов аудита и измерений), а `deploy/selftest/` выполняет руководства
по развёртыванию от начала до конца (**82 контроля, 0 сбоев** — руководство,
которое расходится с кодом, ломается там, а не у оператора). Сейчас против этого
репозитория нет открытых PR — весь находившийся в работе бэклог (T25
контролируемая деградация, T38 ограниченная асинхронная долговечность реестра,
T26 измерение качества переводчика) уже слит. Два пункта остаются открытыми и
отслеживаются намеренно, ни один из них не блокирует пилот: английский перевод
оставшейся французской документации ([#83](https://github.com/philippeabraxas-jpg/TBP-NETWORK/issues/83),
в процессе — большая часть `deploy/` и `docs/` уже имеет английские
основные версии, см. «Примечание о языке» выше), и междоменный слой
(спецификация §13 — отложен самой спецификацией, отслеживается в
[#33](https://github.com/philippeabraxas-jpg/TBP-NETWORK/issues/33), чтобы
«отложено» оставалось видимым, а не молча отсутствовало). Что намеренно
**не** здесь пока помимо этого: нативные корпуса переводчика для каждого языка
(должны быть сформированы на пилоте, §15 — конвейер, который их воспроизводит
и проверяет по ним, построен) и путь эскалации к человеческому арбитражу
(brokerd v1 принимает только `structured` переводчик).
Не развёртывайте `config/` как есть — каждый файл там говорит об этом явно,
стоит повторить и здесь. Протокол, против которого управляет этот код
развёртывания, тоже не скелет: `tbp4.2.1/` вендорит рабочий ядро (HSM
подписывающий, цепочка аудита Меркла, движок политик OPA, тесты, процесс
состязательного анализа) в дерево через git submodule, привязанный к
конкретному коммиту — присутствует здесь, не будучи скопированным или
дублированным.

## Руководство по конфигурации — с чего начать

Исходя из последовательности реализации (§13) и области пилота P1 (§13,
§9.1: 1 серверный VLAN, маршрутизатор Debian, 2 ячейки, 802.1X, центральный реестр,
измеренная регрессия пользовательского опыта = 0):

1. **Genesis и ключи** (§7.2, §3.2) — прежде всего: церемония genesis,
   подписанная кворумом контроллеров (m-of-n, HSM), закреплённая
   внеполосно. [`scripts/genesis/`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/scripts/genesis) предоставляет
   инструментарий эпохи-0 (включая dev-путь); сама церемония остаётся
   процедурной, а не кодовой — ничто в этом репозитории её не заменяет.
2. **Кластерный fencing** (§7, §13 шаг 2) — выпуск и ротация эпох,
   кворум контроллеров (k-of-n) для действий класса-W, продвижение
   mirror/canary. Требуется до любого многоячеечного развёртывания, включая
   2-ячеечный пилот P1 ниже — одна ячейка может это отложить, пилот не может.
   Реализовано в [`src/cluster/`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/src/cluster) (трекер эпох с единым
   органом, кворум, продвижение по доказательству получения — приватный ключ
   там не хранится) и подключено к брокеру ([`src/broker/`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/src/broker)).
3. **OPA + реестр** — установите OPA, сгенерируйте `policies/capabilities.json`
   следуя [`policies/README.md`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/policies/README.md) (удалите
   `http.send` и `time.now_ns` перед любым развёртыванием, никогда после;
   `validate_determinism.go` и CI-гейт детерминизма обеспечивают это),
   запустите его с `lab/docker-compose.yml` для локальной итерации по правилам.
   Аттестованный манифест и измеренная загрузка (§6.3, §13 шаг 3) — состояние
   самой ячейки должно быть доказуемым до того, как её решения станут
   таковыми — реализованы в [`src/registry/`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/src/registry) вместе с
   журналом ячейки, backpressure и анкорингом.
4. **PEP** — первый по-настоящему управляемый периметр (§13), реализован в
   [`src/pep/`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/src/pep): валидация токенов (CWT/COSE, Ed25519),
   ограниченный по памяти fail-closed анти-реплей, режим деградации при
   статусе часов, квоты выполнения и гейт план-как-контракт (§4.2, §13 шаг 4 —
   только валидация токена управляет одним действием, а не многошаговым
   планом, который оператор фактически подписывает). Прочитайте
   [`src/pep/README.md`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/src/pep/README.md) и
   [`config/nftables/pep-redirect.nft`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/config/nftables/pep-redirect.nft)
   для сетевого перенаправления на стороне Debian. **Сначала разверните в режиме
   мониторинга** (логирование, без блокировки) — никогда `closed` при первом
   развёртывании (доктрина §5.3); процедура переключения режима —
   [`deploy/monitor-to-closed.md`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/deploy/monitor-to-closed.md). Для
   PostgreSQL внутрипроцессный PEP с двумя хуками находится в
   [`src/pep/postgres-extension/`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/src/pep/postgres-extension) (§4.4).
5. **NAC параллельно** — [`config/freeradius/`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/config/freeradius):
   802.1X/EAP-TLS с использованием той же PKI, что и рукопожатие (§3), fail-closed
   обеспечивается на уровне коммутатора (не только на стороне RADIUS), без
   VLAN, назначаемого RADIUS, в v1. Наборы netns в `lab/tests/` проверяют
   пути fail-closed, MAB/IoT-VLAN и OCSP-восстановления.
6. **Укрепление хоста** — [`config/sysctl/99-tbp-hardening.conf`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/config/sysctl/99-tbp-hardening.conf)
   на каждой машине, запускающей компонент TBP (broker, PEP, registry).
7. **Переводчик последним** (§13) — когда всё остальное стабильно. Поставляется
   в [`src/translator/`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/src/translator): укрепление среды выполнения (non-root,
   cap-drop, seccomp — отличается от `dm-verity`, который защищает образ в покое,
   а не среду выполнения), конечный автомат контролируемой деградации
   (только structured, без облачного резерва) и измерение качества
   (`measure.py` воспроизводит корпус и проверяет CI на регрессию FNR/FPR,
   `tmetrics` вписывает результат как лист реестра, T26, §4.5) — сами
   корпуса формируются на пилоте, а не поставляются здесь.
8. **Многомашинное развёртывание** — [`deploy/apercu.md`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/deploy/apercu.md)
   является точкой входа (что, где, почему, предварительные условия); он
   синтезирует руководства по ролям (маршрутизатор, ячейка, сервер, супервизор)
   и их чек-листы приёмки для каждой машины. `deploy/selftest/` **выполняет**
   руководства (`bash deploy/selftest/selftest.sh`, 82 контроля,
   fail-closed) — запустите его перед тем, как трогать реальную машину.

На каждом шаге измеряйте против бюджета трения (§9.1) — см.
[`tests/p1_friction/`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/tests/p1_friction) для точных порогов и
запускаемого стенда. Пилот проваливается, если задержка или частота арбитража
превышают эти пороги, даже если всё остальное работает.

## Дорожная карта: соразмерные масштабы развёртывания

TBP — это сложная система управления полного масштаба — кластерный fencing, кворум,
независимый супервизор, укреплённый переводчик, межузловое
рукопожатие. Не каждому развёртыванию нужно всё это. Малый бизнес на одном
сервере, который хочет «ни один AI-агент не действует без доказуемой,
залогированной причины», не нуждается в двухъячеечном отказоустойчивом
переключении так же, как домашняя сеть не нуждается в SOC. План — упаковать то,
что уже существует в этом репозитории, в **четыре масштаба развёртывания**,
каждый из которых является строгим надмножеством предыдущего — одни и те же
примитивы на всём протяжении (fail-closed, листья только с хешами, мониторинг до
closed), их больше связано вместе по мере роста масштаба, и
безопасностная позиция — и операционная сложность, которую она покупает —
соответственно возрастает:

- **Масштаб 1 — Одна машина.** Один хост, один управляемый периметр: `pepd`
  перед сервисом, локальный сайдкар OPA, единственный реестр `CellLog`.
  Без кластерного fencing (нечего огораживать с одной ячейкой), без NAC
  (нечего допускать в сеть — это один ящик), без демона broker или
  supervisor. Genesis сводится к одной паре ключей оператора,
  задокументированной как таковая, вместо притворства церемонией кворума,
  которой она не является. Наименьшая операционная сложность: правильно
  настроить правила OPA, развернуть в режиме мониторинга, следить за бюджетом
  трения, заслужить `closed`.
- **Масштаб 2 — Малая команда / один объект.** Несколько машин в одной
  LAN за одним `brokerd`, всё ещё единый реестр (fencing пока нет —
  одной авторитетной ячейки всё ещё достаточно на этом размере), добавлен NAC
  (`config/freeradius/`, 802.1X на коммутаторе) для допуска машин в
  сегмент, укрепление хостов применяется везде. Ещё один демон, ещё одна
  подсистема, та же модель реестра, что и в масштабе 1.
- **Масштаб 3 — Устойчивый многоячеечный.** То, что уже полностью построено и
  задокументировано как пилотное развёртывание P1 выше: 2+ ячейки, кластерный fencing
  (выпуск/ротация эпох, кворум k-of-n для действий класса-W,
  продвижение mirror/canary), независимый супервизор с консолью только для чтения,
  укреплённый переводчик с контролируемой деградацией, полная
  последовательность руководств `deploy/` и её 82-контрольный selftest. Для организаций,
  которые не могут допустить падения одной ячейки, или чьи управляемые агенты
  оправдывают дополнительные машины.
- **Полный масштаб — Мульти-сущность.** Межсущностное рукопожатие (§3):
  доказательство политики, непрерывности истории и живости через организационные
  границы, а не только через ячейки одной организации —
  федерация между независимо управляемыми развёртываниями TBP, которые должны
  доверять друг другу, не доверяя друг другу. Намеренно ещё не начато;
  отслеживается в [#33](https://github.com/philippeabraxas-jpg/TBP-NETWORK/issues/33)
  (T32), чтобы оставаться видимым как более поздняя, отдельная фаза, а не
  молча отсутствовать. Это действительно новая работа по протоколу, а не просто больше
  машин, запускающих то, что уже существует.

**Честность о том, где это находится**: масштаб 3 поставлен сегодня под
именем pilot-P1, используемым во всём этом README. Масштабы 1 и 2 ещё не
упакованы как собственные руководства — они достижимы сегодня путём развёртывания
подмножества того, что задокументировано (пропустите кластерный fencing и NAC для масштаба 1,
добавьте NAC, но оставьте одну ячейку для масштаба 2), но этот путь ещё не
записан, и ничто сейчас не мешает кому-то правильно связать это самостоятельно
при соблюдении той же доктрины. Полный масштаб требует фактического нового
кода (три доказательства §3), а не просто новых руководств.

### Следующая запланированная работа

Два потока работы, отслеживаемых как отдельные issues, потому что это разные
виды усилий:

1. **Руководства по развёртыванию для каждого масштаба, плюс административный инструментарий, соразмерный каждому
   масштабу** ([#86](https://github.com/philippeabraxas-jpg/TBP-NETWORK/issues/86)).
   Превращение масштабов выше в `deploy/scale-1.md` /
   `deploy/scale-2.md` — масштаб 3 уже имеет свою последовательность руководств, это
   `deploy/apercu.md` и синтезируемые им руководства по ролям — это половина
   этой работы: задокументированный, покрытый selftest путь для каждого масштаба, а не
   «пилотное руководство минус то, что вы сами догадаетесь пропустить». Другая половина —
   инструментарий для оператора, который сегодня представляет собой
   JSON API только для чтения (`src/supervision/console.go`: `/v1/arbitration`,
   `/v1/epoch`, `/v1/indicators`) плюс необработанные файлы и CLI (политики Rego,
   редактируемые вручную, `policies/gen_capabilities.sh` /
   `validate_determinism.go` для валидации и удаления перед развёртыванием; реестр,
   читаемый проверенной проверкой `ChainWatcher`, задействованной в тестах
   и selftest, но без UI для просмотра). Три специализированных инструмента
   запланированы поверх того, что уже существует, каждый ограничен тем, что
   действительно нужно данному масштабу (оператору масштаба 1 не нужны представления
   многоячеечного арбитража; оператору масштаба 3 — нужны):
   - **панель супервизии** поверх существующей консоли
     только для чтения — ориентированная на человека, по-прежнему только для чтения по построению (§7.1
     «супервизор видит всё, не трогает ничего» переносится
     без изменений, D81);
   - **редактор правил/политик** для пакета OPA Rego — редактирование, тестирование
     против тех же гейтов детерминизма и удаления возможностей, которые
     уже обеспечивает `validate_determinism.go`, и сравнение с тем, что
     развёрнуто, прежде чем что-либо попадёт в продакшн;
   - **браузер аудита** для реестра — поиск и фильтрация истории
     листьев (`KindDecision`, `KindTelemetry`, `KindQuorum`, …) с
     тем же проверяемым третьей стороной доказательством контрольной точки, которое `ChainWatcher`
     уже делает программно, сделанным понятным для человеческого аудитора вместо
     тестового утверждения.
2. **Соответствие стандартам — от проприетарной модели политик к
   интероперабельной** ([#87](https://github.com/philippeabraxas-jpg/TBP-NETWORK/issues/87)).
   Таксономия правил TBP (классы F/I/W/OUT, §5.3),
   её аудиторский след (листья только с хешами, залогированные в Merkle, §6.2) и её
   набор контролей (fail-closed, мониторинг-до-closed, кворум для
   действий с высокими ставками) сегодня специфичны для TBP — внутренне согласованы
   и протестированы, но не отображены на какой-либо внешний фреймворк, который аудитор или
   регулятор уже признал бы. Работа состоит в том, чтобы определить, каким
   существующим (и возникающим) стандартам это соответствует, и где есть пробелы —
   не предполагать, что какой-либо из них применим, или что TBP уже удовлетворяет
   им, без предварительного выполнения этого отображения. Кандидаты, которые стоит оценить
   в качестве отправной точки: **ISO/IEC 42001** (стандарт системы управления
   AI — наиболее близкое соответствие для заявления об «управлении AI»), **NIST
   AI Risk Management Framework**, обязательства **EU AI Act** по логированию и
   человеческому надзору для систем высокого риска (§4.1 — лист на
   решение и §4.2 — арбитраж план-как-контракт структурно
   близки к тому, что требуют статьи 12/14 — непроверено, нужно реальное
   отображение, а не предположение), **NIST SP 800-207** (Zero Trust
   Architecture — спецификация уже позиционирует TBP относительно Zero Trust в
   §3.3, формальное сравнение контроль за контролем — естественный следующий
   шаг), и **OSCAL** (машиночитаемый формат контролей/оценки NIST —
   правдоподобная цель экспорта, чтобы собственный аудиторский след TBP мог питать
   стандартный инструментарий соответствия вместо требования специализированного читателя).
   Это исследовательская и спецификационная работа прежде, чем код: продукт —
   это анализ пробелов и, где существует реальное отображение, либо
   код адаптера, либо задокументированная эквивалентность — а не переписывание движка
   правил.

## Лицензирование

Двойная лицензия, по поддереву:
- **`docs/` и `figs/`**: [CC BY 4.0](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/docs/LICENSE) — свободно делиться и
  адаптировать с указанием авторства.
- **Всё остальное** (`config/`, `src/`, `policies/`, `lab/`, `tests/`,
  `deploy/`, `scripts/`, `.github/`): [Apache 2.0](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/LICENSE) — та же лицензия,
  что и у ядрового протокола в
  [Responsible-Alliance-Protocol](https://github.com/philippeabraxas-jpg/Responsible-Alliance-Protocol).
  Этот код был под закрытой лицензией во время начальной пилотной фазы; эта
  фаза закончилась — проект не жизнеспособен, если строится в одиночку, и
  протокол управления, чья собственная доктрина — «никогда по доверию, всегда по
  проверяемому доказательству», не должен просить доверия к своей собственной реализации.

См. [`CONTRIBUTING.md`](https://github.com/philippeabraxas-jpg/tbp-network/blob/main/CONTRIBUTING.md) о том, как внести вклад — код
теперь включён, а не только документация — и правила, которым нужно следовать при
редактировании спецификации (нормализация терминологии, проверенные цитаты,
changelog).
Скачать инструмент