Хаб сообщества
Хаб сообщества - это каталог сетов, опубликованных пользователями b4; его раздаёт https://hub.b4core.app. Сет попадает туда из редактора сета в виде общего сета: стратегия, цели и файлы payload, без всего, что привязано к роутеру. Модератор одобряет сет, хаб добавляет его в каталог, и каждая b4 с включённым хабом получает его при следующей синхронизации. Страница Сообщество показывает каталог, применяет сет одним действием и собирает отчёты о том, работает ли применённый сет. Из отчётов складывается оценка, по которой страница сортирует сеты.
- Просмотр каталога: страница Сообщество, поиск, карточка сета, оценка
- Применение сета: что меняет применение, обновления, проверка, параметр Дискавери
- Отчёты и жалобы: отчёты «работает» и «не работает», формула оценки, жалобы модераторам
- Публикация сета: раздел «Поделиться», модерация, версии, авторский ключ
- Запуск хаба: свой хаб, зеркало чужого, что нужно каждому из них
- Консоль модерации: страницы веб-интерфейса самого хаба
Каталог
Хаб публикует один каталог: новейшую одобренную версию каждого сета и сводку отчётов по нему. Каталог подписан ключом хаба. Ключ hub.b4core.app встроен в b4; каталог с любой другой подписью отклоняется.
Отчёты хранятся по отпечатку стратегии, а не по сету. Два сета с одинаковой стратегией делят одну оценку, новая версия, в которой изменены только цели, сохраняет оценку прежней, а новая версия с изменённой стратегией начинает без оценки.
Роутер хранит копию каталога и обновляет её сам:
| Когда | Что происходит |
|---|---|
| Через 20 секунд после запуска b4 | Первая синхронизация |
| Каждый час | Плановая синхронизация |
| Через 5 минут после синхронизации, на которую не ответил ни один хаб | Повтор |
| Кнопка Синхронизировать на странице Сообщество или в настройках | Синхронизация сразу |
| Перед запуском Дискавери с параметром Сначала пробовать сеты сообщества | Синхронизация, если копия старше 10 минут |
Отчёты, которые не удалось доставить, уходят со следующей синхронизацией.
Поиск на странице Сообщество идёт по локальной копии. Введённый домен сопоставляется на роутере и в хаб не отправляется.
Каталог действителен две недели с даты сборки. Хаб пересобирает его намного раньше, поэтому срок истекает только если роутер две недели не получал ответа ни от одного хаба. Тогда страница Сообщество показывает предупреждение и продолжает показывать последний полученный каталог. Применённые сеты - обычные сеты в конфигурации и продолжают работать.
Что покидает роутер
| Действие | Что получает хаб |
|---|---|
| Синхронизация | HTTPS-запрос каталога. Хаб видит публичный адрес роутера и версию b4 и отвечает сетью, в которой видит роутер: ASN, страна, название провайдера. |
| Отчёт «работает» или «не работает» | Идентификатор и версия сета на хабе, отпечаток стратегии, вид отчёта, домен, по которому в этот момент был отфильтрован список (если был), ASN и страна, известные роутеру о себе, движок захвата, версия b4. Подпись авторским ключом. |
| Жалоба | Идентификатор и версия сета на хабе, введённая причина. Подпись авторским ключом. |
| Публикация | Общий сет. Подпись авторским ключом. |
Имена сетов, цели других сетов и устройства за роутером ни в один запрос не входят.
Хаб знает роутер по авторскому ключу, а не по учётной записи. Ключ создаётся при первом использовании и хранится в .hub/ внутри каталога конфигурации; перенос ключа на другой роутер описан в разделе Авторский ключ.
Включение
Переключатель и параметры подключения находятся в Настройки, Интеграции, Хаб сообщества.

| Поле | Значение |
|---|---|
| Включить хаб сообщества | Добавляет страницу Сообщество в навигацию, запускает ежечасную синхронизацию и показывает раздел Поделиться в редакторе сета. Общий сет, вставленный в Импорт, принимается и при выключенном переключателе. |
| Зеркала хаба | Адреса одного и того же хаба, по одному в строке; перебираются по порядку, пока один не ответит. Пустое поле означает https://hub.b4core.app. Зеркала, одобренные хабом, берутся из его подписанного манифеста и добавляются автоматически; см. Зеркало чужого хаба. |
| Публичный ключ хаба | Для собственного хаба со своим ключом. Ключ hub.b4core.app встроен, вводить его не нужно. С ключом в этом поле b4 доверяет только ему, а обращаться к hub.b4core.app перестаёт лишь тогда, когда адрес собственного хаба указан и в поле Зеркала хаба. Пока поле зеркал пустое, синхронизация всё равно доходит до hub.b4core.app и отклоняет его каталог из-за чужой подписи. |
Состояние хаба под полями показывает каталог и номер его сборки, дату, до которой он действителен, последнюю синхронизацию и её ошибку, адреса хаба метками в порядке перебора, где полученные от хаба зеркала обведены, а ответивший при последней синхронизации адрес отмечен, ключ, которым проверен каталог, сеть по данным хаба и число отчётов, ждущих отправки. Авторский ключ рядом показывает идентификатор ключа, код восстановления и восстановление по коду.
Последняя ошибка в блоке состояния называет причину неудачной синхронизации. Следующая успешная синхронизация её убирает.
Строка Совпадает с сетом перечисляет включённые сеты, чьи цели покрывают адреса хаба. Запросы b4 к хабу проходят через его же обработку пакетов, как и любой другой трафик, поэтому такой сет применяет свою стратегию и к собственному соединению b4; обычный случай - сет, совпадающий со всем подряд, например запись regexp:.*. Сет для адресов хаба без стратегии, поставленный перед ним, выводит хаб из-под этой стратегии.
Строка Свой трафик появляется, когда хаб ответил только по соединению, которое собственные правила b4 не трогают. На некоторых роутерах стратегия совпавшего сета подвешивает собственное TLS-рукопожатие b4; когда синхронизация срывается таким образом, b4 повторяет её по обходному пути, дальше использует тот путь, который сработал, и пишет о переключении в журнал. Синхронизация работает в любом случае, но строка означает, что этот сет ломает собственные соединения b4 на этом роутере, и об этом стоит сообщить.
Применённые сеты на странице Сеты
Сет, применённый со страницы Сообщество, - обычный сет с меткой Сет сообщества на карточке. Метка открывает сет на странице Сообщество. Когда стратегия отличается от опубликованной, метка меняется на Сет сообщества, изменён; см. Применён и изменён.