# Список узлов (FTS-0005)

Список узлов (Nodelist) — это официальный документ в рамках сети. Использование и поддержка списка узлов является удобным способом распространения и обновления данных об узлах сети.

Система Аргус поддерживает список узлов стандарта FTS-0005, который соответствует списку узлов сети Public Fidonet Network (PFN), публикуемому каждую пятницу. Этот формат исторически известен как St. Louis nodelist format.

Список узлов стандарта FTS-0005 представляет собой ASCII-файл. Имя файла соответствует маске `NODELIST.%%%`, где `%%%` — это три цифры, представляющие число (дополненное слева нулями) дней с начала года до пятницы, в которую был опубликован. Файл списка узлов содержит два типа строк: строки комментариев, начинающиеся с символа “`;`” и строки данных. Каждая строка завершается парой ASCII-симолов перевода строки (CR) и возврата каретки (LF). Строк данных не может содержать пробелов и символов табуляции. Файл завершается ASCII-символом конца файла (десятичный код 26, или “Ctrl-Z”).

Система Аргус снимает множество ограничений, накладываемых на список узлов стандартом FTS-0005. Так, например, маска `NODELIST.%%%` не является обязательной для Аргуса, как и символ конца файла, а пятница не является единственно допустимым днем недели для опубликования.

Каждая строка данных списка узлов состоит из восьми полей, разделенных запятой “`,`”. Так как использование пробельных символов в строке данных не допускается, вместо них применяется символ подчеркивания “`_`”.

## Поле 1: “Ключевое слово”

    Zone
| Служит для определения зоны и ее координатора. Все последующие строки данных описывают регионы, сети, и узлы этой зоны. Узлы, определенные сразу после ключевого слова “`Zone`”, но до первого определения региона или хоста, являются административными узлами зоны.
    Region
| Служит для определения региона в пределах зоны и его координатора. Узлы, определенные сразу после ключевого слова “`Region`”, но до первого “`Zone`”, “`Region`” или “`Host`”, называются независимыми узлами данного региона.
    Host
| Служит для определения сети и ее координатора. Узлы, определенные после ключевого слова “`Host`”, но до первого “`Zone`”, “`Region`” или “`Host`”, являются узлами (или членами) данной сети.
    Hub
| Определяет узел, который является главным в подсегменте сети. Подсегмент включает все узлы до первого “`Zone`”, “`Region`”, “`Host`” или “`Hub`”.
    Pvt
| Определяет служебный узел в рамках сети. В соответствии с FTS-0005, этот флаг позволяет узлу иметь неопубликованный номер телефона.
    Hold
| Определяет временно нефункционирующий узел, на который почта обычно передается через сетевого координатора.
    Down
| Определяет полностью нефункционирующий узел, подлежащий скорому удалению из списка узлов. На этот узел почта передаваться не может.
    пусто
| Определяет обычный узел.

## Поле 2: “Номер Зоны / Региона / Сети / Узла”

Это поле содержит только цифры, и, в соответствии с FTS-0005, является номером в диапазоне 0-32767. Система Аргус накладывает иные ограничения на это поле: для зоны — до 4095, для сетей и узлов — до 65535.

Номера зон должны быть уникальными. Номера регионов и сетей должны быть уникальными только в пределах своей зоны. Номера главных узлов подсегментов уникальны в пределах своей сети. Номера узлов уникальны в пределах сети (в пределах региона, для независимых узлов региона, и в пределах зоны, для административных узлов зоны).

## Поле 3: “Имя узла”

Это поле может содержать любые алфавитные символы, кроме пробелов и запятых. Подчеркивания используются, чтобы представить пробелы, а запятая определяет конец поля. Имя узла — это, обычно, название, под которым узел известен в сети.

## Поле 4: “Географическое положение”

Это поле может содержать любые алфавитные символы, кроме пробелов и запятых. Подчеркивания используются, чтобы представить пробелы, а запятая определяет конец поля. Географическое положение обычно состоит из имени населенного пункта и административного деления.

## Поле 5: “Имя системного оператора”

Это поле содержит имя системного оператора, и может содержать любые алфавитные символы, кроме пробелов и запятых. Подчеркивания используются, чтобы представить пробелы, а запятая определяет конец поля.

## Поле 6: “Номер телефона”

Это поле представляет несколько числовых подполей, разделенных символом черточки ( ‹`-`‹, десятичный код 45). По спецификации FTS-0005, числовых подполей должно быть как минимум три, хотя обычно используется четыре. В системе Аргус нет ограничений на количество подполей, однако, хотя бы один символ-разделитель “`-`“ должен присутствовать в номере телефона обязательно.

Поле номера телефона может содержать, вместо номера, зарезервированную строку “`-Unpublished-`”. По стандарту FTS-0005, узел с неопубликованным телефоном должен обязательно иметь ключевой слово Pvt в первом поле. Аргус такое ограничение не накладывает, и строка “`-Unpublished-`” может присутствовать вместо номера телефона у любого узла, в таком случае прозвонка на такой узел просто не будет производиться.

## Поле 7: “Скорость”

По стандарту FTS-0005, это поле определяет максимальную скорость соединения для узла, и может содержать одно из значений: 300, 1200, 2400, 9600, а в последних редакциях, 19200 или 38400. Система Аргус поддерживает это поле только для совместимости с FTS-0005, иными словами, значение поля 7 игнорируется.

## Поле 8: “Флаги”

Это поле опционально, оно может содержать специфичные данные о работе узла, такие как типы обрабатываемых файловых запросов, протоколы модема, и т.д. Это поле состоит из одного или более подполей, разделенных запятыми.

Вот несколько примеров строк данных списка узлов:

    Zone,2,Europe_&_more,Belgium,Ward_Dossche,32-3-4480880,9600,CM,XX,U,K12,Z19
    Region,46,Ukraine_and_Moldova,Donetsk_Ukraine,Anton_Kuznetsov,380-622-322106,9600,V34,V32B,V42B,CM,MO,XA,U,ENC
    Host,469,Moldova_Net,Moldova,Michael_Karpov,373-2-246484,9600,V34,XX,MO,U,TSF
    Hub,38,RIT_Zeppelin,Kishinau,Auto_Pilot,373-2-246888,9600,CM,MO,V34,XA,ZYX
    ,84,Blue_Carnation,Kishinau,Max_Masyutin,373-2-511511,9600,ZYX,XA