Skip to content

Add metadata parameter to application-message #448

@tim-mchale

Description

@tim-mchale

Problem
There is a need to be able to optionally append implementation-specific data to an application-message independent of the current businessProcessMessage payload.

Solution
Modifications to /hcs-sxc-java-proto/src/main/proto/Messages.proto

Add:

import "google/protobuf/any.proto"

Modify application-message to:

ApplicationMessageID applicationMessageId = 1;
    bytes businessProcessMessage = 2;  // the payload
    bytes unencryptedBusinessProcessMessageHash  = 3;
    bytes businessProcessSignatureOnHash  = 4;
    bytes encryptionRandom = 5;  // random number used for ivspec. it doubles as a flag to test if message is encrypted
    google.protobuf.Any metadata = 6; // container for extensibility and/or inclusion of filtering criteria
    bytes metadataHash = 7;
    bytes metadataSignatureOnHash = 8;
}

The additional metadataHash and metadataSignatureOnHash are included to support discretionary proof after the fact on metadata if included; this mechanism is identical to that which is currently implemented on businessProcessMessage.

Additional Context

  • This modification allows external references to be added to simplify correlation with external systems using their own identifiers.
  • In addition, data can be included to allow more granular filtering on a modified mirror-node to reduce message processing requirements on appnet participants subscribed to that mirror-node. This is of particular value if the businessProcessMessage is encrypted.
  • Care must be taken to avoid inclusion of any PII data inside the metadata parameter.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions