# Массивно паралельный массив процессоров второго слоя
###### uri: `did:l2:array`
###### short_name: `application processors array unit`
###### long_name: `Parallel processors array` `Application processors array`
###### tags: `Whitepaper` `Economic note` `Technical note`
## Анотация
Представляем вашему вниманию двигатель для организации комуникации сети независимых приложений, построенных по технологии распределнных реестров **(second layer distributed ledger technology, `L2.DLT`)[^L2_DLT]**, использующий набор массивно паралельных масивов виртуальных процессоров **(massively parallel processors array, `MPPA`)[^MPPA]** в качестве детерменированной среды выполнения функций приложений с ограниченным бюджетом на вычислительный ресурс, позволяет обеспечить любой функции любого приложения режим выполнения со сверх-низкой задержкой(**`ultra low latency processor runtime`** <=1мс). Это задает уникальные свойства приложениям L2:
* **`черезвычайная компактность`** - размер приложений ограничен бюджетом на вычислительный ресурс и не может составлять больше нескольких кб.
* **`доказуемая корректность`** - АТД и набор приложений по формальной верификации позволяют исключить наличие недокументированно функционала в любом приложении.
* **`невероятная эффективность`** - общая компактность системы позволяет отказатся от использования медленных типов памяти современных вычислительных устройств.
* **`абсолютная переносимость`** - приложения пригодны к выполнению на всех доступных пользователю вычислительных устройствах или платформах виртуализации(голое железо, операционные системы, браузеры, контейнеры приложений).
Протокол приложений второго слоя **(`second layer applications protocol, SLAP`)[^SLAP]** - это набор операций и интерфейс для конфигурации из этого набора стека операций экземпляров виртуальных процессоров. Набор таких процессоров объедененных в массив образует распределнный пользовательский узел **(`distributed user node, L2.App`)[^L2APP]**, обеспечивающий черезвычайную отказоустойчивость за счет использования `pBFT`[^PBFT] консенсуса для распределения массива на всех используемых пользователем вычислительных устройствах - от электронных часов, до мульти-процессорных серверов. Побочным эффектом, но важным с точки зрения пользовательского опыта выступает **доступность всех пользовательских приложений на всех доступных пользователю устройствах** вместе с актуальным наборам данных, используемых приложением без необходимости в применении сложных протоколов синхронизации.
Такой дизайн ориентирован на достижение сверх-низкой задержки при выполнение любой из функций любого доступного приложения на любом современном арифмитически-логическом устройстве(АЛУ)[^ALU]. Таким образом образуется абсолютно переносимая и детерменированная массивно паралельная среда выполнения пользовательских приложений, представляющая качественно новую альтернативу текущей экосистемы плохо интегрированных и невероятно грамоздких приложений, несущих в себе черезмерое количество избыточного кода.
Для сторонних разработчиков платформа представляет не только технологическую, но и **экономическую модель**, открывающую им эффективную бизнес-модель позволяющую не отвлекатся на решение задач не связанных непосредственно с разработкой приложений, а сконцентрироватся на создании, распространении и дальнейшем обновлении приложений - мы назвали эту модель **collective**(`did:l2:collective`). **Служебное приложение, реализующее эту модель позволяет автоматизировать трудоемкие процессы привлечения[^collective_funding_process] ресурсов для создания и распределения[^collective_spending_process] полученных в результате функционирования ресурсов между всеми участниками. Модель поддерживает масштабирование и может использоватся для сколь-угодно сложного программного обеспечения.** Эта модель обеспечивает консенсус интересов всех типов участников на всех этапах жизненного цикла приложения. Для лучшего понимания мы ввели три базовые роли, к которым в разной степени принадлежат все участники любого приложения: **потребители(`takers`), производители(`makers`) и брокеры(`brokers`)** степень участия участника в каждой группе опеределяет композитный индекс:
> Индекс пользователя для приложения:
> * доступный на узле брокера:
> **`did:l2:app_account_name:user_account_name:{taker|maker|broker}_index`**
> * доступный на узле пользователя:
> **`did:l2:app_account_name:{taker|maker|broker}_index`**)