Методы синхронизации файлов пригодные для технологии “KORNI3”

[TOC]

Сначала рекомендуется прочитать Korni3 и сетевые коммуникации TODO link

Технические сведения

Технология korni3

  • Может эффективно использоваться множеством лиц, как система хранения “бекенда” для сетевых приложений и сервисов.
  • Может использоваться как система хранения для десктопных (оффлайн) приложений без доступа в сеть.

Backend korni3 для обмена данными не имеет встроенных сетевых и других функций - это только хранилище бекенда, однако оно хранит изменения в файлах на диске. Файлы организованы в особую структуру, Но это просто файлы на диске.

Папки с файлами разных пользователей можно “сединить” безопасно, структура файлов исключает такие конфликты. Объединенная папка будет восприниматься приложениями как изменения нескольких пользователей.

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

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

Cloud Общая Папка на Облачном сервере (Yandex.Disk, Swift, S3…)

Самое очевидное и современное решение, которое всем сразу прийдет в голову - то, чем мы все с вами пользуемся каждый день.

Вы добавляете ваши korni3 контейнеры в облачное хранилище, даёте туба доступ вашей рабочей группе, друзьям итд и все работает, Это самый дешевый “хостинг” (бесплатно довольно много места предоставляют облачные провайдеры) для сетевых и оффлайн приложений (как бекап).

Открытая папка - доступна провайдеру облака… если Вы считаете это не безопасным и у рабочая группа работает с чувствительными данными - можно поместить в облако шифрованную копию, смонтированную через , например Cryptomator или другой прозрачный шифровальшик или систему управления шифрованными томами файлов.

Здорово то, что для шифрования файлов уже существуют готовые и надежные решения на любой вкус.

FTP сервер, аккаунт на FTP сервере

возможность 1 - размещать на ftp сами файлы data контейнеров

Открытую или шифрованную версию можно синхронизировать на ftp к которому у Вас и вашей рабочей группы есть доступ.

Даже имея один аккаунт на всех система korni будет надежно и быстро работать т.к. синхронизации могут Выполняться в несколько потоков или наоборот - не одновременно.

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

Можно организовать подписку на обновления через rss или другие способы (админы пользуются много чем, от sms до логики в Grafana подобных инструментов мониторинга в телеграмм или почту итд)

Мнение: Сам FTP может работать с “анонимным пользователем”. Пользователь, который представился , как аноним, всё же представился и больше не входит в “неопределенный” круг лиц.

Возможность 2 - Можно на ftp не класть сами данные а только класть свои p2p динамические адреса , чтобы клиенты синхронизации взаимодействовали друг с другом через p2p протоколы. В таком случае ftp или http сервер превращается в обычный account сервер с максимально простым (но файловым) API.

Возможность 3 - размещать на ftp запросы и ответы . действительно, что если данных будут терабайты и все их размещать на одном хостинге будет невозможно? Тогда решение иное - “клиенты - синхронизаторы” мониторят хостинг но кладут туда не всё, а :

  • а) листинги файлов у себя
  • б) запросы тех файлов, которые им нужны и время действия запроса
  • в) ответы в виде файлов на своих местах, которые удаляются получающей стороной и/или по истечении времени. (возможность удалять по таймеру есть в облачных swift хостингах и там это может быть даже удобнее реализовать)

SSH , SCP - через доступ к произвольному VDS/VPS (даже пустому)

ssh - максимально старый и вездесущий протокол, нет сегодня наверное ни одного сервера, где этот протокол не был бы доступен. Это протокол с помощью которого администраторы серверов могут управлять своими серверами. Это “первая программа”, которая запускается на любом сервере. Запретить использование ssh - безумие, большее, чем ядерная война - это запрет на интернет для всех, запрет на компьютеры вообще и на владение вычислительными мощностями.

ssh предоставляет на много больше чем ftp, при этом стоит не дороже.

через ssh можно

  • соединять любые машины “напрямую”, не испытывая сложности p2p и NAT, (проброс портов)
  • передавать файлы и части файлов на удаленную машину, (scp)
  • передавать файлы и данные (каналы , pipe) по цепочке машин, не оставляя следов на дисках
  • шифровать , расшифровывать, проверять подписи… итд.
  • устраивать любые серверы и клиенты, запускать программы итд … просто пользоваться вычислительной машиной всяко.

Чтобы синхронизировать через ssh файлы с вашей рабочей группой достаточно специальному скрипту дать короткую настройку в одну строку про ваш ssh аккаунт и всё будет работать само.

IPFS - Global FileSystem (p2plib) - Глобальная файловая система

IPFS. Однажды настроенная эта система будет работать сама. Все файлы которые Вы в нее добавите могут быть получены кем-то, кто знает их хеш. korni3 сделана так, что все кросс связано хешами контента, так что это позволяет делать навигацию по всему интернету по новому (это хорошо забытое старое).

“Dark Net” - server

В “дарк нете” можно развернуть невидимый для врагов сервер, например ftp - прямо на своей машине для нужной папки с нужными ключами доступа, вот прямо для всех. Это не заблокировать никак.

Обычные пользователи не умеют пользоваться такими штуками, однако есть способы автоматизировать дляних самую сложную часть работу сведя, управление до одной красивой кнопочки.

Можно там развернуть rss, xmpp, http ресурсы итд - никакие ограничения не способны повредить передаче данных в дарк-нете.

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

RSS + social network

В социальные сети можно загружать просто сырые не понятные никому данные. и Они там будут хранится. Социальные сети - это бесплатный хостинг (как и почта тоже).

Так пока никто не делал, но время пришло - почему бы и нет? Должна же от социальных сетей быть хоть какая-то польза.

Rsync + Flash Stick \ SD Card, hard disks, - с помощью флешек, вообще без интернета

Если наша задача - синхронизировать папочки с файлами - то это просто делать с помощью, условно, “TotalCommander” и жестких дисков.

Я помню как во времена студенчества , когда мы ходили в гости друг к другу - брали диски с собой и обменивались фильмами и музыкой. Но там надо было думать, выбирать файлы - тратить на это немного времени.

с технологией корни всё максимально однообразно и это может делать программа полностью автоматически (самое быстрое - один клик “разрешить” и может быть указать галочками “что разрешить”).

Так можно делать и с:

  • ноутбуком и флешкой,
  • с внешним жестким диском,
  • с телефоном и флешкой или диском, где угодно

ADSL Modem , DialUp Modem - модемные линии и очень дешевые линии проводной связи (лапша)

Messengers мессенджеры

Torrent , EDK, e-mule, Direct-connect,

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

Одна из таких систем это torrent, а также и другие. известны ряд недостатков таких систем потому, что их все таки можно блокировать с переменным успехом, но это решаемые проблемы. Отчасти проблема в том, что требуется трекер… Но можно успешно использовать торрент как транспорт файлов, без поиска по трекеру. Метаинформация может идти по любым другим каналам.

Hostings, любые хостинги сайтов (они не обязательно должны на самом сайте обозначать эти возможности)

На вашем сайте скрыто от общих глаз может находится папка с файлами, доступным по только вам известным ссылкам. может быть либо БОТ, либо пользователи, которые могут выгружать в эту папку файлы, доступные “друзьям”. Сайт не обязательно может быть известен. Это может быть самый минимальный сайт, статический например, даже пустой, такое стоит 100р/месяц - но отлично будет работать.

Допустим, гипотетически, что безумцы из правительства запретили хостингам размещать файлы согалсно сигнатурам путей в файловой системе, чтобы препятствовать - тогда будет достаточно поместить файловые контейнеры в шифрованные паролем zip файлы и отдавать их через php или умный конфиг nginx. это будет не дороже от 150 р/мес.

Личный Хостинг - всё еще наиболее гибкий надежный способ.

Допустим запретили и совсем мешают выкладывать файлы на сайты… тогда можно сами файлы не выкладывать, а выложить только свой p2p адрес , чтобы “друзья” могли подключиться к вам через ipv6 или p2p и взять файлы с вашей машины - тогда на хостинге контент вовсе не светится, или выложить скрипты 302 redirect-а , чтобы перенаправить на новое место хранения, которое может часто меняться .

Важно: Вы будете совершенно не зависеть от хостингов.

e-mail, Электронная почта.

Почтовый сервер и почтовый протокол , это не только ящик с письмами, это штука, которая может хранить и передавать файлы.

Почтовый сервер заиметь себе проще простого на любом хостинге он стоит сущие копейки. Объём места под почту зашкаливает, мало кто может его использовать. Но можно использовать почтовый сервер не стандартно - для обмена файлами. Нужен лишь не вполне стандартный клиент для почтовых протоколов, которые в любом случае обязан поддерживать сервер.

Обратите, например, внимание на продукт Delta Chat - это приложение, которое выглядит и работает как мессенджер (повторяют телеграмм) но в качестве сервера каждый пользователь использует свой произвольный почтовый сервер. “уловки” этой программы позволяют общаться по “почте” мгновенными сообщениями.

p2p soft,

TODO много софта такого есть

VCS’s, SVN, GIT, Fossil, Mercurial, ….

Системы контроля версий проектов - по сути системы управления файлами. они предназначены для управления множеством файлов в инженерных проектах и распределения по работникам различных версий проектов (набора файлов).

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

Доступ к любой VCS позволяет удобно синхронизировать ваши данные.

Такие системы, кроме прочего позволяют сильно экономить объём передаваемой по сети информации

data-radio - небольшие цифровые радио модули разных диапазонов,

любым инженерам и уже даже школьникам известны малые модули типа Arduino m Repsbery-pi и подобные, Мини и микро компьютеры легко расширяются радиомодулями и дисками для данных.

Любая “современная кофеварка с интернетом вещей” может обмениваться файлами и может стать штукой - переносчиком ваших данных.

Установленные радиомодули на автомашинах, которые ездят по дорогам и передают друг другу данные по радио - отличная система для распространения общей информации. Такие модули могут работать на рынке и в местах скопления людей, забирая и раздавая данные по радио слабой разрешенной для всех мощности.

phones, wi-fi, роутеры,.. обычные смарт-телефоны, включая близкую “связь” (BT, NFC,…)

Это продолжение предыдущего пункта. Приложения на близко расположенных смартфонах тоже могут это делать.

Специальные системы файловой синхронизации

// TODO тут я опишу использование инструментов p2p синхронизации и другие специальные инструменты