-----BEGIN PGP SIGNED MESSAGE-----====
Hash: SHA256
idec/ok
sync
-----BEGIN PGP SIGNATURE-----
SIGNATURE
-----END PGP SIGNATURE-----
Нода, получившая этот запрос, расшифровывает полученный запрос, проверяет валидность подписи и степень доверия
к ключу запрашивающего, после чего парсит запрос и отдает список поинтов в формате points.txt(подписынный и зашифрованный конечно же).
== Плюсы
1. Реализуется с минимумом усилий
2. Очень все просто
== Минусы
1. Все поинты со всех нод хранятся на каждой из нод
2. Если подламывают одну из нод, то утекают все поинты сети
== Вариант № два
Identity сервис предоставляет API для валидации и проталкивания(push) поинтов.
== Валидация
На ноду приходит запрос требующий authstring, но соответсвующего поинта на ноде не существует.
Итак, с этим authstring делаются запросы на ноды-соседи. Сообщение запроса примерно такое(шифрованное):
-----BEGIN PGP SIGNED MESSAGE-----====
Hash: SHA256
idec/ok
validate
authstring
-----BEGIN PGP SIGNATURE-----
SIGNATURE
-----END PGP SIGNATURE-----
Если поинт существует, то возвращается(подписано и шифровано) true, никнейм и адрес поинта. Нода открывает
сессию(например, на 12 часов) для этого поинта и хранит данные авторизации в памяти без записи в points.txt. Можно добавлять что-то в адрес, чтобы было видно, что это не родной поинт этой станции.
== Проталкивание
Отправляем строку поинта на станции-соседи. Принимающая сторона записывает поинта в points.txt. Все.
== Плюсы
- Безопасно, при подломе станции все поинты не утекут
== Минусы
- Чуть сложнее, чем вариант номер раз.
Мне видится предпочтительным второй вариант. PoC постараюсь выложить в ближайшее время.
Обсудим?