История с торнадо кэш еще раз подтверждает, что власти охренели решительно везде, централизованные сервисы - говно по определению, это помимо того, что не нужны. Прямо доза рвать и метать с утра. Надо опять навалиться на оффгрид-гит, а то я что-то приуныл. Там какие-то мистические ошибки выдаёт гит при работе с ним по протоколу, надо видимо будет сначала побороть брезгливость и поотлаживать имеющиеся питоновые прототипы. Ну или на расте помакетировать. Потому, что ошибки крайне подозрительные и наводят на мысль о хаскельном IO.
#offgrid ну что, в шаге от того, что бы offgrid-git стал self-hosted. push делается, объекты (сами) расползаются по нодам, и структура данных позволяет восстановить репо. остаётся сделать fetch и можно пушить/фетчить объекты из "p2p облака" оно же личинка "гипертекстового векторого фидонета на блокчейне" (бинго!)
#offgrid ссылка на репо offgrid-git (идут тяжелые работы!) 3CAaSFxhHVQZjeM2wEq1NXRQkZgK9Mccust8qzv6X1pC
Смотришь API иной библиотеки и понимаешь, что в этом бизнесе очень много умалишенных
Клонирует, пушит, фетчит из/в offgrid. Теперь можно его сделать self-hosted наконец. В процессе узнал много интересного про git, в частности есть вопросы к его инжинирингу, я бы даже назвал это в некотором роде провалами. Например, сломать в гите бранч вообще как нечего делать, так как ссылки-то в репо - мутабельные, а push объектом не является, это действие. С оффгридом же можно видеть всю историю изменений ссылок - когда, кто и как менял. И в принципе легко откатить к любому предыдущему состоянию. Не обязательно будет маниакально сохранять бранчи перед потенциально опасными операциями. Ну как бы там ни было, теперь хоть можно нормально совместно работать над оффгридом, без приседаний с настройками yggdrasil и т.п. Без гитхабов. Ну а посмотреть какой-то документ по его хэшу, с тем, что это просто файл, закоммиченный хоть куда-нибудь, лишь бы этот топик распространялся нодами - уже можно:
offgrid cat <hash>. Запушил в общий топик - блоб есть у всех.
offgrid cat <hash>. Запушил в общий топик - блоб есть у всех.
Что бы всё описанное выше стало красиво, нужны acl (уже делаются) и механизмы "криптоподписки" - ну, знаете, это когда сообщение шифруется ключом, который зашифрован ключами получателей
Первое, что нужно сделать сейчас - это механизм PR. Второе - тикеты.
PR это суть предложение замержить к себе изменения, сделанные кем-то
еще. В случае offgrid-git это будет просто блок (файл), в котором указан
бранч + git хэш откуда, бранч + git hash - куда, описание PR, возможно, какие-то
аттачменты (картинки?).
Этот файл должен сделать кто-то, и запостить его куда-то.
В принципе, всё равно куда - если это место общедоступное для участников (они
имеют право читать этот топик), то этого будет достаточно, что бы блок с PR-ом по ним
разъехался.
В том месте, где PR должен мержится - должны быть доступны "топики",
содержащие все потребные для мержа данного PR коммиты.
Т.е Боб фетчит ветку гита из какого-то репозитория (топика) себе. Работает-работает,
потом пушит в какой-то еще топик - может быть, даже свой.
Алиса тоже подписана на этот топик, все объекты к ней поэтому приедут.
Потом куда-то приедет и сам PR - либо в какой-то специальный топик, либо
вообще в любой — главное, если она знает хэш этого PR и у неё есть доступ
ко всем нужным объектам - она сможет его смержить.
Если она является майнтейнером какого-то апстрима - то потом туда и зальёт.
Побочным эффектом является то, что если не принимать специльных мер,
то PR приедет всем подписчикам и они могут его смержить и себе тоже.
Ну и пусть, в принципе.
PR это суть предложение замержить к себе изменения, сделанные кем-то
еще. В случае offgrid-git это будет просто блок (файл), в котором указан
бранч + git хэш откуда, бранч + git hash - куда, описание PR, возможно, какие-то
аттачменты (картинки?).
Этот файл должен сделать кто-то, и запостить его куда-то.
В принципе, всё равно куда - если это место общедоступное для участников (они
имеют право читать этот топик), то этого будет достаточно, что бы блок с PR-ом по ним
разъехался.
В том месте, где PR должен мержится - должны быть доступны "топики",
содержащие все потребные для мержа данного PR коммиты.
Т.е Боб фетчит ветку гита из какого-то репозитория (топика) себе. Работает-работает,
потом пушит в какой-то еще топик - может быть, даже свой.
Алиса тоже подписана на этот топик, все объекты к ней поэтому приедут.
Потом куда-то приедет и сам PR - либо в какой-то специальный топик, либо
вообще в любой — главное, если она знает хэш этого PR и у неё есть доступ
ко всем нужным объектам - она сможет его смержить.
Если она является майнтейнером какого-то апстрима - то потом туда и зальёт.
Побочным эффектом является то, что если не принимать специльных мер,
то PR приедет всем подписчикам и они могут его смержить и себе тоже.
Ну и пусть, в принципе.
Forwarded from voidlizard.online/blog
Эта история с offgrid + "распределенный git" - нечто, что я хотел много лет. Может, десять. Ну т.е я не знал, как должен быть устроен именно offgrid, да и названия такого еще не было. Несколько раз подходил к снаряду, пытаясь сделать "распределенный гит". Отвергал, как что нечто, что слишком сложное (демоны, сеть, консенсус - казалось, что оно того не стоит). Но эта была та планка, которую надо было перепрыгнуть, что бы стало нормально. Писать это всё распределённое ради только гита рука не поднималось. Другое дело, когда вся эта сложная история вынесена в какую-то ноду с ручками, и есть набор подходящих примитивов, и с этим всем можно делать всякое. git-remote-offgrid до работающего состояния написан реально-то за неделю, при наличии этого всего. Удивительно, что набором примитивов является, на каком-то уровне, старая добрая фидошка - эхи и сообщения. Засунутая в торренты. С merkle деревьями и госсипом. Как же меня таращит от того, что я хотел много лет (распределенный багтрекер еще + PR-без гита) начинает воплощаться
Появился некий сервис sourcehut.org - типа, аналог гитхаба, только без (...) ? Интересен он тем, что его поддержку я обнаружил в nix, размышляя над тем, как туда воткнуть поддержку offgrid. Новый сервис это хорошо, но слишком поздно. Интернет развален говноедами, сетевая нейтральность не более, чем анекдот из прошлого. Если где-то у тебя спрашивают логин или там имейл - как правило, надо разворачиваться и уходить. Тем более, что имейл теперь это такой же сервис от корпораций. А где корпорации, там и говноеды, причем буквально - теперь же публичные комании обязаны иметь в составе директоров говноедов. Был такой анекдот —- "... пока это не стало обязательным". Так вот, стало.
Верно ли, что если понять, как устроено хранилище того же самого pine (свалка файлов в формате miltipart/mime) — то можно поиметь уже обмен сообщениями нахаляву? Пойду-ка посмотрю. Там, по моему, какой-то прям стандартный формат есть unix mailbox или что-то вроде того
#offgrid ну что, оно живое. проблемы возникают, но чинятся в рамках его самого. и работает на довольно убогих каналах, черти где. в принципе, уже оправдывает название. git с ним работает. пилим подписки и acl-ы
#offgrid пилим систему прав/подписок/криптоподписок. в offgrid-git + еще отдельная система прав
кстати, понял, что не знаю, как коротко охарактеризовать offgrid. Постблокчейновый торрент с паб/сабом? Распределенный CAS с подписками? новый фидонет?
С этой вот сложностью такая двоякая ситуация. Есть вот сервант (servant). Довольно сложный для первого раза или как отвыкнешь. Думаешь такой - возьму-ка я scotty что бы микровебню написать. Но тут есть реальный риск, что через какое-то время будешь плюясь перетаскивать все обратно на сервант. Тоже самое как документами/презентациями - латех подзабыл, дай-ка быстро нашлёпаю в Google Draw. Через несколько часов обнаруживаешь себя гуглящим настройки beamer и вспоминающим tikz. ПОТОМУ ЧТО В Draw не добавить в нужном месте коннектор к фигуре и стрелку к ней под неотвратительным углом не подвести или еще что.
#offgrid работы по ACL пока задерживаются из-за работ по стабилизации. тем временем подпилил еще немного offgrid-git, ускорил вычисление зависимостей и сделал локальные ACL (пока что не публикуются в топик, думаю, как сделать лучше)