hashgraph / hashgraph/hedera-hcs-sxc-java

Add metadata parameter to application-message

Open
#448 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
20
Forks
9
PR merge metrics
No merged PRs in 30d

Description

**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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.