The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

30.05.2015 10:07  Анонсирован GitTorrent для доступа к Git-репозиториям при помощи BitTorrent

Несмотря на децентрализованный характер Git, для первичного получения исходных текстов требуется сервер, занимающийся отдачей кода. Например, блокирование доступа или сбой в работе GitHub перекроет возможность загрузить код и вынудит искать зеркала, несмотря на то, что данный код может присутствовать в локальных git-репозиториях сотен и тысяч разработчиков. Крис Болл (Chris Ball), долгое время занимавший пост главного инженера проекта One Laptop Per Child, предложил использовать технологии BitTorrent для решения данной проблемы. Кроме общей концепции Крис подготовил и опубликовал под лицензией MIT прототип дополнения для git с реализаций транспорта, загружающего данные через BitTorrent, а также специальный демон, отдающий содержимое локального git-репозитория через BitTorrent.

Идея проекта достаточно проста - по аналогии, как BitTorrent позволяет сформировать распределённую сеть для хранения файлов, GitTorrent даёт возможность сформировать распределённую сеть для содержимого Git-репозиториев, отключение отдельных участников в которой не скажется на доступности данных, за счёт наличия в отдаче реплицированных копий. Для определения отдающих искомый репозиторий узлов и узла для отправки коммитов применяется DHT (распределённая хеш-таблица). Организованное при помощи DHT хранилище в формате ключ/значение используется как система для определения профиля пользователя и информации о том, какие у него имеются репозитории и свежие git-хэши изменений.

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

Вместо прямого обращения к GitHub по SSH пользователь может выполнить "git clone gittorrent://github.com/someuser/somerepo" и загрузить репозиторий от участвующих в его раздаче узлов при помощи BitTorrent. В случае использования имени хоста с репозиторием (github.com/someuser/somerepo) будет отправлен запрос к github.com и получен хэш последнего коммита в репозитории. После этого через распределённую хэш-таблицу будут выявлены узлы, которые содержат данный коммит. Затем, после соединения с одним из таких узлов и запроса у него списка необходимых файлов, будет сформирован архив с нужными коммитами и передан его хэш, на основании которого начнётся загрузка при помощи штатного BitTorrent.

Стадию обращения к GitHub для получения данных о коммитах можно исключить, указав при обращении SHA1-хэш владельца репозитория. Так как метод использования хэшей не слишком удобен, предусмотрена возможность регистрации читаемых имён, используя методы, применяемые для регистрации имён пользователей в Bitcoin. Для прямой отдачи своего репозитория через BitTorrent достаточно запустить gittorrentd. Возможно совершение не только операций fetch и clone, но и внесение изменений через операцию push. Синхронизация полученных коммитов между участвующими в раздаче узлами производится через отправку архивов с необходимыми git-объектами при помощи специального расширения протокола BitTorrent.

  1. Главная ссылка к новости (http://blog.printf.net/article...)
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: gittorrent, git, bittorrent
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 11:18, 30/05/2015 [ответить] [показать ветку] [···]    [к модератору]
  • –15 +/
    Какой-то геморой и костыль. Проще держать зеркало своего основного репозитория и не строить велосипеды из скотча.
     
     
  • 2.7, Аноним (-), 12:27, 30/05/2015 [^] [ответить]    [к модератору]
  • –1 +/
    > Какой-то геморой и костыль.

    +1

     
     
  • 3.37, Аноним (-), 05:37, 31/05/2015 [^] [ответить]    [к модератору]
  • +/
    > +1

    На третий день Зоркий Глаз заметил что для установки этой штуки сватается какой-то npm и node.js, которые тоже надо где-то взять, и которые тоже можно заблокировать. Wait, oh shi-

     
  • 2.11, Crazy Alex (ok), 13:49, 30/05/2015 [^] [ответить]    [к модератору]
  • +7 +/
    А зеркало чужого тоже будете держать, даже не зная, что он вам понадобится? Тут, как я понимаю, идея в  том, что те, кому не жалко - открывают доступ к своим клонам, при этом их имена/адреса клиенту знать не надо. В результате когда очередной идиот заблокирует гитхаб вы сможете получить доступ к тем проектам, которые склонировал кто-то, кто не поленился запустить этот сервис.
     
     
  • 3.15, Demo (??), 15:22, 30/05/2015 [^] [ответить]    [к модератору]
  • +/
    > когда очередной идиот заблокирует гитхаб

    Зеркало (как и основной репозитарий) можно сделать доступным не только в инете, но и по другим протоколам.

     
     
  • 4.17, Аноним (-), 15:32, 30/05/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    > Зеркало (как и основной репозитарий) можно сделать доступным не только в инете, но и по другим протоколам.

    кто бы сомневался: RFC1149

     
     
  • 5.55, Аноним (-), 16:54, 31/05/2015 [^] [ответить]    [к модератору]  
  • +/
    > кто бы сомневался: RFC1149

    Слишком устарело -- хороший "карриер" не то что флешку, болванку  со всем проектом утянет.


     
  • 4.20, Crazy Alex (ok), 16:11, 30/05/2015 [^] [ответить]    [к модератору]  
  • +/
    Можно. Осталось только понять, как те, кто хочет склонировать основной репозиторий, узнают о существовании зеркала. А здесь - вполне удобный механизм.
     
     
  • 5.49, Demo (??), 11:42, 31/05/2015 [^] [ответить]    [к модератору]  
  • –2 +/
    > Осталось только понять, как те, кто хочет склонировать
    > основной репозиторий, узнают о существовании зеркала.

    Кому действительно нужно — узнают.

     
  • 3.27, ФСИН (?), 21:57, 30/05/2015 [^] [ответить]    [к модератору]  
  • –5 +/
    И тебя заблокируют лет на 20!
    Без права переписки! xD
     
     
  • 4.30, Crazy Alex (ok), 01:15, 31/05/2015 [^] [ответить]    [к модератору]  
  • –6 +/
    Я не имею дурной привычки жить в России
     
  • 3.38, Аноним (-), 05:39, 31/05/2015 [^] [ответить]     [к модератору]  
  • +1 +/
    Вот в чем я совершенно точно уверен - так это в том что я не побегу ставить node... весь текст скрыт [показать]
     
     
  • 4.50, Crazy Alex (ok), 13:08, 31/05/2015 [^] [ответить]     [к модератору]  
  • +/
    Да не бегите, кто ж заставляет Другие найдутся Кстати, интерпретатор перла или... весь текст скрыт [показать]
     
     
  • 5.65, Аноним (-), 15:00, 01/06/2015 [^] [ответить]     [к модератору]  
  • +/
    Ога, будет как в i2p Когда придется двое суток ффтыкатЪ пока единственный пир н... весь текст скрыт [показать]
     
     
  • 6.73, Аноним (-), 20:34, 01/06/2015 [^] [ответить]     [к модератору]  
  • –1 +/
    Скорее, просто нормальные варианты, без дополнительных прибамбасов и библиотек... весь текст скрыт [показать]
     
  • 6.77, Crazy Alex (ok), 23:21, 01/06/2015 [^] [ответить]     [к модератору]  
  • +/
    Учитывая, что 95 которые с виндами из разработчиков - веберы, то нода у них о... весь текст скрыт [показать]
     
     
  • 7.81, Аноним (-), 10:31, 02/06/2015 [^] [ответить]    [к модератору]  
  • +/
    Не мешайте чуваку демонстрировать свое ЧСВ.
     
  • 7.82, arisu (ok), 10:41, 02/06/2015 [^] [ответить]    [к модератору]  
  • +/
    > Зачем здесь что-то большее, чем скрипт?

    согласен, незачем. но оно тянет за собой идиотскую ноду.

     
  • 1.2, Аноним (-), 11:21, 30/05/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Это недо допилить, добавить туда распределенную сборку проектов на разрешивших это узлах и будет то, что я пару лет назад на форуме описывал. Но он сделал, а я так, мечты мечтал :)
     
     
  • 2.4, Какаянахренразница (ok), 11:23, 30/05/2015 [^] [ответить]    [к модератору]  
  • +10 +/
    Какую сборку, куда, зачем? Это VCS, а не CI.
     
  • 1.3, Какаянахренразница (ok), 11:21, 30/05/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    Э-э-э, а как пушить коммиты-то?

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

    P.S.: Мама, это я дурак или идея битгита такая?

     
     
  • 2.9, Аноним (-), 13:12, 30/05/2015 [^] [ответить]     [к модератору]  
  • +2 +/
    Пример из оригинала статьи git clone gittorrent 81e24205d4bac8496d3e13282c90e... весь текст скрыт [показать]
     
  • 2.10, Crazy Alex (ok), 13:45, 30/05/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    Даже если никак - это всё равно интересная возможость
     
  • 2.14, bav (ok), 15:21, 30/05/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    Это ты дурак. Синкаются object-файлы. Они не меняются.
     
     
  • 3.25, Какаянахренразница (ok), 20:24, 30/05/2015 [^] [ответить]    [к модератору]  
  • +4 +/
    > Это ты дурак. Синкаются object-файлы. Они не меняются.

    Понятно. Спасибо.

     
  • 2.33, Anono (?), 01:52, 31/05/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    Версионный срез не меняется
     
  • 1.5, Аноним (-), 12:00, 30/05/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +10 +/
    One Git Per Child
     
     
  • 2.8, Аноним (-), 13:11, 30/05/2015 [^] [ответить]    [к модератору]  
  • +6 +/
    One GitHub Per Child
     
  • 1.6, Аноним (-), 12:15, 30/05/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Бред какой-то, седня точно не первое апреля?
     
  • 1.12, Аноним (-), 14:33, 30/05/2015 [ответить] [показать ветку] [···]     [к модератору]  
  • +1 +/
    Интересная идея В любом случае хуже от этого не будет Единственный минус это а... весь текст скрыт [показать]
     
  • 1.13, iZEN (ok), 14:42, 30/05/2015 [ответить] [показать ветку] [···]     [к модератору]  
  • –4 +/
    Слабость Git на базовом уровне в том, что он не только сложный в применении, но ... весь текст скрыт [показать]
     
     
  • 2.16, bav (ok), 15:23, 30/05/2015 [^] [ответить]     [к модератору]  
  • +/
    Тем не менее ртуть все сильнее разлагается и пахнет ... весь текст скрыт [показать]
     
  • 2.18, Аноним (-), 15:34, 30/05/2015 [^] [ответить]    [к модератору]  
  • +10 +/
    > Слабость Git на базовом уровне в том, что он не только сложный в применении

    iZen ниасилил

     
  • 2.19, Аноним (-), 15:42, 30/05/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    И часто у тебя связь рвется?
     
     
  • 3.26, Аноним (-), 21:36, 30/05/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    Не, этот аргумент не катит. Неосиляторство — это, конечно, глупость, но считать само собой разумеющейся бесперебойную связь — глупость даже бо́льшая.
     
     
  • 4.31, Аноним (-), 01:39, 31/05/2015 [^] [ответить]    [к модератору]  
  • +/
    Ты понимаешь о каком объеме трафика идет речь, чтобы заморачиваться на докачку?
     
     
  • 5.74, iZEN (ok), 22:08, 01/06/2015 [^] [ответить]     [к модератору]  
  • –2 +/
    Примерно 5 ГБ занимает скачанный на ZFS с включенным сжатием LZ4 объём локальног... весь текст скрыт [показать]
     
     
  • 6.75, Andrey Mitrofanov (?), 22:21, 01/06/2015 [^] [ответить]     [к модератору]  
  • +1 +/
    CODE REPO SIZE REPO SIZE 613M git 2,7G... весь текст скрыт [показать]
     
  • 6.76, Andrey Mitrofanov (?), 22:25, 01/06/2015 [^] [ответить]     [к модератору]  
  • +1 +/
    И кстати, Великий Космос внял твоим мольбам о докачке теперь для тебя есть git ... весь текст скрыт [показать]
     
  • 4.39, Аноним (-), 05:44, 31/05/2015 [^] [ответить]     [к модератору]  
  • +/
    Скачать большой проект 1 раз в жизни можно и на нормальном канале А докачивать ... весь текст скрыт [показать]
     
     
  • 5.51, Crazy Alex (ok), 13:18, 31/05/2015 [^] [ответить]     [к модератору]  
  • +/
    И скачать может быть проблематично вопрос - где именно вас застала нужда что-то... весь текст скрыт [показать]
     
     
  • 6.59, Аноним (-), 19:39, 31/05/2015 [^] [ответить]    [к модератору]  
  • +/
    Качать первый раз через rsync?
     
     
  • 7.60, user (??), 21:49, 31/05/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    тарбол с добавленым .git
     
  • 6.61, arisu (ok), 23:47, 31/05/2015 [^] [ответить]    [к модератору]  
  • +/
    бинари. в гит. этот «проект» надо закопать вместе с разработчиками, неоперабельно.

    p.s. имел в виду «часто меняющиеся бинари», натюрлих.

     
     
  • 7.78, Crazy Alex (ok), 23:26, 01/06/2015 [^] [ответить]     [к модератору]  
  • +/
    Что-нибудь вроде специфических шкур под заказчика - ещё и как ложится в репу - к... весь текст скрыт [показать]
     
  • 6.67, Аноним (-), 15:14, 01/06/2015 [^] [ответить]     [к модератору]  
  • +2 +/
    Ну, понимаешь, качать какой-нить линуксный кернель целиком по GPRS - займет уйму... весь текст скрыт [показать]
     
     
  • 7.79, Crazy Alex (ok), 23:42, 01/06/2015 [^] [ответить]     [к модератору]  
  • +/
    Да хрен с ней, с дельтой Хотя бы для полного clone сделали костыль - решилось б... весь текст скрыт [показать]
     
  • 2.32, Аноним (-), 01:41, 31/05/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    у iZen хобби позориться?
     
     
  • 3.40, Аноним (-), 05:45, 31/05/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    > у iZen хобби позориться?

    Ну да. Если не веришь - посмотри в его профайл и загугли. А что еще ожидать от "типа, фирбздшника" который на работе восьмерку использует? ;)

     
     
  • 4.54, Аноним (-), 14:18, 31/05/2015 [^] [ответить]     [к модератору]  
  • –2 +/
    ИМХА, он уже много лет оччень неплохо так троллит и ловит лулзы с очередных д Ар... весь текст скрыт [показать]
     
     
  • 5.56, chinarulezzz (ok), 18:12, 31/05/2015 [^] [ответить]    [к модератору]  
  • +3 +/
    Изя, залогинься)
     
  • 5.62, arisu (ok), 23:48, 31/05/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    > ИМХА, он уже много лет оччень неплохо так троллит и ловит лулзы
    > с очередных д'Артаньянов ;)

    увы, нет, не тролль он. а просто дурак.

     
  • 5.68, Аноним (-), 15:15, 01/06/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    > троллит

    Вы сделали несколько ошибок в слове "тормозит".


     
     ....нить скрыта, показать (22)

  • 1.21, Аноним (-), 17:07, 30/05/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Очень круто!
     
  • 1.28, anonymous (??), 23:13, 30/05/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Как уже достало неосиляторство. Всё уже давно есть: http://j16sdiz.github.io/egit-freenet/ При этом freenet приспособлен для гита замечательно, поскольку позволяет распространять связки ключ-блокданных, а приспосабливание торрента для этого - костыль, который обречён на провал, поскольку торрент нужен для выкачки целых архивов, а не одиночных файлов. Даже emule был бы лучше.
     
     
  • 2.29, Аноним (-), 00:28, 31/05/2015 [^] [ответить]     [к модератору]  
  • +1 +/
    Ты бы сам осилил осведомиться как о freenet, так и о сабже как следует Они вооб... весь текст скрыт [показать]
     
     
  • 3.34, anonymous (??), 02:40, 31/05/2015 [^] [ответить]     [к модератору]  
  • +/
    Давно есть безопасная распределённая сеть с key-value базой данных Давно уже пы... весь текст скрыт [показать]
     
     
  • 4.41, Аноним (-), 05:48, 31/05/2015 [^] [ответить]     [к модератору]  
  • +1 +/
    Имела жаба гадюку W пито W жабу-скрипта, во В смысле, вы серьезно полагаете... весь текст скрыт [показать]
     
     
  • 5.43, anonymous (??), 07:16, 31/05/2015 [^] [ответить]    [к модератору]  
  • –2 +/
    А вы посмотрите сколько jvm проектов на том же github. Думается мне, кто сам пишет на яве, не будет столь лицемерным, чтобы не пользоваться ею для синхронизации гита.
     
     
  • 6.44, arisu (ok), 07:51, 31/05/2015 [^] [ответить]     [к модератору]  
  • +/
    отличный ответ действительно, какая разница javascript или java ... весь текст скрыт [показать]
     
     
  • 7.53, Crazy Alex (ok), 13:21, 31/05/2015 [^] [ответить]    [к модератору]  
  • +/
    Он фринет имел в виду
     
     
  • 8.69, Аноним (-), 15:17, 01/06/2015 [^] [ответить]     [к модератору]  
  • +/
    Состояние фринета как бы намекает, насколько оно всем надо В результате все исп... весь текст скрыт [показать]
     
  • 5.52, Crazy Alex (ok), 13:21, 31/05/2015 [^] [ответить]    [к модератору]  
  • +/
    Если вы разрабатываете не на ноутбуке то 100 метров рантайма для программера - вообще не объём. Вопрос только чтобы не мешало текущей деятельности - но нода, вроде, довольно умеренна в этом плане, в отличие от JVM.
     
     
  • 6.70, Аноним (-), 15:19, 01/06/2015 [^] [ответить]     [к модератору]  
  • +/
    Вот только если на каждое крапваре вгружать по 100 метров дребедени, которая еще... весь текст скрыт [показать]
     
     
  • 7.80, Crazy Alex (ok), 23:49, 01/06/2015 [^] [ответить]    [к модератору]  
  • +/
    Я сам ни разу не фанат всего, что идёт мимо пакетного менеджера. Но вот самих рантаймов - число весьма ограниченное. Что там - перл, питон (2.7 по факту хватает), джава, нода. Ну руби ещё. не велика проблема хоть все поставить - по нынешним временам - в плане дискового пространства это абсолютные копейки.
     
  • 4.58, Dmitry77 (ok), 19:24, 31/05/2015 [^] [ответить]    [к модератору]  
  • +/
    > Давно есть безопасная распределённая сеть с key-value базой данных. Давно уже пытаются
    > через неё наладить работу распределённых систем контроля версий.
    > Но это же не популярно! Хоть технология старше некоторых посетителей этого сайта.
    > Надо на модном и молодёжном битторенте запилить вообще всё, что требует
    > p2p. Видимо потому что более стрёмного и небезопасного протокола найти не
    > смогли. А так бы на нём делали.

    А подробности можно?

     
     
  • 5.63, arisu (ok), 23:54, 31/05/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    > А подробности можно?

    зачем тебе подробности от профана? по его тексту видно, что он вообще ничего не понимает в том, о чём пытается Вещать.

     
  • 5.64, Аноним (-), 05:16, 01/06/2015 [^] [ответить]     [к модератору]  
  • +/
    Зачем вам всякие невзлетевшие сферические кони, которые только теоретически в 1... весь текст скрыт [показать]
     
  • 4.66, Аноним (-), 15:08, 01/06/2015 [^] [ответить]     [к модератору]  
  • +/
    fixed... весь текст скрыт [показать]
     
     ....нить скрыта, показать (14)

  • 1.57, Dmitry77 (ok), 18:57, 31/05/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Теперь патенты не страшны - даже если технология запатентована, опенсорсный проект можно развивать, никто не сможет закрыть
     
     
  • 2.71, Аноним (-), 15:21, 01/06/2015 [^] [ответить]     [к модератору]  
  • +/
    Только штатовские и еще некоторые разработчики для себя им пользоваться не смогу... весь текст скрыт [показать]
     
  • 2.72, Аноним (-), 17:06, 01/06/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    Кроме пиндосов и так никто не боится, такой бред как патенты на ПО существует только в самой свободно1 стране
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor