Messor Network Protocol




Оглавление






Описание протокола общения


Общение в сети Messor происходит по средствам протокола HTTP/HTTPS методом POST.
Протокол легко адаптировать на другие транспортные протоколы ,например tcp/ip.
Данные передаются в своем формате. Передаваемые данные зашифрованные (поддерживается несколько алгоритмов на выбор клиента) ,ключ шифрования устанавливается во время установки.
Ключ знает только клиент и сервер. Пароль ,в данном случае, лишь мера предосторожности от brutforce и прочих атак на сервер.
Запрос состоит из двух частей.
Первая часть запроса (header).
Содержит в себе:
action           - тип запроса
network_id       - уникальный идентификатор
network_password - пароль
client_version   - версию ПО

Исключениям являются запросы регистрации и восстановления пароля, они могут не содержать идентификатор (network_id) и пароль (network_password).
Также запросы внутри сети между peer осуществляется без пароля (network_password).

Вторая часть запроса: (data) содержит данные в виде строки в base64.
Разделитель - Данная строка разделяет запрос на две части и описывает тип возвращаемых данных.

Ответ от server/peer
В ответ вы получаете данные в таком же формате ,что и запрос.
Ответ выдается между специальных меток (--- BEGIN MESSOR ---/--- END MESSOR ---) ,что позволяет использовать протокол даже на бесплатном хостинге или в других местах, где помимо ответа может быть другой контент.
Ответ разбит на две части.

Первая- заголовки ответ (header)
Содержит в себе:
status          - Статус ответа при успехе ok или error (таблица кодов ошибок)
server_version  - Версия ПО сервера
Вторая часть запроса (data) содержит данные в виде строки в base64.
Разделитель - Данная строка разделяет запрос на две части (header and data) и описывает тип возвращаемых данных.

Пример запроса status от peer server
action=peer_status
network_id=60550fc3c7eeae570fb9a8d4198b6c9c
network_password=123
client_version=0.4a
data_encr_array
ZiUYyp2YWHtqaXM5igk55I0MXIGQdu1k4S4TAq7Rvx7/Cau/9K0xvUGVCVBqZcU9fNdoHGbhfkAJic88EH2RO4/+4q3gIChCsFVX1rpnya+HfT4YvJF202srargAPq5/fdvsptgwl8WA7thoX515COzopaCmhOy8xJVqgAV1QQqrm61DKBjpGX9mvbBzdjZu3NkeTkP6ztav/7E4oNmKN+VipFnyYUdlaOpoFRT8y8Ljn87S8I6kvgvL6uqSJw==
Пример ответа от server peer
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_encr_array
dSwU3ayfc2x7bnNtlQJhpqlMT/6HY6Q1iSwMDpTJrjP6BbaioPBp30iKDghWNpQrfodvWjaJahNMm58yTyKROOCitfjtcntAtgRdhblinf3XeDtAu8Uth2sjbexWO/4jdtm8qY43ksS6+49+SJ5ubua07rbLwrj6j8VjjA9zEwit9e4eO160WBlu5vM2H3A5zJNAEUvxz4P7ruBsrY+MNuNp9QjxMxRjbbpiQByjyMPnycrUpYLx61Sb6LyUHs8DxsjjE5sZA47DQkQgarkDk4NER0oqAi4=
--- END MESSOR ---

Пример запроса ping от peer к peer
client_version=0.4a
data_plaint_string
Пример ответа от peer
--- BEGIN MESSOR ---
 status=ok
 version=0.4a
 data_plaint_string
 SGk=
 --- END MESSOR ---

Peer


Это участник сети - любой сайт/сервер ,на котором установлен Messor-client
Задачи peer:

Premium peer


Это премиальные участники сети ,которые оплачивают подписки.
Задачи peer:
Отличия от обычных peer:
При проектировании сети messor был учтён момент с содержанием серверов для поддержание работы сети.
В сети Messor предусмотрена монетизация ,как один из органов развития и поддержки сети !

Server


Каждый участник сети ,на котором установлен Messor-server ,адрес которого внесен в server list
Отвечает за:


Trust response - система определения верных ответов


При синхронизации peer запрашивает все сервера из списка server list и сравнивает хэш суммы ответов сервера.
Далее сравнивает количество одинаковых ответов и всегда считает верными те ответы ,которые встречаются чаше других.
Таким образом, если один или несколько серверов в сети выйдут из строя или будут выдавать фейковые данные (атака на сеть) ,это никак не затронет сеть,
так как их ответам никто не будет доверять.



Peer trust - система доверия к данным от peer


При генерации базы данных используются данные полученные от peer.
Чем выше trust у этого peer ,тем больше доверия к полученным данным.
Trust определяется количеством верификаций (таблица типов верификаций) умноженным на время работы peer.
Это сделано для того, чтобы фейковые peer не могли засорять сервера фальшивыми данными.

Внимание, при проектировании сетей на основе Messor учтите ,что пока сеть небольшая и у вас мало peer, Вы должны следить за уровнем их trust и наполнить сеть подконтрольными peer.
Messor.Network Постоянно добавляет своих peer с расширенными ловушками для сканирования, что гарантирует стабильную работу сети.



Server List - система распространения и хранения информации о серверах сети


Список серверов хранится в простом текстовом виде у каждого peer и server.
При обновлении списка серверов в качестве версии используется hash sum sha256 файла.
Список серверов обновляется с помощью запроса к серверу peer_get_server_list.
В случае падения всех серверов в сети ,у каждого peer хранятся последние известные 100 - 300 адресов других peer в сети. Для восстановления server list можно использовать запрос peer_get_server_list для того ,чтобы получить server list с других peer.
Как только первый peer установит рабочий server list ,он начнет распространятся по сети.
Также вы можете получать актуальные списки серверов вручную, например, на официальных сайтах сети.
Format: Формат записи в строчку через \t
    0 - полный url сервера
    1 - GEO код страны сервера или комментарий к серверу одной строкой
Пример списка серверов:
    https://main.messor.network/messor/	MAIN
    https://de.messor.network/messor/	DE
    https://ru.messor.network/messor/	RU
    https://nl.messor.network/messor/	NL
    https://us.messor.network/messor/	US
    https://th.messor.network/messor/	TH
    https://cn.messor.network/messor/	CN
    https://backup1.messor.network/messor/	BACKUP_SERVER1
    https://backup2.messor.network/messor/	BACKUP_SERVER2

Messor.Network Позаботился о защите сети. Сервера будут устанавливаться во всех доступных странах по мере роста сети, сервера круглосуточно мониторятся службой поддержки.
Выход из строя всех серверов разом в сети Messor.Network практически невозможен!
Внимание, при проектировании сетей на основе Messor учтите, что пока сеть не большая и у вас мало серверов, в случае если они все разом упадут и кто-либо из злонамеренных peer подменит serer list на свой ,то он получит полный контроль над сетью.



Database


Версия базы данных состоит из двух частей , разделенных символом _
Первая часть циферное обозначение даты создания базы состоящие из день+месяц+год,
затем контрольная сумма файла базы данных в sha256.
Получается ,что имя содержит и версию и контрольную сумму этого файла.

Format name: [date]_[sha256_check_sum]
Example file name: 200420_c38e529ab7e40133a757c8714d3d6601d33c7ce299ebffec5bf7a4ba586e1b75
Содержимое базы данных:
Строка 0 Версия базы данных, дата публикации, комментарии;
Строка 1 Регулярное выражение для блокирования по UserAgent (base64);
Строка 2 Правила для .htaccess для обнаружения сканирования (base64);
Строка 3 Регулярные выражения для анализа GET POST данных и блокирования атак (base64);
Строка 4 Далее заблокированные ip адреса в строчку.


Data types


Данные всегда предоставляет из себя строку в base64 В зависимость от типа она может содержать зашифрованные данные или открытый текст, массив данных или строку

формирование строки типа данных: data_[encryption]_[type]
data_      - перфикс
encryption - шифрование (encr - зашифрованное plaint - открытый текст)
_          - разделитель
type       - тип (string - строка данных array - массив данных)

Таблица возможных типов данных

Data type string Description
data_encr_array Зашифрованный массив данных
data_encr_string Зашифрованная строка данных
data_plaint_array Не зашифрованный массив данных
data_plaint_string Не зашифрованный строка данных



Тип Array


Каждая строка содержит ключ и значения разделенные знаком "=".
Значенимя (value) кодированы в формате url (urlencode).
Пример (raw):
key=value
other_key=123
text=Hello+World

Parsed (raw):
Array
(
    [key] => value
    [other_key] => 123
    [text] => Hello World
)

Тип String


Строка с данными
Пример:
long string long string long string long string long string long string long string long string long string
long string long string long string long string long string 




Pack Encr


Зашифрованная строка в base64
Пример:
R(�ӏfac;o>�k��M�y�


Внимание, алгоритм RC4 считается устаревшим.
Используется для максимальной совместимости, так как работает без дополнительных библиотек.
Рекомендованные для использования алгоритмы AES128, Blowfish

Таблица поддерживаемых алгоритмов шифрования


Alg key key size
RC4 rc4 40–2048
AES-128 aes128 128
AES-256 aes256 256
Blowfish bf 64




Pack Plaint


Данные в виде открытого текста упакованы только в base64



Описание протокола Peer->Server



peer_status


Запрос к серверу содержит информацию о текущей версии базы дынных, версии клиента и версии server list
В ответ сервер возвращает информацию об актуальных версиях ПО, Базы данных, списка серверов

Data description:
client_version - Версия установленного клиента
database_version - Текущая версия базы данных
server_list_version - sha256 checksum списка серверов

Request:

Data type string: data_encr_array , Data type: array , Data encrypt: encr
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
    [action] => peer_status
    [network_id] => c730d4a95f625911687bbd487afbc0e7
    [network_password] => sadsf334erfd3e24er
    [client_version] => 0.4a
)
Array
(
    [client_version] => 0.4a
    [database_version] => 220420_f0b6ffb312a1ba5180fcc9b3c647b1c3e1aaf2a09b3bf41f08cde5ebbc2963ce
    [server_list_version] => 0ebf8724e8db4b48e53d972bb16053535302f5cd41a8a6ead5a705e7401d3409
)

Response:

Data type string: data_encr_array , Data encrypt: encr , Data type: array
Response(raw) ( show )
Response (parsed/decrypted):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [server_version] => 0.4a
        )

    [data] => Array
        (
            [peer_status] => peer
            [trust] => 0
            [client_version] => 0.4a
            [database_version] => 220420_f0b6ffb312a1ba5180fcc9b3c647b1c3e1aaf2a09b3bf41f08cde5ebbc2963ce
            [server_list_version] => 0ebf8724e8db4b48e53d972bb16053535302f5cd41a8a6ead5a705e7401d3409
        )

)



peer_echo


Эхо запрос может содержать произвольный массив данных или строку данных.
В ответ сервер возвращает переданные ему данные.
Предназначен для тестирования и работает только на серверах в debug_mode
Data description:
message - Сообщение

Request:

Data type string: data_encr_array , Data type: array , Data encrypt: encr
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
    [action] => peer_echo
    [network_id] => c730d4a95f625911687bbd487afbc0e7
    [network_password] => sadsf334erfd3e24er
    [client_version] => 0.4a
)
Array
(
    [message] => Hello world.
)

Response:

Data type string: data_encr_array , Data encrypt: encr , Data type: array
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [server_version] => 0.4a
        )

    [data] => Array
        (
            [message] => Hello world.
        )

)



peer_register


Запрос регистрации нового peer
Peer высылает все данные необходимые для регистрации.
В ответ в случае успеха сервер возвращает информацию о peer или ошибку.
Внимание, на этом этапе данные передаются в не зашифрованном виде!
Такие операции рекомендовано делать исключительно по протоколу https, иначе данные будут передаваться в открытом виде!
При проектировании сетей на основе Messor, не забудьте об этом.
По умолчанию, все сервера в Messor.Network работают в режиме https.

Передаваемые данные

Key Rules Example Description
version 1.21a 1-12 az09. Версия клиента
network_password min 6 max 32 1dj83&^hge76%$ Пароль для подключения к сети
domain example.com Домен
ip 127.0.0.1 ipv4 IP адрес
url full http/https url on messor http://example.com/path/messor.php Url адрес пира
name A-z0-9 5-32 John Doe Полное имя
company A-z0-9 5-128 International company Название компании
email email address admin@example.com Email адрес веб мастера
phone 0-9 5 - 24 +79034562389 Телефон
about A-z0-9 5-256 My super company. Описание компании
country Russia Страна компании
lang RU Язык
encryption_alg rc4 Алгоритм шифрования
client_version 0.4a Версия клиента
os Linux OS сервера
web_server Apache2 Web server
php_version 7.2 PHP Version
random_data grdf43g34 random data for generate random encryption key
cms Wordpress Установленная CMS
cms_version Wordpress 3.4.3 Версия CMS
plugin_version 1.4 Версия плагина Messor

Request:

Data type string: data_plaint_array , Data type: array , Data encrypt: plaint
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
    [action] => peer_register
    [client_version] => 0.4a
)
Array
(
    [version] => 0.4a
    [network_password] => 1dj8339&^%dhgs76
    [domain] => example.com
    [ip] => 127.0.0.1
    [url] => http://example.com/path/messor.php
    [name] => John Doe
    [company] => RogaCopita company
    [email] => admin@example.com
    [phone] => +79034562389
    [about] => My super company.
    [country] => Russia
    [lang] => RU
    [encryption_alg] => rc4
    [client_version] => 0.4a
    [os] => Linux
    [web_server] => Apache2
    [php_version] => 7.2.24-0ubuntu0.19.04.2
    [cms] => Wordpress
    [cms_version] => Wordpress 3.4.3
    [random_data] => random data for generate random encryption key
    [plugin_version] => 1.4
)

Response:

Data type string: data_plaint_string , Data encrypt: plaint , Data type: string
Response(raw) ( show )
Response (parsed/decrypted):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [server_version] => 0.4a
        )

    [data] => Array
        (
            [network_id] => 8b22bb2ee088f381a2c0c4176e3be8e5
            [status] => peer
            [trust] => 0
            [speed] => 1
            [network_password] => 68961e925d3ebe75dc6d59a99568a063b8f0a0216ca23219e4062853241b2bc4
            [database_version] => 
            [version] => 0.4a
            [encryption_alg] => rc4
            [encryption_key] => 773b62d83ce581f0ff54c2d1c6189bbc24f2e032
            [domain] => example.com
            [ip] => 94.25.163.171
            [url] => http://example.com/path/messor.php
            [name] => messor
            [company] => My company
            [email] => admin@example.com
            [phone] => 79034562389
            [about] => admin@example.com
            [country] => Ru
            [lang] => RU
            [register_date] => 1587645025
            [last_online] => 1587645025
            [last_data] => 0
            [confirm_email] => 0
            [confirm_dns] => 0
            [confirm_phone] => 0
            [confirm_sms] => 0
            [confirm_mail] => 0
            [confirm_docs] => 0
            [confirm_manual] => 0
            [os] => Linux
            [web_server] => Apache2
            [php_version] => 7.4.4
            [cms] => 
            [cms_version] => 
            [plugin_version] => 
            [data] => 
            [comment] => 
        )

)



peer_password_reset


Запрос на восстановление утерянного пароля или network_id
Peer выбирает один из типов верификации и высылает данные для подтверждения.
Например, тип верификации email
Значение admin@example.com
В ответ сервер отвечает текстом в формате html с дальнейшими инструкциями по восстановлению данных.

Внимание, на этом этапе данные передаются в не зашифрованном виде!
Такие операции рекомендовано делать исключительно по протоколу https иначе данные будут передаваться в открытом виде!
При проектировании сетей на основе Messor не забудьте об этом.
По умолчанию, все сервера в Messor.Network работают в режиме https.
type value example description
email email admin@example.com Запрос кода верификации на email
email_confirm number 123456 Отправка кода подтверждения email
sms phone number +79037678790 Запрос кода верификации на телефон по sms
sms_confirm number 123456 Отправка кода подтверждения из sms
phone phone number +79037678790 Запрос телефонного звонка - вам продиктуют код
phone_confirm number 123456 Отправка кода подтверждения полученного по телефону
dns host name example.com Получить инструкции для верификации через dns
dns_confirm Отправка запроса на проверку верификации через dns
mail address 134 пример почтового адреса в международном формате Отправить запрос на получение письма с кодом на почтовый адрес.
mail_confirm number 123456 Отправка кода верификации из письма
docs Country Russia Получить инструкции для верификации через реальную встречу и предоставления документов
docs_confirm Отправка запроса на верификацию при помощи проверки документов
Data description:
confirm - Тип верификации для восстановления пароля.
value - передаваемое значение

Request:

Data type string: data_plaint_array , Data type: array , Data encrypt: plaint
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
   [action] => peer_password_reset
   [client_version] => 0.4a
)
Array
(
   [confirm] => email
   [value] => admin@example.com
)

Response:

Data type string: data_plaint_string , Data encrypt: plaint , Data type: string
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [server_version] => 0.4a
        )

    [data] => For reset your password use web site.
)



peer_verify


Запрос для подтверждения кода верификации
Например, Peer отправляет запрос на получение кода верификации на email.
Сервер высылает код подтверждения на указанный адрес email
Peer делает запрос кодом подтверждения на сервер.
Сервер верифицирует указанный email.

Verify types - таблица типов верификации

type value example description
email email admin@example.com Запрос кода верификации на email
email_confirm number 123456 Отправка кода подтверждения email
sms phone number +79037678790 Запрос кода верификации на телефон по sms
sms_confirm number 123456 Отправка кода подтверждения из sms
phone phone number +79037678790 Запрос телефонного звонка - вам продиктуют код
dns host name example.com Получить инструкции для верификации через dns
dns_confirm Отправка запроса на проверку верификации через dns
mail address 134 пример почтового адреса международного формата Отправить запрос на получение письма с кодом на почтовый адрес
mail_confirm number 123456 Отправка кода верификации из письма
docs_confirm Отправка запроса на проверку верификации через отправку сканов документов на email
Data description:
type - тип верификации см таблицу типов верификации. 
value - передаваемое значение
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [server_version] => 0.4a
        )

    [data] => Waiting for call on your phone
)



peer_verify confirm


Пример отправки кода верификацииData description:
type - тип верификации см таблицу типов верификации. 
value - передаваемое значение

Request:

Data type string: data_encr_array , Data type: array , Data encrypt: encr
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
   [action] => peer_verify
   [network_id] => c730d4a95f625911687bbd487afbc0e7
   [network_password] => sadsf334erfd3e24er
   [client_version] => 0.4a
)
Array
(
   [type] => phone
   [value] => +79037678723
)

Response:

Data type string: data_encr_string , Data encrypt: encr , Data type: string
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [server_version] => 0.4a
        )

    [data] => verify success.
)



peer_edit_data


Запрос на изменения данных о peer хранящихся на сервер.
Peer высылает название изменяемого поля и его новые значения.
Например, запрос на смену телефонного номера:
Название phone
Значение +79033453425

Data description:
key - Имя изменяемого поля
value - передаваемое значение

Request:

Data type string: data_encr_array , Data type: array , Data encrypt: encr
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
    [action] => peer_edit_data
    [network_id] => c730d4a95f625911687bbd487afbc0e7
    [network_password] => sadsf334erfd3e24er
    [client_version] => 0.4a
)
Array
(
    [key] => phone
    [value] => +79033453425
)

Response:

Data type string: data_encr_string , Data encrypt: encr , Data type: string
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [server_version] => 0.4a
        )

    [data] => Info update success!
)



peer_info


Запросить полную актуальную информацию о peer, хранящуюся на сервер.
В ответ сервер возвращает массив данных с информацией о peer.

Request:

Data type string: data_encr_string , Data type: string , Data encrypt: encr
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
    [action] => peer_info
    [network_id] => c730d4a95f625911687bbd487afbc0e7
    [network_password] => sadsf334erfd3e24er
    [client_version] => 0.4a
)

Response:

Data type string: data_encr_array , Data encrypt: encr , Data type: array
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [server_version] => 0.4a
        )

    [data] => Array
        (
            [status] => peer
            [network_id] => b92c8753e1cc2666244309dbae90e180
            [trust] => 0
            [speed] => 1
            [database_version] => 220420_f0b6ffb312a1ba5180fcc9b3c647b1c3e1aaf2a09b3bf41f08cde5ebbc2963ce
            [version] => 0.4a
            [encryption_alg] => aes128
            [domain] => messor.lock
            [ip] => 94.25.163.171
            [url] => http://messor.lock/mess/messor.php
            [name] => UserDoc
            [company] => documentation
            [email] => admin@email.com
            [phone] => 79034562389
            [about] => 
            [country] => AT
            [lang] => ru
            [register_date] => 1587644358
            [last_online] => 1587645025
            [last_data] => 0
            [confirm_email] => 0
            [confirm_dns] => 0
            [confirm_phone] => 2
            [confirm_sms] => 0
            [confirm_mail] => 0
            [confirm_docs] => 0
            [confirm_manual] => 0
            [os] => 
            [web_server] => Apache/2.4.41 (Unix) PHP/7.4.4
            [php_version] => 7.4.4
            [cms] => other
            [plugin_versio] => 
        )

)



peer_upgrade


Peer запрашивает текст актуальных файлов библиотеки Messor для обновления.
Сервер возвращает массив данных с текстом файлов и их названиями.

Request:

Data type string: data_encr_string , Data type: string , Data encrypt: encr
Request (raw) ( show )
Data (parsed/decrypted):
Array
   (
       [action] => peer_upgrade
       [network_id] => c730d4a95f625911687bbd487afbc0e7
       [network_password] => sadsf334erfd3e24er
       [client_version] => 0.4a
   )
   

Response:

Data type string: data_encr_string , Data encrypt: encr , Data type: string
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [server_version] => 0.4a
        )

    [data] => You have last version messor.client
)



peer_get_server_list


Peer запрашивает актуальный server list.
В ответ сервер возвращает текст актуального server list и его версию (hash sum sha256 от текста server list)

Request:

Data type string: data_encr_string , Data type: string , Data encrypt: encr
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
    [action] => peer_get_server_list
    [network_id] => c730d4a95f625911687bbd487afbc0e7
    [network_password] => sadsf334erfd3e24er
    [client_version] => 0.4a
)

Response:

Data type string: data_encr_array , Data encrypt: encr , Data type: array
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [server_version] => 0.4a
        )

    [data] => Array
        (
            [server_list] => https://de.messor.network/messor/	Frankfurt,DE
                            https://gb.messor.network/messor/	London,GB
                            https://sg.messor.net/messor/	Singapore,SG
                            https://ru.messor.net/messor/	Moscow,RU
            [check_sum] => 0ebf8724e8db4b48e53d972bb16053535302f5cd41a8a6ead5a705e7401d3409
        )

)



peer_get_peer_list


Peer запрашивает у server список других peer в сети, у которых есть версия запрошенной базы данных.
В запросе peer указывает нужную версию базы данных.
В ответ сервер отвечает массивом данных со списком нужных peer.
Как правило, этот запрос используется для обновления своей базы данных до текущей версии
Data description:
database_version - Текущая версия базы данных

Request:

Data type string: data_encr_array , Data type: array , Data encrypt: encr
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
   [action] => peer_get_peer_list
   [network_id] => c730d4a95f625911687bbd487afbc0e7
   [network_password] => sadsf334erfd3e24er
   [client_version] => 0.4a
)
Array
(
   [database_version] => 20_01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
)

Response:

Data type string: data_encr_array , Data encrypt: encr , Data type: array
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [server_version] => 0.4a
        )

    [data] => Array
        (
            [peer_list] => https://de.messor.network/messor/
                            https://sg.messor.network/messor/
                            https://gb.messor.network/messor/
                            https://ru.messor.network/messor/
                            http://messor.lock/mess/messor.php
            [database_version] => 220420_f0b6ffb312a1ba5180fcc9b3c647b1c3e1aaf2a09b3bf41f08cde5ebbc2963ce
        )

)



peer_download_database


Peer запрашивает текст указанной базы дынных, В ответ сервер или peer возвращает текст базы данных. Прямое скачивание базы данных с сервера доступно только premium peer
Обычно этот запрос используется для получения базы данных у других peer, смотри (описание передачи данных между peer).
Data description:
database_version - Текущая версия базы данных

Request:

Data type string: data_encr_array , Data type: array , Data encrypt: encr
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
    [action] => peer_download_database
    [network_id] => c730d4a95f625911687bbd487afbc0e7
    [network_password] => sadsf334erfd3e24er
    [client_version] => 0.4a
)
Array
(
    [database_version] => 20_01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
)

Response:

Data type string: data_encr_array , Data encrypt: encr , Data type: array
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [server_version] => 0.4a
        )

    [data] => Array
        (
            [database] => # Messor main database. Generated at 22.04.2020
dzNhZnxzcWxtYXB8bm1hcHxuaWt0b3xabUV1fHNjcmlwdApjdXJsfHB5dGhvbnx3Z2V0fFt3V11nZXR8cGhwfGxpYnd3d3xodHRwdW5pdHxudXRjaHxwaHBjcmF3bHxGQVNULVdlYkNyYXdsZXIKR29vZ2xlfGZhY2Vib29rfHlhbmRleHxHb29nbGVib3R8QWRzQm90fGJpbmdib3R8bWljcm9zb2Z0XC5jb218U2x1cnB8TGlua2VkSW5Cb3R8bXNuYm90fGp5eG9ib3R8aWNoaXJvfEJhaWR1c3BpZGVyfFlvdWRhb0JvdHxzb2dvdXxCTEVYQm90fEFocmVmc0JvdApib3R8aHR0cHx3d3dcLnxcLmNvbXxcLnBocHxcLmh0bXxiYWlkdXxzbHVycHxiaW5ncHxhcmNoaXxzcGlkZXJ8Y3Jhd2x8c2VhcmNofGFub255bXxlbmdpbmV8bnV0Y2h8bGlid3d3fGxpYmN1cmx8dXJsbGlifHdnZXR8cmVxdWVzdHxqYXZhLzFcLnx2ZXJpZnxjaGVja3xzcGVlZHx0cmFuc2xhfGFwaXxkYXVtb2F8cGhhbnRvbXxpbnRlcm5ldHxjb250cm9sfHdpbmRvd3MgbnQgOVwuMHxhY2Nvb25hfGlhX2FyY2hpdmVyfGplZXZlc3xjdXJsfGVsdGFpbmRleGVyfGNyYXdsZXJ8dzNjX3ZhbGlkYXRvcnx3ZWJhbHRhfHlhaG9vfHJhbWJsZXJ8YXNrfHR1cnRsZXxuaWdtYXxyb2JvdHxwcm94aW1pY3xtYXNzY2FufHB1ZmZpbnxjZm5ldHdvcmt8d2ViZGF2fGlvcHVzfGN1YW1hdGNofHNjYW5uZXJ8c3VzaWV8MDA4L3xhNi1pbmRleGVyfGFzcHJveHl8YWJvbnRpfGFib3VuZGV4fGFja3xhY3Rpb24gY29tbSB1c2VyfGFsZXhhfGFueWV2ZW50LWh0dHB8YXBlcmNpdGV8YXBvcnR3b3JtfGFwcGVuZ2luZS1nb29nbGV8YXJhY2hub3BoaWxpYXxhdXRvcGFnZXJ8YmlkdWJyb3dzZXJ8YnViaW5nfGJhZC1uZWlnaGJvcmhvb2R8YmFkYXxiZWd1bmFkdmVydGlzaW5nfGJlbmRlcnxiaXRhY2xlfGJsb2dzd2FybXxibG9nbGluZXN8YnV0dGVyZmx5fGNqbmV0d29ya3F1YWxpdHl8Y21udGRmfGNweXRob258Y2hhcmxvdHRlfGNoZWNrc2l0ZXxjaGVja2VyfGNoaWxrYXR8Y2hpbXV8Y2l0aXN0cmVldHxjbG91ZGZsYXJlfGNvbGxhcHNhcndlYnxjb25mbHVlbmNlfGNvbnRpa2l8Y29yYWx3ZWJwcngvfGNvc3RpbmVzdGl8Y3Jhd2xmaXJlfGNyb3dzbmVzdHxkZnRiYXxkYWx2aWt8ZGF0YWZvdW50YWluc3xkYXRhcGFya3NlYXJjaHxkYXRhcHJvdmlkZXJ8ZGV0ZWN0b3J8ZGV1c3V8ZGV2cnV0ZXJ8ZGlyYnVzdGVyfGRqYW5nb3xkb2NvbW98ZG9tYWluYXBwZW5kZXJ8ZG9tYWlubW9uaXRvcnxkb3NzaWVyfGRvd25sb2FkLXRpcHB8ZHJ1cGFsfGR1Y2tkdWNrcHJldmlld3xlYXJ0aGNvbXxlYXN5LXRodW1ifGVhc3liaWJ8ZWRpdG9yfGVtYmVkZGVkd2J8ZW1iZWRseXxlbWVyYWxkc2hpZWxkfGV4cGxvcmF0b2RvfGZhaXJzaGFyZXxmYXZlZW98ZmVlZCBwYXJzZXJ8ZmVlZGJ1Y2tldHxmZWVkYnVybmVyfGZlZWRmZXRjaGVyLWdvb2dsZXxmZWVkbHlhcHB8ZmVlZHNwb3R8ZmVsaXh8ZmlsYW5neXxmaWxlY3JvcHxmaXJlYmF0fGZsaXBib2FyZGJyb3dzZXJwcm94eXxmbGlwYm9hcmRwcm94eXxmcmFuY2lzfGZyZWV3ZWJtb25pdG9yaW5nfGZyb3V0ZXxnYzNwcm8rZGlyK2NsZHxndGI3fGdlY2tvIG1pcm98Z2VuZXJhdG9yfGdlbmllb3xnZW50bGVzb3VyY2V8Z2xvYmVsfGdvZHppbGxhfGdvb2dsZSBhcHBzdmlld2VyfGdvb2dsZSBkZXNrdG9wfGdvb2dsZS1zdHJ1Y3R1cmVkLWRhdGEtdGVzdGluZy10b29sfGdvb2dsZWRvY3N8Z29vZ2xlcHJvZHVjZXJ8Z3JhbW1hcmx5fGdyZWV0aW5nc3xncm91cGhpZ2h8aHR0cHJlcXVlc3R8aGF0ZW5hfGhlYXJ0cmFpbHN8aGVybWl0IHNlYXJjaHxob3N0dHJhY2tlcnxodHRwY29uZHVpdGRvd25sb2FkZXJ8aHVicGFnZXN8aHVic3BvdHxpY2kgYXJnZW50aW5hfGlkd2hvaXN8aW5mb21pbmV8aWNvbnN1cmZ8aWx0cm92YXRvcmUtc2V0YWNjaW98aW5hZ2lzdHxpbmJvdW5kc2NvcmV8aW5mb2hlbGZlcnxpbnN0YXBhcGVyfGpzLWtpdHxqZXRicmFpbnN8am9ib3xqb2Jib2Vyc2V8anl4b3Rvb2xiYXJ8ay1tZWxlb258a2V2aW58a21sLWdvb2dsZXxrb2hhbmF8a3Vyd29za3J5cHR8bGFpZXNrZW58bHNzcm9ja2V0Y3Jhd2xlcnxseWNvc2F8bHl0XC5zcnxsaWJlcnR5d3xsaWZlcmVhfGxpbmtjaGVja2VyfGxpbmttYXxsaW5rbWFufGxpbmtzdGFzaHxsaW5rd2Fsa2V8bGlua2VlfGxpbmtzfGxpcHBlcmhleXxsb2FkaW1wYWN0cGFnZWFuYWx5emVyfGxvYWRpbXBhY3RybG9hZHxsb3ZlbHxtYXh0aG9ufG1jNjgwMCdzfG1yc3B1dG5pa3xtcy1ydGMgbG18bXh0L251dGNofG1hZ3BpZXJzc3xtYW1tb3RofG1jYWZlZXxtZWNoYW5pemV8bWVnYWluZGV4fG1lbmVhbWV8bWVyZ2VmbG93fG1lc3NlbmdlcnNoYXJlfG1vYmlsZXN1cmZ8bW9yZW92ZXJ8bW96aWxsYS80XC42fG1vemlsbGEvNFwuN3xtb3ppbGxhLzRcLjcyfG11bm96aWxsYS81XC4wfG5ldGx5emVyfG5ldHJlc2VhcmNoc2VydmVyfG5ldGNyYWZ0c3VydmV5YWdlbnR8bmV0dmliZXN8bmV3c3JvYnxuaW50ZW5kb3xubWFwIHNjcmlwdGluZ3xvZmZpY2VsaXZlY29ubmVjdG9yfG9uZXRzenVrYWp8b3Bwb3xvcHRpbWl6ZWRpZTh8b3dsaW4gZmVlZGZpbmRlcnxwcm9qZWN0IGhpIXxwYWdlMnJzc3xwYWdlcGVla2VyfHBhZ2VzaW52ZW50b3J5fHBhdGhkZWZlbmRlcnxwYXR0ZXJufHBoYW50b21qc3xwaG9uZWZhdnN8cGhvbmlmaWVyfHBpbnRlcmVzdHxwbGF5c3RhdGlvbnxwbHVra2llfHByLW5hdmktaW5ub3ZhdGlvbnxwcmxvZ3xweXRob24tdXJsbGlifHFxZG93bmxvYWR8cWlyaW5hIGh1cmRsZXJ8cXdhbnRpZnl8ciZkIHByb2plY3R8cnNzIGFwaXxyYWRpb2NsaWNrZXJ8cmVhZGFiaWxpdHl8cmVhcGVyfHJlYmVsbW91c2V8cmVkaXJlY3RjaGVja2VyfHJldmlwfHJldmVyc2VnZXR8cmlkZGxlcnxyb2JvY3Jhd2x8cm9ja21lbHRlbWJlZHNlcnZpY2V8cm9ja21lbHRlbWJlZGRlcnxzYmlkZXJ8c2JzZWFyY2h8c2VvLXZpc3VhbHN8c2Vvc29mdHxzam4gXC4gZGllfHNhZmFyaWJvb2ttYXJrY2hlY2tlcnxzY3JhcHl8c2NyZWVuc2hvb3R8c2NyZWVuc2hvdHxzY3JpYmRyZWFkZXJ8c2NydWJieXxzZWFtb25rZXl8c2VtYW50aWNzfHNlbnNcLmF8c2V6bmFtfHNpbXBsZWJyb3dzZXJ8c2l0ZS1zaG90fHNpdGUtdmlzdWFsaXplcnxzaXRlY2hlY2t8c2l0ZWV4cGxvcmVyfHNpeHhzfHNseXNlYXJjaHxzbmFja3Rvcnl8c29uaWN8c29wZWx8c291cmNlIHZpZXdlcnxzcGlubjNyfHNweWRlcnxzcXVhbGxubnxzc2NyZWVuc2hvdC1nZW5lcmF0b3J8c3RlZWxlcnxzdHVkaW9mYWNhfHN1bW1pZnl8dGFsa3JvIHdlYi1zaG90fHRhcmdldHNlZWt8dGVzc2VyYWN0fHRlc3RcLmJ1enp6fHRlc3Rpbmd8dGV4dHVhbHx0aHVtYnNuaXBlcnx0aHVtYnNob3R8dGltZXdlfHRpbmV5ZXx0aXB0b3B8dG9waGF0ZW5hcnx0b3BvZGlhfHRyb3ZlfHR1bGlwY2hhaW58dHdpY2VsZXJ8dHdpa2xlfHR5Y29vbnx0eXBob2V1c3x1bml2ZXJzYWxmZWVkcGFyc2VyfHVua25vd258dW53aW5kZmV0Y2hvcnx2YWdhYm9uZG98dmFsaWRhdG9yfHZpc2l0ZWR8dzNjfHczYy1tb2JpbGV8d3BkYXNoLXVwY2hyb25pY3x3c2V8d2F6enVwfHdic3JjaHx3ZXNlZXx3ZWItc25pZmZlcnx3ZWJjb29raWVzfHdlYm1hc3RlcmFpZHx3ZWJzZWFyY2h8d2VidGh1bWJuYWlsfHdlYmF1c2t1bmZ0fHdlYm1hc3RlcmNvZmZlZXx3ZWJzY291dHx3ZWVjaGF0fHdob2lzMzY1fHdpa2ljcmF3bHx3aWxsaWV8d2luIDl4IDRcLjkwfHdpbmRvd3Mgc2VydmljZXN8d29yZHByZXNzfHgtY2FkLXNlfHg2LTAwXC4xfHhibWN8eG1iLWV4dHJlbWUtbWVzc2FnZS1ib2FyZHx4Ym94fHlvdXJsc3x5ZXRpfHphb3x6aXBjb21tYW5kZXJ8enlib3JnfGFiYnl8YWZmLWtpbmdzb2Z0LWNpYmF8YW5kcm9pZC1hc3luYy1odHRwfGFubm90YXRlZ29vZ2x8YXJjaGl2ZXJ8YmV0YXNlYXJjaHxib2l0aG98Y29jY29jfGNvbXBsZXhuZXR3b3JrZ3JvdXB8Y29zbW9zfGRwZGV2fGVnb3Rob3J8ZW5kby8xXC4wfGZhY2Vib29rZXh0ZXJuYWxoaXR8ZmluZGxpbmtzfGdvbnpvMnB8Z29vYmxvZ3xncm9tb3RldXJ8Z3J1Yi1jbGllbnR8aGVyaXRyaXh8aHR0cDovL3xpdGhlbWVzfGljaGlyb3xpbmRvbmVzaWFuY29kZXJ8aXNrYW5pZXxrdWx0dXJhcnczfGx0eDcxfG1mYzJ8bW9iaWxpemVyfG1vbml0b3Jpbmcgc2VydmljZXxtb3dzZXJ8bW96aWxsYS8xXC4wfHBhZ2Ugc2NvcmVyfHBhZ2V2ZXJpZmllcnxwYXJzaWpvb3xxaW5nZGFvfHNjLWRvd25sb2FkZXJ8c2NhbjRtYWlsfHNwZWNpYWxhcmNoaXZlcnxzcWxtYXB8dmJzZW98dmlldHRlbHx2a3NoYXJlfHdlYm51bWJyZmV0Y2hlcnx3bXRpcHN8d3NjaGVja3x3c3Jpc2luZ3x4cGNvbXZpZXdlcnxvcGVuYnNkfGZyZWVic2R8bmV0YnNk
L215c3FsX2FkbWluKj8kCi9teXNxbGFkbWluKgovc3FsYWRtaW4qPyQKL3NxbC8/JAovYWRtaW4vPyQKL215c3FsKj8kCi9waHBteWFkbWluKj8kCi93cC1hZG1pbio/JApeLiphZG1pbi8uKj8kCl5vbGQvLio/JApeYmFja3VwLio/JApeaW5zdGFsbC8/JApeaVwucGhwPyQKXnBocGluZm9cLiokCl4xMjM0NVwucGhwPyQKXnhcLnBocD8k
KHVuaW9ufHNlbGVjdHxjcmVhdGV8cmVuYW1lfHRydW5jYXRlfGxvYWR8YWx0ZXJ8ZGVsZXRlfHVwZGF0ZXxpbnNlcnR8ZGVzY3xncm91cF98Y29uY2F0fGNoYXJ8bG9hZF9maWxlKQooZGVmaW5lfGV2YWx8ZmlsZV9nZXRfY29udGVudHN8aW5jbHVkZXxyZXF1aXJlfHJlcXVpcmVfb25jZXxzZXR8c2hlbGxfZXhlY3xwaHBpbmZvfHN5c3RlbXxwYXNzdGhydXxwcmVnX1x3K3xleGVjdXRlKQ==
3.121.227.3
5.101.0.209
37.9.113.37
37.239.205.36
41.57.124.37
41.144.86.205
45.148.121.2
45.252.249.240
46.37.172.123
46.101.144.52
            [database_version] => 220420_f0b6ffb312a1ba5180fcc9b3c647b1c3e1aaf2a09b3bf41f08cde5ebbc2963ce
        )

)



invalid_action


Пример неверного запроса от peer к server В ответ на неверно сформированные запросы, сервер выдает сообщения об ошибке.

Request:

Data type string: data_encr_string , Data type: string , Data encrypt: encr
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
    [action] => invalid_action
    [network_id] => c730d4a95f625911687bbd487afbc0e7
    [network_password] => sadsf334erfd3e24er
    [client_version] => 0.4a
)

Response:

Data type string: data_plaint_string , Data encrypt: plaint , Data type: string
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => error_req
    [header] => Array
        (
            [status] => error_req
            [server_version] => 0.4a
        )

    [data] => invalid header action
)

Описание протокола общения Peer -> Peer

peer_ping


Запрос для проверки работоспособности peer
Peer отправляет другому peer запрос ping,а в ответ получает короткое сообщение(Hi).

Request:

Data type string: data_plaint_string , Data type: string , Data encrypt: plaint
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
   [action] => peer_ping
   [network_id] => c730d4a95f625911687bbd487afbc0e7
   [client_version] => 0.4a
)

Response:

Data type string: data_plaint_string , Data encrypt: plaint , Data type: string
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [version] => 0.4a
        )

    [data] => Hi
)



peer_get_server_list


Peer запрашивает актуальный server list у другого peer.
В ответ peer возвращает текст актуального server list и его версию (hash sum sha256 от текста server list)
Запрос для резервного восcтановления сети в случае падения всех серверов сети.
Внимание, по умолчанию алгоритм резервного восcтановления с peer должен быть отключен и включается только по требованию пользователя.
Подробнее можно ознакомится тут peer_get_server_list

Request:

Data type string: data_plaint_string , Data type: string , Data encrypt: plaint
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
    [action] => peer_get_server_list
    [network_id] => c730d4a95f625911687bbd487afbc0e7
    [client_version] => 0.4a
)

Response:

Data type string: data_plaint_array , Data encrypt: plaint , Data type: array
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [version] => 0.4a
        )

    [data] => Array
        (
            [server_list] => https://de.messor.network/messor/	Frankfurt,DE
                            https://gb.messor.network/messor/	London,GB
                            https://sg.messor.net/messor/	Singapore,SG
                            https://ru.messor.net/messor/	Moscow,RU
            [check_sum] => 0ebf8724e8db4b48e53d972bb16053535302f5cd41a8a6ead5a705e7401d3409
        )

)



peer_get_peer_list


Peer запрашивает у peer список других peer в сети, у которых есть версия запрошенной базы данных.
В запросе peer указывает нужную версию базы данных.
В ответ сервер отвечает массивом данных со списком нужных peer.
Как правило, этот запрос используется для обновления своей базы данных до текущей версии
Data description:
database_version - Текущая версия базы данных

Request:

Data type string: data_plaint_array , Data type: array , Data encrypt: plaint
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
    [action] => peer_get_peer_list
    [network_id] => c730d4a95f625911687bbd487afbc0e7
    [client_version] => 0.4a
)
Array
(
    [database_version] => 20_01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
)

Response:

Data type string: data_plaint_string , Data encrypt: plaint , Data type: string
Response(raw) ( show )
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [version] => 0.4a
        )

    [data] => Array
        (
            [peer_list] => http://messor.lock/mess/messor.php
            [database_version] => 200420_c38e529ab7e40133a757c8714d3d6601d33c7ce299ebffec5bf7a4ba586e1b75
        )

)



peer_download_database


Peer запрашивает текст указанной базы дынных, В ответ сервер или peer возвращает текст базы данных. Прямое скачивание базы данных с сервера доступно только premium peer
Обычно этот запрос используется для получения базы данных у других peer, смотри (описание передачи данных между peer).
Data description:
database_version - Текущая версия базы данных

Request:

