Рубрика «децентрализованные сети» - 23

«Храм должен был быть вечным. Как сама глубина. А значит, не зависеть ни от одного сервера. Создающие Храм программы свободно блуждают по сети, их фрагменты дублируются, рекомбинируются, самостоятельно организуются для работы. Чтобы Храм исчез, надо уничтожить все машины в сети.»
«Фальшивые зеркала», 1999 год, за 2 года до появления протокола BitTorrent

Брэм Коэн: Я писал BitTorrent сидя в гостиной, безработный, в трусах - 1
Сегодня стукнуло 41 год Брэму Коэну, создателю протокола BitTorrent.

Интересные факты:

  • Коэн начал программировать в 10 лет.
  • Коэн признается, что неспособен работать в фиксированном графике, по часам, в компании, предъявляющей строгие требования к дресс-коду, и категорически не может выполнять бессмысленную и неинтересную работу.
  • Работал в компании «Evil Geniuses for a Better Tomorrow» и Работал в «Valve».
  • Для тестирования BitTorrent Брэм собрал немалую пачку порнухи, которую и раздавали туда-сюда.
  • Организатор конференции CodeCon.
  • Есть жена и трое детей.
  • Самый большой файл на раздаче — архив сайта geocities.com размером в 641 Гб.
  • За первые два года было более 20 млн. закачек клиента, сейчас от 100 до 250 млн. пользователей BitTorrent.
  • В 2008 в раздачах исполняемых файлов 18% были заражены.
  • В 2009 от 43% до 70% трафика в Интернет принадлежало Peer-to-peer сетям.
  • В 2009 более 14.5% BitTorrent загрузок содержало zero-day вредоносные программы и поэтому BitTorrent был механизмом дистрибуции 47% zero-day зловредов.
  • Технологией BitTorrent пользуются Facebook, Twitter, Internet Archive, Blizzard, World of Tanks, Eve Online, правительство Великобритании, научные исследования (BOINC), множество open source и free software проектов.

Читать полностью »

Интернет все плотнее входит в жизнь каждого из нас. Мы в Телфин это наблюдаем каждый день. Существует ли предел? Читайте наш перевод статьи «The bandwidth bottleneck that is throttling the Internet».

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

Проблема Интернета — в низкой пропускной способности - 1

19 июня вышла новая серия «Игры престолов». Сотни тысяч зрителей с территории США тут же запустили просмотр — и стрим-сервис канала HBO не справился с нагрузкой. Около 15 тысяч зрителей не могли получить доступ к серии в течение часа.

Администрация канала извинилась за непредвиденные неполадки и пообещала, что подобное больше не повторится. Однако дело в том, что этот случай — лишь одно из самых заметных проявлений надвигающейся проблемы. Объем трафика в Интернете растет на 22% каждый год, и такой спрос грозит превзойти возможности интернет-провайдеров.
Читать полностью »

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

Smart Contract & Gas

Если на пальцах, "умный контракт" — это некоторый код, живущий внутри блокчейна. Любой участник сети может его вызвать за небольшую плату. Эта плата и называется Gas, дословно "топливо". Зачем это нужно? Для защиты майнера от злоупотребления мошенником его ресурсов.

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

// Это псевдокод
foo = 0;
while (True) {
    foo++;
}

Понятно, что майнер, запустивший этот контракт, закончит нескоро и по факту просто потратит в никуда свои ресурсы. Вот чтобы такого не произошло, разработчики Ethereum и придумали газ — в реальности запускать код вроде того, что я написал, будет просто экономически нецелесообразно, потому что вызвавшему придется заплатить за каждое действие контракта.

Читать полностью »

В августе текущего года в архивах IETF появилось обсуждение способов решения проблемы обмена мета-информацией между автономными системами (AS) по методу RFC1997 BGP communities.

Дело в том, что интернет опять угрожает «кончиться», причём самым неожиданным образом — из-за «скелета в шкафу» или частного, но широкого, случая иллюстрирующего, насколько серьёзной может быть проблема технического долга, известная любому разработчику. Сначала мы наблюдали проблему исчерпания пула IPv4 адресов, в качестве решения которой был введён в эксплуатацию не на 100% функционирующий стандарт IPv6. Теперь на наших глазах назревает другая опухоль, связанная, однако, всё с той же сетевой маршрутизацией.

Написанное Йобом Шнайдерсом из компании NTT открытое письмо к IETF служит стартом общественного обсуждения проблемы, угрожающей вскоре стать критической. Дело в том, что основное удобство RFC1997 — 32-битность записи. Первые 16 бит принадлежат ASN, последние 16 несут в себе какое-то значение. Однако уже сейчас один из пяти операторов автономных систем в сети имеет 4-байтный ASN (RFC4893) (4 байта = 32 бита), что делает невозможным использование 16-битной записи (32-битное значение просто не влазит).

Примером Large BGP Community является: 2914:1299:40.

Мы обратились напрямую к Йобу Шнайдерсу за комментарием по данной проблеме.

Йоб Шнайдерс, NTT: «Large BGP Communities — решение проблемы роутинга между операторами AS» - 1
Йоб Шнайдерс, IP Development Engineer в NTT Communications, основатель NLNOG RING, вице-президент PeeringDB.
Читать полностью »

В своей статьях «интернет на магнитах» я предлагал публиковать универсальные магниты с помощью которых можно скачать файл из любой p2p сети (Gnutella, Gnutella2, Edonkey2000, DirectConnect, BitTorrent). Их можно получить, либо с помощью программы rhash, либо смешав разные магниты и ссылки на файл на странице сервиса Magnet Converter. Но есть проблема в том что не многие клиенты для p2p сетей лояльно относятся к произвольному порядку параметров в магните. Я решил написать скрипт который исправляет эту ситуацию на всех страницах интернета.

Интернет на магнитах 4 — Делим магнит на части - 1

Под катом вас ждёт JavaScript код с комментариями и тестовая ссылка.
Читать полностью »


Полная версия видео доступна в конце публикации и по ссылке

Это была лишь середина жаркого московского июля, который вот-вот подойдёт к концу. Договорившись с Александром о записи, мы все немного волновались — никогда ещё никто в Хабрахабре не пытался вести предметный диалог с известным техническим специалистом на видео. Не были мы оба уверены и в ходе диалога — в первую очередь потому что, оба Александры, мы никогда не встречались до этого лично. Тем не менее, наша небольшая съёмочная группа прибыла на место назначения, где-то между Беговой и Полежаевской.

Герой сегодняшнего рассказа и диалога родился в городе Ногинск Московской области. Как он рассказал нам, вся его семья по маминой линии из этого региона — на Клязьме деревня была еще несколько веков назад.

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

Ключевых отправных точек в жизни сегодняшнего героя было две. Первая – это когда в 10 лет он увидел «Роботрон-1820», немецкий компьютер: «Меня сильно удивило, что можно рисовать в телевизоре. Мне стало интересно, что это такое, как можно программировать, что такое операционная система. Так получилось, что семья у меня была не сильно богатая…».

Своего компьютера у Саши не было — он занимался в кружке программирования, в областном Дворце Пионеров. Ездил на Олимпиады по программированию, так же, как и по многим другим естественно-научным предметам.

Зато, хватается он, у одного из первых в городе появился модем — подарили старый-старый терминал DEC VT-220. Так он познакомился с миром сетей.

Второй такой wow-момент был, когда Александр понял, что может разговаривать с человеком, который находится вообще в другом полушарии. Это подвигло его к увлечению сетями – Х25, IP. Он стал сетевым инженером.Читать полностью »

Кровеносная система мирового интернета - 1
Инфографика TeleGeography

Google запускает рой воздушных шариков в стратосферу, а Facebook — армию беспилотников на солнечных батареях. Но это лишь маленькие игрушки гиков, которые мечтают покрыть связью всю планету. Их амбициозные сервисы станут крохотным дополнением к мощной базовой инфраструктуре Всемирной сети — разветвлённой сети наземных и подводных магистральных каналов. Вот где настоящая кровеносная система современной цивилизации. Именно здесь бьётся её пульс.

