penumbra-zone / penumbra

Penumbra is a fully private proof-of-stake network and decentralized exchange for the Cosmos ecosystem.
https://penumbra.zone
Apache License 2.0
363 stars 289 forks source link

Tracking issue: MVP IBC Relayer infrastructure #465

Closed hdevalence closed 1 year ago

hdevalence commented 2 years ago

Overview

In order to relay IBC packets into Penumbra, we need a way to include the packets in transactions (#464), but we also need software that relayers can run to actually create those transactions.

What does this entail? TBD: let's figure this out (cc: @jackzampolin)

Next steps

zbuc commented 1 year ago

Acceptance criteria: Relayer can execute a full chain of IBC actions, relayer code merged upstream & Strangelove responsible for maintenance

redshiftzero commented 1 year ago

Next step here is to use the go buf build process

conorsch commented 1 year ago

@avahowell Could you provide an update here about where things stand on the Relayer work?

conorsch commented 1 year ago

Update from sync today: still untangling gnarly protobuf build logic. Latest WIP PR is here: https://github.com/penumbra-zone/relayer/pull/2 @avahowell will continue to consult with SL folks and drive progress forward. See relevant discussion in https://discord.com/channels/824484045370818580/930154881040404480/1067611197970595932 Work will continue past shipping #1877.

conorsch commented 1 year ago

Based on discussion yesterday, we consider this blocked until #1867 is resolved.

conorsch commented 1 year ago

Moved to future column; we'll return to this in a few sprints.

conorsch commented 1 year ago

@avahowell For clarity's sake, could you update the OP on this ticket to make it into a epic, with cross-links to other (potentially blocking) issues related to IBC?

conorsch commented 1 year ago

Updated the OP with checkboxes to track related work. Took a first look at rebasing, and it worked surprisingly well. Currently encountering a problem related to our use of lens in our WIP branch; lens was just removed from the relayer dependencies last week, and the SL folks advise that we not re-add it as a dependency. I'll take a look at the chain implementation docs, and connect with SL for more pointers.

conorsch commented 1 year ago

Updated OP with #2123, since the good folks at SL are going to tackle the the golang codegen part on their next sprint.

avahowell commented 1 year ago

Current status:

Next steps:

erwanor commented 1 year ago

Good progress made this sprint, need sync'ing with SL tomorrow.

hdevalence commented 1 year ago

Updating the current state of play:

Depending on which chain is "first" in the path, there will be different sequences of messages sent to each chain. I noticed that the failures were happening on the remote testnet-preview chain, which wasn't printing logs in my terminal, so I used rly to make another path with the order reversed, and called it penumbra_path_rev.

The current status is this output:

`pd` log output ``` 2023-03-25T04:15:08.495767Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:check_stateful: key=b"sct/valid_anchors/29fba254df84ec4662435b6229f714a4b1211a3a359218460aaedf06b3a31212" key_hash=KeyHash("d71cd609df6d085c015be51083de4110f20a28fb7b063306cfd20178f6dd2cd1") 2023-03-25T04:15:08.495817Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:check_stateful: anchor is valid anchor=Root(29fba254df84ec4662435b6229f714a4b1211a3a359218460aaedf06b3a31212) anchor_height=867 2023-03-25T04:15:08.495818Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:check_stateless:valid_binding_signature: bvk=VerificationKey("0000000000000000000000000000000000000000000000000000000000000000") auth_hash=AuthHash("e34885efa7ceb636d89fb1bfe5109b7587cea0d2fdd777e5951246923139e42f") 2023-03-25T04:15:08.495828Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:check_stateful: key=b"fmd_parameters/previous" key_hash=KeyHash("e6f6c68e4d4435835f1a61aee15200b2833f7688ff36de0cdeb88d5efdb881b5") 2023-03-25T04:15:08.495907Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:check_stateful: key=b"fmd_parameters/current" key_hash=KeyHash("3a526e6eef60922309324f4621abf9d874aaf003981f8c7e6f7a27a367667379") 2023-03-25T04:15:08.495964Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:check_stateful: key=b"block_height" key_hash=KeyHash("c4b4e25a8824650a238d3451f754dcda1551dec8bec1a96abe23d2ff8b454db8") 2023-03-25T04:15:08.496122Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"clients/07-tendermint-1/consensusStates/0-1595" key_hash=KeyHash("387cad07110e7cb065665eb76581d2dbb05f8919312fc4663bb0b4655e2f86e1") 2023-03-25T04:15:08.496157Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: msg=MsgUpdateClient { client_id: ClientId("07-tendermint-1"), header: Any { type_url: "/ibc.lightclients.tendermint.v1.Header", value: [10, 204, 5, 10, 166, 3, 10, 2, 8, 11, 18, 31, 112, 101, 110, 117, 109, 98, 114, 97, 45, 116, 101, 115, 116, 110, 101, 116, 45, 99, 97, 114, 109, 101, 45, 48, 97, 101, 48, 102, 52, 97, 101, 24, 187, 12, 34, 12, 8, 197, 234, 249, 160, 6, 16, 230, 133, 219, 153, 3, 42, 72, 10, 32, 54, 109, 167, 169, 205, 185, 20, 51, 176, 84, 137, 124, 210, 65, 106, 28, 86, 13, 104, 226, 103, 246, 8, 65, 64, 158, 224, 4, 89, 154, 248, 45, 18, 36, 8, 1, 18, 32, 232, 83, 111, 66, 237, 80, 94, 253, 109, 45, 100, 187, 35, 111, 79, 18, 8, 246, 161, 115, 95, 36, 170, 206, 185, 111, 35, 78, 159, 192, 193, 30, 50, 32, 190, 147, 119, 187, 242, 20, 28, 51, 83, 220, 238, 200, 31, 87, 103, 131, 100, 128, 73, 54, 240, 179, 232, 126, 46, 244, 113, 12, 95, 51, 242, 132, 58, 32, 227, 176, 196, 66, 152, 252, 28, 20, 154, 251, 244, 200, 153, 111, 185, 36, 39, 174, 65, 228, 100, 155, 147, 76, 164, 149, 153, 27, 120, 82, 184, 85, 66, 32, 251, 229, 226, 182, 102, 35, 62, 238, 201, 0, 21, 24, 75, 110, 59, 136, 40, 75, 57, 222, 12, 36, 142, 10, 129, 109, 111, 209, 135, 128, 189, 126, 74, 32, 251, 229, 226, 182, 102, 35, 62, 238, 201, 0, 21, 24, 75, 110, 59, 136, 40, 75, 57, 222, 12, 36, 142, 10, 129, 109, 111, 209, 135, 128, 189, 126, 82, 32, 4, 128, 145, 188, 125, 220, 40, 63, 119, 191, 191, 145, 215, 60, 68, 218, 88, 195, 223, 138, 156, 188, 134, 116, 5, 216, 183, 243, 218, 173, 162, 47, 90, 32, 117, 75, 195, 171, 57, 114, 219, 27, 207, 140, 107, 221, 191, 252, 229, 199, 127, 207, 208, 165, 90, 181, 25, 9, 15, 142, 35, 195, 9, 28, 95, 90, 98, 32, 110, 52, 11, 156, 255, 179, 122, 152, 156, 165, 68, 230, 187, 120, 10, 44, 120, 144, 29, 63, 179, 55, 56, 118, 133, 17, 163, 6, 23, 175, 160, 29, 106, 32, 227, 176, 196, 66, 152, 252, 28, 20, 154, 251, 244, 200, 153, 111, 185, 36, 39, 174, 65, 228, 100, 155, 147, 76, 164, 149, 153, 27, 120, 82, 184, 85, 114, 20, 94, 165, 15, 222, 112, 231, 162, 96, 125, 14, 215, 214, 216, 79, 184, 209, 31, 78, 224, 251, 18, 160, 2, 8, 187, 12, 26, 72, 10, 32, 238, 225, 58, 122, 106, 29, 19, 160, 145, 44, 231, 185, 174, 178, 166, 215, 144, 11, 89, 195, 23, 220, 226, 115, 191, 238, 117, 90, 197, 79, 190, 179, 18, 36, 8, 1, 18, 32, 45, 23, 13, 168, 125, 72, 151, 1, 201, 131, 31, 175, 42, 124, 130, 138, 48, 13, 196, 96, 11, 126, 1, 37, 28, 38, 177, 219, 177, 229, 111, 5, 34, 104, 8, 2, 18, 20, 94, 165, 15, 222, 112, 231, 162, 96, 125, 14, 215, 214, 216, 79, 184, 209, 31, 78, 224, 251, 26, 12, 8, 203, 234, 249, 160, 6, 16, 211, 138, 183, 130, 1, 34, 64, 133, 123, 10, 221, 185, 226, 52, 251, 56, 56, 207, 7, 165, 9, 133, 48, 144, 78, 144, 203, 75, 52, 153, 210, 160, 216, 176, 43, 138, 54, 194, 170, 28, 207, 157, 99, 196, 112, 105, 32, 122, 222, 179, 62, 37, 238, 122, 133, 103, 121, 59, 193, 29, 17, 95, 79, 190, 253, 247, 69, 198, 98, 110, 7, 34, 103, 8, 2, 18, 20, 192, 71, 131, 1, 237, 63, 35, 76, 179, 14, 128, 182, 152, 90, 175, 126, 212, 201, 74, 55, 26, 11, 8, 203, 234, 249, 160, 6, 16, 179, 172, 171, 85, 34, 64, 231, 163, 109, 145, 6, 196, 51, 200, 107, 151, 59, 236, 163, 168, 91, 123, 26, 69, 20, 248, 240, 149, 203, 179, 33, 129, 203, 63, 227, 70, 49, 71, 174, 125, 138, 69, 158, 234, 33, 68, 176, 63, 229, 245, 75, 91, 71, 107, 215, 143, 155, 9, 122, 238, 95, 111, 145, 139, 241, 74, 225, 7, 187, 12, 18, 233, 1, 10, 75, 10, 20, 94, 165, 15, 222, 112, 231, 162, 96, 125, 14, 215, 214, 216, 79, 184, 209, 31, 78, 224, 251, 18, 34, 10, 32, 187, 102, 112, 34, 122, 101, 62, 134, 38, 110, 162, 133, 72, 57, 4, 39, 103, 141, 93, 240, 113, 58, 118, 206, 44, 226, 108, 188, 246, 100, 153, 41, 24, 158, 170, 242, 144, 93, 32, 226, 213, 141, 239, 162, 255, 255, 255, 255, 1, 10, 70, 10, 20, 192, 71, 131, 1, 237, 63, 35, 76, 179, 14, 128, 182, 152, 90, 175, 126, 212, 201, 74, 55, 18, 34, 10, 32, 106, 193, 189, 196, 225, 14, 66, 10, 35, 10, 92, 58, 150, 95, 40, 14, 94, 112, 237, 86, 44, 38, 178, 22, 39, 142, 132, 195, 12, 87, 224, 37, 24, 158, 170, 242, 144, 93, 32, 158, 170, 242, 144, 93, 18, 75, 10, 20, 94, 165, 15, 222, 112, 231, 162, 96, 125, 14, 215, 214, 216, 79, 184, 209, 31, 78, 224, 251, 18, 34, 10, 32, 187, 102, 112, 34, 122, 101, 62, 134, 38, 110, 162, 133, 72, 57, 4, 39, 103, 141, 93, 240, 113, 58, 118, 206, 44, 226, 108, 188, 246, 100, 153, 41, 24, 158, 170, 242, 144, 93, 32, 226, 213, 141, 239, 162, 255, 255, 255, 255, 1, 24, 188, 212, 228, 161, 186, 1, 26, 3, 16, 183, 12, 34, 205, 1, 10, 64, 10, 20, 94, 165, 15, 222, 112, 231, 162, 96, 125, 14, 215, 214, 216, 79, 184, 209, 31, 78, 224, 251, 18, 34, 10, 32, 187, 102, 112, 34, 122, 101, 62, 134, 38, 110, 162, 133, 72, 57, 4, 39, 103, 141, 93, 240, 113, 58, 118, 206, 44, 226, 108, 188, 246, 100, 153, 41, 24, 158, 170, 242, 144, 93, 10, 64, 10, 20, 192, 71, 131, 1, 237, 63, 35, 76, 179, 14, 128, 182, 152, 90, 175, 126, 212, 201, 74, 55, 18, 34, 10, 32, 106, 193, 189, 196, 225, 14, 66, 10, 35, 10, 92, 58, 150, 95, 40, 14, 94, 112, 237, 86, 44, 38, 178, 22, 39, 142, 132, 195, 12, 87, 224, 37, 24, 158, 170, 242, 144, 93, 18, 64, 10, 20, 192, 71, 131, 1, 237, 63, 35, 76, 179, 14, 128, 182, 152, 90, 175, 126, 212, 201, 74, 55, 18, 34, 10, 32, 106, 193, 189, 196, 225, 14, 66, 10, 35, 10, 92, 58, 150, 95, 40, 14, 94, 112, 237, 86, 44, 38, 178, 22, 39, 142, 132, 195, 12, 87, 224, 37, 24, 158, 170, 242, 144, 93, 24, 188, 212, 228, 161, 186, 1] }, signer: Signer("penumbrav2t17pjav3wkeqh3r2y3yg4hzhewk3wm847k9pw3ct") } 2023-03-25T04:15:08.540326Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"clients/07-tendermint-1/clientType" key_hash=KeyHash("50bd83110077195f5205c183fa2a2e307fda1dfc750823fb4da7b83c8233c351") 2023-03-25T04:15:08.540418Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"clients/07-tendermint-1/clientState" key_hash=KeyHash("b6ec07936f3f3d401065bbd7be3fd6fcd8d15fc30615e59f14b233c3d412a0bc") 2023-03-25T04:15:08.540504Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"clients/07-tendermint-1/consensusStates/0-1591" key_hash=KeyHash("1a5ccbdce7e392d131e233acd946715a57e1cc50c122054921feebee94f16ff7") 2023-03-25T04:15:08.540554Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"block_timestamp" key_hash=KeyHash("b6059f1c6391dc3d8e1b7aa6f33664355dfaa06358f9833d320da31c859356fb") 2023-03-25T04:15:08.540660Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"clients/07-tendermint-1/consensusStates/0-1591" key_hash=KeyHash("1a5ccbdce7e392d131e233acd946715a57e1cc50c122054921feebee94f16ff7") 2023-03-25T04:15:08.540702Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"block_timestamp" key_hash=KeyHash("b6059f1c6391dc3d8e1b7aa6f33664355dfaa06358f9833d320da31c859356fb") 2023-03-25T04:15:08.541213Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"clients/07-tendermint-1/clientState" key_hash=KeyHash("b6ec07936f3f3d401065bbd7be3fd6fcd8d15fc30615e59f14b233c3d412a0bc") 2023-03-25T04:15:08.541247Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"clients/07-tendermint-1/consensusStates/0-1595" key_hash=KeyHash("387cad07110e7cb065665eb76581d2dbb05f8919312fc4663bb0b4655e2f86e1") 2023-03-25T04:15:08.541282Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"penumbra_verified_heights/07-tendermint-1/verified_heights" key_hash=KeyHash("e61270196a89fc5ada5a796f5943f8b99580e90f3603ddd0eb96f8593c884401") 2023-03-25T04:15:08.541402Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"penumbra_verified_heights/07-tendermint-1/verified_heights" key_hash=KeyHash("e61270196a89fc5ada5a796f5943f8b99580e90f3603ddd0eb96f8593c884401") 2023-03-25T04:15:08.541428Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"clients/07-tendermint-1/consensusStates/0-73" key_hash=KeyHash("36cb4ddeec754f4ba3da903fb41491dc99bd971ef0ee72df7590cb69e9a803e5") 2023-03-25T04:15:08.541639Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"block_height" key_hash=KeyHash("c4b4e25a8824650a238d3451f754dcda1551dec8bec1a96abe23d2ff8b454db8") 2023-03-25T04:15:08.541675Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"block_timestamp" key_hash=KeyHash("b6059f1c6391dc3d8e1b7aa6f33664355dfaa06358f9833d320da31c859356fb") 2023-03-25T04:15:08.541709Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=0}:UpdateClient{client_id=07-tendermint-1}: key=b"penumbra_verified_heights/07-tendermint-1/verified_heights" key_hash=KeyHash("e61270196a89fc5ada5a796f5943f8b99580e90f3603ddd0eb96f8593c884401") 2023-03-25T04:15:08.541765Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=1}:ConnectionOpenAck{connection_id=connection-16}: msg=MsgConnectionOpenAck { conn_id_on_a: ConnectionId("connection-16"), conn_id_on_b: ConnectionId("connection-15"), client_state_of_a_on_b: Any { type_url: "/ibc.lightclients.tendermint.v1.ClientState", value: [10, 37, 112, 101, 110, 117, 109, 98, 114, 97, 45, 116, 101, 115, 116, 110, 101, 116, 45, 99, 97, 114, 109, 101, 45, 108, 111, 99, 97, 108, 45, 57, 57, 50, 56, 102, 54, 55, 52, 18, 4, 8, 1, 16, 3, 26, 3, 8, 160, 56, 34, 3, 8, 192, 112, 42, 3, 8, 216, 4, 50, 0, 58, 3, 16, 182, 12, 66, 39, 10, 21, 8, 1, 16, 1, 24, 1, 42, 13, 74, 77, 84, 58, 58, 76, 101, 97, 102, 78, 111, 100, 101, 18, 12, 10, 2, 0, 1, 16, 32, 24, 16, 32, 48, 48, 1, 24, 64, 66, 16, 10, 2, 8, 1, 18, 8, 10, 2, 0, 1, 16, 32, 48, 1, 24, 1, 74, 7, 117, 112, 103, 114, 97, 100, 101, 74, 16, 117, 112, 103, 114, 97, 100, 101, 100, 73, 66, 67, 83, 116, 97, 116, 101, 80, 1, 88, 1] }, proof_conn_end_on_b: CommitmentProof("0AE6060AE3060A19636F6E6E656374696F6E732F636F6E6E656374696F6E2D3135126D0A0F30372D74656E6465726D696E742D3112230A0131120D4F524445525F4F524445524544120F4F524445525F554E4F524445524544180222330A0F30372D74656E6465726D696E742D31120D636F6E6E656374696F6E2D31361A110A0F50656E756D627261417070486173681A150801100118012A0D4A4D543A3A4C6561664E6F64652234080112304A4D543A3A496E74726E616C4E6F646531747AD4766C825F18098D8670E99CAADBD863EA8809E65A3A568E63DBD4C5D02234080112304A4D543A3A496E74726E616C4E6F6465A00DD164485858AC5C6D40E677EA82F855813867670D5821D9357A0222FE900A2234080112304A4D543A3A496E74726E616C4E6F6465853FB6671CAE49F5B7D1FC60B8503D1AF83A17E7377496B80587C6A8F5CE04D12234080112304A4D543A3A496E74726E616C4E6F6465F09770ADC02CBCBC063F4EAA75CE8230C06832DC763978FBC7E9137C34DB9C6D2234080112304A4D543A3A496E74726E616C4E6F64654C2C13C9737019298F5E408726DA4AB04835EA802ACB7790946983850023478A2236080112104A4D543A3A496E74726E616C4E6F64651A200E7404D38C8BA2DB53FF423E6DDB85BAB6409D46D5818D11AEB449B49AF9D4272234080112304A4D543A3A496E74726E616C4E6F6465FD4871DE2C250F3CCB89FEBA022F5CA8034F5C5DBE212570B0A96A1633621DA02234080112304A4D543A3A496E74726E616C4E6F646537192F91E044A40B85A358FBAEE3520D4C0CA0571E1F2DDF5439E094E0844F012234080112304A4D543A3A496E74726E616C4E6F6465C7EA181F29162ABBF32F9A8FA7D63C2C242647773CB00E1A0344BCB37B01F86F2234080112304A4D543A3A496E74726E616C4E6F64659FA8F0E1BDB716ACF08034544B220D9EE5C94998B282AE55520A9FDA1BBACAEC2236080112104A4D543A3A496E74726E616C4E6F64651A2040879CFBEE9BFA87F98293019A3A1371D0F9E8E699E42E099E1ADE8175E23BF92234080112304A4D543A3A496E74726E616C4E6F6465A78B901F5A4C59A684D2F4AA455894C05464E058D7CD8CE123651D475F63F60A2234080112304A4D543A3A496E74726E616C4E6F64655741C5CAAE8D7B60CA412A3B68A12A65B1CCF788E57D77B2FEFFE6B2CC9B975F0A390A370A0F50656E756D6272614170704861736812206C3D63E0633C828FA253EC2ADC69133524E804AA675D89F722F8D8D6827BD5D11A020801"), proof_client_state_of_a_on_b: CommitmentProof("0A8B080A88080A23636C69656E74732F30372D74656E6465726D696E742D312F636C69656E74537461746512CD010A2B2F6962632E6C69676874636C69656E74732E74656E6465726D696E742E76312E436C69656E745374617465129D010A2570656E756D6272612D746573746E65742D6361726D652D6C6F63616C2D39393238663637341204080110031A0308A038220308C0702A0308D80432003A0310B60C42270A150801100118012A0D4A4D543A3A4C6561664E6F6465120C0A0200011020181020303001184042100A02080112080A0200011020300118014A07757067726164654A1075706772616465644942435374617465500158011A150801100118012A0D4A4D543A3A4C6561664E6F64652234080112304A4D543A3A496E74726E616C4E6F6465D866C4A2AE1280FB3E1ACBC241214537A954FF2432A5DB3F8D0ACCC59ED832752234080112304A4D543A3A496E74726E616C4E6F64655350415253455F4D45524B4C455F504C414345484F4C4445525F484153485F5F2236080112104A4D543A3A496E74726E616C4E6F64651A20C4D518CA274A59BF9B143F1DF89C24921B302A1E42EB9032E6EAB4B58269E4732234080112304A4D543A3A496E74726E616C4E6F646591A4AD114C1721B2F73D70E9F6343B8CB776A77F5B643CE70990B1CA0D2A7DBE2234080112304A4D543A3A496E74726E616C4E6F646564A18544C28665A968E32F3F31AC76CCAF1E7B859E80CD8C009CC7054924D6812234080112304A4D543A3A496E74726E616C4E6F6465D8CE26F80E9963EEE49C4424D207833A2265AC2D1D5EDAC35ED76016255D78FC2236080112104A4D543A3A496E74726E616C4E6F64651A209EC55B329DDAE748F98CFB0EBBCAEDE04EE3FD861A10740F23EB15BDC70AF65D2234080112304A4D543A3A496E74726E616C4E6F646527B819C5EBAD520AC0700A7F3310D3F1FCD912C5E865653363920D98D7F34FD42234080112304A4D543A3A496E74726E616C4E6F6465319A6FDB7BDCF87B6A54F2AA2FF71BE358B1EDE86507DD28CED263B8AC55FF462236080112104A4D543A3A496E74726E616C4E6F64651A203546FE27CD54C95E3492F9552DC539B6BE33979890087F55D49B0A036B804F002234080112304A4D543A3A496E74726E616C4E6F6465655AB1F0DD3C6F6B7E3FEEB5F63B0F86C73E3AB9695256010834DB63AC91FD9B2234080112304A4D543A3A496E74726E616C4E6F64653836103AC0DE68D9A6510B12464E56CE9AD5EB46B3A3D281A2B6F41F5C68919B2236080112104A4D543A3A496E74726E616C4E6F64651A20CB925A23B8FF9ACED5E0726BD4F42CC5731A7A11CC9208763E184BA1920096592234080112304A4D543A3A496E74726E616C4E6F64655741C5CAAE8D7B60CA412A3B68A12A65B1CCF788E57D77B2FEFFE6B2CC9B975F0A390A370A0F50656E756D6272614170704861736812206C3D63E0633C828FA253EC2ADC69133524E804AA675D89F722F8D8D6827BD5D11A020801"), proof_consensus_state_of_a_on_b: CommitmentProof("0AFD080AFA080A2E636C69656E74732F30372D74656E6465726D696E742D312F636F6E73656E7375735374617465732F302D313539301286010A2E2F6962632E6C69676874636C69656E74732E74656E6465726D696E742E76312E436F6E73656E737573537461746512540A0C08BBEAF9A0061090DBEBC70112220A20642C80CE8BB88755FD8DCF2278B6E5A98F6A74C81BDB5BA251011041A7D22F861A20F0DEDE9DDA98DFF7C679438AEDFF35DF60873BF3A64DA4EBD6B8FABAB6BEA7751A150801100118012A0D4A4D543A3A4C6561664E6F64652234080112304A4D543A3A496E74726E616C4E6F64652D63018E2E52BF355B362B35113A02D6E1DA90F9DBD34B43B8DE939B6B800A452236080112104A4D543A3A496E74726E616C4E6F64651A208190F9ED1A31F373244E817BF2926CE8026232FEE41D4EFB443BBC0168009C3F2234080112304A4D543A3A496E74726E616C4E6F64656C4130CE20C4D2363078369EC0AB04FA5346D8021D583BAFEC934342DCBBAD5A2236080112104A4D543A3A496E74726E616C4E6F64651A202DF32445625C9935A4260061123816BFF38590826D29C0CF45A3C2B80430EC032236080112104A4D543A3A496E74726E616C4E6F64651A205350415253455F4D45524B4C455F504C414345484F4C4445525F484153485F5F2236080112104A4D543A3A496E74726E616C4E6F64651A20B8BF4568AF3464A279E5672B2CE2C1F85C6A6DE9282EF63FA00BA3248072E3662236080112104A4D543A3A496E74726E616C4E6F64651A209AD5C4CF005A7AD796BE8A1E23C4F00BB8AF9DDA25528ED7200128C2AD360F932234080112304A4D543A3A496E74726E616C4E6F64651FF8A6004C3E3D62DACDCDCBC4C8B695F2CF3D661A8414AB2ED391B4892577162234080112304A4D543A3A496E74726E616C4E6F6465D1B87BC77B06EE4016699E64F93C2E7ED24020633850FD127138F5DC533C20462234080112304A4D543A3A496E74726E616C4E6F6465F482AE9289F95ABE5AD969D763527AD0FA265961347247F9A23D538F237B70202236080112104A4D543A3A496E74726E616C4E6F64651A2050EC566A5CCE27DC696833123D1CACEA610D8449BFA374E358E12555D9AB67DF2236080112104A4D543A3A496E74726E616C4E6F64651A2066E6FF8BDB840AC4ED5F7A8A29C86579DD7B42AEA9915BE30B140B157AA1738A2234080112304A4D543A3A496E74726E616C4E6F64651A7F06B80F1C740381E0969FFAD6A927290062803E3FBCF286A1DE2413A6CDBB2236080112104A4D543A3A496E74726E616C4E6F64651A203146D728B1103D25202792D943126383E8610FC9A59543EA0D2F5111F4CE3D0A2234080112304A4D543A3A496E74726E616C4E6F646536781D72772C48CF6B114E8458EBCD7949C19A56D85508613BFA10FCFA0643402236080112104A4D543A3A496E74726E616C4E6F64651A209DB15B4C43A2ED9ACF83B831C0AA114CBA99A45D5303602B0303C15F837B82F92236080112104A4D543A3A496E74726E616C4E6F64651A209B623B6BB48CE8B5E73707C13514B29FD6DA429B354664D0E92D7AF65A6A128C0A390A370A0F50656E756D6272614170704861736812206C3D63E0633C828FA253EC2ADC69133524E804AA675D89F722F8D8D6827BD5D11A020801"), proofs_height_on_b: Height { revision: 0, height: 1595 }, consensus_height_of_a_on_b: Height { revision: 0, height: 1590 }, version: Version { identifier: "1", features: ["ORDER_ORDERED", "ORDER_UNORDERED"] }, signer: Signer("penumbrav2t17pjav3wkeqh3r2y3yg4hzhewk3wm847k9pw3ct") } 2023-03-25T04:15:08.542100Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=1}:ConnectionOpenAck{connection_id=connection-16}: key=b"block_height" key_hash=KeyHash("c4b4e25a8824650a238d3451f754dcda1551dec8bec1a96abe23d2ff8b454db8") 2023-03-25T04:15:08.542129Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=1}:ConnectionOpenAck{connection_id=connection-16}: key=b"block_height" key_hash=KeyHash("c4b4e25a8824650a238d3451f754dcda1551dec8bec1a96abe23d2ff8b454db8") 2023-03-25T04:15:08.542155Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=1}:ConnectionOpenAck{connection_id=connection-16}: key=b"chain_params" key_hash=KeyHash("111493a3b144602d58199e6bc86ce9cd08f3bceebe0582f9c8d249c274480732") 2023-03-25T04:15:08.542203Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=1}:ConnectionOpenAck{connection_id=connection-16}: key=b"connections/connection-15" key_hash=KeyHash("deff77df56953e383db9b1acef92dee425e8c07f6e026661cc5c14b01e5b9cb3") 2023-03-25T04:15:08.542242Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=1}:ConnectionOpenAck{connection_id=connection-16}: trusted_client_state=ClientState { chain_id: ChainId { id: "penumbra-testnet-carme-0ae0f4ae", version: 0 }, trust_level: TrustThreshold { numerator: 1, denominator: 3 }, trusting_period: 7200s, unbonding_period: 14400s, max_clock_drift: 600s, latest_height: Height { revision: 0, height: 1595 }, proof_specs: ProofSpecs([ProofSpec(ProofSpec { leaf_spec: Some(LeafOp { hash: Sha256, prehash_key: Sha256, prehash_value: Sha256, length: NoPrefix, prefix: [74, 77, 84, 58, 58, 76, 101, 97, 102, 78, 111, 100, 101] }), inner_spec: Some(InnerSpec { child_order: [0, 1], child_size: 32, min_prefix_length: 16, max_prefix_length: 48, empty_child: [], hash: Sha256 }), max_depth: 64, min_depth: 0 }), ProofSpec(ProofSpec { leaf_spec: Some(LeafOp { hash: Sha256, prehash_key: NoHash, prehash_value: NoHash, length: NoPrefix, prefix: [] }), inner_spec: Some(InnerSpec { child_order: [0, 1], child_size: 32, min_prefix_length: 0, max_prefix_length: 0, empty_child: [], hash: Sha256 }), max_depth: 1, min_depth: 0 })]), upgrade_path: ["upgrade", "upgradedIBCState"], allow_update: AllowUpdate { after_expiry: true, after_misbehaviour: true }, frozen_height: None, verifier: PredicateVerifier { predicates: ProdPredicates, voting_power_calculator: ProvidedVotingPowerCalculator { _verifier: PhantomData }, commit_validator: ProdCommitValidator } } 2023-03-25T04:15:08.542270Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=1}:ConnectionOpenAck{connection_id=connection-16}: msg.proofs_height_on_b=Height { revision: 0, height: 1595 } 2023-03-25T04:15:08.542299Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=1}:ConnectionOpenAck{connection_id=connection-16}: counterparty_prefix=PenumbraAppHash 2023-03-25T04:15:08.542305Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=1}:ConnectionOpenAck{connection_id=connection-16}: msg.proof_conn_end_on_b=CommitmentProof("0AE6060AE3060A19636F6E6E656374696F6E732F636F6E6E656374696F6E2D3135126D0A0F30372D74656E6465726D696E742D3112230A0131120D4F524445525F4F524445524544120F4F524445525F554E4F524445524544180222330A0F30372D74656E6465726D696E742D31120D636F6E6E656374696F6E2D31361A110A0F50656E756D627261417070486173681A150801100118012A0D4A4D543A3A4C6561664E6F64652234080112304A4D543A3A496E74726E616C4E6F646531747AD4766C825F18098D8670E99CAADBD863EA8809E65A3A568E63DBD4C5D02234080112304A4D543A3A496E74726E616C4E6F6465A00DD164485858AC5C6D40E677EA82F855813867670D5821D9357A0222FE900A2234080112304A4D543A3A496E74726E616C4E6F6465853FB6671CAE49F5B7D1FC60B8503D1AF83A17E7377496B80587C6A8F5CE04D12234080112304A4D543A3A496E74726E616C4E6F6465F09770ADC02CBCBC063F4EAA75CE8230C06832DC763978FBC7E9137C34DB9C6D2234080112304A4D543A3A496E74726E616C4E6F64654C2C13C9737019298F5E408726DA4AB04835EA802ACB7790946983850023478A2236080112104A4D543A3A496E74726E616C4E6F64651A200E7404D38C8BA2DB53FF423E6DDB85BAB6409D46D5818D11AEB449B49AF9D4272234080112304A4D543A3A496E74726E616C4E6F6465FD4871DE2C250F3CCB89FEBA022F5CA8034F5C5DBE212570B0A96A1633621DA02234080112304A4D543A3A496E74726E616C4E6F646537192F91E044A40B85A358FBAEE3520D4C0CA0571E1F2DDF5439E094E0844F012234080112304A4D543A3A496E74726E616C4E6F6465C7EA181F29162ABBF32F9A8FA7D63C2C242647773CB00E1A0344BCB37B01F86F2234080112304A4D543A3A496E74726E616C4E6F64659FA8F0E1BDB716ACF08034544B220D9EE5C94998B282AE55520A9FDA1BBACAEC2236080112104A4D543A3A496E74726E616C4E6F64651A2040879CFBEE9BFA87F98293019A3A1371D0F9E8E699E42E099E1ADE8175E23BF92234080112304A4D543A3A496E74726E616C4E6F6465A78B901F5A4C59A684D2F4AA455894C05464E058D7CD8CE123651D475F63F60A2234080112304A4D543A3A496E74726E616C4E6F64655741C5CAAE8D7B60CA412A3B68A12A65B1CCF788E57D77B2FEFFE6B2CC9B975F0A390A370A0F50656E756D6272614170704861736812206C3D63E0633C828FA253EC2ADC69133524E804AA675D89F722F8D8D6827BD5D11A020801") 2023-03-25T04:15:08.542396Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=1}:ConnectionOpenAck{connection_id=connection-16}: trusted_consensus_state_root=CommitmentRoot("754BC3AB3972DB1BCF8C6BDDBFFCE5C77FCFD0A55AB519090F8E23C3091C5F5A") 2023-03-25T04:15:08.542402Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=1}:ConnectionOpenAck{connection_id=connection-16}: connection_path=ConnectionPath(ConnectionId("connection-15")) 2023-03-25T04:15:08.542453Z DEBUG abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}:execute:IbcAction{idx=1}:ConnectionOpenAck{connection_id=connection-16}: expected_conn=ConnectionEnd { state: TryOpen, client_id: ClientId("07-tendermint-1"), counterparty: Counterparty { client_id: ClientId("07-tendermint-1"), connection_id: Some(ConnectionId("connection-16")), prefix: PenumbraAppHash }, versions: [Version { identifier: "1", features: ["ORDER_ORDERED", "ORDER_UNORDERED"] }], delay_period: 0ns } 2023-03-25T04:15:08.542915Z INFO abci:CheckTx{kind=New txid="d22234fbef0d6d265a83c9b1fae86899366e42e4286291025f3cae909fab4878"}: tx rejected e=couldn't verify connection state Caused by: 0: ics23 verification failure error: `proof verification failed` 1: proof verification failed elapsed=47.21525ms ```

@avahowell suspects that changes to the ICS23 proof spec may be to blame, but I'm not sure I understand why (wouldn't those block earlier parts of the handshake?).

avahowell commented 1 year ago

We debugged this today and are now at the point where the relayer can successfully handshake between two chains. The previous issue was that we had a logic bug in both the connection and channel handshakes introduced after some underlying tendermint-rs changes.

The next step is to test the AcknowledgePacket, RecvPacket, and ICS-20 transfer parts of the state machine.

conorsch commented 1 year ago

We now have a relayer deployment, updated on every merge into main. Its only path is between the preview and testnet environments, and that path is destroyed and rebuilt on every deploy.

The logs on the service show a considerable number of warnings:

ts=2023-04-06T19:40:37.597175Z lvl=warn msg="Error querying block data" chain_name=penumbra-testnet chain_id=penumbra-testnet-pasiphae error="RPC error -32603 - Internal error: could not find results for height #117950"
ts=2023-04-06T19:42:02.639811Z lvl=warn msg="Error querying block data" chain_name=penumbra-testnet chain_id=penumbra-testnet-pasiphae error="RPC error -32603 - Internal error: could not find results for height #117965"
ts=2023-04-06T19:43:31.688064Z lvl=warn msg="Error querying block data" chain_name=penumbra-testnet chain_id=penumbra-testnet-pasiphae error="RPC error -32603 - Internal error: could not find results for height #117980"
ts=2023-04-06T19:45:11.745602Z lvl=warn msg="Error querying block data" chain_name=penumbra-testnet chain_id=penumbra-testnet-pasiphae error="RPC error -32603 - Internal error: could not find results for height #117997"
ts=2023-04-06T19:45:51.750684Z lvl=warn msg="Error querying block data" chain_name=penumbra-preview chain_id=penumbra-testnet-pasiphae-0305d87e error="RPC error -32603 - Internal error: could not find results for height #1620"
ts=2023-04-06T19:46:13.801224Z lvl=warn msg="Error querying block data" chain_name=penumbra-testnet chain_id=penumbra-testnet-pasiphae error="RPC error -32603 - Internal error: could not find results for height #118008"
ts=2023-04-06T19:47:27.814513Z lvl=warn msg="Error querying block data" chain_name=penumbra-preview chain_id=penumbra-testnet-pasiphae-0305d87e error="RPC error -32603 - Internal error: could not find results for height #1638"
ts=2023-04-06T19:47:59.831588Z lvl=warn msg="Error querying block data" chain_name=penumbra-preview chain_id=penumbra-testnet-pasiphae-0305d87e error="RPC error -32603 - Internal error: could not find results for height #1644"
ts=2023-04-06T19:48:15.838806Z lvl=warn msg="Error querying block data" chain_name=penumbra-preview chain_id=penumbra-testnet-pasiphae-0305d87e error="error unmarshalling: invalid character '<' looking for beginning of value"
ts=2023-04-06T19:51:38.966342Z lvl=warn msg="Error querying block data" chain_name=penumbra-preview chain_id=penumbra-testnet-pasiphae-0305d87e error="RPC error -32603 - Internal error: could not find results for height #1685"

There's also a preponderance of errors of a specific type:

❯ kubectl logs relayer-preview-55f668f9bd-rvpdh | rg 'lvl=error msg="Failed to check for misbehaviour"'  | wc -l
828

but the relayer docs say:

The relayer currently cannot monitor and submit misbehavior for clients

So that's to be expected.

conorsch commented 1 year ago

Calling this done. There's still a bit more testing to do in #2284 separately, but the plumbing exists for the relayer now. Further IBC work is tracked in #454.