Диаграммы Peggo
Last updated
Last updated
Все основные циклы peggo будут иметь определенную диаграмму, связанную с ними
Все схемы сделаны с помощью mermaid
Можно редактировать в mermaid.live
EthOracleMainLoop
отвечает за то, чтобы события Ethereum извлекались из блокчейна Ethereum и переправлялись в Cosmos, где они будут использоваться для выпуска токенов или обработки пакетов.
Код этой диаграммы располагается в diagrams/loop_EthOracleMainLoop.mermaid
Этот цикл на самом деле означает, что peggo проверяет с помощью umee, есть ли какая-либо партия токенов, которую необходимо отправить в Ethereum (на самом деле она не отправляет эту партию), она просто запрашивает космос, чтобы эта партия была создана для соединения в другом цикле.
В этом цикле peggo просматривает BatchFees и использует эндпоинт запроса BatchFees для перебора отправленного в пул транзакций Eth для каждого типа токена. Ретранслятор может видеть цену на ERC20 токены на DEX и рассчитать стоимость газа для выполнения пакета (через eth_call()
), а также стоимость газа для ликвидации прибыли на dex, если это необходимо. Как только ретранслятор определяет, что пакет является хорошим и выгодным, он может отправить MsgRequestBatch
, и пакет будет создан для ретранслятора и готов для отправки.
MsgRequestBatch
— это сообщение, которое может отправить любой, которое запрашивает создание пакета транзакций для отправки через мост для любой высоты блока, в которую включено это сообщение. Это действует как точка координации, обработчик этого сообщения просматривает AddToOutgoingPool
транзакции в хранилище, генерирует пакет, привязывая к этому сообщению. Затем валидаторы захватывают этот пакет, подписывают его, отправляют подписи с помощью MsgConfirmBatch
, прежде чем ретранслятор сможет окончательно отправить пакет.
Код этой диаграммы располагается в diagrams/loop_BatchRequesterLoop.mermaid
EthSignerMainLoop
отвечает за то, чтобы пакеты транзакций и набор валидаторов были подписаны, подтверждены и отправлены в Cosmos, чтобы впоследствии их можно было ретранслировать и отправить в смарт-контракт Ethereum.
Код этой диаграммы располагается в diagrams/loop_EthSignerMainLoop.mermaid
RelayerMainLoop
отвечает за получение последней доступной версии набора валидаторов и обновление его в смарт-контракте ethereum, если это необходимо. Также получает все пакеты ожидающие транзакций и их подписи из Cosmos и отправляет их в Ethereum, если эта партия токенов прибыльна, еще не была отправлена другим узлом (проверка одноразового номера) и в настоящее время не находится в мемпуле Eth ноды.
Код этой диаграммы располагается в diagrams/loop_RelayerMainLoop.mermaid