Крупнейшие хабы

На физическом уровне интернет представляет сеть хабов (точек обмена трафиком), связанных магистральными каналами. В точках обмена трафиком концентрируется не только трафик, но и сетевая инфраструктура (дата-центры, хостинг и т.д). Крупнейшие точки обмена находятся во Франкфурте, Амстердаме, Лондоне и Париже. В каком-то смысле эти города можно считать столицами мирового интернета. По крайней мере, точно крупнейшими сетевыми узлами, вместе с Нью-Йорком, который тоже входит в пятёрку основных хабов.

В списке крупнейших точек обмена трафиком в мире лидируют DE-CIX (пиковая пропускная способность 5178 Гбит/с), AMS-IX (4270 Гбит/с). Российская MSK-IX находится на 5-м месте (2135 Гбит/с).
Читать полностью »

Представьте, что у вас есть класс:

class MyCounter(object):
    def __init__(self):
        self.__counter = 0
    def incCounter(self):
        self.__counter += 1
    def getCounter(self):
        return self.__counter

И вы хотите сделать его распределённым. Просто наследуете его от SyncObj (передав ему список серверов, с которыми нужно синхронизироваться) и отмечаете декоратором @replicated все методы, которые изменяют внутреннее состояние класса:

class MyCounter(SyncObj):
    def __init__(self):
        super(MyCounter, self).__init__('serverA:4321', ['serverB:4321', 'serverC:4321'])
        self.__counter = 0
    @replicated
    def incCounter(self):
        self.__counter += 1
    def getCounter(self):
        return self.__counter

PySyncObj автоматически обеспечит репликацию вашего класса между серверами, отказоустойчивость (всё будет работать до тех пор, пока живо больше половины серверов), а также (при необходимости) асинхронный дамп содержимого на диск.
На базе PySyncObj можно строить различные распределенные системы, например распределенный мьютекс, децентрализованные базы данных, биллинговые системы и другие подобные штуки. Все те, где на первом месте стоит надёжность и отказоустойчивость.
Читать полностью »

День добрый комрады. Спустя некоторое время, как я устроился системным администратором, я стал сталкиваться с такой бедой задачей:

Специфичный юзкейс, решаемый в данной статье

Подходит сотрудник с просьбой восстановить файл который вчера/сегодня/только-что удалили, а сейчас он кровь-из-носу понадобился. При этом дату создания файла он не помнит, а дату последнего изменения и знать не знает, ибо с файлом в разное время могли работать множество разных сотрудников. И восстановить нужно, разумеется, последнюю версию.
Либо файл вчера/сегодня/только-что случайно и фатально отредактировали/перезаписали. И восстановить нужно, соответственно, предпоследнюю версию.

Итак, исходные данные:

  • Имя файла и его адрес: известны хотя бы примерно
  • Дата создания искомой версии файла: не известна
  • Бэкап ежедневный, инкрементальный или равный ему по ресурсоёмкости. Полный и разностный не используются ввиду ограниченности объёмов дискового пространства в хранилище/приемнике бэкапов.

Читать полностью »

image

Этот Dash'n'Drink будет лучше прежнего

Джереми Маус и Дастин Эвард, инвесторы Dash и первопроходцы, сделали торговый автомат по продаже газированных напитков, который принимает DASH. И в июле этого года на конференции d10e в Сан-Франциско состоится вторая долгожданная презентация их аппарата.

Маус пояснил, что в автомате будет обновлена аппаратная начинка и вместо Raspberry Pi будет установлен Odroid Xu4. По словам Мауса, автомат подготовят как раз к конференции d10e, и он будет запускаться в 4-5 раз быстрее.

Если кто-то не знает, задуманный ими аппарат Dash'n'Drink, который принимает DASH, в декабре 2015 был запущен как проект с открытым исходным кодом. Он финансировался в рамках встроенной системы децентрализованного самоуправления и самофинансирования Dash.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js