Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Консенсус в распределенных системах. Paxos

Анализ и проектирование систем *Алгоритмы *Параллельное программирование *Распределённые системы *
В последнее время в научных публикациях всё чаще упоминается алгоритм достижения консенсуса в распределенных системах под названием Paxos. Среди таких публикаций ряд работ сотрудников Google (Chubby, Megastore, Spanner) ранее уже частично освещенных на хабре, архитектуры систем WANdisco, Ceph и пр. В то же время, сам алгоритм Paxos считается сложным для понимания, хоть и основывается он на элементарных принципах.

В этой статье я постараюсь исправить эту ситуацию и рассказать об этом алгоритме понятным языком, как когда-то это попытался сделать автор алгоритма Лесли Лэмпорт.
читать далее
Всего голосов 29: ↑28 и ↓1 +27
Просмотры 35K
Комментарии 7

Реплицируемый объект. Часть 1: Введение

Программирование *C++ *Алгоритмы *Параллельное программирование *
Перевод
Предисловие. Данная публикация является авторским переводом собственной статьи. Поэтому если вы найдёте ошибку в переводе, то вполне может оказаться, что ошибка, на самом деле, в оригинальной статье.

Аннотация


  1. Есть страдание.
  2. Есть причина страдания.
  3. Есть прекращение страдания.
  4. Есть путь, ведущий к избавлению от страданий.

4 благородные истины буддизма

Настоящая статья содержит описание раннего прототипа, который вводит понятие реплицируемого объекта (replicated object) или сокращённо replob. Такой объект является дальнейшим переосмыслением борьбы со сложностью кода, возникающего при программировании распределённых систем. Replob устраняет зависимость от стороннего сервиса и реализует согласованное изменение любых пользовательских объектов, представляющих соответствующие данные и функциональность. Эта идея основана на использовании выразительности языка C++ и объектно-ориентированного подхода, что позволяет использовать сложную логику внутри распределённых транзакций. Это позволяет значительно упростить разработку отказоустойчивых приложений и сервисов. Последующие статьи будут более детально объяснять развиваемый подход.

Введение


ПРЕДУПРЕЖДЕНИЕ. Почти все методы, указанные в статье, содержат грязные хаки памяти и ненормальное использование языка C++. Так что, если вы не толерантны к таким извращениям, пожалуйста, не читайте эту статью.

На текущий момент, тематика, связанная с распределёнными системами, является одной из самых интересных, и привлекают большое количество людей, включая разработчиков и учёных. Популярность объясняется просто: мы должны создавать надежные отказоустойчивые системы, которые обеспечивают безопасную среду для выполнения различных операций и для хранения данных.
Читать дальше →
Всего голосов 17: ↑14 и ↓3 +11
Просмотры 16K
Комментарии 17

Как принять закон или обработка данных в распределённых системах понятным языком

Блог компании Cloud4Y IT-инфраструктура *Сетевые технологии *Хранение данных *Распределённые системы *
Перевод
Если ваша работа не связана с компьютерными технологиями, вы, вероятно, не думали долго о том, как хранятся данные на компьютерах или в облаке. Я говорю не о физических механизмах работы жёстких дисков или чипов памяти, а о чём-то одновременно более сложном и более понятном, чем вы думаете.

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



«Каких ещё островах?», — спросите вы?
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Просмотры 6.6K
Комментарии 11

Метод гарантирования доверия в блокчейнах

Информационная безопасность *Криптография *Платежные системы *
Из песочницы
Главной задачей для блокчейна в любой информационной системе является обеспечение доверия в среде, исключающей такое доверие по умолчанию. В качестве иллюстрации этой проблемы часто приводится задача о «византийских генералах». Не буду на ней подробно останавливаться, в Интернете найдется немало материалов. Вкратце, эта задача описывает процесс принятия решения в абсолютной анархической среде, где каждый за себя и никому не верит.
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 10K
Комментарии 68

Лекции по криптографии, блокчейну и вообще

Блог компании Emercoin
image

Привет Хабр! Вчера прошел пилотный выпуск стрима на нашем YouTube канале. Олег Ховайко, технический директор Эмеркоина читал лекцию “Основы криптографии”. Визуально не все было гладко, но мы будем стараться.

Это была первая лекция из цикла, предназначеного для IT-специалистов и преподавателей технических вузов. Цикл пройдет в виде интенсива — каждый день на этой неделе в 18:00 по Москве будет по лекции:
Читать дальше →
Всего голосов 20: ↑17 и ↓3 +14
Просмотры 14K
Комментарии 6

Алгоритм Пакcос. Понятная статья о консенсусе в распределенной системе

Программирование *Анализ и проектирование систем *Алгоритмы *Распределённые системы *
В данной статье мы разберем алгоритм консенсуса Паксос, обсудим зачем он нужен, почему работает, докажем его корректность и немного поговорим о проблемах практического применения. Во многом это вольный пересказ статьи Лесли Лампорта «Paxos Made Simple»

Зачем нужен распределенный консенсус и что это такое



Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Просмотры 15K
Комментарии 12

Переосмысление алгоритма консенсуса PoA – алгоритм PoG

Децентрализованные сети Криптография *Анализ и проектирование систем *Финансы в IT
Из песочницы
консенсус

Всем привет, меня зовут Константин, Я программист из Казахстана. Сейчас занимаюсь созданием собственной блокчейн платформы и хотел бы поделиться мыслями о существующих алгоритмах консенсуса и о том, что Я придумал для своей сети.
Читать дальше →
Всего голосов 23: ↑14 и ↓9 +5
Просмотры 4.3K
Комментарии 149

Достижимость нижней границы времени исполнения коммита распределенных отказоустойчивых транзакций

Высокая производительность *Анализ и проектирование систем *Алгоритмы *Параллельное программирование *Распределённые системы *

Предисловие


Недавно прочитал очередную статью из серии: "мы лучше двухфазного коммита". Здесь я не буду анализировать содержания этой статьи (хотя, подумываю о том, чтобы дать развернутый анализ). Задача моего опуса — предложить самый эффективный вариант распределенного коммита с точки зрения временных задержек. Конечно, такой коммит дается высокой ценой. Однако цель — дать оценку и показать, что двухфазный коммит не является тормозным, как многие считают.


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

Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 6.3K
Комментарии 7

«Википедия» стала более нейтральной, чем «Британника»

Краудсорсинг


Почему на «Хабрахабре» и Geektimes не любят статьи про политику? Не потому, что тема не интересна. Причина скорее в другом: комментарии к таким статьям превращаются в настоящий полигон для армий зомби, со взаимными оскорблениями и низким уровнем интеллектуальной дискуссии. Ведущие программисты и бизнес-аналитики внезапно опускаются до уровня уличных бабок, используя IT-сайт, чтобы выпустить пар.

Эта проблема не только XX/GT. Посмотрите, что творится в секциях комментариев на остальных сайтах, в том числе на Facebook и в других СМИ. Там настоящие серпентарии с непримиримыми спорами, нападками и обсценной лексикой. На этом фоне совершенно удивительно читать споры редакторов «Википедии» относительно правок к статьям даже на самые острые политические темы, вроде сексуальных оскорблений и расистских высказываний Трампа (обсуждение редакторов) или убийства Арсена [Мотороллы] Павлова (обсуждение редакторов). Словно попадаешь в другой мир академического спокойствия и научной корректности. Это прекрасно.
Читать дальше →
Всего голосов 38: ↑30 и ↓8 +22
Просмотры 15K
Комментарии 110

Механизмы достижения консенсуса в блокчейне

Блог компании Waves Финансы в IT Криптовалюты
Криптовалюты используют распределенные регистры или блокчейны для записи информации — в первую очередь, о балансе каждого адреса на платформах передачи ценности (например, Биткоина и большинства криптовалют), хотя такой подход может применяться к любой информации.

image

Ключевое условие — сеть должна коллективно согласовывать содержимое регистра: он распределен между всеми участниками цепочки вместо того, чтобы передать централизованное ведение счетов одному субъекту — например, банку.

Для этого сети требуется поддерживать консенсус вокруг информации, записанной в блокчейне. Способ достижения этого консенсуса влияет на безопасность и экономические параметры протокола. Вот пять примеров его достижения.
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 11K
Комментарии 7

Разбираемся в протоколе консенсуса Stellar

Децентрализованные сети Алгоритмы *Криптовалюты
Перевод


Протокол консенсуса Stellar впервые описан в научной статье Дэвида Мазьера в 2015 году. Это «федеративная система византийского соглашения», которая позволяет децентрализованным вычислительным сетям без лидеров эффективно достигать консенсуса по какому-либо решению. Платёжная сеть Stellar использует Stellar Consensus Protocol (SCP) для ведения согласованной истории транзакций, которую видят все участники.

Считается, что протоколы консенсуса трудны для понимания. SCP проще большинства из них, но всё же разделяет эту репутацию — отчасти из-за ошибочной идеи о том, что «федеративное голосование», которому посвящена первая половина научной статьи, является SCP. Но это не так! Это лишь важный строительный блок, который во второй половине статье используется для создания фактического протокола консенсуса Stellar.
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 8.2K
Комментарии 3

Случайные числа и децентрализованные сети: практическое применение

Децентрализованные сети Информационная безопасность *Криптография *

Введение


«Генерация случайных чисел слишком важна, чтобы оставлять её на волю случая»
Роберт Кавью, 1970


Эта статья посвящена практическому применению решений, использующих коллективную генерацию случайных чисел в недоверенной среде. Если кратко — как и для чего используется рандом в блокчейнах, и немного про то, как отличить “хороший” рандом от “плохого”. Генерация действительно случайного числа является крайне непростой проблемой даже на отдельном компьютере, и давно изучается криптографами. Ну а в децентрализованных сетях генерация случайных чисел еще более сложна и важна.


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

Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 3.8K
Комментарии 17

Консенсус — ложь

Платежные системы *Криптовалюты
Из песочницы

Многие знают что в блокчейне и системах на основе него одной из главнейших вещей является консенсус, договоренность машин и людей о чём либо по установленным правилам. Но… так ли это на самом деле? И не является ли это… обманом самого себя? В статье ниже мы в этом и разберёмся.


Для начала поймём а зачем вообще нужен консенсус и что это такое. Пусть у нас будет один банк и один вкладчик Николай, на счету которого числится 1000 рублей. Он отправляет письмо в банк с просьбой перевести все деньги на счёт своего друга Александра. И всё прекрасно — деньги списались с одного счета и записались на другой. В данном случае проблем никаких и нет, а новый владелец денег решил снять их в ту же минуту и всё хорошо.


Читать дальше →
Всего голосов 39: ↑33 и ↓6 +27
Просмотры 14K
Комментарии 27

Кот Шрёдингера без коробки: проблема консенсуса в распределённых системах

Блог компании Dodo Engineering Анализ и проектирование систем *Алгоритмы *Математика *Распределённые системы *
Итак, представим. В комнате заперты 5 котов, и чтобы пойти разбудить хозяина им необходимо всем вместе договориться между собой об этом, ведь дверь они могут открыть только впятером навалившись на неё. Если один из котов – кот Шрёдингера, а остальные коты не знают о его решении, возникает вопрос: «Как они могут это сделать?»

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


Читать дальше →
Всего голосов 47: ↑45 и ↓2 +43
Просмотры 19K
Комментарии 20

Оракулы приходят на помощь

Блог компании Waves Децентрализованные сети Криптовалюты
image

Блокчейн-оракулы решают проблему доставки в блокчейн информации из внешнего мира. Но нам важно знать, каким из них мы можем доверять.
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 1.7K
Комментарии 2

Как измерять производительность блокчейн сетей. Основные метрики

Децентрализованные сети Криптовалюты

image


Существует много метрик, относящихся к логике и качеству работы блокчейна. Они помогают определить узкие места в коде и найти логические и оптимизационные проблемы в алгоритмах консенсуса и финальности в блокчейнах. Любая разработка распределенных систем, в том числе блокчейнов, требует анализа работы сразу множества узлов. Они позволяют команде проекта следить за состоянием всей блокчейн-сети, видеть проблемы с отдельными нодами, детектировать появление DoS атак на сеть и многое другое. Давайте рассмотрим основные из них. Let’s dive in.

Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Просмотры 4.4K
Комментарии 0