FUPE основы

Приветствую всех читателей блога! Из сегодняшней статьи вы узнаете еще больше про FUPE основы. Продуктивного чтения!

Что такое FUPE?

FUPE = FU (Functional Unit) + PE (Processing Ellement)

Базовой причиной ввода FUPE является необходимость ограничить смарт-контракты по «необходимому и достаточному» функционалу для соблюдения различных tade-offs – компромисов целостности и эффективности всей системы.

FUPE будет замкнуто на специализированный функциональный язык программирования GOL. Узнать больше о языке GOL можно здесь.

Базовые блоки для FUPE будут отбираться особенно тщательно.  

Привычная модель контрактов на базе Ethereum EVM требует идеологического расширения при переходе к более сложным dApps (за пределами концепции Solidity).

Например, для запуска Android приложений используется Dalvik VM, которая является регистровой машиной. В то время как EVM является стековой машиной (для упрощения и безопасности – как задумывалось).

Поэтому если мы хотим сделать что-то вроде блокчейн-телефона [Sirin Labs], то мы должны перейти к регистровой машине. Но еще лучше, если новая VM будет поддерживать и стековую часть (EVM), и регистровую (Dalvik) путем кластеризации функционала.

Мы создали такую VM – GONT VM. GONT VM – виртуальная машина нового поколения! Она является базисным контейнером для всего FUPE функционала. 

Одновременно, GONT VM должна быть (и является) «поцикловым эквивалентом» для rtl (Verilog, VHDL) кода – для дальнейшей реализации в HW.

Гибридные языки контрактов:

Языков для написания контрактов существует много (помимо Solidity), и некоторые делают успехи. Например, проект NEO поддерживает контракты на .NET и заключил партнерство с Microsoft, что очень положительно сказывается на капитализации проекта.

AlGas и PIPE любой длины: 

При исполнении транзакции создается канал транзакции (TREVAL), который реализует функциональный Pipeline произвольной длины.

Pre-Exec и роутинг:

Концепция Pre-Exec дает способ реализовать динамическое создание канала исполнения транзакции.

Классификация FUPE:

  • Простые: Registers, ALU, FPU
  • Сложные: VES 

Типы данных:

GONT расширяет возможности обработки потоков данных. gVM ядра имеют интерфейс для работы с большими потоками данных, например видео. 

Например, для газа кодирования видео эта опция будет актуальной.

Требования к ядру gVM для реализации подхода AlGas:

  • Автоматическая сборка из мета информации (об инструкциях и регистрах).
  • Наличие как cycle accurate, так и fast model (почему не годится QEMU – отсутствие cycle accurate).
  • Наличие интерфейса для верификации относительно rtl кода (для будущей реализации в HW).

Примеры GONT ONTO «владений» (GONT assets):

  • Линия Морозевича в Chess

Мотивация: продвижение своих виртуальных владений в историю.

  • Рассеяние Клышко в физике (по имени первооткрывателя), а не просто спонтанное параметрическое рассеяние.

Мотивация: закрепить за первооткрывателем именной «актив».

Спасибо за внимание! До встречи.
GONT

Добавить комментарий