Полный обзор параллельных вычислений в Web3: лучшее решение для нативного масштабирования?
"Невозможный треугольник" блокчейна (Blockchain Trilemma) "безопасность", "децентрализация", "масштабируемость" раскрывает сущностные компромиссы в проектировании блокчейн-систем, а именно то, что блокчейн-проекты трудно одновременно достигнуть "максимальной безопасности, участия всех и высокой скорости обработки". В отношении "масштабируемости" этой вечной темы, текущие основные решения по масштабированию блокчейна на рынке различаются по парадигмам, включая:
Выполнение усовершенствованного расширения: повышение исполнительной способности на месте, например, параллельная обработка, GPU, многопоточность.
Изоляция состояния для масштабирования: горизонтальное разделение состояния / Shard, например, шардирование, UTXO, многоподсети
Внешняя масштабируемость через аутсорсинг: выполнение вне цепи, например, Rollup, Копрограммный процессор, DA
Декуплированное расширение структуры: модульная архитектура, совместная работа, например, модульные цепи, общий упорядочиватель, Rollup Mesh
Асинхронное параллельное масштабирование: модель актера, изоляция процессов, управление сообщениями, например, агенты, многопоточное асинхронное соединение
Решения по масштабированию блокчейна включают: параллельные вычисления внутри цепи, Rollup, шардирование, DA-модули, модульные структуры, системы Actor, сжатие zk-доказательств, безгосударственную архитектуру и т.д., охватывающие несколько уровней исполнения, состояния, данных и структуры, представляя собой "многослойную координацию и модульное сочетание" полную систему масштабирования. В данной статье основное внимание уделяется способом масштабирования, основанным на параллельных вычислениях.
Внутреннее параллельное вычисление (intra-chain parallelism), фокусируется на параллельном выполнении транзакций / инструкций внутри блока. По механизму параллелизма его методы масштабирования можно разделить на пять основных категорий, каждая из которых представляет собой различные стремления к производительности, модели разработки и архитектурную философию, постепенно уменьшая размеры параллельных задач, увеличивая интенсивность параллелизма, а также усложняя планирование, сложность программирования и степень реализации.
Уровень аккаунта параллельно (Account-level): представляет проект Solana
Объектный уровень параллелизма (Object-level): представляет проект Sui
Уровень транзакций (Transaction-level): представляет проект Monad, Aptos
Уровень вызова / Микро-ВМ параллельность (Call-level / MicroVM): представляет проект MegaETH
Уровень параллелизма инструкций (Instruction-level): представляет проект GatlingX
Внецепочечная асинхронная конкурентная модель, представленная системой умных агентов (Agent / Actor Model), относится к другой парадигме параллельных вычислений. В качестве системы межцепочечного/асинхронного обмена сообщениями (не синхронизированная модель блокчейна) каждый агент функционирует как независимый "умный процесс", работающий в параллельном режиме, асинхронно обрабатывающий сообщения и события без необходимости синхронного расписания. К таким проектам относятся AO, ICP, Cartesi и др.
Знакомые нам решения по масштабированию, такие как Rollup или шардирование, относятся к системным механизмам параллелизма, а не к параллельным вычислениям внутри цепочки. Они достигают масштабирования, «параллельно выполняя несколько цепочек / исполняющих сред», а не увеличивая параллелизм внутри одного блока / виртуальной машины. Данные решения по масштабированию не являются основной темой данной статьи, но мы все же будем использовать их для сравнительного анализа архитектурных концепций.
Два, Параллельная усовершенствованная цепь EVM: Прорыв в производительности в рамках совместимости
Архитектура последовательной обработки Ethereum за время своего развития прошла через множество попыток масштабирования, включая шarding, Rollup и модульные архитектуры, однако узкое место в пропускной способности исполнительного уровня все еще не было преодолено принципиально. Тем не менее, EVM и Solidity по-прежнему являются наиболее развитыми платформами смарт-контрактов с точки зрения разработчиков и экосистемного потенциала. Таким образом, параллельные цепи на основе EVM становятся ключевым направлением, которое учитывает совместимость экосистемы и повышение производительности. Monad и MegaETH являются наиболее представительными проектами в этом направлении, строя архитектуру параллельной обработки EVM для сценариев высокой степени параллелизма и высокой пропускной способности, начиная с задержанного выполнения и разложения состояния.
Анализ механизма параллельных вычислений Monad
Monad - это высокопроизводительная блокчейн-сеть Layer1, заново спроектированная для виртуальной машины Ethereum (EVM), основанная на основном принципе параллельной обработки (Pipelining), осуществляющая асинхронное выполнение на уровне консенсуса (Asynchronous Execution) и оптимистичное параллельное выполнение на уровне исполнения (Optimistic Parallel Execution). Кроме того, на уровнях консенсуса и хранения Monad соответственно внедряет высокопроизводительный BFT-протокол (MonadBFT) и специализированную систему баз данных (MonadDB), обеспечивая оптимизацию от конца до конца.
Пайплайнинг: Механизм параллельного выполнения многоступенчатого конвейера
Пайплайнинг — это основная концепция параллельного выполнения Monad, суть которой заключается в разделении процесса выполнения блокчейна на несколько независимых этапов и параллельной обработке этих этапов, что формирует многослойную архитектуру конвейера. Каждый этап выполняется в независимых потоках или ядрах, обеспечивая параллельную обработку между блоками, что в конечном итоге приводит к повышению пропускной способности и снижению задержек. Эти этапы включают: предложение транзакции (Propose), достижение консенсуса (Consensus), выполнение транзакции (Execution) и подтверждение блока (Commit).
Асинхронное выполнение: консенсус - асинхронное декомпозирование выполнения
В традиционных блокчейнах консенсус и выполнение транзакций обычно происходят в синхронном процессе, и эта последовательная модель серьезно ограничивает масштабируемость производительности. Monad реализует асинхронное выполнение, обеспечивая асинхронный уровень консенсуса, асинхронный уровень выполнения и асинхронное хранение. Это значительно снижает время блока и задержку подтверждения, делая систему более устойчивой, процесс обработки более детализированным и более эффективным использованием ресурсов.
Ядро дизайна:
Процесс консенсуса (уровень консенсуса) отвечает только за упорядочение транзакций, не выполняя логику контрактов.
Процесс исполнения (уровень исполнения) асинхронно запускается после завершения консенсуса.
После завершения консенсуса немедленно переходите к процессу консенсуса следующего блока, не дожидаясь завершения выполнения.
Оптимистичное Параллельное Выполнение:乐观并行执行
Традиционный Ethereum использует строгую последовательную модель для выполнения транзакций, чтобы избежать конфликтов состояния. В то время как Monad применяет стратегию "оптимистичного параллельного выполнения", что значительно повышает скорость обработки транзакций.
Исполнительный механизм:
Monad будет оптимистично выполнять все транзакции параллельно, предполагая, что между большинством транзакций нет конфликтов состояния.
Одновременно запускается "Детектор конфликтов (Conflict Detector))" для мониторинга того, обращаются ли транзакции к одному и тому же состоянию (например, конфликты чтения/записи).
Если обнаружен конфликт, конфликтные транзакции будут сериализованы и повторно выполнены, чтобы обеспечить корректность состояния.
Monad выбрал совместимый путь: минимально изменяя правила EVM, он реализует параллельность в процессе выполнения, откладывая запись состояния и динамически определяя конфликты, больше похож на производительную версию Ethereum, с хорошей зрелостью, что облегчает миграцию экосистемы EVM, являясь параллельным ускорителем мира EVM.
Анализ механизма параллельных вычислений MegaETH
В отличие от L1 позиционирования Monad, MegaETH позиционируется как модульный высокопроизводительный параллельный исполняющий слой, совместимый с EVM, который может использоваться как независимая L1 публичная цепочка, а также как слой улучшенного исполнения (Execution Layer) или модульный компонент на Ethereum. Его основная цель проектирования заключается в том, чтобы разделить логику аккаунта, исполняющую среду и состояние на независимые минимальные единицы, которые можно планировать отдельно, для достижения высокой параллельной обработки внутри цепочки и низкой задержки ответа. Ключевое новшество, предложенное MegaETH, заключается в архитектуре Micro-VM + State Dependency DAG (направленный ациклический граф зависимостей состояния) и модульном синхронном механизме, которые вместе создают параллельную исполнительную систему, ориентированную на "потоковую обработку внутри цепочки".
Архитектура Micro-VM (микровиртуальная машина): учетная запись как поток
MegaETH внедряет модель выполнения "микровиртуальной машины (Micro-VM) для каждого аккаунта", которая "потоковая" для среды выполнения, предоставляя минимальную единицу изоляции для параллельного планирования. Эти VM общаются друг с другом через асинхронные сообщения (Asynchronous Messaging), а не через синхронные вызовы, что позволяет множеству VM выполнять операции независимо и хранить данные независимо, обеспечивая естественную параллельность.
Зависимость состояния DAG: механизм планирования на основе графа зависимостей
MegaETH построила систему планирования DAG, основанную на доступе к состоянию аккаунтов, которая в реальном времени поддерживает глобальный граф зависимостей (Dependency Graph). Каждая транзакция моделирует, какие аккаунты изменяются и какие аккаунты читаются, все это представлено в виде зависимостей. Неконфликтующие транзакции могут выполняться параллельно, а транзакции с зависимостями будут планироваться и сортироваться по топологическому порядку последовательно или с задержкой. Граф зависимостей обеспечивает согласованность состояния и отсутствие повторных записей в процессе параллельного выполнения.
Асинхронное выполнение и механизм обратного вызова
MegaETH построен на основе парадигмы асинхронного программирования, аналогичной асинхронному обмену сообщениями в модели акторов, которая решает проблему традиционных последовательных вызовов EVM. Вызовы контракта являются асинхронными (нерекурсивное выполнение), и когда вызывается контракт A -> B -> C, каждый вызов является асинхронным без блокировки ожидания; Стек вызовов разворачивается в асинхронный граф вызовов; Обработка транзакций = обход асинхронного графа + разрешение зависимостей + параллельное планирование.
В общем, MegaETH разрушает традиционную модель однопоточной модели состояния EVM, реализуя микро-виртуальные машины на уровне аккаунтов, осуществляя планирование транзакций через граф состояния и заменяя синхронный стек вызовов асинхронным механизмом сообщений. Это платформа параллельных вычислений, которая была заново спроектирована по всем измерениям "структура аккаунта → архитектура планирования → процесс выполнения", предлагая новую парадигму для создания систем следующего поколения с высокой производительностью на цепочке.
MegaETH выбрал путь реконструкции: полностью абстрагировав счета и контракты в независимую VM, используя асинхронное выполнение для освобождения максимального потенциала параллелизма. Теоретически, параллельный предел MegaETH выше, но также труднее контролировать сложность, больше похож на супер распределенную операционную систему в духе Эфириума.
Дизайнерские концепции Monad и MegaETH значительно отличаются от шардирования (Sharding): шардирование делит блокчейн на несколько независимых подцепей (шардов), каждая из которых отвечает за часть транзакций и состояний, разрушая ограничения единой цепочки на уровне сети; в то время как Monad и MegaETH сохраняют целостность единой цепочки, только горизонтально расширяясь на уровне выполнения, оптимизируя производительность за счет предельного параллельного выполнения внутри единой цепочки. Оба представляют собой два направления в пути расширения блокчейна: вертикальное усиление и горизонтальное расширение.
Проекты параллельных вычислений, такие как Monad и MegaETH, сосредоточены на оптимизации пропускной способности, с основной целью повышения TPS в блокчейне, достигая параллельной обработки на уровне транзакций или аккаунтов с помощью отложенного выполнения (Deferred Execution) и архитектуры микровиртуальной машины (Micro-VM). Pharos Network, как модульная, полностековая параллельная сеть L1 блокчейна, использует механизм параллельных вычислений, известный как "Rollup Mesh". Эта архитектура поддерживает многовиртуальную среду (EVM и Wasm) через совместную работу основной сети и сети специальной обработки (SPNs) и интегрирует передовые технологии, такие как нулевое доказательство (ZK) и доверенная вычислительная среда (TEE).
Анализ механизма параллельных вычислений Rollup Mesh:
Полный жизненный цикл асинхронной конвейерной обработки (Full Lifecycle Asynchronous Pipelining): Pharos разъединяет различные этапы транзакции (такие как консенсус, выполнение, хранение) и использует асинхронный способ обработки, что позволяет каждому этапу выполняться независимо и параллельно, тем самым повышая общую эффективность обработки.
Параллельное выполнение двух виртуальных машин (Dual VM Parallel Execution): Pharos поддерживает две среды виртуальных машин: EVM и WASM, позволяя разработчикам выбирать подходящую среду выполнения в зависимости от требований. Эта архитектура с двумя виртуальными машинами не только повышает гибкость системы, но и увеличивает пропускную способность обработки транзакций за счет параллельного выполнения.
Специальные сети обработки (SPNs): SPNs являются ключевыми компонентами архитектуры Pharos, похожими на модульные подсети, специально предназначенные для обработки определенных типов задач или приложений. С помощью SPNs Pharos может реализовать динамическое распределение ресурсов и параллельную обработку задач, что дополнительно увеличивает масштабируемость и производительность системы.
Модульный консенсус и механизм повторной стейкинга (Modular Consensus & Restaking): Pharos вводит гибкий механизм консенсуса, поддерживающий различные модели консенсуса (такие как PBFT, PoS, PoA), а также через протокол повторной стейкинга (Rest
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
12 Лайков
Награда
12
8
Репост
Поделиться
комментарий
0/400
AirdropBuffet
· 08-01 11:54
Белые деньги потратили на аирдроп.
Посмотреть ОригиналОтветить0
TeaTimeTrader
· 08-01 05:18
Сложные задачи нужно решать медленно.
Посмотреть ОригиналОтветить0
SatoshiSherpa
· 07-31 06:56
Безопасность по-прежнему является приоритетом.
Посмотреть ОригиналОтветить0
CryptoDouble-O-Seven
· 07-31 04:04
Безопасность превыше всего
Посмотреть ОригиналОтветить0
BrokenDAO
· 07-31 03:59
Оптимизация более сильной цепи
Посмотреть ОригиналОтветить0
MetaverseVagabond
· 07-31 03:58
Увеличение пропускной способности — это правильное решение.
Посмотреть ОригиналОтветить0
BearHugger
· 07-31 03:56
Исполнительный уровень является ключевым моментом.
Web3 параллельные вычисления: новая парадигма, преодолевающая пределы производительности EVM
Полный обзор параллельных вычислений в Web3: лучшее решение для нативного масштабирования?
"Невозможный треугольник" блокчейна (Blockchain Trilemma) "безопасность", "децентрализация", "масштабируемость" раскрывает сущностные компромиссы в проектировании блокчейн-систем, а именно то, что блокчейн-проекты трудно одновременно достигнуть "максимальной безопасности, участия всех и высокой скорости обработки". В отношении "масштабируемости" этой вечной темы, текущие основные решения по масштабированию блокчейна на рынке различаются по парадигмам, включая:
Решения по масштабированию блокчейна включают: параллельные вычисления внутри цепи, Rollup, шардирование, DA-модули, модульные структуры, системы Actor, сжатие zk-доказательств, безгосударственную архитектуру и т.д., охватывающие несколько уровней исполнения, состояния, данных и структуры, представляя собой "многослойную координацию и модульное сочетание" полную систему масштабирования. В данной статье основное внимание уделяется способом масштабирования, основанным на параллельных вычислениях.
Внутреннее параллельное вычисление (intra-chain parallelism), фокусируется на параллельном выполнении транзакций / инструкций внутри блока. По механизму параллелизма его методы масштабирования можно разделить на пять основных категорий, каждая из которых представляет собой различные стремления к производительности, модели разработки и архитектурную философию, постепенно уменьшая размеры параллельных задач, увеличивая интенсивность параллелизма, а также усложняя планирование, сложность программирования и степень реализации.
Внецепочечная асинхронная конкурентная модель, представленная системой умных агентов (Agent / Actor Model), относится к другой парадигме параллельных вычислений. В качестве системы межцепочечного/асинхронного обмена сообщениями (не синхронизированная модель блокчейна) каждый агент функционирует как независимый "умный процесс", работающий в параллельном режиме, асинхронно обрабатывающий сообщения и события без необходимости синхронного расписания. К таким проектам относятся AO, ICP, Cartesi и др.
Знакомые нам решения по масштабированию, такие как Rollup или шардирование, относятся к системным механизмам параллелизма, а не к параллельным вычислениям внутри цепочки. Они достигают масштабирования, «параллельно выполняя несколько цепочек / исполняющих сред», а не увеличивая параллелизм внутри одного блока / виртуальной машины. Данные решения по масштабированию не являются основной темой данной статьи, но мы все же будем использовать их для сравнительного анализа архитектурных концепций.
Два, Параллельная усовершенствованная цепь EVM: Прорыв в производительности в рамках совместимости
Архитектура последовательной обработки Ethereum за время своего развития прошла через множество попыток масштабирования, включая шarding, Rollup и модульные архитектуры, однако узкое место в пропускной способности исполнительного уровня все еще не было преодолено принципиально. Тем не менее, EVM и Solidity по-прежнему являются наиболее развитыми платформами смарт-контрактов с точки зрения разработчиков и экосистемного потенциала. Таким образом, параллельные цепи на основе EVM становятся ключевым направлением, которое учитывает совместимость экосистемы и повышение производительности. Monad и MegaETH являются наиболее представительными проектами в этом направлении, строя архитектуру параллельной обработки EVM для сценариев высокой степени параллелизма и высокой пропускной способности, начиная с задержанного выполнения и разложения состояния.
Анализ механизма параллельных вычислений Monad
Monad - это высокопроизводительная блокчейн-сеть Layer1, заново спроектированная для виртуальной машины Ethereum (EVM), основанная на основном принципе параллельной обработки (Pipelining), осуществляющая асинхронное выполнение на уровне консенсуса (Asynchronous Execution) и оптимистичное параллельное выполнение на уровне исполнения (Optimistic Parallel Execution). Кроме того, на уровнях консенсуса и хранения Monad соответственно внедряет высокопроизводительный BFT-протокол (MonadBFT) и специализированную систему баз данных (MonadDB), обеспечивая оптимизацию от конца до конца.
Пайплайнинг: Механизм параллельного выполнения многоступенчатого конвейера
Пайплайнинг — это основная концепция параллельного выполнения Monad, суть которой заключается в разделении процесса выполнения блокчейна на несколько независимых этапов и параллельной обработке этих этапов, что формирует многослойную архитектуру конвейера. Каждый этап выполняется в независимых потоках или ядрах, обеспечивая параллельную обработку между блоками, что в конечном итоге приводит к повышению пропускной способности и снижению задержек. Эти этапы включают: предложение транзакции (Propose), достижение консенсуса (Consensus), выполнение транзакции (Execution) и подтверждение блока (Commit).
Асинхронное выполнение: консенсус - асинхронное декомпозирование выполнения
В традиционных блокчейнах консенсус и выполнение транзакций обычно происходят в синхронном процессе, и эта последовательная модель серьезно ограничивает масштабируемость производительности. Monad реализует асинхронное выполнение, обеспечивая асинхронный уровень консенсуса, асинхронный уровень выполнения и асинхронное хранение. Это значительно снижает время блока и задержку подтверждения, делая систему более устойчивой, процесс обработки более детализированным и более эффективным использованием ресурсов.
Ядро дизайна:
Оптимистичное Параллельное Выполнение:乐观并行执行
Традиционный Ethereum использует строгую последовательную модель для выполнения транзакций, чтобы избежать конфликтов состояния. В то время как Monad применяет стратегию "оптимистичного параллельного выполнения", что значительно повышает скорость обработки транзакций.
Исполнительный механизм:
Monad выбрал совместимый путь: минимально изменяя правила EVM, он реализует параллельность в процессе выполнения, откладывая запись состояния и динамически определяя конфликты, больше похож на производительную версию Ethereum, с хорошей зрелостью, что облегчает миграцию экосистемы EVM, являясь параллельным ускорителем мира EVM.
Анализ механизма параллельных вычислений MegaETH
В отличие от L1 позиционирования Monad, MegaETH позиционируется как модульный высокопроизводительный параллельный исполняющий слой, совместимый с EVM, который может использоваться как независимая L1 публичная цепочка, а также как слой улучшенного исполнения (Execution Layer) или модульный компонент на Ethereum. Его основная цель проектирования заключается в том, чтобы разделить логику аккаунта, исполняющую среду и состояние на независимые минимальные единицы, которые можно планировать отдельно, для достижения высокой параллельной обработки внутри цепочки и низкой задержки ответа. Ключевое новшество, предложенное MegaETH, заключается в архитектуре Micro-VM + State Dependency DAG (направленный ациклический граф зависимостей состояния) и модульном синхронном механизме, которые вместе создают параллельную исполнительную систему, ориентированную на "потоковую обработку внутри цепочки".
Архитектура Micro-VM (микровиртуальная машина): учетная запись как поток
MegaETH внедряет модель выполнения "микровиртуальной машины (Micro-VM) для каждого аккаунта", которая "потоковая" для среды выполнения, предоставляя минимальную единицу изоляции для параллельного планирования. Эти VM общаются друг с другом через асинхронные сообщения (Asynchronous Messaging), а не через синхронные вызовы, что позволяет множеству VM выполнять операции независимо и хранить данные независимо, обеспечивая естественную параллельность.
Зависимость состояния DAG: механизм планирования на основе графа зависимостей
MegaETH построила систему планирования DAG, основанную на доступе к состоянию аккаунтов, которая в реальном времени поддерживает глобальный граф зависимостей (Dependency Graph). Каждая транзакция моделирует, какие аккаунты изменяются и какие аккаунты читаются, все это представлено в виде зависимостей. Неконфликтующие транзакции могут выполняться параллельно, а транзакции с зависимостями будут планироваться и сортироваться по топологическому порядку последовательно или с задержкой. Граф зависимостей обеспечивает согласованность состояния и отсутствие повторных записей в процессе параллельного выполнения.
Асинхронное выполнение и механизм обратного вызова
MegaETH построен на основе парадигмы асинхронного программирования, аналогичной асинхронному обмену сообщениями в модели акторов, которая решает проблему традиционных последовательных вызовов EVM. Вызовы контракта являются асинхронными (нерекурсивное выполнение), и когда вызывается контракт A -> B -> C, каждый вызов является асинхронным без блокировки ожидания; Стек вызовов разворачивается в асинхронный граф вызовов; Обработка транзакций = обход асинхронного графа + разрешение зависимостей + параллельное планирование.
В общем, MegaETH разрушает традиционную модель однопоточной модели состояния EVM, реализуя микро-виртуальные машины на уровне аккаунтов, осуществляя планирование транзакций через граф состояния и заменяя синхронный стек вызовов асинхронным механизмом сообщений. Это платформа параллельных вычислений, которая была заново спроектирована по всем измерениям "структура аккаунта → архитектура планирования → процесс выполнения", предлагая новую парадигму для создания систем следующего поколения с высокой производительностью на цепочке.
MegaETH выбрал путь реконструкции: полностью абстрагировав счета и контракты в независимую VM, используя асинхронное выполнение для освобождения максимального потенциала параллелизма. Теоретически, параллельный предел MegaETH выше, но также труднее контролировать сложность, больше похож на супер распределенную операционную систему в духе Эфириума.
Дизайнерские концепции Monad и MegaETH значительно отличаются от шардирования (Sharding): шардирование делит блокчейн на несколько независимых подцепей (шардов), каждая из которых отвечает за часть транзакций и состояний, разрушая ограничения единой цепочки на уровне сети; в то время как Monad и MegaETH сохраняют целостность единой цепочки, только горизонтально расширяясь на уровне выполнения, оптимизируя производительность за счет предельного параллельного выполнения внутри единой цепочки. Оба представляют собой два направления в пути расширения блокчейна: вертикальное усиление и горизонтальное расширение.
Проекты параллельных вычислений, такие как Monad и MegaETH, сосредоточены на оптимизации пропускной способности, с основной целью повышения TPS в блокчейне, достигая параллельной обработки на уровне транзакций или аккаунтов с помощью отложенного выполнения (Deferred Execution) и архитектуры микровиртуальной машины (Micro-VM). Pharos Network, как модульная, полностековая параллельная сеть L1 блокчейна, использует механизм параллельных вычислений, известный как "Rollup Mesh". Эта архитектура поддерживает многовиртуальную среду (EVM и Wasm) через совместную работу основной сети и сети специальной обработки (SPNs) и интегрирует передовые технологии, такие как нулевое доказательство (ZK) и доверенная вычислительная среда (TEE).
Анализ механизма параллельных вычислений Rollup Mesh: