UNPKG

@neo-one/server-plugin-network

Version:

NEO•ONE Server network plugin.

56 lines (54 loc) 7.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const path = tslib_1.__importStar(require("path")); const operators_1 = require("rxjs/operators"); const createFullNode_1 = require("./createFullNode"); const node_1 = require("./node"); exports.startNode = ({ vorpal, monitor, shutdown, mutableShutdownFuncs, logConfig$ }) => { vorpal .command('start node <dataPath>', `Starts a full node`) .option('-c, --chain <chain>', 'Path of a chain.acc file to bootstrap the node') .option('-d --dump <dump>', 'Path to dump a chain.acc file to') .action(async (args) => { const { dataPath, options: cliOptions } = args; const nodeConfig = node_1.createNEOONENodeConfig({ dataPath }); const logPath = path.resolve(dataPath, 'log'); const logSubscription = nodeConfig.config$ .pipe(operators_1.map((config) => config.log), operators_1.distinctUntilChanged(), operators_1.map((config) => ({ name: 'node', path: logPath, level: config.level, maxSize: config.maxSize, maxFiles: config.maxFiles, }))) .subscribe(logConfig$); mutableShutdownFuncs.push(() => logSubscription.unsubscribe()); let chainFile; if (cliOptions.chain != undefined) { chainFile = cliOptions.chain; } let dumpChainFile; if (cliOptions.dump != undefined) { dumpChainFile = cliOptions.dump; } const node = await createFullNode_1.createFullNode({ dataPath, nodeConfig, monitor, chainFile, dumpChainFile, onError: (error) => { monitor.logError({ name: 'neo_node_uncaught_error', message: 'Uncaught node error, shutting down.', error, }); shutdown({ exitCode: 1, error }); }, }); await node.start(); mutableShutdownFuncs.push(async () => node.stop()); }); }; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0YXJ0Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBNkI7QUFDN0IsOENBQTJEO0FBQzNELHFEQUFrRDtBQUNsRCxpQ0FBZ0Q7QUFFbkMsUUFBQSxTQUFTLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBVyxFQUFFLEVBQUU7SUFDcEcsTUFBTTtTQUNILE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxvQkFBb0IsQ0FBQztTQUN0RCxNQUFNLENBQUMscUJBQXFCLEVBQUUsZ0RBQWdELENBQUM7U0FDL0UsTUFBTSxDQUFDLGtCQUFrQixFQUFFLGtDQUFrQyxDQUFDO1NBQzlELE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDckIsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRS9DLE1BQU0sVUFBVSxHQUFHLDZCQUFzQixDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUV4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsT0FBTzthQUN2QyxJQUFJLENBQ0gsZUFBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQzNCLGdDQUFvQixFQUFFLEVBQ3RCLGVBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNmLElBQUksRUFBRSxNQUFNO1lBQ1osSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3ZCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtTQUMxQixDQUFDLENBQUMsQ0FDSjthQUNBLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFL0QsSUFBSSxTQUFTLENBQUM7UUFDZCxJQUFJLFVBQVUsQ0FBQyxLQUFLLElBQUksU0FBUyxFQUFFO1lBQ2pDLFNBQVMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1NBQzlCO1FBRUQsSUFBSSxhQUFhLENBQUM7UUFDbEIsSUFBSSxVQUFVLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUNoQyxhQUFhLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztTQUNqQztRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sK0JBQWMsQ0FBQztZQUNoQyxRQUFRO1lBQ1IsVUFBVTtZQUNWLE9BQU87WUFDUCxTQUFTO1lBQ1QsYUFBYTtZQUNiLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNqQixPQUFPLENBQUMsUUFBUSxDQUFDO29CQUNmLElBQUksRUFBRSx5QkFBeUI7b0JBQy9CLE9BQU8sRUFBRSxxQ0FBcUM7b0JBQzlDLEtBQUs7aUJBQ04sQ0FBQyxDQUFDO2dCQUVILFFBQVEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNuQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMiLCJmaWxlIjoibmVvLW9uZS1zZXJ2ZXItcGx1Z2luLW5ldHdvcmsvc3JjL3N0YXJ0Tm9kZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENMSUFyZ3MgfSBmcm9tICdAbmVvLW9uZS9zZXJ2ZXItcGx1Z2luJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY3JlYXRlRnVsbE5vZGUgfSBmcm9tICcuL2NyZWF0ZUZ1bGxOb2RlJztcbmltcG9ydCB7IGNyZWF0ZU5FT09ORU5vZGVDb25maWcgfSBmcm9tICcuL25vZGUnO1xuXG5leHBvcnQgY29uc3Qgc3RhcnROb2RlID0gKHsgdm9ycGFsLCBtb25pdG9yLCBzaHV0ZG93biwgbXV0YWJsZVNodXRkb3duRnVuY3MsIGxvZ0NvbmZpZyQgfTogQ0xJQXJncykgPT4ge1xuICB2b3JwYWxcbiAgICAuY29tbWFuZCgnc3RhcnQgbm9kZSA8ZGF0YVBhdGg+JywgYFN0YXJ0cyBhIGZ1bGwgbm9kZWApXG4gICAgLm9wdGlvbignLWMsIC0tY2hhaW4gPGNoYWluPicsICdQYXRoIG9mIGEgY2hhaW4uYWNjIGZpbGUgdG8gYm9vdHN0cmFwIHRoZSBub2RlJylcbiAgICAub3B0aW9uKCctZCAtLWR1bXAgPGR1bXA+JywgJ1BhdGggdG8gZHVtcCBhIGNoYWluLmFjYyBmaWxlIHRvJylcbiAgICAuYWN0aW9uKGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICBjb25zdCB7IGRhdGFQYXRoLCBvcHRpb25zOiBjbGlPcHRpb25zIH0gPSBhcmdzO1xuXG4gICAgICBjb25zdCBub2RlQ29uZmlnID0gY3JlYXRlTkVPT05FTm9kZUNvbmZpZyh7IGRhdGFQYXRoIH0pO1xuXG4gICAgICBjb25zdCBsb2dQYXRoID0gcGF0aC5yZXNvbHZlKGRhdGFQYXRoLCAnbG9nJyk7XG4gICAgICBjb25zdCBsb2dTdWJzY3JpcHRpb24gPSBub2RlQ29uZmlnLmNvbmZpZyRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25maWcpID0+IGNvbmZpZy5sb2cpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgbWFwKChjb25maWcpID0+ICh7XG4gICAgICAgICAgICBuYW1lOiAnbm9kZScsXG4gICAgICAgICAgICBwYXRoOiBsb2dQYXRoLFxuICAgICAgICAgICAgbGV2ZWw6IGNvbmZpZy5sZXZlbCxcbiAgICAgICAgICAgIG1heFNpemU6IGNvbmZpZy5tYXhTaXplLFxuICAgICAgICAgICAgbWF4RmlsZXM6IGNvbmZpZy5tYXhGaWxlcyxcbiAgICAgICAgICB9KSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShsb2dDb25maWckKTtcbiAgICAgIG11dGFibGVTaHV0ZG93bkZ1bmNzLnB1c2goKCkgPT4gbG9nU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuXG4gICAgICBsZXQgY2hhaW5GaWxlO1xuICAgICAgaWYgKGNsaU9wdGlvbnMuY2hhaW4gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNoYWluRmlsZSA9IGNsaU9wdGlvbnMuY2hhaW47XG4gICAgICB9XG5cbiAgICAgIGxldCBkdW1wQ2hhaW5GaWxlO1xuICAgICAgaWYgKGNsaU9wdGlvbnMuZHVtcCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgZHVtcENoYWluRmlsZSA9IGNsaU9wdGlvbnMuZHVtcDtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgbm9kZSA9IGF3YWl0IGNyZWF0ZUZ1bGxOb2RlKHtcbiAgICAgICAgZGF0YVBhdGgsXG4gICAgICAgIG5vZGVDb25maWcsXG4gICAgICAgIG1vbml0b3IsXG4gICAgICAgIGNoYWluRmlsZSxcbiAgICAgICAgZHVtcENoYWluRmlsZSxcbiAgICAgICAgb25FcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgbW9uaXRvci5sb2dFcnJvcih7XG4gICAgICAgICAgICBuYW1lOiAnbmVvX25vZGVfdW5jYXVnaHRfZXJyb3InLFxuICAgICAgICAgICAgbWVzc2FnZTogJ1VuY2F1Z2h0IG5vZGUgZXJyb3IsIHNodXR0aW5nIGRvd24uJyxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgc2h1dGRvd24oeyBleGl0Q29kZTogMSwgZXJyb3IgfSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgbm9kZS5zdGFydCgpO1xuICAgICAgbXV0YWJsZVNodXRkb3duRnVuY3MucHVzaChhc3luYyAoKSA9PiBub2RlLnN0b3AoKSk7XG4gICAgfSk7XG59O1xuIl19