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
Allow creating transaction data in a more flexible and clear way. Using functions/structs linked to an ID to describe each payload type and its contents.
Abstract
To address different message requirements and payload handling options, this proposes introduction of a programmable envelope to 'enclose' a message. The envelope type defines the payload options.
This achieves a flexible and efficient means of sending message payload without introducing unnecessary complexity through many optional fields that would require complex documentation and a lousy developer experience.
Without this, forward and backward compatibility is possible but requires complex test cases and carries greater risks of fields conflicting.
Motivation (*optional)
Different types of messages SHOULD be supported on Mailchain, including but not limited to:
I think a CSV in the repo is fine for now. Developers can create a pull request to suggest entries. Each envelope should have sufficient accompanying documentation.
Simple Summary
Allow creating transaction data in a more flexible and clear way. Using functions/structs linked to an ID to describe each payload type and its contents.
Abstract
To address different message requirements and payload handling options, this proposes introduction of a programmable envelope to 'enclose' a message. The envelope type defines the payload options.
This achieves a flexible and efficient means of sending message payload without introducing unnecessary complexity through many optional fields that would require complex documentation and a lousy developer experience.
Without this, forward and backward compatibility is possible but requires complex test cases and carries greater risks of fields conflicting.
Motivation (*optional)
Different types of messages SHOULD be supported on Mailchain, including but not limited to:
Specification
ID = 0x00
is reserved to identify unset valueID = 0xFF
and above is reserved to allow extensibility beyond 256 envelopes using the next byte to identify length.Valid() error
URL(decrypter cipher.Decrypter) (*url.URL, error)
IntegrityHash(decrypter cipher.Decrypter) ([]byte, error)
ContentsHash(decrypter cipher.Decrypter) ([]byte, error)
Rationale
See abstract
Backwards Compatibility
This will allow backwards and forwards compatibility as long as the first byte identifies its envelope type and the interface is implemented
Related MIP
The text was updated successfully, but these errors were encountered: