Распределенные пиринговые системы

Пиринговые (peer-to-peer), или одноранговые, сети представляют собой особый тип распределенных систем. Они состоят из отдельных компьютеров (также называемых узлами), вычислительные ресурсы которых (например, все средства обработки данных, емкость внешних накопителей, хранимые данные, пропускная способность сети и т. д.) напрямую доступны всем прочим узлам этой сети без какого-либо центрального пункта координации. Все узлы такой сети имеют равные права и одинаковые роли в системе. Более того, все они являются как поставщиками, так и потребителями ресурсов.

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

Объединение централизованных и распределенных систем

Централизованные и распределенные системы являются полными противоположностями с точки зрения архитектуры. Технические противоположности, казалось бы, не совместимые друг с другом, всегда вдохновляли инженеров на создание объединенных, гибридных систем, наследующих все сильные стороны своих предков. В этом плане централизованные и распределенные системы не являются исключением. Существуют два основных прототипа объединения противоположных архитектур, и их необходимо хорошо понимать, потому что сущность подобного объединения чрезвычайно важна для изучения функционирования блокчейн-приложений в реальном мире. Первый прототип – это центральное положение одного из узлов в распределенной системе, второй – распределенная система как управляющий узел централизованной системы.

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


Рис. 2.2 Прототипы объединения распределенной и централизованной архитектур


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

Описанные выше подходы объединяет затруднение при определении их истинной сущности. Эти системы являются распределенными или централизованными? Возможно, нет необходимости в однозначном определении названий таких архитектур. Здесь гораздо важнее понять их двойственную сущность, потому что далеко не всегда можно с легкостью увидеть признаки централизованности или распределенности в сложных системах. К этой теме я вернусь позже, при обсуждении способа коммерциализации технологии блокчейна.

Идентификация распределенных систем