Диаграммы Peggo

  • Все основные циклы peggo будут иметь определенную диаграмму, связанную с ними

  • Все схемы сделаны с помощью mermaid

  • Можно редактировать в mermaid.live

Петли

EthOracleMainLoop

  • EthOracleMainLoop отвечает за то, чтобы события Ethereum извлекались из блокчейна Ethereum и переправлялись в Cosmos, где они будут использоваться для выпуска токенов или обработки пакетов.

  • Код этой диаграммы располагается в diagrams/loop_EthOracleMainLoop.mermaid

BatchRequesterLoop

  • Этот цикл на самом деле означает, что peggo проверяет с помощью umee, есть ли какая-либо партия токенов, которую необходимо отправить в Ethereum (на самом деле она не отправляет эту партию), она просто запрашивает космос, чтобы эта партия была создана для соединения в другом цикле.

  • В этом цикле peggo просматривает BatchFees и использует эндпоинт запроса BatchFees для перебора отправленного в пул транзакций Eth для каждого типа токена. Ретранслятор может видеть цену на ERC20 токены на DEX и рассчитать стоимость газа для выполнения пакета (через eth_call()), а также стоимость газа для ликвидации прибыли на dex, если это необходимо. Как только ретранслятор определяет, что пакет является хорошим и выгодным, он может отправить MsgRequestBatch, и пакет будет создан для ретранслятора и готов для отправки.

  • MsgRequestBatch — это сообщение, которое может отправить любой, которое запрашивает создание пакета транзакций для отправки через мост для любой высоты блока, в которую включено это сообщение. Это действует как точка координации, обработчик этого сообщения просматривает AddToOutgoingPool транзакции в хранилище, генерирует пакет, привязывая к этому сообщению. Затем валидаторы захватывают этот пакет, подписывают его, отправляют подписи с помощью MsgConfirmBatch, прежде чем ретранслятор сможет окончательно отправить пакет.

Код этой диаграммы располагается в diagrams/loop_BatchRequesterLoop.mermaid

EthSignerMainLoop

  • EthSignerMainLoop отвечает за то, чтобы пакеты транзакций и набор валидаторов были подписаны, подтверждены и отправлены в Cosmos, чтобы впоследствии их можно было ретранслировать и отправить в смарт-контракт Ethereum.

  • Код этой диаграммы располагается в diagrams/loop_EthSignerMainLoop.mermaid

RelayerMainLoop

  • RelayerMainLoop отвечает за получение последней доступной версии набора валидаторов и обновление его в смарт-контракте ethereum, если это необходимо. Также получает все пакеты ожидающие транзакций и их подписи из Cosmos и отправляет их в Ethereum, если эта партия токенов прибыльна, еще не была отправлена ​​другим узлом (проверка одноразового номера) и в настоящее время не находится в мемпуле Eth ноды.

Код этой диаграммы располагается в diagrams/loop_RelayerMainLoop.mermaid

Last updated