@neo-one/server-plugin-network
Version:
NEO•ONE Server network plugin.
56 lines (54 loc) • 7.21 kB
JavaScript
;
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