Encapsulate Metadata as a Header Rather than Inlining Before Payload
Problem
Provide better encapsulation so that it is easier to add new message header fields in the future (Spoiler Alert: new header fields will be defined below
).
Proposal
Rather than an ETH wire message being MessageCode || Payload replace MessageCode with Header, where
Header is a list [ MessageCode || Metadata-0 || ... lt Metadata-N ]
Packet is [ Header || Payload ] where Payload conforms to the specification mandated for theMessageCode in the header.