Class ManagedPartitionFingerprint

java.lang.Object
org.j7m.middleware.application.distributed.ManagedPartitionFingerprint

public final class ManagedPartitionFingerprint extends Object
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 Type
    Method
    Description
    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.
    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.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 configuration
      definition - validated generated reducer definition
      schemas - validated A01 data allowlist
      resourceScope - fixed authenticated scope for this isolated encoded state
      maximumRequests - 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 characters
      fingerprint - locally computed portable program fingerprint
      partition - exact stable partition identity
      initialEpoch - original bootstrap epoch; zero for an initially inactive destination
      originalVoters - immutable original bootstrap electorate,1..64 identities
      maximumFrameBytes - original native frame bound
      maximumSnapshotBytes - original native snapshot bound
      Returns:
      native-compatible identity of at most113 characters
      Throws:
      IllegalArgumentException - for malformed or inconsistent bootstrap configuration