I think that is similar to the suggestion to use the bitcoin chain itself as register.
Sure, except it happens in real-time.
You should add a packet length field to your message system.
Each frame header has a length field.
This allows older clients to ignore (or forward) any new packet types. It also allows clients to use non-standard packets.
For this I have frame version and type fields in the frame header, and message type in the message header... I don't think I need message length, because the frames should be reliably reassembled into messages, and the messages should be signed if their content is important. Am I still missing something?
Thanks,
Ryan