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
Our deterministic marshalling implementation enforces canonical marshalling for messages.
This is achieved because we generated that code with pulsar codegen.
But what happens when we import a message that was not generated with cosmos-proto?
How do we detect that the import is not generated with pulsar from marshal codegen, and then how do we marshal it in a canonical way without impacting performance much?
Use cases:
ORM will most likely save objects protobuf file descriptors into state using the google.Protobuf.FileDescriptor message.
So my proposed approach is to create a canonical marshaler in the cosmos-proto runtime that generated code will call on imported messages. Since the official marshaler is reflection based too, there should be a way to keep performance similar.
Our deterministic marshalling implementation enforces canonical marshalling for messages.
This is achieved because we generated that code with pulsar codegen.
But what happens when we import a message that was not generated with cosmos-proto?
Ex:
How do we detect that the import is not generated with pulsar from marshal codegen, and then how do we marshal it in a canonical way without impacting performance much?
Use cases:
google.Protobuf.FileDescriptor
message.NOTE:
We can enforce deterministic marshalling for imported objects, protobuf marshal options supports this, but there is no guarantee that that deterministic marshalling follows https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-027-deterministic-protobuf-serialization.md
The text was updated successfully, but these errors were encountered: