Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 1x 1x 1x 1x 1x | import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/nodejs';
import { Logger } from '@metamask/logger';
import { Kernel } from '@metamask/ocap-kernel';
import { NodejsPlatformServices } from './PlatformServices.ts';
/**
* The main function for the kernel worker.
*
* @param options - The options for the kernel.
* @param options.workerFilePath - The path to a file defining each vat worker's routine.
* @param options.resetStorage - If true, clear kernel storage as part of setting up the kernel.
* @param options.dbFilename - The filename of the SQLite database file.
* @param options.logger - The logger to use for the kernel.
* @param options.keySeed - Optional seed for libp2p key generation.
* @returns The kernel, initialized.
*/
export async function makeKernel({
workerFilePath,
resetStorage = false,
dbFilename,
logger,
keySeed,
}: {
workerFilePath?: string;
resetStorage?: boolean;
dbFilename?: string;
logger?: Logger;
keySeed?: string | undefined;
}): Promise<Kernel> {
const rootLogger = logger ?? new Logger('kernel-worker');
const platformServicesClient = new NodejsPlatformServices({
workerFilePath,
logger: rootLogger.subLogger({ tags: ['platform-services-manager'] }),
});
// Initialize kernel store.
const kernelDatabase = await makeSQLKernelDatabase({ dbFilename });
// Create and start kernel.
const kernel = await Kernel.make(platformServicesClient, kernelDatabase, {
resetStorage,
logger: rootLogger.subLogger({ tags: ['kernel'] }),
keySeed,
});
return kernel;
}
|