OverviewFilesCommitsIssuesDocsReleasesPeers

P2P-Hiverelay / packages / blind-protocol / hiverelay-blind-evidence-v1.draft.cenc

507 lines · cenc ref:
BlindArtifactFileInventoryV1�BlindArtifactFileInventoryV1��BlindArtifactFileInventoryV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  files:                      sorted array[1..65535] of {
                                componentId: u8, // 0 packaging, 1 edge, 2 daemon
                                path: canonical UTF-8 bytes[1..512],
                                mode: u16,
                                byteLength: u64,
                                contentHash: 32 bytes
                              }
}"BlindExecutableEntrypointCatalogV1�~"BlindExecutableEntrypointCatalogV1�TBlindExecutableEntrypointCatalogV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  launchTopologyHash:         32 bytes
  entries:                    ordered array[2..2] of {
                                componentId: u8,
                                componentArtifactHash: 32 bytes,
                                entrypointPath: canonical UTF-8 bytes[1..512],
                                entrypointContentHash: 32 bytes,
                                argvPrefix: ordered array[1..16] of canonical UTF-8 bytes[1..512]
                              }
}BlindLaunchTopologyV1�TBlindLaunchTopologyV1�7BlindLaunchTopologyV1 { // detached, release-signed
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  privateIpcFormatHash:       32 bytes
  privateIpcVectorSetHash:    32 bytes
  components:                 ordered array[2..2] of {
                                componentId: u8, // 1 BLIND_EDGE, 2 BLIND_DAEMON
                                componentArtifactHash: 32 bytes,
                                entrypointPath: canonical UTF-8 bytes[1..512],
                                entrypointContentHash: 32 bytes,
                                serviceUnitPath: canonical UTF-8 bytes[1..512],
                                serviceUnitContentHash: 32 bytes,
                                uid: u32, gid: u32,
                                readOnlyMounts: sorted array[0..32] of canonical UTF-8 bytes[1..512],
                                writableMounts: sorted array[0..8] of canonical UTF-8 bytes[1..512],
                                publicListenerFamilyBits: u8,
                                allowedChildEntrypointHashes: sorted array[0..8] of 32 bytes
                              }
  ipcUnarySocketPath:         canonical absolute UTF-8 bytes[1..512]
  ipcStreamSocketPath:        canonical absolute UTF-8 bytes[1..512]
  ipcOwnerUid:                u32
  ipcPeerUid:                 u32
  ipcGroupGid:                u32
  ipcMode:                    u16 = 0x01b0 // POSIX 0660
  launcherKind:               u8 // 1 OCI Compose, 2 systemd
  defaultCommand:             ordered array[1..32] of canonical UTF-8 bytes[1..512]
  initializers:               ordered array[1..1] of {
                                initializerId: u8,
                                componentArtifactHash: 32 bytes,
                                argv: ordered array[1..32] of canonical UTF-8 bytes[1..512],
                                uid: u32, gid: u32,
                                capabilityBits: u64,
                                networkDisabled: u8 = 1,
                                rootFilesystemReadOnly: u8 = 1,
                                noNewPrivileges: u8 = 1,
                                maxPids: u16, // 1..32
                                writableMounts: sorted array[1..8] of canonical UTF-8 bytes[1..512],
                                targets: ordered array[2..2] of {
                                  targetKind: u8, // 1 RUNTIME_ROOT, 2 DATA_ROOT
                                  path: canonical absolute UTF-8 bytes[1..512],
                                  finalUid: u32, finalGid: u32,
                                  finalMode: u16
                                },
                                maxRuntimeMillis: u32 // 1..60000
                              }
  releaseSignerPublicKey:     32-byte Ed25519 public key
  signature:                  64-byte Ed25519 signature
}BlindListenerCatalogV1�NBlindListenerCatalogV1�BlindListenerCatalogV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  launchTopologyHash:         32 bytes
  observedFromUnixMillis:     u64
  observedThroughUnixMillis:  u64
  listeners:                  sorted array[1..64] of BlindListenerEntryV1
}BlindListenerEntryV1BlindListenerEntryV1�{BlindListenerEntryV1�_BlindListenerEntryV1 {
  componentId:                u8
  listenerClass:              u8 // 1 PUBLIC, 2 PRIVATE_UNIX
  transportId:                u8 // public registry 1..9; private IPC 0
  endpointId:                 u8
  addressOrSocket:            canonical UTF-8 bytes[1..512]
  port:                       u16
  ownerUid:                   u32
} BlindProcessInspectionEvidenceV1�
 BlindProcessInspectionEvidenceV1��	BlindProcessInspectionEvidenceV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  launchTopologyHash:         32 bytes
  observedFromUnixMillis:     u64
  observedThroughUnixMillis:  u64
  completedInitializers:      ordered array[1..1] of {
                                initializerId: u8,
                                componentArtifactHash: 32 bytes,
                                argv: ordered array[1..32] of canonical UTF-8 bytes[1..512],
                                uid: u32, gid: u32,
                                startedUnixMillis: u64,
                                endedUnixMillis: u64,
                                exitCode: u8,
                                observedCapabilityBits: u64,
                                networkDisabled: u8,
                                rootFilesystemReadOnly: u8,
                                noNewPrivileges: u8,
                                pidsLimit: u16,
                                observedPeakPids: u16,
                                writableMounts: sorted array[1..8] of canonical UTF-8 bytes[1..512],
                                targetsAfter: ordered array[2..2] of {
                                  targetKind: u8,
                                  path: canonical absolute UTF-8 bytes[1..512],
                                  finalUid: u32, finalGid: u32,
                                  finalMode: u16,
                                  inodeKind: u8 = 1, // DIRECTORY
                                  symlinkFree: u8 = 1
                                }
                              }
  processes:                  sorted array[2..16] of {
                                processOrdinal: u16,
                                componentId: u8,
                                parentProcessOrdinal: optional u16,
                                uid: u32, gid: u32,
                                executablePath: canonical UTF-8 bytes[1..512],
                                executableContentHash: 32 bytes,
                                argv: ordered array[1..32] of canonical UTF-8 bytes[1..512],
                                environmentNames: sorted array[0..256] of canonical ASCII bytes[1..128],
                                mounts: sorted array[0..64] of {
                                  path: canonical UTF-8 bytes[1..512],
                                  accessMode: u8 // 1 read-only, 2 read-write
                                }
                              }
} BlindProductDistributionBundleV1�( BlindProductDistributionBundleV1�BlindProductDistributionBundleV1 { // releaseArtifactBytes; streaming decode
  version:          u8 = 1
  artifactFormat:   u8 // 1 deterministic OCI components, 2 signed native components
  edgeComponentDistributionBytes:bytes[1..4294967295]
  daemonComponentDistributionBytes:bytes[1..4294967295]
  packagingFiles:   sorted array[2..256] of {
                      path: canonical UTF-8 bytes[1..512],
                      mode: u16,
                      fileBytes: bytes[1..16777216]
                    }
}BlindProductIsolationEvidenceV1��BlindProductIsolationEvidenceV1��BlindProductIsolationEvidenceV1 {
  version:                       u8 = 1
  productMode:                   u8 = 1 // BLIND_APPLICATION_SUBSTRATE_V1
  buildArtifactHash:             32 bytes
  launchTopologyHash:            32 bytes
  artifactFileInventoryHash:     32 bytes
  executableEntryPointHash:      32 bytes
  runtimeImportGraphHash:        32 bytes
  listenerCatalogHash:           32 bytes
  forbiddenComponentPresenceBits:u16 = 0
  routeAbsenceEvidenceHash:      32 bytes
  processInspectionEvidenceHash:32 bytes
  isolationReportBundleHash:     32 bytes
  issuedUnixMillis:              u64
  evidenceSignerPublicKey:       32-byte Ed25519 public key
  signature:                     64-byte Ed25519 signature
}	#BlindProductIsolationReportBundleV1�.#BlindProductIsolationReportBundleV1�UBlindProductIsolationReportBundleV1 {
  version:                    u8 = 1
  artifactFileInventoryBytes:canonical BlindArtifactFileInventoryV1 bytes[1..50331648]
  executableEntrypointBytes:  canonical BlindExecutableEntrypointCatalogV1 bytes[1..65536]
  runtimeImportGraphBytes:    canonical BlindRuntimeImportGraphV1 bytes[1..50331648]
  listenerCatalogBytes:       canonical BlindListenerCatalogV1 bytes[1..1048576]
  routeAbsenceEvidenceBytes:  canonical BlindRouteAbsenceEvidenceV1 bytes[1..1048576]
  processInspectionBytes:     canonical BlindProcessInspectionEvidenceV1 bytes[1..4194304]
}BlindArtifactFileInventoryV1"BlindExecutableEntrypointCatalogV1BlindListenerCatalogV1 BlindProcessInspectionEvidenceV1BlindRouteAbsenceEvidenceV1BlindRuntimeImportGraphV1
BlindReleaseEvidenceBundleV1�GBlindReleaseEvidenceBundleV1�nBlindReleaseEvidenceBundleV1 { // canonical bytes <= 536870912
  version:                    u8 = 1
  buildManifestBytes:         canonical complete signed BuildManifestV1 bytes[1..50331648]
  launchTopologyBytes:        canonical complete signed BlindLaunchTopologyV1 bytes[1..1048576]
  isolationEvidenceBytes:     canonical complete signed BlindProductIsolationEvidenceV1 bytes[1..65536]
  isolationReportBundleBytes: canonical BlindProductIsolationReportBundleV1 bytes[1..134217728]
  releaseSupportHorizonBytes: canonical complete signed BlindReleaseSupportHorizonV1 bytes[1..1048576]
  privateIpcRegistryBytes:    bounded canonical bytes[1..1048576]
  privateIpcVectorManifestBytes:bounded canonical bytes[1..1048576]
  releaseCompatibilityVectorManifestBytes:sorted array[0..4] of bounded canonical bytes[1..1048576]
  toolchainManifestBytes:     canonical ToolchainManifestV1 bytes[1..1048576]
  reproductionEnvironmentBytes:sorted array[1..16] of canonical ReproductionEnvironmentV1 bytes[1..1048576]
  dependencyLockBytes:        bounded bytes[1..16777216]
  sbomBytes:                  optional bounded bytes[1..33554432]
}BlindLaunchTopologyV1BlindProductIsolationEvidenceV1#BlindProductIsolationReportBundleV1BlindReleaseSupportHorizonV1BuildManifestV1ReproductionEnvironmentV1ToolchainManifestV1BlindReleaseSupportHorizonV1�eBlindReleaseSupportHorizonV1�ABlindReleaseSupportHorizonV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  specHash:                   32 bytes
  abiHash:                    32 bytes
  vectorSetHash:              32 bytes
  evidenceFormatHash:         32 bytes
  evidenceVectorSetHash:      32 bytes
  storeFormatHash:            32 bytes
  storeVectorSetHash:         32 bytes
  privateIpcFormatHash:       32 bytes
  privateIpcVectorSetHash:    32 bytes
  issuedUnixMillis:           u64
  activationNotBeforeUnixMillis:u64
  fullSupportThroughUnixMillis:u64
  upgradeMode:                u8 // 1 FENCED_BLUE_GREEN, 2 IN_PLACE_FORMAT_COMPATIBLE
  predecessors:               sorted array[0..4] of {
                                buildArtifactHash: 32 bytes,
                                buildManifestHash: 32 bytes,
                                abiHash: 32 bytes,
                                storeFormatHash: 32 bytes,
                                privateIpcFormatHash: 32 bytes,
                                oldAbiServeThroughUnixMillis: u64,
                                rollbackThroughUnixMillis: u64,
                                compatibilityVectorSetHash: 32 bytes
                              }
  releaseSignerPublicKey:     32-byte Ed25519 public key
  signature:                  64-byte Ed25519 signature
}BlindRouteAbsenceEvidenceV1�zBlindRouteAbsenceEvidenceV1�WBlindRouteAbsenceEvidenceV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  abiHash:                    32 bytes
  evidenceVectorSetHash:      32 bytes
  allowedRoutes:              sorted array[1..16] of {
                                method: canonical ASCII bytes[1..16],
                                path: canonical ASCII bytes[1..256],
                                familyId: u8
                              }
  negativeProbes:             sorted array[1..256] of {
                                method: canonical ASCII bytes[1..16],
                                path: canonical ASCII bytes[1..256],
                                expectedStatus: u16,
                                observedStatus: u16,
                                responseBodyBytes: bytes[0..4096]
                              }
}
BlindRuntimeBoundaryEvidenceV1�s	BlindRuntimeBoundaryEvidenceV1�8	BlindRuntimeBoundaryEvidenceV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  buildManifestHash:          32 bytes
  launchTopologyHash:         32 bytes
  componentProcesses:         ordered array[2..2] of {
                                componentId: u8,
                                entrypointPath: canonical UTF-8 bytes[1..512],
                                entrypointBytes: bounded bytes[1..16777216],
                                serviceUnitPath: canonical UTF-8 bytes[1..512],
                                serviceUnitBytes: bounded bytes[1..1048576],
                                uid: u32, gid: u32
                              }
  listeners:                  sorted array[1..64] of BlindListenerEntryV1
  descriptorProtocolId:       canonical ASCII bytes[1..64]
  descriptorSigningPublicKey: 32-byte Ed25519 public key
  discoveryTopic:             32 bytes
  publicCredentials:          sorted array[1..32] of {
                                credentialClass: u8,
                                canonicalPublicBytes: bounded bytes[1..65535]
                              }
  storageRoots:               sorted array[1..16] of {
                                componentId: u8,
                                path: canonical UTF-8 bytes[1..512],
                                rootClass: canonical ASCII bytes[1..64],
                                encryptionPublicKey: optional 32-byte public key
                              }
  releaseChannelUrl:          canonical HTTPS URL bytes[1..512]
  releaseChannelPublicKey:    32-byte Ed25519 public key
  observability:              ordered array[2..2] of {
                                componentId: u8,
                                logSinkId: canonical ASCII bytes[1..128],
                                logNamespace: canonical ASCII bytes[1..128],
                                metricSinkId: canonical ASCII bytes[1..128],
                                metricNamespace: canonical ASCII bytes[1..128]
                              }
  deploymentId:              32 random nonzero bytes
  observedFromUnixMillis:     u64
  observedThroughUnixMillis:  u64
  issuedUnixMillis:           u64
  expiresUnixMillis:          u64
  evidenceSignerPublicKey:    32-byte Ed25519 public key
  signature:                  64-byte Ed25519 signature
}BlindListenerEntryV1BlindRuntimeImportGraphV1�TBlindRuntimeImportGraphV1�3BlindRuntimeImportGraphV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  entrypointNodeIds:          ordered array[2..2] of 32 bytes
  nodes:                      sorted array[2..65535] of {
                                nodeId: 32 bytes,
                                componentId: u8,
                                path: canonical UTF-8 bytes[1..512],
                                contentHash: 32 bytes,
                                importedNodeIds: sorted array[0..4096] of 32 bytes
                              }
}BuildInputV1�BuildInputV1wBuildInputV1 {
  path:             canonical UTF-8 bytes[1..512]
  byteLength:       u64
  contentHash:      32 bytes
}BuildManifestV1��BuildManifestV1�wBuildManifestV1 { // detached sidecar; never inside releaseArtifactBytes
  version:          u8 = 1
  productMode:      u8 = 1 // BLIND_APPLICATION_SUBSTRATE_V1, no other v1 value
  implementationId:canonical ASCII bytes[1..64]
  implementationVersion:canonical ASCII bytes[1..64]
  sourceRevision:  canonical UTF-8 bytes[1..256]
  sourceTreeHash:  32 bytes
  implementationSpecHash:32 bytes
  specHash:         32 bytes
  abiHash:          32 bytes
  vectorSetHash:    32 bytes
  evidenceFormatHash:32 bytes
  evidenceVectorSetHash:32 bytes
  storeFormatHash:  32 bytes
  storeVectorSetHash:32 bytes
  privateIpcFormatHash:32 bytes
  privateIpcVectorSetHash:32 bytes
  toolchainManifestHash:32 bytes
  dependencyLockHash:32 bytes
  sbomHash:         optional 32 bytes
  artifactFormat:   u8 // 1 deterministic OCI bundle, 2 signed native bundle
  inputs:           sorted array[1..65535] of {
                      path: canonical UTF-8 bytes[1..512],
                      byteLength: u64,
                      contentHash: 32 bytes
                    }
  buildArtifactHash:32 bytes
  launchTopologyHash:32 bytes
  releaseSupportHorizonHash:32 bytes
  productIsolationEvidenceHash:32 bytes
  reproductionPolicyId:u8 = 1 // DISTINCT_RELEASE_SIGNER_KEY_V1
  reproductions:    sorted array[1..16] of {
                      builderPublicKey: 32-byte Ed25519 public key,
                      environmentHash: 32 bytes,
                      reproducedArtifactHash: 32 bytes,
                      signature: 64-byte Ed25519 signature
                    }
  releaseSignerPublicKey:32-byte Ed25519 public key
  releaseSignature:64-byte Ed25519 signature
}BuildReproductionAttestationV1�BuildReproductionAttestationV1�BuildReproductionAttestationV1 {
  version:          u8 = 1
  builderPublicKey: 32-byte Ed25519 public key
  environmentHash: 32 bytes
  unsignedBuildCommitment:32 bytes
  reproducedArtifactHash:32 bytes
}+HiveRelayCompatibilityAuthorityTransitionV1��+HiveRelayCompatibilityAuthorityTransitionV1�gHiveRelayCompatibilityAuthorityTransitionV1 {
  version:                     u8 = 1
  compatibilityProductId:      canonical ASCII bytes[1..128]
  sunsetChainGenesisHash:      32 bytes
  sunsetChainId:               32 bytes
  successorSpecHash:           32 bytes
  successorAbiHash:            32 bytes
  successorVectorSetHash:      32 bytes
  previousSunsetHash:          32 bytes
  previousSunsetSequence:      u64
  nextSunsetSequence:          u64
  previousAuthoritySequence:   u64
  nextAuthoritySequence:       u64
  previousPublicKey:           32-byte Ed25519 public key
  nextPublicKey:               32-byte Ed25519 public key
  previousKeyId:               32 bytes
  nextKeyId:                   32 bytes
  validFromSunsetSequence:     u64
  previousKeySignature:        64-byte Ed25519 signature
  nextKeySignature:            64-byte Ed25519 signature
}%HiveRelayCompatibilityBuildManifestV1�-%HiveRelayCompatibilityBuildManifestV1��HiveRelayCompatibilityBuildManifestV1 {
  version:                      u8 = 1
  productMode:                  u8 = 2 // LEGACY_COMPATIBILITY_V1
  compatibilityProductId:       canonical ASCII bytes[1..128]
  implementationVersion:        canonical ASCII bytes[1..64]
  sourceRevision:               canonical UTF-8 bytes[1..256]
  sourceTreeHash:               32 bytes
  inputs:                       sorted array[1..65535] of BuildInputV1
  toolchainManifestHash:        32 bytes
  dependencyLockHash:           32 bytes
  compatibilityArtifactFormat: u8 // 1 deterministic OCI bundle, 2 signed native bundle
  compatibilityArtifactUrl:     canonical HTTPS URL bytes[1..512]
  compatibilityArtifactHash:    32 bytes
  sunsetChainGenesisHash:       32 bytes
  sunsetGenesisUrl:              canonical HTTPS URL bytes[1..512]
  sunsetLatestUrl:              canonical HTTPS URL bytes[1..512]
  releaseSignerPublicKey:       32-byte Ed25519 public key
  releaseSignature:             64-byte Ed25519 signature
}BuildInputV1/HiveRelayCompatibilityRuntimeBoundaryEvidenceV1��	/HiveRelayCompatibilityRuntimeBoundaryEvidenceV1�.	HiveRelayCompatibilityRuntimeBoundaryEvidenceV1 {
  version:                    u8 = 1
  compatibilityProductId:     canonical ASCII bytes[1..128]
  compatibilityArtifactHash:  32 bytes
  compatibilityBuildManifestHash:32 bytes
  entrypointPath:             canonical UTF-8 bytes[1..512]
  entrypointBytes:            bounded bytes[1..16777216]
  serviceUnitPath:            canonical UTF-8 bytes[1..512]
  serviceUnitBytes:           bounded bytes[1..1048576]
  processUid:                 u32
  processGid:                 u32
  processArgv:                ordered array[1..64] of canonical UTF-8 bytes[1..512]
  listeners:                  sorted array[1..64] of BlindListenerEntryV1
  descriptorProtocolId:       canonical ASCII bytes[1..64]
  descriptorSigningPublicKey: 32-byte public key
  discoveryTopic:             32 bytes
  publicCredentials:          sorted array[1..32] of {
                                credentialClass: u8,
                                canonicalPublicBytes: bounded bytes[1..65535]
                              }
  storageRoots:               sorted array[1..16] of {
                                path: canonical UTF-8 bytes[1..512],
                                rootClass: canonical ASCII bytes[1..64],
                                encryptionPublicKey: optional 32-byte public key
                              }
  releaseChannelUrl:          canonical HTTPS URL bytes[1..512]
  releaseChannelPublicKey:    32-byte Ed25519 public key
  logSinkId:                  canonical ASCII bytes[1..128]
  logNamespace:               canonical ASCII bytes[1..128]
  metricSinkId:               canonical ASCII bytes[1..128]
  metricNamespace:            canonical ASCII bytes[1..128]
  deploymentId:              32 random nonzero bytes
  observedFromUnixMillis:     u64
  observedThroughUnixMillis:  u64
  successorBuildArtifactHash: 32 bytes
  successorBuildManifestHash: 32 bytes
  successorBuildManifestBytes:canonical complete signed BuildManifestV1 bytes[1..50331648]
  successorBlindRuntimeBoundaryEvidenceBytes:canonical complete signed BlindRuntimeBoundaryEvidenceV1 bytes[1..50331648]
  disjointBoundaryBits:       u16
  issuedUnixMillis:           u64
  expiresUnixMillis:          u64
  evidenceSignerPublicKey:    32-byte Ed25519 public key
  signature:                  64-byte Ed25519 signature
}BlindListenerEntryV1BlindRuntimeBoundaryEvidenceV1BuildManifestV1%HiveRelayCompatibilitySunsetGenesisV1�!%HiveRelayCompatibilitySunsetGenesisV1��HiveRelayCompatibilitySunsetGenesisV1 {
  version:                    u8 = 1
  compatibilityProductId:     canonical ASCII bytes[1..128]
  sunsetChainId:              32 random nonzero bytes
  sunsetSequence:             u64 = 0
  successorSpecHash:          32 bytes
  successorAbiHash:           32 bytes
  successorVectorSetHash:     32 bytes
  genesisAuthoritySequence:   u64
  genesisAuthorityPublicKey:  32-byte Ed25519 public key
  genesisAuthorityKeyId:      32 bytes
  sunsetHistoryBaseUrl:       canonical HTTPS URL bytes[1..512]
  issuedUnixMillis:           u64
  lastWriteUnixMillis:        u64
  lastReadUnixMillis:         u64
  releaseChannelPublicKey:    32-byte Ed25519 public key
  signature:                  64-byte Ed25519 signature
}"HiveRelayCompatibilitySunsetHeadV1��"HiveRelayCompatibilitySunsetHeadV1��HiveRelayCompatibilitySunsetHeadV1 {
  version:                      u8 = 1
  compatibilityProductId:       canonical ASCII bytes[1..128]
  sunsetChainGenesisHash:       32 bytes
  sunsetChainId:                32 bytes
  sunsetSequence:               u64
  sunsetHash:                   32 bytes
  compatibilityBuildManifestHash:32 bytes
  headLeaseSlot:                u64 // floor(notBeforeUnixMillis / 300000)
  issuedUnixMillis:             u64
  notBeforeUnixMillis:          u64
  expiresUnixMillis:            u64
  releaseAuthoritySequence:     u64
  releaseAuthorityKeyId:        32 bytes
  signature:                    64-byte Ed25519 signature
}$HiveRelayLegacyCompatibilitySunsetV1�_$HiveRelayLegacyCompatibilitySunsetV1�3HiveRelayLegacyCompatibilitySunsetV1 {
  version:                      u8 = 1
  compatibilityProductId:       canonical ASCII bytes[1..128]
  sunsetChainGenesisHash:       32 bytes
  sunsetChainId:                32 bytes
  sunsetSequence:               u64
  compatibilityArtifactUrl:     canonical HTTPS URL bytes[1..512]
  compatibilityArtifactHash:    32 bytes
  compatibilityBuildManifestUrl:canonical HTTPS URL bytes[1..512]
  compatibilityBuildManifestHash:32 bytes
  compatibilityRuntimeBoundaryEvidenceUrl:canonical HTTPS URL bytes[1..512]
  compatibilityRuntimeBoundaryEvidenceHash:32 bytes
  successorSpecHash:            32 bytes
  successorAbiHash:             32 bytes
  successorVectorSetHash:       32 bytes
  successorBuildArtifactHash:   32 bytes
  successorBuildManifestHash:   32 bytes
  successorLaunchTopologyHash:  32 bytes
  successorIsolationEvidenceHash:32 bytes
  successorRuntimeBoundaryEvidenceHash:32 bytes
  issuedUnixMillis:             u64
  lastWriteUnixMillis:          u64
  lastReadUnixMillis:           u64
  previousSunsetHash:           32 bytes
  releaseAuthoritySequence:     u64
  releaseAuthorityPublicKey:    32-byte Ed25519 public key
  releaseAuthorityKeyId:        32 bytes
  authorityTransitionHash:      optional 32 bytes
  signature:                    64-byte Ed25519 signature
}ProtocolProfileArtifactV1�!ProtocolProfileArtifactV1�ProtocolProfileArtifactV1 {
  version:          u8 = 1
  protocolId:       u16
  major:            u16
  minor:            u16
  featureBits:      u64
  wireSchemaSetHash:32 bytes
  dependencyManifestHash:32 bytes
  interoperabilityVectorSetHash:32 bytes
}ReproductionEnvironmentV1��ReproductionEnvironmentV1��ReproductionEnvironmentV1 {
  version:          u8 = 1
  os:               canonical ASCII bytes[1..64]
  architecture:     canonical ASCII bytes[1..64]
  containerOrVmHash:32 bytes
  sourceDateEpoch:  u64
  locale:           canonical ASCII bytes[1..64]
  timezone:         canonical ASCII bytes[1..64]
  variables:        sorted array[0..256] of {
                      name: canonical ASCII bytes[1..128],
                      valueHash: 32 bytes
                    }
}ToolchainEntryV1�ToolchainEntryV1�ToolchainEntryV1 {
  name:             canonical ASCII bytes[1..64]
  version:          canonical ASCII bytes[1..128]
  distributionHash:32 bytes
}ToolchainManifestV1�ToolchainManifestV1oToolchainManifestV1 {
  version:          u8 = 1
  entries:          sorted array[1..256] of ToolchainEntryV1
}ToolchainEntryV1TransportProfileArtifactV1��TransportProfileArtifactV1��TransportProfileArtifactV1 {
  version:          u8 = 1
  transportId:      u8
  profileName:      canonical ASCII bytes[1..64]
  major:            u16
  minor:            u16
  exporterId:       u8 // 0 NONE, 1 NOISE_HANDSHAKE_HASH_BLAKE2B
  controlChannelIdType:u8 // 0 NONE, 1 NONZERO_U64BE
  handshakeProfileHash:32 bytes
  dependencyManifestHash:32 bytes
  interoperabilityVectorSetHash:32 bytes
}