Background
We have had numerous issues submitting blobs through celestia node, related to sequences and timeouts. While the celestia node is aiming to improve this blob submission is key to the functioning or relayer and an unreliable dependency shouldn't be blocking us.
Solution
Update sequencer relayer to submit blobs directly to celestia-app (the cosmos sdk app of celestia). This will require that we manage our celestia keys locally. We can use cosmrs to sign transactions which are generated in protobuf form from celestias MsgPayForBlobs proto type. Transactions can be broadcast via grpc to celestia app (cosmos docs). They should be submitted as BROADCAST_SYNC and the txhash can then be used to do a poll using GetTx on the grpc client for tx submission.
Prior art of submission is written in go in celestia app: https://github.com/celestiaorg/celestia-app/blob/fd3c6dcb5b6c1386838b09ef886fab54054cb384/pkg/user/signer.go#L162
Background
We have had numerous issues submitting blobs through celestia node, related to sequences and timeouts. While the celestia node is aiming to improve this blob submission is key to the functioning or relayer and an unreliable dependency shouldn't be blocking us.
Solution
Update sequencer relayer to submit blobs directly to celestia-app (the cosmos sdk app of celestia). This will require that we manage our celestia keys locally. We can use cosmrs to sign transactions which are generated in protobuf form from celestias
MsgPayForBlobsproto type. Transactions can be broadcast via grpc to celestia app (cosmos docs). They should be submitted asBROADCAST_SYNCand the txhash can then be used to do a poll usingGetTxon the grpc client for tx submission.Prior art of submission is written in go in celestia app: https://github.com/celestiaorg/celestia-app/blob/fd3c6dcb5b6c1386838b09ef886fab54054cb384/pkg/user/signer.go#L162