Основные концепции

AlexM
2 min readOct 14, 2021

--

Форматы кодирования

Буферы протоколов

В релизе Cosmos Stargate представлен protobuf в качестве основного формата кодирования, как для сериализации клиента, так и для сериализации состояния. Все типы модулей EVM, которые используются для состояния и клиентов (сообщения транзакций, генезис, службы запросов и т.д.), будут реализованы в виде сообщений буфера протокола.

Amino

Пакет SDK Cosmos также поддерживает устаревший формат кодирования Amino для обратной совместимости с предыдущими версиями, особенно для кодирования и подписи клиентов с помощью устройств бухгалтерской книги. Evmos не поддерживает Amino в модуле EVM, но он поддерживается для всех других модулей Cosmos SDK, которые его поддерживают.

RLP

Рекурсивный префикс длины (Recursive Length Prefix) — это алгоритм кодирования/декодирования, который сериализует сообщение и позволяет быстро восстанавливать закодированные данные. Evmos использует RLP для кодирования/декодирования сообщений Ethereum для обработки JSON-RPC, чтобы привести сообщения в соответствие с форматом Ethereum. Это позволяет кодировать и декодировать сообщения в том же формате, что и Ethereum.

Evmos vs Ethereum

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

Evmos, с этой стороны, спроектирован совершенно по-другому, поскольку нет понятия “ожидание”. Evmos использует BFT-консенсус, который обеспечивает мгновенное завершение транзакции. По этой причине Etheremint не требует механизма ожидания, так как все транзакций будут зафиксированы в следующем блоке (среднее время блокировки в цепочках Cosmos составляет ~8 секунд). Однако это вызывает несколько сбоев с точки зрения запросов, совместимых с Ethereum Web3, которые могут быть переведены в состояние ожидания.

Еще одно существенное отличие от Ethereum заключается в том, что блоки создаются валидаторами, которые включают транзакции из своего локального пула в блоки в порядке поступления. Таким образом транзакции на Evmos нельзя заказать или выбрать.

Спасибо за прочтение

При поддержке телеграмм-канала @HamsterTears

--

--

No responses yet