Data type string: data_encr_array , Data type: array , Data encrypt: encr
Request (raw) ( show )
Data (parsed/decrypted):
Array
(
    [action] => peer_download_database
    [network_id] => c730d4a95f625911687bbd487afbc0e7
    [network_password] => sadsf334erfd3e24er
    [client_version] => 0.4a
)
Array
(
    [database_version] => 20_01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
)
Response (parsed):
Array
(
    [status] => ok
    [header] => Array
        (
            [status] => ok
            [version] => 0.4a
        )

    [data] => Array
        (
            [database] => # Messor main database. Generated at 20.04.2020
dzNhZnxzcWxtYXB8bm1hcHxuaWt0b3xabUV1fHNjcmlwdApjdXJsfHB5dGhvbnx3Z2V0fFt3V11nZXR8cGhwfGxpYnd3d3xodHRwdW5pdHxudXRjaHxwaHBjcmF3bHxGQVNULVdlYkNyYXdsZXIKR29vZ2xlfGZhY2Vib29rfHlhbmRleHxHb29nbGVib3R8QWRzQm90fGJpbmdib3R8bWljcm9zb2Z0XC5jb218U2x1cnB8TGlua2VkSW5Cb3R8bXNuYm90fGp5eG9ib3R8aWNoaXJvfEJhaWR1c3BpZGVyfFlvdWRhb0JvdHxzb2dvdXxCTEVYQm90fEFocmVmc0JvdApib3R8aHR0cHx3d3dcLnxcLmNvbXxcLnBocHxcLmh0bXxiYWlkdXxzbHVycHxiaW5ncHxhcmNoaXxzcGlkZXJ8Y3Jhd2x8c2VhcmNofGFub255bXxlbmdpbmV8bnV0Y2h8bGlid3d3fGxpYmN1cmx8dXJsbGlifHdnZXR8cmVxdWVzdHxqYXZhLzFcLnx2ZXJpZnxjaGVja3xzcGVlZHx0cmFuc2xhfGFwaXxkYXVtb2F8cGhhbnRvbXxpbnRlcm5ldHxjb250cm9sfHdpbmRvd3MgbnQgOVwuMHxhY2Nvb25hfGlhX2FyY2hpdmVyfGplZXZlc3xjdXJsfGVsdGFpbmRleGVyfGNyYXdsZXJ8dzNjX3ZhbGlkYXRvcnx3ZWJhbHRhfHlhaG9vfHJhbWJsZXJ8YXNrfHR1cnRsZXxuaWdtYXxyb2JvdHxwcm94aW1pY3xtYXNzY2FufHB1ZmZpbnxjZm5ldHdvcmt8d2ViZGF2fGlvcHVzfGN1YW1hdGNofHNjYW5uZXJ8c3VzaWV8MDA4L3xhNi1pbmRleGVyfGFzcHJveHl8YWJvbnRpfGFib3VuZGV4fGFja3xhY3Rpb24gY29tbSB1c2VyfGFsZXhhfGFueWV2ZW50LWh0dHB8YXBlcmNpdGV8YXBvcnR3b3JtfGFwcGVuZ2luZS1nb29nbGV8YXJhY2hub3BoaWxpYXxhdXRvcGFnZXJ8YmlkdWJyb3dzZXJ8YnViaW5nfGJhZC1uZWlnaGJvcmhvb2R8YmFkYXxiZWd1bmFkdmVydGlzaW5nfGJlbmRlcnxiaXRhY2xlfGJsb2dzd2FybXxibG9nbGluZXN8YnV0dGVyZmx5fGNqbmV0d29ya3F1YWxpdHl8Y21udGRmfGNweXRob258Y2hhcmxvdHRlfGNoZWNrc2l0ZXxjaGVja2VyfGNoaWxrYXR8Y2hpbXV8Y2l0aXN0cmVldHxjbG91ZGZsYXJlfGNvbGxhcHNhcndlYnxjb25mbHVlbmNlfGNvbnRpa2l8Y29yYWx3ZWJwcngvfGNvc3RpbmVzdGl8Y3Jhd2xmaXJlfGNyb3dzbmVzdHxkZnRiYXxkYWx2aWt8ZGF0YWZvdW50YWluc3xkYXRhcGFya3NlYXJjaHxkYXRhcHJvdmlkZXJ8ZGV0ZWN0b3J8ZGV1c3V8ZGV2cnV0ZXJ8ZGlyYnVzdGVyfGRqYW5nb3xkb2NvbW98ZG9tYWluYXBwZW5kZXJ8ZG9tYWlubW9uaXRvcnxkb3NzaWVyfGRvd25sb2FkLXRpcHB8ZHJ1cGFsfGR1Y2tkdWNrcHJldmlld3xlYXJ0aGNvbXxlYXN5LXRodW1ifGVhc3liaWJ8ZWRpdG9yfGVtYmVkZGVkd2J8ZW1iZWRseXxlbWVyYWxkc2hpZWxkfGV4cGxvcmF0b2RvfGZhaXJzaGFyZXxmYXZlZW98ZmVlZCBwYXJzZXJ8ZmVlZGJ1Y2tldHxmZWVkYnVybmVyfGZlZWRmZXRjaGVyLWdvb2dsZXxmZWVkbHlhcHB8ZmVlZHNwb3R8ZmVsaXh8ZmlsYW5neXxmaWxlY3JvcHxmaXJlYmF0fGZsaXBib2FyZGJyb3dzZXJwcm94eXxmbGlwYm9hcmRwcm94eXxmcmFuY2lzfGZyZWV3ZWJtb25pdG9yaW5nfGZyb3V0ZXxnYzNwcm8rZGlyK2NsZHxndGI3fGdlY2tvIG1pcm98Z2VuZXJhdG9yfGdlbmllb3xnZW50bGVzb3VyY2V8Z2xvYmVsfGdvZHppbGxhfGdvb2dsZSBhcHBzdmlld2VyfGdvb2dsZSBkZXNrdG9wfGdvb2dsZS1zdHJ1Y3R1cmVkLWRhdGEtdGVzdGluZy10b29sfGdvb2dsZWRvY3N8Z29vZ2xlcHJvZHVjZXJ8Z3JhbW1hcmx5fGdyZWV0aW5nc3xncm91cGhpZ2h8aHR0cHJlcXVlc3R8aGF0ZW5hfGhlYXJ0cmFpbHN8aGVybWl0IHNlYXJjaHxob3N0dHJhY2tlcnxodHRwY29uZHVpdGRvd25sb2FkZXJ8aHVicGFnZXN8aHVic3BvdHxpY2kgYXJnZW50aW5hfGlkd2hvaXN8aW5mb21pbmV8aWNvbnN1cmZ8aWx0cm92YXRvcmUtc2V0YWNjaW98aW5hZ2lzdHxpbmJvdW5kc2NvcmV8aW5mb2hlbGZlcnxpbnN0YXBhcGVyfGpzLWtpdHxqZXRicmFpbnN8am9ib3xqb2Jib2Vyc2V8anl4b3Rvb2xiYXJ8ay1tZWxlb258a2V2aW58a21sLWdvb2dsZXxrb2hhbmF8a3Vyd29za3J5cHR8bGFpZXNrZW58bHNzcm9ja2V0Y3Jhd2xlcnxseWNvc2F8bHl0XC5zcnxsaWJlcnR5d3xsaWZlcmVhfGxpbmtjaGVja2VyfGxpbmttYXxsaW5rbWFufGxpbmtzdGFzaHxsaW5rd2Fsa2V8bGlua2VlfGxpbmtzfGxpcHBlcmhleXxsb2FkaW1wYWN0cGFnZWFuYWx5emVyfGxvYWRpbXBhY3RybG9hZHxsb3ZlbHxtYXh0aG9ufG1jNjgwMCdzfG1yc3B1dG5pa3xtcy1ydGMgbG18bXh0L251dGNofG1hZ3BpZXJzc3xtYW1tb3RofG1jYWZlZXxtZWNoYW5pemV8bWVnYWluZGV4fG1lbmVhbWV8bWVyZ2VmbG93fG1lc3NlbmdlcnNoYXJlfG1vYmlsZXN1cmZ8bW9yZW92ZXJ8bW96aWxsYS80XC42fG1vemlsbGEvNFwuN3xtb3ppbGxhLzRcLjcyfG11bm96aWxsYS81XC4wfG5ldGx5emVyfG5ldHJlc2VhcmNoc2VydmVyfG5ldGNyYWZ0c3VydmV5YWdlbnR8bmV0dmliZXN8bmV3c3JvYnxuaW50ZW5kb3xubWFwIHNjcmlwdGluZ3xvZmZpY2VsaXZlY29ubmVjdG9yfG9uZXRzenVrYWp8b3Bwb3xvcHRpbWl6ZWRpZTh8b3dsaW4gZmVlZGZpbmRlcnxwcm9qZWN0IGhpIXxwYWdlMnJzc3xwYWdlcGVla2VyfHBhZ2VzaW52ZW50b3J5fHBhdGhkZWZlbmRlcnxwYXR0ZXJufHBoYW50b21qc3xwaG9uZWZhdnN8cGhvbmlmaWVyfHBpbnRlcmVzdHxwbGF5c3RhdGlvbnxwbHVra2llfHByLW5hdmktaW5ub3ZhdGlvbnxwcmxvZ3xweXRob24tdXJsbGlifHFxZG93bmxvYWR8cWlyaW5hIGh1cmRsZXJ8cXdhbnRpZnl8ciZkIHByb2plY3R8cnNzIGFwaXxyYWRpb2NsaWNrZXJ8cmVhZGFiaWxpdHl8cmVhcGVyfHJlYmVsbW91c2V8cmVkaXJlY3RjaGVja2VyfHJldmlwfHJldmVyc2VnZXR8cmlkZGxlcnxyb2JvY3Jhd2x8cm9ja21lbHRlbWJlZHNlcnZpY2V8cm9ja21lbHRlbWJlZGRlcnxzYmlkZXJ8c2JzZWFyY2h8c2VvLXZpc3VhbHN8c2Vvc29mdHxzam4gXC4gZGllfHNhZmFyaWJvb2ttYXJrY2hlY2tlcnxzY3JhcHl8c2NyZWVuc2hvb3R8c2NyZWVuc2hvdHxzY3JpYmRyZWFkZXJ8c2NydWJieXxzZWFtb25rZXl8c2VtYW50aWNzfHNlbnNcLmF8c2V6bmFtfHNpbXBsZWJyb3dzZXJ8c2l0ZS1zaG90fHNpdGUtdmlzdWFsaXplcnxzaXRlY2hlY2t8c2l0ZWV4cGxvcmVyfHNpeHhzfHNseXNlYXJjaHxzbmFja3Rvcnl8c29uaWN8c29wZWx8c291cmNlIHZpZXdlcnxzcGlubjNyfHNweWRlcnxzcXVhbGxubnxzc2NyZWVuc2hvdC1nZW5lcmF0b3J8c3RlZWxlcnxzdHVkaW9mYWNhfHN1bW1pZnl8dGFsa3JvIHdlYi1zaG90fHRhcmdldHNlZWt8dGVzc2VyYWN0fHRlc3RcLmJ1enp6fHRlc3Rpbmd8dGV4dHVhbHx0aHVtYnNuaXBlcnx0aHVtYnNob3R8dGltZXdlfHRpbmV5ZXx0aXB0b3B8dG9waGF0ZW5hcnx0b3BvZGlhfHRyb3ZlfHR1bGlwY2hhaW58dHdpY2VsZXJ8dHdpa2xlfHR5Y29vbnx0eXBob2V1c3x1bml2ZXJzYWxmZWVkcGFyc2VyfHVua25vd258dW53aW5kZmV0Y2hvcnx2YWdhYm9uZG98dmFsaWRhdG9yfHZpc2l0ZWR8dzNjfHczYy1tb2JpbGV8d3BkYXNoLXVwY2hyb25pY3x3c2V8d2F6enVwfHdic3JjaHx3ZXNlZXx3ZWItc25pZmZlcnx3ZWJjb29raWVzfHdlYm1hc3RlcmFpZHx3ZWJzZWFyY2h8d2VidGh1bWJuYWlsfHdlYmF1c2t1bmZ0fHdlYm1hc3RlcmNvZmZlZXx3ZWJzY291dHx3ZWVjaGF0fHdob2lzMzY1fHdpa2ljcmF3bHx3aWxsaWV8d2luIDl4IDRcLjkwfHdpbmRvd3Mgc2VydmljZXN8d29yZHByZXNzfHgtY2FkLXNlfHg2LTAwXC4xfHhibWN8eG1iLWV4dHJlbWUtbWVzc2FnZS1ib2FyZHx4Ym94fHlvdXJsc3x5ZXRpfHphb3x6aXBjb21tYW5kZXJ8enlib3JnfGFiYnl8YWZmLWtpbmdzb2Z0LWNpYmF8YW5kcm9pZC1hc3luYy1odHRwfGFubm90YXRlZ29vZ2x8YXJjaGl2ZXJ8YmV0YXNlYXJjaHxib2l0aG98Y29jY29jfGNvbXBsZXhuZXR3b3JrZ3JvdXB8Y29zbW9zfGRwZGV2fGVnb3Rob3J8ZW5kby8xXC4wfGZhY2Vib29rZXh0ZXJuYWxoaXR8ZmluZGxpbmtzfGdvbnpvMnB8Z29vYmxvZ3xncm9tb3RldXJ8Z3J1Yi1jbGllbnR8aGVyaXRyaXh8aHR0cDovL3xpdGhlbWVzfGljaGlyb3xpbmRvbmVzaWFuY29kZXJ8aXNrYW5pZXxrdWx0dXJhcnczfGx0eDcxfG1mYzJ8bW9iaWxpemVyfG1vbml0b3Jpbmcgc2VydmljZXxtb3dzZXJ8bW96aWxsYS8xXC4wfHBhZ2Ugc2NvcmVyfHBhZ2V2ZXJpZmllcnxwYXJzaWpvb3xxaW5nZGFvfHNjLWRvd25sb2FkZXJ8c2NhbjRtYWlsfHNwZWNpYWxhcmNoaXZlcnxzcWxtYXB8dmJzZW98dmlldHRlbHx2a3NoYXJlfHdlYm51bWJyZmV0Y2hlcnx3bXRpcHN8d3NjaGVja3x3c3Jpc2luZ3x4cGNvbXZpZXdlcnxvcGVuYnNkfGZyZWVic2R8bmV0YnNk
L215c3FsX2FkbWluKj8kCi9teXNxbGFkbWluKgovc3FsYWRtaW4qPyQKL3NxbC8/JAovYWRtaW4vPyQKL215c3FsKj8kCi9waHBteWFkbWluKj8kCi93cC1hZG1pbio/JApeLiphZG1pbi8uKj8kCl5vbGQvLio/JApeYmFja3VwLio/JApeaW5zdGFsbC8/JApeaVwucGhwPyQKXnBocGluZm9cLiokCl4xMjM0NVwucGhwPyQKXnhcLnBocD8k
KHVuaW9ufHNlbGVjdHxjcmVhdGV8cmVuYW1lfHRydW5jYXRlfGxvYWR8YWx0ZXJ8ZGVsZXRlfHVwZGF0ZXxpbnNlcnR8ZGVzY3xncm91cF98Y29uY2F0fGNoYXJ8bG9hZF9maWxlKQooZGVmaW5lfGV2YWx8ZmlsZV9nZXRfY29udGVudHN8aW5jbHVkZXxyZXF1aXJlfHJlcXVpcmVfb25jZXxzZXR8c2hlbGxfZXhlY3xwaHBpbmZvfHN5c3RlbXxwYXNzdGhydXxwcmVnX1x3K3xleGVjdXRlKQ==
111.229.57.229
5.101.0.209
171.67.70.85
175.34.62.127
80.128.103.38
121.54.189.12
220.130.193.45
3.121.227.3
123.207.210.64
111.230.248.96
132.232.37.105
103.40.242.250
46.242.17.108
93.174.93.91
171.214.245.128
216.244.66.236
            [database_version] => 200420_c38e529ab7e40133a757c8714d3d6601d33c7ce299ebffec5bf7a4ba586e1b75
        )

)



Error code table

Таблица описания возможных кодов ошибок в ответах peer/server в поле status
Error code Description
error_req неверный запрос (ошибка в формировании запроса или неверные параметры в заголовках)
error_auth ошибки при прохождении авторизации на сервере
error_parse ошибки парсинга ответа от сервера
error_server ошибки сервера
error_connect ошибки при соединении с сервером
error все остальные ошибки