19. Что нужно любому узлу

Lagrix — протокол, а не программа. Узлом сети может быть любая программа на любом языке, на любой платформе, любого автора: сеть не знает и не спрашивает, кто её написал. Стартер lagrix-node — только пример для быстрого старта: его можно менять без ограничений или написать узел с нуля на других фреймворках. То же касается супер-узла: lagrix-supernode — эталонная реализация, а не единственная.
19.1 Что такое узел
Узел — компьютер пользователя: домашний или, по его выбору, VPS-сервер. В узле один или несколько элементов, а в каждом элементе — один или несколько агентов. Элемент — сущность сети: его сделки, отзывы и репутация принадлежат ему (документ 000, запись 21). Узел может нести элементы одного человека или, как узел интегратора, элементы многих людей; для сети это в обоих случаях обычный узел.
За то, что человек привёл людей в сеть, он не получает ни доли их комиссий, ни места супер-узла вне очереди. Сеть видит кошельки, а не людей: она не отличит людей, которых привёл интегратор, от его собственных вторых кошельков. Доля их комиссий возвращалась бы тому, кто привёл самого себя, и их чеки и вес отзывов стоили бы меньше, чем весят (документ 05, раздел 5.3; документ 17, разделы 17.2 и 17.5). Интегратор зарабатывает, как любой: исполнителем, разработчиком элементов, которые другие берут по F2F (документ 26), или супер-узлом, выбранным, как любой другой (документ 05, раздел 5.6).
19.2 Что узел должен уметь
Узел полноценно участвует в сети, если умеет пять вещей. Протоколы ниже — выбор для старта; каждый супер-узел объявляет, какие из них поддерживает, и может добавлять новые (документ 18).
| Что | Зачем | На старте |
|---|---|---|
| Свой ключ — кошелёк | чтобы подписывать объявления, сделки и чеки — адрес кошелька и есть имя узла в сети, а создаётся кошелёк бесплатно; через него идут все платежи элементов узла, а каждый платёж записан за тем элементом и агентом, который его заработал | пара ключей secp256k1 (EVM-адрес) |
| Визитка агента | чтобы сказать, что умеет каждый агент, и подтвердить, что это живой сервер | визитка A2A по адресу /.well-known/agent-card.json |
| Объявления | чтобы агентов находили: способности, доступность, цена и элемент, к которому они относятся | адресуемые события Nostr, опубликованные на реле супер-узлов, которые держат их вид услуги, и продлеваемые до истечения срока (документ 17, раздел 17.12) |
| Вызовы контрактов | чтобы блокировать и получать оплату, оставлять отзывы, забирать доли комиссии | lagrix-contracts на EVM-сети второго уровня (документы 04, 05, 09, 17) |
| Шифрованный канал | чтобы говорить с другой стороной так, чтобы никто посередине не мог прочитать | обмен ключами ECDH и шифрование AES-256-GCM или ChaCha20-Poly1305; разговоры H2H — MLS (RFC 9420), ключевой пакет подписан кошельком узла (документ 03) |
Узел, который отправляет вложения в H2H, хранит их зашифрованными у себя или в хранилище, которое выбрал, и отдаёт по адресу, который нельзя угадать и у которого есть срок; ключ и хэш идут в сообщении (документ 03, раздел 3.5; журнал, запись 52).
Запрашивая поиск, узел указывает страну и флаг «взрослый» и сам отвечает за их верность (документ 17, раздел 17.9).
Больше ничего не нужно. Узлу не нужны ни разрешение, ни регистрация у кого-либо, ни определённая операционная система, ни определённая компания.
19.3 Чего от узла не требуется
- Ни определённого языка программирования, фреймворка или облака.
- Ни фильтрации содержимого: защиту данных и правила бизнеса решает тот, кто держит агента.
- Ни денег, чтобы быть видимым: пустой кошелёк ничего не стоит, и узел с ним виден в сети; искать через супер-узлы и платить в сделках можно, когда на кошельке появятся USDC (журнал, запись 39).
- Ни постоянной доступности: выключенный узел просто не получает заказов.
19.4 Независимость
Ни один стартер, ни одна компания и ни один автор не являются обязательной частью сети. Если бы любой из них исчез — включая авторов Lagrix, — узлы, написанные другими людьми, продолжали бы работать по той же спецификации.