Peggo

Peggo — это Go-реализация оркестратора Gravity Bridge, изначально реализованная Injective Labs. Сам Peggo является форком оригинального оркестратора Gravity Bridge, реализованного Althea.

Установка

Для установки бинарного файла peggo:

$ make install

Как Запустить

Установка

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

$ umeed tx gravity set-orchestrator-address \\ {validatorAddress} \\ {orchestrator-address} \\ {ethAddress} \\ --eth-priv-key="..." \\ --chain-id="..." \\ --fees="..." \\ --keyring-backend=... \\ --keyring-dir=... \\ --from=...

Запуск Оркестратора

export PEGGO_ETH_PK={ethereum private key}

$ peggo orchestrator {gravityAddress} \\ --eth-rpc=$ETH_RPC \\ --relay-batches=true \\ --valset-relay-mode=minimum \\ --cosmos-chain-id=... \\ --cosmos-grpc="tcp://..." \\ --tendermint-rpc="http://..." \\ --cosmos-keyring=... \\ --cosmos-keyring-dir=... \\ --cosmos-from=...

Трансфер Из Umee В Ethereum

Это делается с помощью команды umeed txgravity send-to-eth, используйте флаг --help для получения дополнительной информации.

Если монета не имеет соответствующего эквивалента ERC20 в сети Ethereum, транзакция не будет выполнена. Это требуется только для монет, созданных Cosmos, и любой может вызвать функцию deployERC20 в контракте Gravity Bridge, чтобы исправить это (у Peggo есть вспомогательная команда для этого, см. peggo bridge deploy-erc20 --help для получения более подробной информации).

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

Важное замечание: если в Umee будет отправлен токен ERC20, не зарегистрированный в списке (без денежной стоимости), его будет невозможно передать обратно в Ethereum, если только валидатор не настроен для пакетной обработки и ретрансляции транзакций этого токена.

Трансфер Из Ethereum В Umee

Любой токен ERC20 можно отправить в Umee, и это делается с помощью команды peggo bridge send-to-cosmos, используйте флаг --help для получения дополнительной информации. Это также можно сделать, вызвав метод sendToCosmos в контракте Gravity Bridge.

Токены ERC20 будут заблокированы в контракте Gravity Bridge, а новые монеты будут чеканиться на Umee с номиналом gravity{token_address}. Этот процесс занимает около 3 минут или 12 блоков Ethereum.

Как Это Работает

Peggo позволяет передавать активы между Ethereum и Umee и обратно. Он поддерживает как активы, происходящие из Umee, так и активы, происходящие из Ethereum (любой токен ERC20).

Он работает, сканируя события контракта, развернутого на Ethereum (Gravity), и ретранслируя их в виде сообщений в блокчейн Umee, также ретранслируя пакеты транзакций и наборов валидаторов из Umee в Ethereum.

Наблюдаемые/ретранслируемые события и сообщения

Ethereum

Ввод (SendToCosmosEvent): выдаются при отправке токенов из Ethereum в Umee с помощью функции sendToCosmos в Gravity.

Вывод (TransactionBatchExecutedEvent): генерируется, когда пакет транзакций отправляется из Umee в Ethereum с использованием функции submitBatch в контракте Gravity Bridge валидатором. Это служит подтверждением для Umee, что пакет был успешно отправлен.

Обновление Списка Валидатороа (ValsetUpdatedEvent): генерируется при инициализации контракта Gravity Bridge и при каждом выполнении функции updateValset.

Развернутый ERC 20 (ERC20DeployedEvent): создается при выполнении функции deployERC20. Это событие сигнализирует Umee, что из Gravity развернут новый ERC20, поэтому Umee может сопоставить адрес контракта токена с соответствующей нативной монетой. Это позволяет осуществлять переводы из Umee в Ethereum.

Umee

Наборы валидаторов: Уми сообщает контракту Gravity Bridge, кто является текущими валидаторами и их полномочиями. Это приводит к выполнению функции updateValset.

Запрос пакета: Peggo проверит наличие новых транзакций в пуле исходящих транзакций и, если комиссия за транзакции превысит установленную минимальную комиссию за пакет, отправит Umee сообщение с запросом нового пакета.

Пакеты: Peggo запрашивает у Umee любые пакеты, готовые к ретрансляции, и передает их в Ethereum с помощью функции submitBatch в контракте Gravity Bridge.

Last updated