Я думаю надо вначале разделить данную идею на составляющие. У меня их будет две: хранение и делегирование прав.
Хранение, то тут всё просто что-то типо торрента, скачивается только доверенная версия программы и тут же проверка хеша, тоже и с самим кодом, должен быть хеш от доверенных лиц.
Делегирование прав. Тут всё намного сложнее.
Как раз наоборот - с делегированием всё просто, с хранением чуть сложнее.
У кого какие мысли по архитектуре децентрализованного аналога Github?
Так а как ты себе представляешь? Если децентрализация по варианту биткоина (каждый узел - хранит всю информацию), то никто таким пользоваться не будет. Биткоин ноды имеет небольшое число людей, про Гитхаб даже думать смысла нет.
Каждому узлу не требуется хранить всю информацию даже в биткоине. Существуют более эффективные алгоритмы.
Мне в голову пришел вариант сервера, который бы просто отображал бы репозитории пользователей, которые:
1. хранящиеся у них на компе. Только в таком случае правда многие репы будут отваливаться, когда например человек спать ушел и комп выключил (мы не рассматриваем здесь что кто то закинет на распберри себе сервер чтобы было доступно 24/7).
2. На своих серверах, которые не будут отваливаться при уходе в оффлайн. Тот же распберри , как пример. В этом случае основной сервер будет просто связывать разные сервера между собой. Но в таком случае скорость взаимодействия будет страдать (в первом варианте правда тоже).
Отдельные серверы не нужны. В децентрализованной сети каждый участник по-умолчанию является сервером. Проблемы хранения всей информации у каждого участника на начальном этапе не существует, потому что объём информации в сети станет заметным только при большом количестве участников, но тогда уже не будет никакой нужды хранить всю информацию у каждого и любой репозиторий будет доступен 24/7.