You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Should we still support ServiceMsg TypeURLs in txs in v0.43?
Terminology
1. Msg TypeURL, e.g. "/cosmos.bank.v1beta1.MsgSend"
This is the TypeUrl of a proto message when packed inside an Any. For example: we can pack bank.MsgSend in an Any in txs. We then have any.TypeURL == "/cosmos.bank.v1beta1.MsgSend".
2. ServiceMsg TypeURL, e.g. "/cosmos.bank.v1beta1.Msg/Send"
This is the TypeUrl of an ADR-031 Msg Service method name. In ADR-031, we simulate packing a ServiceMsg in an Any. We then have any.TypeURL == "/cosmos.bank.v1beta1.Msg/Send"
Notice the ServiceMsg TypeURL has 2 / (it defines a service method fully-qualified name) whereas a Msg TypeURL only has one / (it defines a proto message name).
Problem Definition
The SDK currently (as of v0.42) supports txs with both ServiceMsg TypeURLs (routed via Baseapp's msg_service_router) and concrete Msg TypeURLs (routed via the legacy handler). ADR-031's vision was to slowly deprecate Msg TypeURLs.
However, #9063 made a point that ServiceMsg TypeUrls (terminology 2 above) are not protobuf compliant. #9139 was created to deprecate them (more specifically: Baseapp's msg_service_router routes messages using the concrete Msg TypeURLs instead of the ServiceMsg one)
Currently, ServiceMsg TypeURL are still supported, but deprecated, in case some explorers/clients are already using ServiceMsgs.
But should we support&deprecate ServiceMsg TypeURLs in v0.43, or completely remove them?
Summary
Should we still support
ServiceMsg
TypeURLs in txs in v0.43?Terminology
1.
Msg
TypeURL, e.g."/cosmos.bank.v1beta1.MsgSend"
This is the TypeUrl of a proto message when packed inside an Any. For example: we can pack
bank.MsgSend
in anAny
in txs. We then haveany.TypeURL == "/cosmos.bank.v1beta1.MsgSend"
.2.
ServiceMsg
TypeURL, e.g."/cosmos.bank.v1beta1.Msg/Send"
This is the TypeUrl of an ADR-031
Msg Service
method name. In ADR-031, we simulate packing aServiceMsg
in anAny
. We then haveany.TypeURL == "/cosmos.bank.v1beta1.Msg/Send"
Notice the
ServiceMsg
TypeURL has 2/
(it defines a service method fully-qualified name) whereas aMsg
TypeURL only has one/
(it defines a proto message name).Problem Definition
The SDK currently (as of v0.42) supports txs with both
ServiceMsg
TypeURLs (routed via Baseapp'smsg_service_router
) and concreteMsg
TypeURLs (routed via the legacy handler). ADR-031's vision was to slowly deprecateMsg
TypeURLs.However, #9063 made a point that
ServiceMsg
TypeUrls (terminology 2 above) are not protobuf compliant. #9139 was created to deprecate them (more specifically: Baseapp'smsg_service_router
routes messages using the concreteMsg
TypeURLs instead of theServiceMsg
one)Currently,
ServiceMsg
TypeURL are still supported, but deprecated, in case some explorers/clients are already usingServiceMsg
s.But should we support&deprecate
ServiceMsg
TypeURLs in v0.43, or completely remove them?ref: #9139 (review)
Proposal
Proposal 1: Completely remove
ServiceMsg
TypeURL support for v0.43.With documentation, changelog, clear communication etc.
Pros:
ServiceMsg
TypeURLs are not yet widely adopted, we can kill it before too many chains upgrade to v0.43.Cons:
Proposal 2: Keep
ServiceMsg
TypeURL support for v0.43, remove it later (e.g. v0.44).With deprecation notice.
Pros:
Cons:
ServiceMsg
TypeURLs.For Admin Use
The text was updated successfully, but these errors were encountered: