Heading
Messor network members
Messor network algorithms
Transmitted data types
Data packages types
Communication protocol description between peer and server
Communication protocol description peer -> peer
- Errors code table
Communication protocol description
Communication within Messor network occurs while using HTTP/HTTPS protocol by the POST method.
The protocol can be easily adapted to other transport protocols, for example tcp / ip.
Data are transmitted to
in own format.
The data transfferred are encrypted (several
algorithms are supported) ,encryption key is installed during installation.
The client and server only are aware of the key.
The password is just a precaution against brutforce and other attacks on the server.
The request consists of two parts.
The first request part (header).
Contains:
action - request type
network_id - unique identificator
network_password - password
client_version - software version
The exceptions are registration and password recovery requests - they may not contain an identifier (network_id) and password (network_password).
Besides intra-network requests between peers are made without a password. (network_password).
The second request part: (data) contains data as a string in base64.
Delimiter - The current string divides the request into two parts and describes
return data type.
Reply from server/peer
In response, you get data in the same format as the request.
The answer is provided between special tags (--- BEGIN MESSOR ---/--- END MESSOR ---) ,which allows using protocol even on free hosting or in other places as well,
where may be other content in addition to the response.
The response is divided into two parts.
The first nce contains response headers (header)
And contains:
status - Response status in the event of success ok or error (error code table)
server_version - Server software version
The second part (data) contains data as the string in base64.
Delimiter - The current string divides the request into two parts (header and data) and describes
return data type.
Status request example from 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==
Response example from server peer
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_encr_array
dSwU3ayfc2x7bnNtlQJhpqlMT/6HY6Q1iSwMDpTJrjP6BbaioPBp30iKDghWNpQrfodvWjaJahNMm58yTyKROOCitfjtcntAtgRdhblinf3XeDtAu8Uth2sjbexWO/4jdtm8qY43ksS6+49+SJ5ubua07rbLwrj6j8VjjA9zEwit9e4eO160WBlu5vM2H3A5zJNAEUvxz4P7ruBsrY+MNuNp9QjxMxRjbbpiQByjyMPnycrUpYLx61Sb6LyUHs8DxsjjE5sZA47DQkQgarkDk4NER0oqAi4=
--- END MESSOR ---
Ping request example from peer to peer
client_version=0.4a
data_plaint_string
Peer response example
--- BEGIN MESSOR ---
status=ok
version=0.4a
data_plaint_string
SGk=
--- END MESSOR ---
Peer
This is a network member - any site / server, which has got Messor-client installed
Peer tasks:
- Collect attack data.
- Send collected data to Messor network servers.
- Receive and distribute the current blocked IP addresses database
Premium peer
These are premium network members, who pay for subscriptions..
Peer tasks:
- Block attacks
- Collect attack data.
- Send collected data to Messor network servers.
Differences from regular peers:
- Download the database directly from the Messor server
- Get additional services in accordance with the tariff plan.
The servers content was taken into account to maintain the network when designing the messor network.
Messor network provides monetization, while being one of the network development and support organs !
Server
Each network member, having got Messor-server installed, whose address is entered in
server list
Is responsible for:
- Network routing
- New peer registration
- Verifies and stores peer data
- Gets peer data
- Synchronizes the database with other servers
- Collects network operation statistics
- Generates a database
Trust response is correct answers determining system
Within synchronization, peer requests all servers from the list
server list and compares the server responses sum hash .
Then it compares the identical answers number and always considers those answers, being more common than others to be true.
Thus, if one or several servers in the network fail or issue fake data (attack on the network), this will not affect the network in any way,
since no one will trust their responses.
Peer trust is peer data trust system
Data obtained from peer is used when generating a database.
The higher the trust of this peer, the more confidence to the data received.
Trust is determined by the verifications number
(verification types table) multiplied by peer runtime.
The goal is to prevent fake peers from clogging servers with fake data.
Note! When designing networks Messor-based networks, keep in mind that while the network is small and you have few peers, you must monitor their trust level and fill the network with peers being controlled.
Messor.Network Constantly adds its peers with advanced traps for scanning, hereby ensuring stable network operation.
Server List - network server data distribution and storage system
The servers list is stored in plain text for each peer and server.
When updating the servers list, file's hash sum sha256 is used as the version.
The servers list is updated while using a server request.
peer_get_server_list.
In the event of all servers fall in the network, each peer stores the last known 100 - 300 addresses of other peers in the network. To restore the server list, you may use the query
peer_get_server_list in order to get the server list from other peers.
Once the first peer installs a working server list, it will start to spread across the network.
Besides you may get actual server lists manually, for example, on official network websites.
Format: Recording format in a string through \t
0 - full server's url
1 - Server's country GEO code or server comment in one string
Server list example:
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
I took care of the network protection. The servers will be installed in all available countries as the network grows, servers are monitored 24/7 by the support service.
The network servers failure at once
Messor.Network is almost impossible!
Note! When designing Messor-based networks, keep in mind that while the network is not large and you have few servers, if they all fall at once and one of the malicious peers replaces the serer list with its own, it will get full control over the network.
Database
The database version consists of two parts, separated by a symbol _
The first part is a digital designation of the base creation date, consisting of day + month + year,
then the database file checksum in sha256.
It turns out that the name contains both the version and checksum of this file.
Format name: [date]_[sha256_check_sum]
Example file name: 200420_c38e529ab7e40133a757c8714d3d6601d33c7ce299ebffec5bf7a4ba586e1b75
Database content:
Line 0 Database version, publication date, comments;
Line 1 Regular expression to block by UserAgent (base64);
Line 2 Rules for .htaccess to detect scans (base64);
Line 3 Regular expressions to parse GET POST data and block attacks (base64);
Line 4 Further blocked ip addresses in a string.
Data types
Data are always a line in base64
Depending on the type, it may contain encrypted data or plaintext, the data array or a line
data type line generation: data_[encryption]_[type]
data_ - perfix
encryption - encryption (encr - encrypted plaint - plain text)
_ - delimiter
type - type (string - array data line - data array)
Possible data types table
Data type string |
Description |
data_encr_array |
Зашифрованный массив данных |
data_encr_string |
Encrypted data string |
data_plaint_array |
Plaint data array |
data_plaint_string |
Plaint data array |
Array type
Each line contains a key and values separated by a sign "=".
Values (value) are codded in url (urlencode) format.
Example (raw):
key=value
other_key=123
text=Hello+World
Parsed (raw):
Array
(
[key] => value
[other_key] => 123
[text] => Hello World
)
String type
String with data
Example:
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
String encrypted in base64
Example:
R(�ӏfac;o>�k��M�y�
Warning, RC4 algorithm is deprecated.
Used for maximum compatibility, since it operates without additional libraries.
Recommended algorithms are AES128, Blowfish
Supported encryption algorithm table
Alg |
key |
key size |
RC4 |
rc4 |
40–2048 |
AES-128 |
aes128 |
128 |
AES-256 |
aes256 |
256 |
Blowfish |
bf |
64 |
Pack Plaint
Clear text data packed only in base64
Protocol description Peer->Server
peer_status
The server request contains the current melon database version, client version and server list version data
The server returns the current software, database and server list data in response
Data description:client_version - Installed client version
database_version - Current database version
server_list_version - sha256 checksum server list
'
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_encr_array
FNPs+Fe1TOUtvd9Fhx2nWUspyt/RNw3y010o0cM/gRGruAUNwfTyE0UxykqEc59en/3DqAICVz3JBHoC4YDGK8BuK1y+btMxYCGbIXrGKSqWuBgvETDbdv36kP3n5JsrB1AHosXJinPFRyNkHjwXno72NBjFtEg1gsxE6seihFXyJXEyySeZFexVT1E3sjxNo5pRBUr5hNo4YHX/3g058uj+59Du3obRO6WH/jUOGIHPVm36mRyPGjfcO+1RCA1cCwhAqr8Ayo5/lMDpriMpiH2SMfamNHn+8SbIcrlPQ3ryX2DMVz0NV3eMvEnziGuKOCCRZiVPiHsfeYql17WGpmDj97TwtXiTZ4WUjQSefXc=
--- END MESSOR ---
' (length=452)
Response (parsed/decrypted):
Array
(
[status] => ok
[header] => Array
(
[status] => ok
[server_version] => 0.4a
)
[data] => Array
(
[peer_status] => peer
[trust] => 0
[client_version] => 0.1b
[database_version] => 040520_61bc64fa0fb72b89835ae6a5350a732b4910f4c63306663672c4ef70f9ea0e58
[server_list_version] => 0ebf8724e8db4b48e53d972bb16053535302f5cd41a8a6ead5a705e7401d3409
)
)
peer_echo
Echo request may contain an arbitrary data array or data string.
The server returns the data transferred to it in response.
Intended for testing and works on the servers only in debug_mode
Data description:message - Message
'
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_encr_array
WpoiA7FBPQkXJSsqtS0t8bgnabRiSu5gXXOmNIrX0YutVMFDkFlmmooR80AECZ8oFqQx0nNiKW4ENvZTC9X/u9k9YzXEWCDyPFTV/gyN+H8=
--- END MESSOR ---
' (length=196)
Response (parsed):
Array
(
[status] => ok
[header] => Array
(
[status] => ok
[server_version] => 0.4a
)
[data] => Array
(
[message] => Hello world.
)
)
peer_register
New peer registration request
Peer sends all the data required for registration.
The server returns peer data or an error, if successful in response.
Attention! The data are transmitted in an unencrypted form at the current stage !
Such operations are recommended to be done exclusively through the https protocol, otherwise the data will be transmitted in open source!
When designing Messor-based networks, do not forget about it.
Transmitted data
Key |
Rules |
Example |
Description |
version |
1.21a |
1-12 az09. |
Client version |
network_password |
1dj83&^hge76%$239&^%dhgs76 |
min 6 max 32 |
Password to connect to the network |
domain |
example.com |
|
domain name |
ip |
127.0.0.1 |
ipv4/ipv6 |
ip address |
url |
|
full http/https url on messor |
http://example.com/path/messor.php |
name |
A-z0-9 5-32 |
John Doe |
Full name |
company |
A-z0-9 5-128 |
RogaCopita company |
Company name |
email |
email address |
admin@example.com |
Webmaster's email address |
phone |
0-9 5 - 24 |
+79034562389 |
Phone number |
about |
A-z0-9 5-256 |
My super company. |
Company description |
country |
|
Russia |
Company country |
lang |
|
RU |
Language |
encryption_alg |
|
rc4 |
Encryption algorithm |
client_version |
|
0.4a |
Client version |
os |
|
Linux |
Server's OS |
web_server |
|
Apache2 |
Web server |
php_version |
|
7.2 |
PHP Version |
cms |
|
Wordpress |
Installed CMS |
cms_version |
|
Wordpress 3.4.3 |
CMS version |
random_data |
|
grdf43g34 |
random data for generate random encryption key |
plugin_version |
|
1.4 |
Messor plugin version |
'
--- BEGIN MESSOR ---
status=error
server_version=0.4a
data_plaint_string
ZW1wdHkgcmVnaXN0ZXIgbmV0d29ya19wYXNzd29yZA==
--- END MESSOR ---
' (length=138)
Response (parsed/decrypted):
Array
(
[status] => error
[header] => Array
(
[status] => error
[server_version] => 0.4a
)
[data] => empty register network_password
)
peer_password_reset
Lost password recovery request network_id
Peer selects one of the verification types and sends the data to be confirmed..
For example, verification type is email
Value is admin@example.com
In response, the server responds with html text with further data recovery manual.
Note! At the current stage the data are transmitted in an unencrypted form!
Such operations are recommended to be done exclusively via the https protocol, otherwise the data will be transmitted in the open source!
be sure to remember about it when designing Messor-based networks.
type |
value |
example |
description |
email |
email |
admin@example.com |
Request verification code by email |
email_confirm |
number |
123456 |
Email confirmation code |
sms |
phone number |
+79037678790 |
Request verification code to the phone via sms email |
sms_confirm |
number |
123456 |
Sending verification code from email |
phone |
phone number |
+79037678790 |
Phone call request - you will be dictated by a code |
phone_confirm |
number |
123456 |
Confirmation code sending, received by phone |
dns |
host name |
example.com |
Get verification manual through dns |
dns_confirm |
|
|
Sending verification request via dns |
mail |
address |
134 e-mail address example in international format |
Email request with the code to e-mail. |
mail_confirm |
number |
123456 |
Sending verification code from a letter |
docs |
Country |
Russia |
Get manuals for verification through a real meeting and submitting documents |
docs_confirm |
|
|
Sending verification request while using document verification |
Data description:confirm - Verification type for password recovery.
value - transmitted value
'
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_plaint_string
Rm9yIHJlc2V0IHlvdXIgcGFzc3dvcmQgdXNlIHdlYiBzaXRlLg==
--- END MESSOR ---
' (length=143)
Response (parsed):
Array
(
[status] => ok
[header] => Array
(
[status] => ok
[server_version] => 0.4a
)
[data] => For reset your password use web site.
)
peer_verify
Code verification request
For example, Peer sends a request for a verification code by email.
The server sends a confirmation code to the specified email address
Peer submits the confirmation code request to the server.
Server verifies the specified email.
Verification request sending example via telephone
Veryfi types - таблица типов верификации
type |
value |
example |
description |
email |
email |
admin@example.com |
Code verification request by email |
email_confirm |
number |
123456 |
Email confirmation code |
sms |
phone number |
+79037678790 |
Verification code request to the phone via sms message |
sms_confirm |
number |
123456 |
Verification code sending from sms messsage |
phone |
phone number |
+79037678790 |
Phone call request - you will be provided with the code |
phone_confirm |
number |
123456 |
Confirmation code sending received by phone |
dns |
host name |
example.com |
Get verification manual via dns |
dns_confirm |
|
|
Verification request sending via dns |
mail |
address |
134 is the international format mailing address example |
Email request sending with the code to e-mail |
mail_confirm |
number |
123456 |
Send email request with the code to e-mail |
docs |
Country |
Russia |
Get instructions for verification through a real meeting and submitting documents. |
docs_confirm |
|
|
Sending verification request through the documents |
Data description:type - verification type see verification types table.
value - transmitted value
'
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_encr_string
HJmE2ysv8bfadPeG35UjIE5Y6Z79fYx6xeK4sRIUBdP+Hn0Yb8xfY1qx3JybJChkaKEu0nom5V33gFJ7/yky1lKOthd74TC08dxyXz8air8=
--- END MESSOR ---
' (length=197)
Response (parsed):
Array
(
[status] => ok
[header] => Array
(
[status] => ok
[server_version] => 0.4a
)
[data] => Waiting for call on your phone
)
peer_verify confirm
Verification code sending example
Data description:type - verification type see verification types table.
value - transmitted value
'
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_encr_string
FejA7nRQcxunhRZyEgbNPZV01t3zDrijEOv2LQJ0Xo2vlfdWrLPSDkOoW3hJ9BduEyY6TkCHbWtNQgXc92gEEQ==
--- END MESSOR ---
' (length=177)
Response (parsed):
Array
(
[status] => ok
[header] => Array
(
[status] => ok
[server_version] => 0.4a
)
[data] => verify success.
)
peer_edit_data
Peer data change request, stored on the server.
Peer sends the field name to be modified and its new values.
For example, a phone number change request:
Name phone
Value +79033453425
Data description:key - Modified field name
value - transmitted value
'
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_encr_string
Ic/ct+gPSAsUjMIlOOngNXQzEMhMaxCi38DNavLKDQpJZ7Z0mOQzNAwPBmFIu5Ls0Qjg264Az5EYXPKEUTNVskgW8B6zbCjtcwNMqnH5/8s=
--- END MESSOR ---
' (length=197)
Response (parsed):
Array
(
[status] => ok
[header] => Array
(
[status] => ok
[server_version] => 0.4a
)
[data] => Info update success!
)
peer_info
Request complete up-to-date peer data stored on the server.
The server returns data array with peer data in response.
'<br />
<b>Notice</b>: Undefined index: plugin_versio in <b>/var/www/de.messor.network/public_html/messor/index.php</b> on line <b>649</b><br />
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_encr_array
sXWgof7AabPQNYRvhBlI2NUNsywGm2Yj/e8ZPvAHbtzh/PPd48pOH4itieC4/0MF2N1pFsF+9bXPzsW9lO2XgvS/qKi/gU/MKGcyeNaMBu6SZbMeTOzZQjWTxyNnSo3iNWFQR/2LZ5Ztmd7uyjJwMjU/z038tyiRRskudSVejAs+608WBYk8YpBw3vUtEnA3VrW7b7eqIT2A/5Ye1F10yJpba5RoCb73H26m8+8ZlZcq3d5uLYQQ/OXp6KoF5Rth1AtdBk7JxowOe5l1HwJ7L1wg7oY2K8axvWxwoD5QP/z'... (length=1173)
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] => 040520_61bc64fa0fb72b89835ae6a5350a732b4910f4c63306663672c4ef70f9ea0e58
[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] => 1588754929
[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 requests the current Messor library files text for updating.
The server returns the data array with the files texts and their names.
'
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_encr_string
CcZldiTLvyfNB+jht9R29g9FAU5XbPq52752EdT3A+FaWghBrzuMtzvWfDL7hlDR3XffVLhAAWhYuqfijtOdo9U2hfwtfYEAaxtJ6kd3hliiMhzBKXls3w5ejl2y5CK9Wc1CSjwmJ0n+J878WJp7nyEeDDPatCXXGG45KUxOn4nxV6o2KTiZBUWjnHDx419+zhqXO4AfLgDVeW0jgv4B3A==
--- END MESSOR ---
' (length=305)
Response (parsed):
Array
(
[status] => ok
[header] => Array
(
[status] => ok
[server_version] => 0.4a
)
[data] => New version Messor 0.1b
Please upgrade your messor
Command:
git clone https://github.com/wwood-dev/messor
)
peer_get_server_list
Peer requests the current server list.
The server returns the current server list text and its version in response (hash sum sha256 from the server list text)
'
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_encr_array
TiB4R2UmdtSuPIagWEEDPNTLf/3M2dw/srY3p3XPSVyg0JslSuzxnrik/Yyx6W3U9tK74aNO6Bosppnrmwx8dhauqjwmXDh14BrAW4Z+Kn3DRFHkNwOH6H6vX+Nf7/eESVCK9kNRmrET+B23eii4+nfr67G1SnOLf1+bD75OKduUJ3h1Z1Dok1Yca9vQqjWp6lay/stRjWqvUWCdqoS3XIkClcEEeR/WrOUVDZo+kY8P27tLPGMmghNa9xBbrxMSxdvsI/JwguuBWgQXf9yrpAlgtaYqA+L7Hj8+pm/rBWPDJL4dmxsfNstFabN7v7mxhyjxWeiuXzrJhhjPhnnUFdBrWwtRpfZMI0k6YlZuIu730AwlKo75I+RKRursmuBCWNS0mFOJFcmQjIQ4bJIMq8dgLBIwyaFyEU72+EXckeb1+yqsDtLFh8keXXXo'... (length=600)
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 requests the server to provide other peers list on the network, having the requested database version.
Peer indicates the required database version in the request.
The server responds by the data array with the required peers list in response.
Typically, the current request is used to update your database to the current version.
Data description:database_version - Current database version
'
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_encr_array
SA7RlSx+aDICtAN+ipsgqqO2yhTuMc9wRq0bvUrhelFXEsq1PCYcEjuHtP1oVZk0qYJ29W7ZgoCiq9UcrU/FE1u8ISwAWHO2JOppPPkM8GwRKtZPpkxhLT9cEGtE88ba/MRrQJfFJ7/fwOD4XZbDLWoVt19BDqIx1b6QeyoiVJWfWcFomWqn6gu68PbxPFor3lEhObqeC2v7yJPxUjjlkv7ZxwVl9v2+WeFbQkEuGe1i78pfuQWHRPnR/boPtXOEU19D1zm9P8+F8MS3HO3HFe5dY//Y1SOl30WhOVB/YpPNx0DWl6xS3t2v/tGHW2MySl3q5YWYwlauF+gz7DElamp5tf9ixUt/MMvnSdnacMNb9Fv/BsRqMOlg/dCqTEstk9YjAwNqMXoXSPwq+6KqCC3xVFneifPymyjT4QPNlLTUFehEzCc+cjm94oUa'... (length=688)
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://95.179.156.122/messadm32fd/messor.php
http://messor.lock/mess/messor.php
[database_version] => 040520_61bc64fa0fb72b89835ae6a5350a732b4910f4c63306663672c4ef70f9ea0e58
)
)
peer_download_database
Peer requests the specified database text,
The server or peer returns the database text in response.
Direct database download from the server is available only
premium peer
Usually the current request is used to get the database from other peers, see (data transfer description between peer).
Data description:database_version - Current database version
'
--- BEGIN MESSOR ---
status=ok
server_version=0.4a
data_encr_array
agvQTiYeqGXUYTbV8l8+0PTO8vgfNdUaX4cZqd9/9DTeiA9M6yTlpXIPJR1FHPPLIIrSS+gPnx/zTZnwzmSJ/NceezQLPbfkK78DXRwLooJEKd1SxASSBPVHeY5qMHnzWk08gJxvzq3GTmyuNuxfCKAnuLM1QGsElC2MorjGxYWLqIGoGxFsq1v1zcrdf3wxqIHrWHujm1vurvJBJA1ggYEnu48bkvIcjv/V4+qYsPuUPbXzgaYYpdh+7nRZR3Xx9F8WLJzKhWegISsUtrK7TkJgvQFOwO6oBFPsTQBcak9GbSloeFnKOguSSpyl8sU+92KtuBSdQ8ZZaPr7+gJvcTQmUhE2JHNterdrUpkVZkqNV8SldBv/tTJ96GC7ayeNur8r0Dc2+SjFFko8K4tUVaoENtsSf6t/HRJARewOV+UqmBE/orqSULWiXsWZ'... (length=12036)
Response (parsed):
Array
(
[status] => ok
[header] => Array
(
[status] => ok
[server_version] => 0.4a
)
[data] => Array
(
[database] => # Messor main database. Generated at 04.05.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.66.157.113
45.148.121.2
45.252.249.240
46.37.172.123
46.101.144.52
46.101.232.43
46.242.17.108
47.113.87.53
49.12.1.199
49.89.250.63
49.233.140.56
51.38.92.2
51.77.249.193
51.91.10.98
52.90.194.137
62.173.145.171
64.225.66.211
77.22.250.8
80.128.103.38
87.106.204.9
88.149.155.196
91.83.149.165
91.121.54.71
91.134.140.200
91.221.109.101
91.245.131.88
92.63.194.241
93.158.166.11
93.174.93.91
93.230.73.125
93.244.251.168
94.25.163.133
94.102.51.110
95.29.50.165
95.110.201.243
95.179.86.18
95.211.211.232
103.40.242.250
103.90.203.250
103.103.69.167
105.159.133.176
106.12.155.32
106.52.167.154
109.96.171.178
109.252.26.44
111.229.57.229
111.230.248.96
115.159.108.113
115.159.115.242
118.24.119.132
118.25.111.38
119.28.104.104
119.29.94.177
119.29.111.58
121.54.189.12
122.51.217.182
123.1.189.138
123.207.210.64
125.64.94.213
127.0.0.1
129.204.56.213
129.204.101.72
129.204.141.119
129.211.79.29
129.211.119.164
129.226.63.10
132.232.37.105
132.232.152.214
132.232.168.65
132.232.253.240
139.59.67.149
139.155.106.35
142.93.130.30
144.76.68.124
144.91.65.191
149.202.215.42
150.109.103.245
151.236.57.247
159.65.153.39
164.132.206.232
165.22.80.208
167.114.227.94
171.67.70.85
171.214.245.128
173.254.203.25
175.34.62.127
175.193.68.12
178.32.76.141
178.32.150.152
178.67.149.47
178.238.8.117
182.61.43.75
182.61.61.244
182.176.81.200
185.86.93.3
185.86.93.5
185.86.93.6
185.86.93.10
185.86.93.16
185.86.93.17
185.86.93.21
185.86.93.24
185.86.93.25
185.86.93.34
185.86.93.37
185.86.93.43
185.86.93.49
185.86.93.52
185.86.93.60
185.155.96.132
185.212.128.231
185.214.164.6
185.234.216.58
185.234.216.198
185.234.218.174
188.166.188.152
188.240.223.5
189.132.52.51
192.99.15.199
192.133.171.18
192.157.196.42
192.163.192.171
192.227.152.122
193.57.40.38
193.112.224.171
194.60.254.243
194.99.106.148
195.88.16.114
195.245.113.28
202.56.167.165
202.158.44.202
203.113.174.104
204.48.24.34
207.154.206.75
209.105.243.246
211.23.45.31
211.234.2.11
212.92.117.55
213.162.246.170
216.244.66.236
218.60.29.206
218.75.30.86
220.130.193.45
[database_version] => 040520_61bc64fa0fb72b89835ae6a5350a732b4910f4c63306663672c4ef70f9ea0e58
)
)
invalid_action
Invalid request example from peer to server
The server provides error messages in response to invalid requests.
'
--- BEGIN MESSOR ---
status=error_req
server_version=0.4a
data_plaint_string
aW52YWxpZCBoZWFkZXIgYWN0aW9u
--- END MESSOR ---
' (length=126)
Response (parsed):
Array
(
[status] => error_req
[header] => Array
(
[status] => error_req
[server_version] => 0.4a
)
[data] => invalid header action
)
Peer -> Peer communication protocol description
peer_ping
Peer operation verification request
Peer sends a ping request to another peer and receives a short email in response(Hi).
'<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Object not found!</title>
<link rev="made" href="mailto:webmaster@dummy-host.example.com" />
<style type="text/css"><!--/*--><![CDATA[/*><!--*/
body { color: #000000; background-color: #FFFFFF; }
a:link { color: #0000CC; }
p, address {margin-left: 3em;}
span {fo'... (length=1017)
Response (parsed):
Array
(
[status] => error_parse
[data] => empty begin tag
)
peer_get_server_list
Peer requests the current server list from another peer.
Peer returns the current server list text and its version in response (hash sum sha256 from the server list text)
Backup network recovery request in case of all network servers failure.
Note! Backup recovery algorithm with peer should be disabled and enabled at the user's request only by default.
Lern more here
peer_get_server_list
'<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Object not found!</title>
<link rev="made" href="mailto:webmaster@dummy-host.example.com" />
<style type="text/css"><!--/*--><![CDATA[/*><!--*/
body { color: #000000; background-color: #FFFFFF; }
a:link { color: #0000CC; }
p, address {margin-left: 3em;}
span {fo'... (length=1017)
Response (parsed):
Array
(
[status] => error_parse
[data] => empty begin tag
)
peer_get_peer_list
Password change
Data description:database_version - Current database version
'
--- BEGIN MESSOR ---
status=error_req
server_version=0.4a
data_plaint_string
ZW1wdHkgbmV0d29ya19wYXNzd29yZCBoZWFkZXI=
--- END MESSOR ---
' (length=138)
Response (parsed):
Array
(
[status] => error_req
[header] => Array
(
[status] => error_req
[server_version] => 0.4a
)
[data] => empty network_password header
)
peer_peer_download_database
Database text request.
Data description:database_version - Current database version
'
--- BEGIN MESSOR ---
status=error_req
server_version=0.4a
data_plaint_string
aW52YWxpZCBoZWFkZXIgYWN0aW9u
--- END MESSOR ---
' (length=126)
Response (parsed):
Array
(
[status] => error_req
[header] => Array
(
[status] => error_req
[server_version] => 0.4a
)
[data] => invalid header action
)
Error code table
Possible error codes description table in peer/server responses in the status field
Error code |
Description |
error_req |
invalid request (invalid request formation or invalid parameters in the headers) |
error_auth |
errors during authorization on the server |
error_parse |
server parsing errors |
error_server |
server errors |
error_connect |
server connection errors |
error |
all other errors |