Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pegasus rollout #4306

Closed
4 of 6 tasks
michaelfig opened this issue Jan 16, 2022 · 4 comments
Closed
4 of 6 tasks

Pegasus rollout #4306

michaelfig opened this issue Jan 16, 2022 · 4 comments
Assignees
Labels
enhancement New feature or request pegasus
Milestone

Comments

@michaelfig
Copy link
Member

michaelfig commented Jan 16, 2022

What is the Problem Being Solved?

We need to be able to roll out Pegasus in a principled manner, compatible with ibc-go's transfer implementation.

Description of the Design

Here are the proposed steps:

  • Rename Pegasus transfer port to pegasus
  • Rename cosmos-transfer ibc-go transfer port to just transfer.
  • Land Simplify Pegasus for POLA #3986
  • Have Pegasus blacklist creation of Pegs of tokens that come from vbank (they can already use ibc-go transfer)
  • Now we're ready for Mainnet 1.
  • If desirable, perform an upgrade that has Pegasus assimilate ibc-go transfer module's MsgTransfer implementation, channels and escrow accounts

Security Considerations

Improved security by restricting Pegasus not to conflict with ibc-go.

Test Plan

IBC transfer testing on devnet.

@dckc
Copy link
Member

dckc commented Feb 2, 2022

meanwhile, stay tuned to informalsystems/hermes#1801

@michaelfig
Copy link
Member Author

michaelfig commented Feb 4, 2022

I made progress! Soooo close!

With informalsystems/hermes#1840, I can get as far as:

command[0] E(home.ibcport[0]).connect('/ibc-hop/connection-0/ibc-port/transfer/unordered/ics20-1')
history[0] [Object Alleged: Connection]{}
command[1] E(history[0]).send('Mr. Watson, come here... I want to see you.')
history[1] unresolved Promise

Hermes doesn't detect newly-created EndBlock events, only ones that happened before Hermes started. So, I have to restart Hermes to get it to process the newly-sent events. Doing that, the IBC packets flow further, but don't make it from the relayer to the destination chain, fail without feedback to the sending chain with the following:

hermes_1  | 2022-02-04T05:31:14.799492Z ERROR ThreadId(06) send_tx_check{id=efgG3FunhX}:send_tx{id=cosmoshub-testnet}:estimate_gas: failed to simulate tx. propagating error to caller: gRPC call failed with status: status: InvalidArgument, message: "failed to execute message; message index: 1: receive packet callback failed: cannot unmarshal ICS-20 transfer packet data: invalid character 'M' looking for beginning of value: unknown request: invalid request", details: [], metadata: MetadataMap { headers: {"date": "Fri, 04 Feb 2022 05:31:14 GMT", "content-type": "application/grpc", "content-length": "0", "strict-transport-security": "max-age=15724800; includeSubDomains"} }

I know I sent an invalid packet (it was just 'Mr. Watson, come here... I want to see you.'), but I'd like to see an acknowledgement sent from the remote party that things are wrong, not just an eternal hang.

@michaelfig
Copy link
Member Author

informalsystems/hermes#1844 describes another Hermes blocker.

@Tartuffo Tartuffo removed the MN-1 label Feb 7, 2022
@Tartuffo
Copy link
Contributor

Same value stability pools will handle one token transferred over multiple paths.

@Tartuffo Tartuffo added this to the Mainnet 1 milestone Mar 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request pegasus
Projects
None yet
Development

No branches or pull requests

3 participants