Documentation / @etherfold/browser / BrowserStreamSeedOptions
Type Alias: BrowserStreamSeedOptions ​
BrowserStreamSeedOptions =
object
Defined in: packages/browser/src/publishedStart.ts:165
WHERE A PUBLISHED STREAM SEED COMES FROM, as a host takes it: the seed option of createIndexerState, and the seed field of a worker host's spec.
Convenience, not a trust boundary and not a safety mechanism ​
The loader is callable directly (installStreamSeed, @etherfold/core) and an application may drive the install itself; this option saves it sequencing the call, and gives the host's surface something to publish. It is NOT a safety mechanism: the install carries its own RESOLVED stream config and sets it on the keeper before it addresses anything (ADR-0067), so it is correct whether it runs before or after a generation exists.
The trust contract travels with the locations (ADR-0066) ​
The CALLER names the locations and owns that choice: the loader fetches where it is pointed and nowhere else, so there is no origin check to make. Keep BOTH the list and any expectedContentHash in the BUILD -- a pin read from the same place as the artifact proves nothing -- and read installStreamSeed's own JSDoc before shipping one, including what it does NOT defend against (OMISSION, which is impossible within the premise rather than deferred).
Properties ​
expectedContentHash? ​
optionalexpectedContentHash?:string
Defined in: packages/browser/src/publishedStart.ts:178
An OPTIONAL content hash, verbatim as the producer printed it (sha256:<hex>). Only an IMMUTABLE, release-tied artifact can have one pinned: a build cannot know the hash of a ROLLING artifact, and rolling is how this is ordinarily deployed.
fetch? ​
optionalfetch?: typeofglobalThis.fetch
Defined in: packages/browser/src/publishedStart.ts:188
Injectable for tests and for a host with its own retry/timeout policy.
locations ​
locations:
StreamSeedLocation| readonlyStreamSeedLocation[]
Defined in: packages/browser/src/publishedStart.ts:171
The ORDERED list, freshest first, walked until one is usable. A relative, hostless path is a first-class location and is what a BUILD-EMBEDDED artifact is listed as, ordinarily LAST so the app still starts when the remote is gone.
maxEventsPerBatch? ​
optionalmaxEventsPerBatch?:number
Defined in: packages/browser/src/publishedStart.ts:186
How many events one save carries, at most. Defaults to the loader's own 1,000.
reachBackTo? ​
optionalreachBackTo?:number
Defined in: packages/browser/src/publishedStart.ts:184
The block the client will ask this stream FROM, which a seed must reach back to or be refused. Defaults to the source's own earliest startBlock, which is exactly what a fresh generation's load() asks for.