feat(peer)!: cut over to authenticated catalog sharing

Replace address-only trust and pushed peer state with installation identities,
SPKI-pinned QUIC, candidate-only discovery, and bounded responder-owned
protocol-8 pulls. The runtime now owns each network generation and all admitted
work through shutdown.

Add exact bundled content identities, reproducible manifest publishing,
capability-confined downloads, streaming BLAKE3 verification, quarantine and
retry, and crash-recoverable download and install transactions. Ship generated
fixture catalogs and fail closed when production manifests are absent.

The Tauri backend exposes durable sharing policy, redacted identity state, and
attempt-keyed transfer snapshots. Frontend consumption follows in the next
commit. Repository-wide test certificates and protocol-7 paths are removed.

BREAKING CHANGE: peers must use protocol 8 and exact catalog content artifacts;
protocol-7 frames and shared-certificate identities are no longer accepted.

Test Plan:
- `just test` -- passed on the completed stack (708 workspace tests)
- `just clippy` -- passed on the completed stack
- `just build` -- passed with fixture catalogs on the completed stack
- `just catalog-check-production` -- failed closed because the external
  production manifest corpus is absent
- `git diff --cached --check` -- passed
This commit is contained in:
2026-08-10 13:59:18 +02:00
parent 36c4785775
commit 60fd7ba0c2
128 changed files with 51759 additions and 10784 deletions
Binary file not shown.
@@ -0,0 +1,62 @@
{
"schema_version": 1,
"game_id": "alienswarm",
"game_version": "20190317",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "alienswarm.eti",
"kind": "file",
"size": 125829913,
"file_blake3": "77fd653681a1643973dd59b981417eed231304d1f785b1b529c1c28ce94d0a5b",
"chunk_blake3": [
"77fd653681a1643973dd59b981417eed231304d1f785b1b529c1c28ce94d0a5b"
]
},
{
"canonical_path": "notes.txt",
"kind": "file",
"size": 34,
"file_blake3": "9a2cbf6fa18632be6e6262671952f781a3b53f41c3ca31219b7e19763d40a65e",
"chunk_blake3": [
"9a2cbf6fa18632be6e6262671952f781a3b53f41c3ca31219b7e19763d40a65e"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 8,
"file_blake3": "813c1bf52f38019051bfbc2cbfcdbf8620a46124ddb14dc7a55df9daa6186bee",
"chunk_blake3": [
"813c1bf52f38019051bfbc2cbfcdbf8620a46124ddb14dc7a55df9daa6186bee"
]
}
],
"streamed_install_files": [
{
"canonical_path": "target/peer-cli-large-fixture/alienswarm-payload",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "target/peer-cli-large-fixture/alienswarm-payload/payload-a.bin",
"kind": "file",
"size": 41943040,
"file_blake3": "d9d3cd4605ec26ada09b3e618546c45dfd8b7dd42ba7d1e825cff3062037cedf"
},
{
"canonical_path": "target/peer-cli-large-fixture/alienswarm-payload/payload-b.bin",
"kind": "file",
"size": 41943040,
"file_blake3": "3835c341be211b8549328f31b82732b88e47e18db4748e296b9e3fdbad339c07"
},
{
"canonical_path": "target/peer-cli-large-fixture/alienswarm-payload/payload-c.bin",
"kind": "file",
"size": 41943040,
"file_blake3": "4ba18b14e0ba7e5822aa1c8d494a1646b82f53581f65217bb6dcee3f69e7ba7d"
}
],
"content_id": "e871472e2dc154623369c7a05825d65f50f1412509569dab0d15c4565489dcfc"
}
@@ -0,0 +1,53 @@
{
"schema_version": 1,
"game_id": "bf1942",
"game_version": "20160130",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "bf1942.eti",
"kind": "file",
"size": 3146118,
"file_blake3": "65f7729f0a353b20d3996331ef6c1813ce2259e90d3632eac2bae463700c1126",
"chunk_blake3": [
"65f7729f0a353b20d3996331ef6c1813ce2259e90d3632eac2bae463700c1126"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 8,
"file_blake3": "37c38c7fe5ec9239e6b970165c5793fe6d503bee41344abd2a0e329c7afbb39b",
"chunk_blake3": [
"37c38c7fe5ec9239e6b970165c5793fe6d503bee41344abd2a0e329c7afbb39b"
]
}
],
"streamed_install_files": [
{
"canonical_path": "bin",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "bin/bf1942-payload.bin",
"kind": "file",
"size": 2097152,
"file_blake3": "de7d369a819879597920fa6eea41e421cb5b56763e279b4cf95cf9c2338f7af2"
},
{
"canonical_path": "data",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "data/bf1942-assets.dat",
"kind": "file",
"size": 1048576,
"file_blake3": "cfbe618ef17da6a5197912649bf31619bfa02db8db60c176f82473bab37d46d9"
}
],
"content_id": "157b952fd2226fc6edc90b698606510956301ff867e6ffb11c724584b1fa9b5a"
}
@@ -0,0 +1,53 @@
{
"schema_version": 1,
"game_id": "bfbc2",
"game_version": "20210416",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "bfbc2.eti",
"kind": "file",
"size": 3146114,
"file_blake3": "2e4022096dfd3114ec7bacf69c6c25bd83b9a6d3af71e81df4ba8584fc23a82b",
"chunk_blake3": [
"2e4022096dfd3114ec7bacf69c6c25bd83b9a6d3af71e81df4ba8584fc23a82b"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 8,
"file_blake3": "6eacd1c0e8efe8f809658ee66b9272d32daa1daadd904469ce5f7d128d23c9d5",
"chunk_blake3": [
"6eacd1c0e8efe8f809658ee66b9272d32daa1daadd904469ce5f7d128d23c9d5"
]
}
],
"streamed_install_files": [
{
"canonical_path": "bin",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "bin/bfbc2-payload.bin",
"kind": "file",
"size": 2097152,
"file_blake3": "4d6d0c9ee250f23e4828fd50872eecf945c022d0d82cc1a11bf25c96ef0ec807"
},
{
"canonical_path": "data",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "data/bfbc2-assets.dat",
"kind": "file",
"size": 1048576,
"file_blake3": "16daa7902e05888c38b984bac96bb5af496e43331bd3d8e858f019c8fd09dda5"
}
],
"content_id": "ddd30de1727ec7bb37dad961217de619b514a71f47ccb4d7acbfcb8ad21f50d3"
}
@@ -0,0 +1 @@
{"schema_version":1,"games":{"alienswarm":{"game_version":"20190317","content_id":"e871472e2dc154623369c7a05825d65f50f1412509569dab0d15c4565489dcfc","supports_streamed_install":true},"bf1942":{"game_version":"20160130","content_id":"157b952fd2226fc6edc90b698606510956301ff867e6ffb11c724584b1fa9b5a","supports_streamed_install":true},"bfbc2":{"game_version":"20210416","content_id":"ddd30de1727ec7bb37dad961217de619b514a71f47ccb4d7acbfcb8ad21f50d3","supports_streamed_install":true},"cnc4":{"game_version":"20170204","content_id":"d356f42b1989d6c36011ff3c5f52ac663bcc0eb8efe144872f11e8d8b0e2e9a1","supports_streamed_install":true},"cnctw":{"game_version":"20160128","content_id":"f01e4b38e052cbd9ba1c468e31af78cf95f0c9bc3371875289cb3ec2e8be8067","supports_streamed_install":true},"cod5":{"game_version":"20160920","content_id":"56e7bd1e80e32d50a1f8022766f87c68c0dfb6f7ad041485641b8ffb7098ca81","supports_streamed_install":true},"cod6":{"game_version":"20200315","content_id":"dc2cfa0e4da3fdc7138dc37930a8503ead08883faa0f56f59598489b48de3153","supports_streamed_install":true},"coh":{"game_version":"20200907","content_id":"7cf80604d1811b8683c415a60415a6e980bb25e42146b4b474324d47e068f34d","supports_streamed_install":true},"css":{"game_version":"20240623","content_id":"9d8a0aa232c27023b41491fa0218abd0592a3e0b3e5b5168b337a608e3cf8507","supports_streamed_install":true},"ggoo":{"game_version":"20200721","content_id":"30a6358eff3b0ed6d797aee10766ca69741eb1198f83d341d0876b5ce1009ae0","supports_streamed_install":true}}}
@@ -0,0 +1,53 @@
{
"schema_version": 1,
"game_id": "cnc4",
"game_version": "20170204",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "cnc4.eti",
"kind": "file",
"size": 3146110,
"file_blake3": "e96019bec5b92e3f5a241d1a5bd1a1608c4bb6b44e2767a7eaa01ae46a1d35d9",
"chunk_blake3": [
"e96019bec5b92e3f5a241d1a5bd1a1608c4bb6b44e2767a7eaa01ae46a1d35d9"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 8,
"file_blake3": "6744ce6acc6d7548c8a87eea79a5bb7480fe3848cfab7f272e2bcbe43d652d3f",
"chunk_blake3": [
"6744ce6acc6d7548c8a87eea79a5bb7480fe3848cfab7f272e2bcbe43d652d3f"
]
}
],
"streamed_install_files": [
{
"canonical_path": "bin",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "bin/cnc4-payload.bin",
"kind": "file",
"size": 2097152,
"file_blake3": "f1394ba123b31bbdbd109d0a241d0d580b99e78750f1cff7838caf8e62f6e3e0"
},
{
"canonical_path": "data",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "data/cnc4-assets.dat",
"kind": "file",
"size": 1048576,
"file_blake3": "ee16d8c5e60a48ce5fabfd230bf889865e847eb8a0cc5dd3d7615291fe04c043"
}
],
"content_id": "d356f42b1989d6c36011ff3c5f52ac663bcc0eb8efe144872f11e8d8b0e2e9a1"
}
@@ -0,0 +1,53 @@
{
"schema_version": 1,
"game_id": "cnctw",
"game_version": "20160128",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "cnctw.eti",
"kind": "file",
"size": 3146114,
"file_blake3": "f4d31de3bcff86de8c78f766f1e7809ffd5d47a951742ac9db6a97551d84eb6f",
"chunk_blake3": [
"f4d31de3bcff86de8c78f766f1e7809ffd5d47a951742ac9db6a97551d84eb6f"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 8,
"file_blake3": "995b0db832e29dbb6025f31b7aa8f1e842151971fac3ea7d6cac2c287f2ce64a",
"chunk_blake3": [
"995b0db832e29dbb6025f31b7aa8f1e842151971fac3ea7d6cac2c287f2ce64a"
]
}
],
"streamed_install_files": [
{
"canonical_path": "bin",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "bin/cnctw-payload.bin",
"kind": "file",
"size": 2097152,
"file_blake3": "495fcaac274d7c6cf9a2db7587280b73d4c18d7ac473305082c4fe1a0b93ec82"
},
{
"canonical_path": "data",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "data/cnctw-assets.dat",
"kind": "file",
"size": 1048576,
"file_blake3": "372e932a9316a3c76517520b91540cc4eb4035e8e5726a0df4910c018117f344"
}
],
"content_id": "f01e4b38e052cbd9ba1c468e31af78cf95f0c9bc3371875289cb3ec2e8be8067"
}
@@ -0,0 +1,53 @@
{
"schema_version": 1,
"game_id": "cod5",
"game_version": "20160920",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "cod5.eti",
"kind": "file",
"size": 3146110,
"file_blake3": "53fa2d2c9daade4cc16a4b562643f18916cfe2533696d5c5db7dfe1f4a48eddf",
"chunk_blake3": [
"53fa2d2c9daade4cc16a4b562643f18916cfe2533696d5c5db7dfe1f4a48eddf"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 8,
"file_blake3": "caec0ebe8cf7509acb9b9feefbd704c204ff2689a8fdefcaf8f477fd53c54163",
"chunk_blake3": [
"caec0ebe8cf7509acb9b9feefbd704c204ff2689a8fdefcaf8f477fd53c54163"
]
}
],
"streamed_install_files": [
{
"canonical_path": "bin",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "bin/cod5-payload.bin",
"kind": "file",
"size": 2097152,
"file_blake3": "169fa6cc2a0a802b72612ae35444735bf592c30bc787739b4c2307a8fd67a95b"
},
{
"canonical_path": "data",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "data/cod5-assets.dat",
"kind": "file",
"size": 1048576,
"file_blake3": "f122d70e41a567ddf06b77d650683db42f5ecb1bdf5648366f16486e3adb7cd7"
}
],
"content_id": "56e7bd1e80e32d50a1f8022766f87c68c0dfb6f7ad041485641b8ffb7098ca81"
}
@@ -0,0 +1,53 @@
{
"schema_version": 1,
"game_id": "cod6",
"game_version": "20200315",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "cod6.eti",
"kind": "file",
"size": 3146110,
"file_blake3": "ce096cadb67834be368fa1fe2141426810591a0febe6c4e960d729a4a436d30f",
"chunk_blake3": [
"ce096cadb67834be368fa1fe2141426810591a0febe6c4e960d729a4a436d30f"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 8,
"file_blake3": "fb541cd98ca1ce773b04cd44d27f182830ee5e04e63f0a268486826f5b33c424",
"chunk_blake3": [
"fb541cd98ca1ce773b04cd44d27f182830ee5e04e63f0a268486826f5b33c424"
]
}
],
"streamed_install_files": [
{
"canonical_path": "bin",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "bin/cod6-payload.bin",
"kind": "file",
"size": 2097152,
"file_blake3": "491b9181f503d31917709d5429e1f52686d52bf13562faedbc84031885aeca13"
},
{
"canonical_path": "data",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "data/cod6-assets.dat",
"kind": "file",
"size": 1048576,
"file_blake3": "ac874e3ac3438dee4c2e42165ead2fb9f84210760d1645294e4eed8ec6792cf4"
}
],
"content_id": "dc2cfa0e4da3fdc7138dc37930a8503ead08883faa0f56f59598489b48de3153"
}
@@ -0,0 +1,53 @@
{
"schema_version": 1,
"game_id": "coh",
"game_version": "20200907",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "coh.eti",
"kind": "file",
"size": 3146106,
"file_blake3": "51c8a7d80b2424c262f55beabbc26b31a878ab3b5df7b8470b1f5838d02fa214",
"chunk_blake3": [
"51c8a7d80b2424c262f55beabbc26b31a878ab3b5df7b8470b1f5838d02fa214"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 8,
"file_blake3": "5f033915cb29613e39a19fba14b466689a996a621c8b3e3f1f3bd133bed9a50a",
"chunk_blake3": [
"5f033915cb29613e39a19fba14b466689a996a621c8b3e3f1f3bd133bed9a50a"
]
}
],
"streamed_install_files": [
{
"canonical_path": "bin",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "bin/coh-payload.bin",
"kind": "file",
"size": 2097152,
"file_blake3": "cf081a2e71ae96aa1505605e75ae3651dfc59e395e7fcfd5f5520fa1eb133fb3"
},
{
"canonical_path": "data",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "data/coh-assets.dat",
"kind": "file",
"size": 1048576,
"file_blake3": "ac5eadb10f22a57f9072c19d141212cdb847fee759f38af31c5a96a6ff80d748"
}
],
"content_id": "7cf80604d1811b8683c415a60415a6e980bb25e42146b4b474324d47e068f34d"
}
@@ -0,0 +1,89 @@
{
"schema_version": 1,
"game_id": "css",
"game_version": "20240623",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "css.eti",
"kind": "file",
"size": 654,
"file_blake3": "a5123abeb6b462d0fba6e58516cd2e6a7986eb18bd9084134c07c8422552bccd",
"chunk_blake3": [
"a5123abeb6b462d0fba6e58516cd2e6a7986eb18bd9084134c07c8422552bccd"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 8,
"file_blake3": "6568056191954d307f80dcf71bdb0052a6873a770098141d34edd801bcaf2194",
"chunk_blake3": [
"6568056191954d307f80dcf71bdb0052a6873a770098141d34edd801bcaf2194"
]
}
],
"streamed_install_files": [
{
"canonical_path": "engine",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "engine/bin",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "engine/bin/win64",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "engine/bin/win64/steam_settings",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "engine/bin/win64/steam_settings/SmartSteamEmu.ini",
"kind": "file",
"size": 71,
"file_blake3": "6b2e288b261c0d2464f6f422cc1038b4c49de58daf89dcc758481adfd99dc026"
},
{
"canonical_path": "profiles",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "profiles/local",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "profiles/local/account_name.txt",
"kind": "file",
"size": 11,
"file_blake3": "626d0787808ca0087e3d959495e57e41d15c7fff51113f6627aa908825c29830"
},
{
"canonical_path": "profiles/local/language.txt",
"kind": "file",
"size": 7,
"file_blake3": "3e59c7a7502a0a63099171b709c5eed0191275c51d83de063d4cac191bac4813"
},
{
"canonical_path": "readme.txt",
"kind": "file",
"size": 17,
"file_blake3": "815192d90dcdecf7dff970c24ae3b20b18351d75da2aba226ba6f6e0bac2c7b6"
}
],
"content_id": "9d8a0aa232c27023b41491fa0218abd0592a3e0b3e5b5168b337a608e3cf8507"
}
@@ -0,0 +1,53 @@
{
"schema_version": 1,
"game_id": "ggoo",
"game_version": "20200721",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "ggoo.eti",
"kind": "file",
"size": 3146110,
"file_blake3": "ca521fcb90514c2d4c6d33fe79d1252066547f5f83f5a98bf92d93e473fbebe4",
"chunk_blake3": [
"ca521fcb90514c2d4c6d33fe79d1252066547f5f83f5a98bf92d93e473fbebe4"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 8,
"file_blake3": "a5354e30ec514c1a2b1d7db06e88345a861b5cd90dc7f287a44c917612f851aa",
"chunk_blake3": [
"a5354e30ec514c1a2b1d7db06e88345a861b5cd90dc7f287a44c917612f851aa"
]
}
],
"streamed_install_files": [
{
"canonical_path": "bin",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "bin/ggoo-payload.bin",
"kind": "file",
"size": 2097152,
"file_blake3": "0c793d5caa4d76d70ae2251950b74c89fe8d795d9467f8d00a115b254a5483ad"
},
{
"canonical_path": "data",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "data/ggoo-assets.dat",
"kind": "file",
"size": 1048576,
"file_blake3": "e0177aff792b3796037edddd40e4cf834448f638f24225fc891c645619004b35"
}
],
"content_id": "30a6358eff3b0ed6d797aee10766ca69741eb1198f83d341d0876b5ce1009ae0"
}
Binary file not shown.
@@ -0,0 +1 @@
{"schema_version":1,"games":{"cnctw":{"game_version":"20160128","content_id":"629012cd3c4a2f7bcbc3d1f40bf111381cd08b98ffb571747623e3912b586344","supports_streamed_install":true}}}
@@ -0,0 +1,50 @@
{
"schema_version": 1,
"game_id": "cnctw",
"game_version": "20160128",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "a-first.eti",
"kind": "file",
"size": 103,
"file_blake3": "a67333b9f370ff284a41e8c4af1a74881a46c32fe7bee77c70230c6b0fb53a6e",
"chunk_blake3": [
"a67333b9f370ff284a41e8c4af1a74881a46c32fe7bee77c70230c6b0fb53a6e"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 8,
"file_blake3": "995b0db832e29dbb6025f31b7aa8f1e842151971fac3ea7d6cac2c287f2ce64a",
"chunk_blake3": [
"995b0db832e29dbb6025f31b7aa8f1e842151971fac3ea7d6cac2c287f2ce64a"
]
},
{
"canonical_path": "z-second.eti",
"kind": "file",
"size": 105,
"file_blake3": "465e3bf1e077a114422a75095271072627b9a9aaf7e72ae7c9661f9ac972ccaf",
"chunk_blake3": [
"465e3bf1e077a114422a75095271072627b9a9aaf7e72ae7c9661f9ac972ccaf"
]
}
],
"streamed_install_files": [
{
"canonical_path": "order/first.txt",
"kind": "file",
"size": 22,
"file_blake3": "f0440582fb0af9b05a9755bf5764127ecc09a0f57aa267599770cbec189ebb54"
},
{
"canonical_path": "order/second.txt",
"kind": "file",
"size": 23,
"file_blake3": "b931fd872258655d87983bdc7d56bc94d30b31046c4184487121bc3e012330e5"
}
],
"content_id": "629012cd3c4a2f7bcbc3d1f40bf111381cd08b98ffb571747623e3912b586344"
}
Binary file not shown.
@@ -0,0 +1 @@
{"schema_version":1,"games":{"cnctw":{"game_version":"20160128","content_id":"c572c586174ceb5c40bd15e8b02784b3159464c4f8c87a9b62a4d6ed801be4d5","supports_streamed_install":true}}}
@@ -0,0 +1,53 @@
{
"schema_version": 1,
"game_id": "cnctw",
"game_version": "20160128",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "cnctw.eti",
"kind": "file",
"size": 311,
"file_blake3": "a6e31754a470b0d8001040b2eece106c0becd84d50a18b03faae1bc7a8df4e43",
"chunk_blake3": [
"a6e31754a470b0d8001040b2eece106c0becd84d50a18b03faae1bc7a8df4e43"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 8,
"file_blake3": "995b0db832e29dbb6025f31b7aa8f1e842151971fac3ea7d6cac2c287f2ce64a",
"chunk_blake3": [
"995b0db832e29dbb6025f31b7aa8f1e842151971fac3ea7d6cac2c287f2ce64a"
]
}
],
"streamed_install_files": [
{
"canonical_path": "bin",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "bin/cnctw-solid-payload.bin",
"kind": "file",
"size": 40,
"file_blake3": "5ed7b587a848236aa68465d2729358beaec595be9edfaea6a20f66fcb03b9a7c"
},
{
"canonical_path": "data",
"kind": "directory",
"size": 0,
"file_blake3": null
},
{
"canonical_path": "data/cnctw-solid-assets.dat",
"kind": "file",
"size": 78,
"file_blake3": "183868e423478db1e256fd1c3dd3b1b767acb747b4fde1985db56387e418185c"
}
],
"content_id": "c572c586174ceb5c40bd15e8b02784b3159464c4f8c87a9b62a4d6ed801be4d5"
}
Binary file not shown.
@@ -0,0 +1 @@
{"schema_version":1,"games":{"cod2":{"game_version":"20160922","content_id":"6f60950ccdb7ec12e8e9b68210bb345994490dd5ca761c063ac27a6caf250071","supports_streamed_install":false}}}
@@ -0,0 +1,28 @@
{
"schema_version": 1,
"game_id": "cod2",
"game_version": "20160922",
"chunk_size": 134217728,
"files": [
{
"canonical_path": "catalog-unknown.txt",
"kind": "file",
"size": 73,
"file_blake3": "11bd8035dcf904c547896565bbc8b9ae47b1044ac21ebf732a51820caddfc819",
"chunk_blake3": [
"11bd8035dcf904c547896565bbc8b9ae47b1044ac21ebf732a51820caddfc819"
]
},
{
"canonical_path": "version.ini",
"kind": "file",
"size": 9,
"file_blake3": "91c51abb1c7e7a6426bc9003603608587648bd1fed32b0cf3e81bc5ad76531b4",
"chunk_blake3": [
"91c51abb1c7e7a6426bc9003603608587648bd1fed32b0cf3e81bc5ad76531b4"
]
}
],
"streamed_install_files": [],
"content_id": "6f60950ccdb7ec12e8e9b68210bb345994490dd5ca761c063ac27a6caf250071"
}