Class ManagedPartitionFingerprint
java.lang.Object
org.j7m.middleware.application.distributed.ManagedPartitionFingerprint
Exact immutable-program fingerprint for native group/WAL binding, not Byzantine attestation.
The host supplies the digest of its verified whole application artifact and immutable semantic
configuration. Peer rosters, local node IDs, directories and TLS secrets do not belong in that
semantic configuration. Backend code must remain immutable for the process lifetime. Different
program/schema/configuration is rejected; mixed-code reducer rolling upgrades are unsupported.
-
Method Summary
Modifier and TypeMethodDescriptionstatic Stringcompute(org.j7m.middleware.application.components.ManagedHostedResources.Bundle bundle, org.j7m.middleware.application.api.ManagedPartitionDefinition<?> definition, org.j7m.middleware.codec.api.SchemaRegistry schemas, String resourceScope, int maximumRequests) Hashes a trusted program's data contract and semantic profile without invoking its reducer.static StringgroupId(String base, String fingerprint, String partition, long initialEpoch, Set<String> originalVoters, int maximumFrameBytes, int maximumSnapshotBytes) Binds the portable program to immutable native bootstrap semantics before opening its WAL.
-
Method Details
-
compute
public static String compute(org.j7m.middleware.application.components.ManagedHostedResources.Bundle bundle, org.j7m.middleware.application.api.ManagedPartitionDefinition<?> definition, org.j7m.middleware.codec.api.SchemaRegistry schemas, String resourceScope, int maximumRequests) Hashes a trusted program's data contract and semantic profile without invoking its reducer. Backend module code is hashed once from local immutable deployment files, at most64MiB per code location and4096 class files for an exploded module. Metadata is capped at4MiB.- Parameters:
bundle- verified whole-artifact digest and semantic configurationdefinition- validated generated reducer definitionschemas- validated A01 data allowlistresourceScope- fixed authenticated scope for this isolated encoded statemaximumRequests- explicit bounded durable receipt capacity- Returns:
- lowercase SHA-256 program fingerprint, independent of local paths and peer membership
- Throws:
IllegalArgumentException- for invalid metadata, schema or deployment bounds
-
groupId
public static String groupId(String base, String fingerprint, String partition, long initialEpoch, Set<String> originalVoters, int maximumFrameBytes, int maximumSnapshotBytes) Binds the portable program to immutable native bootstrap semantics before opening its WAL. The original electorate is shared configuration, never the local node selection or current membership. Keep this seed unchanged after reconfiguration and restart. Endpoints, keys and directories are deliberately excluded. A different initial epoch denotes a different bootstrap.- Parameters:
base- trusted operator group name,1..48 ASCII identifier charactersfingerprint- locally computed portable program fingerprintpartition- exact stable partition identityinitialEpoch- original bootstrap epoch; zero for an initially inactive destinationoriginalVoters- immutable original bootstrap electorate,1..64 identitiesmaximumFrameBytes- original native frame boundmaximumSnapshotBytes- original native snapshot bound- Returns:
- native-compatible identity of at most113 characters
- Throws:
IllegalArgumentException- for malformed or inconsistent bootstrap configuration
-