Как стать автором
Обновить

git-ssb — децентрализованный хостинг git-репозиториев

Время на прочтение 6 мин
Количество просмотров 12K
Всего голосов 32: ↑31 и ↓1 +30
Комментарии 9

Комментарии 9

Зачем пытаться сделать децентрализованный git, если он изначально создавался децентрализованным? Или из-за гитхаба никто уже не помнит, как добавлять несколько origin-ов?

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


P.S. Если нужна не столько децентрализация, сколько по-настоящему приватные репо для команды, которые никто другой не может посмотреть и/или заблокировать — в Keybase есть поддержка гита.

Да. Децентрализация помогает сохранять доступ вне зависимости от точки зрения хостера (см. удаление youtube-dl). В некотором смысле это противоположность приватности.

P.S. Если нужна не столько децентрализация, сколько по-настоящему приватные репо для команды, которые никто другой не может посмотреть и/или заблокировать — в Keybase есть поддержка гита.

Спасибо. Это интересно.
Поддерживаю.
1. Берём децентрализованный гит.
2. Насаживаем его на блокчейн.
3. Получаем неконтролируемый запрет на правку/удаление файлов в репозитории.
4. Бюджет освоен? Прибыль получена?

p.s.
Очень интересная тема, хотел почитать про git-ssb, но прочитал про ssb (очень понравились картинки и детальное описание), т.к.
git-ssb заворачивает обычные git-репозитории в этот протокол.

Также хотелось бы спросить у автора, зачем вдруг разработчикам приобретать такие нюансы:
If a user loses their secret key or has it stolen they will need to generate a new identity and tell people to use their new one instead.

Т.е. случилась беда с ключом — пересоздавай репозиторий??
Pubs serve as a gathering point for new users to find other people and for existing users to welcome people who have just joined.
Pubs have a stable IP address and allow incoming TCP connections, which enables users to connect even if their internet service provider lacks dedicated IP addresses or refuses incoming connections.

Децентрализованная сеть с центрами централизации, ретрансляции и библиотекой пользователей с их ключами+адресами… Не, конечно можно каждому контрибьютеру выделить по белому ip, но тогда это ничем не отличается от гита.
The connection begins with a 4-step handshake to authenticate each peer and set up an encrypted channel.
Handshake is verifiable using Network key.
Network key — most clients use well-known key to join the main network.

Опаньки, главная подсеть в децентрализованной сети, которая ещё и за шифрование отвечает. Ну… это полный провал всей задумки децентрализации.
When a user attaches an image to their post, that image is stored as a blob and the message contains a link to it.
Blobs can handle much larger amounts of data than feeds or messages, which is why they are stored separately.

А вот и вся фишка протокола — обмениваемся sha256 файлов вместо самих файлов, а файлы качаем отдельно. Идея неплохая, если компы всех контрибьютеров будут доступны или если каким-то образом совпадёт, что все по-цепочке скачают копию себе в момент коммита. Конечно можно было и файловый сервер поставить, но это же не гит.
Т.е. случилась беда с ключом — пересоздавай репозиторий??

Если утрачен закрытый ключ, то утрачен и контроль над identity.

Но с репозиторием это не так: там permissionless модель, т.е. любая identity может пушить в любой репозиторий. Потеряв ключ вы создаёте новый и продолжаете с тем же репозиторием.

Децентрализованная сеть с центрами централизации, ретрансляции и библиотекой пользователей с их ключами+адресами…

Пабы функционируют скорее как кеш, позволяющий получить свежие обнолвения от того, кто был в онлайне за час до вас. Причём вам не обязательно идти в конкретному пабу, подойдёт любой узел (другой пользователь, например), у которого есть нужные данные. Когда устанавливаете PatchWork, то в панели слева видно, что он соединяется и с другими пользователями напрямую и с пабами, у которых вы не брали инвайта.

Это немного децентрализованнее, чем e-mail и Mastodon (там у вас есть «домашний» узел), но не настолько, как cjdns, где все узлы равны.

Network key — most clients use well-known key to join the main network.

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

… если компы всех контрибьютеров будут доступны или если каким-то образом совпадёт, что все по-цепочке скачают копию себе в момент коммита.

Пабы хранят и блобы тоже. Поэтому pull получается, когда в онлайне нет никого из тех, кто коммитил.
Но ничто не помешает вам запушить прямо в master без всяких пулл-реквестов.

То есть ситуация со «сторис для программистов» никого ничем не научила?
Человеческая сущность такова, что нельзя давать всем доступ к ресурсу — чисто из вредности найдутся люди, которые захотят поднасрать.
Пушить в чужой репозиторий
Это не баг, а фича.

Да нет, это именно баг, хотя и в голове. Конечно, если расчёт на то, что ssb никогда не выйдет из узких кругов, то это может быть и работоспособно
если расчёт на то, что ssb никогда не выйдет из узких кругов

Судя по статистике, пока не выходит:
image
(Источник)
Пик справа — это, похоже, как-то связано с блокировкой Parler.

Децентрализованный git - очень своевременная идея, учитывая, что GitHub в любой момент могут отключить. Но возможность пушить в чужой репозиторий - это, конечно, не очень

Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории