From 8bf2c402844707deae098ce37e8f03a4db44f4bf Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Thu, 21 Feb 2019 15:04:53 +0200 Subject: [PATCH 01/19] feat(core-logger-pino): initial implementation --- packages/core-logger-pino/.gitattributes | 11 ++ packages/core-logger-pino/README.md | 23 ++++ .../core-logger-pino/__tests__/logger.test.ts | 100 ++++++++++++++++++ packages/core-logger-pino/package.json | 54 ++++++++++ packages/core-logger-pino/src/defaults.ts | 5 + packages/core-logger-pino/src/driver.ts | 99 +++++++++++++++++ packages/core-logger-pino/src/index.ts | 2 + packages/core-logger-pino/src/plugin.ts | 33 ++++++ packages/core-logger-pino/tsconfig.json | 7 ++ packages/core-snapshots-cli/src/utils.ts | 2 +- .../src/config/testnet/plugins.js | 15 +-- .../src/config/unitnet/plugins.js | 15 +-- packages/core/bin/config/devnet/plugins.js | 15 +-- packages/core/bin/config/mainnet/plugins.js | 15 +-- packages/core/bin/config/testnet/plugins.js | 15 +-- packages/core/package.json | 2 +- packages/core/src/commands/forger/run.ts | 2 +- 17 files changed, 342 insertions(+), 73 deletions(-) create mode 100644 packages/core-logger-pino/.gitattributes create mode 100644 packages/core-logger-pino/README.md create mode 100644 packages/core-logger-pino/__tests__/logger.test.ts create mode 100644 packages/core-logger-pino/package.json create mode 100644 packages/core-logger-pino/src/defaults.ts create mode 100644 packages/core-logger-pino/src/driver.ts create mode 100644 packages/core-logger-pino/src/index.ts create mode 100644 packages/core-logger-pino/src/plugin.ts create mode 100644 packages/core-logger-pino/tsconfig.json diff --git a/packages/core-logger-pino/.gitattributes b/packages/core-logger-pino/.gitattributes new file mode 100644 index 0000000000..60cc52db63 --- /dev/null +++ b/packages/core-logger-pino/.gitattributes @@ -0,0 +1,11 @@ +# Path-based git attributes +# https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html + +# Ignore all test and documentation with "export-ignore". +/.editorconfig export-ignore +/.gitattributes export-ignore +/.gitignore export-ignore +/.travis.yml export-ignore +/__tests__ export-ignore +/docs export-ignore +/README.md export-ignore diff --git a/packages/core-logger-pino/README.md b/packages/core-logger-pino/README.md new file mode 100644 index 0000000000..e824876f72 --- /dev/null +++ b/packages/core-logger-pino/README.md @@ -0,0 +1,23 @@ +# Ark Core - Pino Logger + +

+ +

+ +## Documentation + +You can find installation instructions and detailed instructions on how to use this package at the [dedicated documentation site](https://docs.ark.io/guidebook/core/plugins/core-logger-pino.html). + +## Security + +If you discover a security vulnerability within this package, please send an e-mail to security@ark.io. All security vulnerabilities will be promptly addressed. + +## Credits + +- [Brian Faust](https://github.com/faustbrian) +- [François-Xavier Thoorens](https://github.com/fix) +- [All Contributors](../../../../contributors) + +## License + +[MIT](LICENSE) © [ArkEcosystem](https://ark.io) diff --git a/packages/core-logger-pino/__tests__/logger.test.ts b/packages/core-logger-pino/__tests__/logger.test.ts new file mode 100644 index 0000000000..ae1e64e0ab --- /dev/null +++ b/packages/core-logger-pino/__tests__/logger.test.ts @@ -0,0 +1,100 @@ +import { AbstractLogger } from "@arkecosystem/core-logger"; +import * as capcon from "capture-console"; +import "jest-extended"; +import * as winston from "winston"; +import { WinstonLogger } from "../src"; + +let logger: AbstractLogger; +let message; + +beforeAll(() => { + const driver = new WinstonLogger({ + transports: [ + { + constructor: "Console", + package: "winston/lib/winston/transports/console", + options: { + level: "debug", + }, + }, + { + constructor: "File", + options: { filename: "tmp.log", level: "silly" }, + }, + ], + }); + + logger = driver.make(); + + capcon.startCapture(process.stdout, stdout => { + message += stdout; + }); +}); + +describe("Logger", () => { + describe("error", () => { + it("should log a message", () => { + logger.error("error_message"); + + expect(message).toMatch(/error/); + expect(message).toMatch(/error_message/); + message = null; + }); + }); + + describe("warn", () => { + it("should log a message", () => { + logger.warn("warning_message"); + + expect(message).toMatch(/warn/); + expect(message).toMatch(/warning_message/); + message = null; + }); + }); + + describe("info", () => { + it("should log a message", () => { + logger.info("info_message"); + + expect(message).toMatch(/info/); + expect(message).toMatch(/info_message/); + message = null; + }); + }); + + describe("debug", () => { + it("should log a message", () => { + logger.debug("debug_message"); + + expect(message).toMatch(/debug/); + expect(message).toMatch(/debug_message/); + message = null; + }); + }); + + describe("verbose", () => { + it("should log a message", () => { + logger.verbose("verbose_message"); + + expect(message).toMatch(/verbose/); + expect(message).toMatch(/verbose_message/); + message = null; + }); + }); + + describe("suppressConsoleOutput", () => { + it("should suppress console output", () => { + logger.suppressConsoleOutput(true); + + logger.info("silent_message"); + expect(message).toBeNull(); + + logger.suppressConsoleOutput(false); + + logger.info("non_silent_message"); + expect(message).toMatch(/non_silent_message/); + + message = null; + }); + }); +}); diff --git a/packages/core-logger-pino/package.json b/packages/core-logger-pino/package.json new file mode 100644 index 0000000000..44cc1fdd86 --- /dev/null +++ b/packages/core-logger-pino/package.json @@ -0,0 +1,54 @@ +{ + "name": "@arkecosystem/core-logger-pino", + "description": "Pino integration for Ark Core", + "version": "2.2.0-beta.4", + "contributors": [ + "François-Xavier Thoorens ", + "Brian Faust " + ], + "license": "MIT", + "main": "dist/index", + "types": "dist/index", + "files": [ + "dist" + ], + "scripts": { + "publish:alpha": "npm publish --tag alpha", + "publish:beta": "npm publish --tag beta", + "publish:rc": "npm publish --tag rc", + "publish:stable": "npm publish --tag latest", + "prepublishOnly": "yarn build", + "pretest": "yarn lint && yarn build", + "compile": "../../node_modules/typescript/bin/tsc", + "build": "yarn clean && yarn compile", + "build:watch": "yarn clean && yarn compile -w", + "clean": "del dist", + "docs": "../../node_modules/typedoc/bin/typedoc src --out docs", + "lint": "../../node_modules/tslint/bin/tslint -c ../../tslint.json 'src/**/*.ts' '__tests__/**/*.ts' --fix", + "test": "cross-env CORE_ENV=test jest --runInBand --forceExit", + "test:coverage": "cross-env CORE_ENV=test jest --coverage --coveragePathIgnorePatterns='/(defaults.ts|index.ts)$' --runInBand --forceExit", + "test:debug": "cross-env CORE_ENV=test node --inspect-brk ../../node_modules/.bin/jest --runInBand", + "test:watch": "cross-env CORE_ENV=test jest --runInBand --watch", + "test:watch:all": "cross-env CORE_ENV=test jest --runInBand --watchAll", + "updates": "../../node_modules/npm-check-updates/bin/npm-check-updates -a" + }, + "dependencies": { + "@arkecosystem/core-interfaces": "^2.2.0-beta.4", + "@arkecosystem/core-logger": "^2.2.0-beta.4", + "lodash.isempty": "^4.4.0" + }, + "devDependencies": { + "@types/capture-console": "^1.0.0", + "@types/lodash.isempty": "^4.4.4", + "capture-console": "^1.0.1" + }, + "publishConfig": { + "access": "public" + }, + "engines": { + "node": ">=10.x" + }, + "jest": { + "preset": "../../jest-preset.json" + } +} diff --git a/packages/core-logger-pino/src/defaults.ts b/packages/core-logger-pino/src/defaults.ts new file mode 100644 index 0000000000..0fb8c268fc --- /dev/null +++ b/packages/core-logger-pino/src/defaults.ts @@ -0,0 +1,5 @@ +export const defaults = { + name: `${process.env.CORE_TOKEN}-core`, + safe: true, + prettyPrint: { translateTime: true }, +}; diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts new file mode 100644 index 0000000000..1e18439d01 --- /dev/null +++ b/packages/core-logger-pino/src/driver.ts @@ -0,0 +1,99 @@ +import { AbstractLogger } from "@arkecosystem/core-logger"; +import "colors"; +import isEmpty from "lodash/isEmpty"; +import pino from "pino"; +import { inspect } from "util"; + +export class PinoLogger extends AbstractLogger { + public logger: pino.Logger; + public silent: boolean = false; + + constructor(readonly options) { + super(options); + } + + /** + * Make the logger instance. + */ + public make() { + this.logger = pino(this.options); + + return this; + } + + /** + * Log an error message. + * @param {*} message + * @return {void} + */ + public error(message: any): void { + this.createLog("error", message); + } + + /** + * Log a warning message. + * @param {*} message + * @return {void} + */ + public warn(message: any): void { + this.createLog("warn", message); + } + + /** + * Log an info message. + * @param {*} message + * @return {void} + */ + public info(message: any): void { + this.createLog("info", message); + } + + /** + * Log a debug message. + * @param {*} message + * @return {void} + */ + public debug(message: any): void { + this.createLog("debug", message); + } + + /** + * Log a verbose message. + * @param {*} message + * @return {void} + */ + public verbose(message: any): void { + this.createLog("trace", message); + } + + /** + * Suppress console output. + * @param {Boolean} + * @return {void} + */ + public suppressConsoleOutput(suppress: boolean): void { + this.silent = suppress; + } + + /** + * Log a message with the given method. + * @param {String} method + * @param {*} message + * @return {void} + */ + private createLog(method: string, message: any): void { + if (this.silent) { + return; + } + + if (isEmpty(message)) { + return; + } + + if (typeof message !== "string") { + message = inspect(message, { depth: 1 }); + } + + this.logger[method](message); + } +} diff --git a/packages/core-logger-pino/src/index.ts b/packages/core-logger-pino/src/index.ts new file mode 100644 index 0000000000..064795df6c --- /dev/null +++ b/packages/core-logger-pino/src/index.ts @@ -0,0 +1,2 @@ +export * from "./driver"; +export * from "./plugin"; diff --git a/packages/core-logger-pino/src/plugin.ts b/packages/core-logger-pino/src/plugin.ts new file mode 100644 index 0000000000..db57c3a778 --- /dev/null +++ b/packages/core-logger-pino/src/plugin.ts @@ -0,0 +1,33 @@ +import { Container } from "@arkecosystem/core-interfaces"; +import { LogManager } from "@arkecosystem/core-logger"; +import { defaults } from "./defaults"; +import { PinoLogger } from "./driver"; + +export const plugin: Container.PluginDescriptor = { + pkg: require("../package.json"), + defaults, + alias: "logger", + extends: "@arkecosystem/core-logger", + async register(container: Container.IContainer, options) { + const logManager: LogManager = container.resolvePlugin("logManager"); + await logManager.makeDriver(new PinoLogger(options)); + + const driver = logManager.driver(); + driver.debug(`Data Directory => ${process.env.CORE_PATH_DATA}`); + driver.debug(`Config Directory => ${process.env.CORE_PATH_CONFIG}`); + + if (process.env.CORE_PATH_CACHE) { + driver.debug(`Cache Directory => ${process.env.CORE_PATH_CACHE}`); + } + + if (process.env.CORE_PATH_LOG) { + driver.debug(`Log Directory => ${process.env.CORE_PATH_LOG}`); + } + + if (process.env.CORE_PATH_TEMP) { + driver.debug(`Temp Directory => ${process.env.CORE_PATH_TEMP}`); + } + + return driver; + }, +}; diff --git a/packages/core-logger-pino/tsconfig.json b/packages/core-logger-pino/tsconfig.json new file mode 100644 index 0000000000..0b089c5fa8 --- /dev/null +++ b/packages/core-logger-pino/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src/**/**.ts"] +} diff --git a/packages/core-snapshots-cli/src/utils.ts b/packages/core-snapshots-cli/src/utils.ts index 779bcdfc6f..1ef2a1b995 100644 --- a/packages/core-snapshots-cli/src/utils.ts +++ b/packages/core-snapshots-cli/src/utils.ts @@ -6,7 +6,7 @@ export const setUpLite = async options => { await app.setUp("2.0.0", options, { include: [ "@arkecosystem/core-logger", - "@arkecosystem/core-logger-winston", + "@arkecosystem/core-logger-pino", "@arkecosystem/core-event-emitter", "@arkecosystem/core-snapshots", ], diff --git a/packages/core-test-utils/src/config/testnet/plugins.js b/packages/core-test-utils/src/config/testnet/plugins.js index 0c6957d2e2..3c1bc15305 100644 --- a/packages/core-test-utils/src/config/testnet/plugins.js +++ b/packages/core-test-utils/src/config/testnet/plugins.js @@ -1,19 +1,6 @@ module.exports = { "@arkecosystem/core-event-emitter": {}, - "@arkecosystem/core-logger-winston": { - transports: { - console: { - options: { - level: process.env.CORE_LOG_LEVEL || "debug", - }, - }, - dailyRotate: { - options: { - level: process.env.CORE_LOG_LEVEL || "debug", - }, - }, - }, - }, + "@arkecosystem/core-logger-pino": {}, "@arkecosystem/core-database-postgres": { connection: { host: process.env.CORE_DB_HOST || "localhost", diff --git a/packages/core-test-utils/src/config/unitnet/plugins.js b/packages/core-test-utils/src/config/unitnet/plugins.js index 0c6957d2e2..3c1bc15305 100644 --- a/packages/core-test-utils/src/config/unitnet/plugins.js +++ b/packages/core-test-utils/src/config/unitnet/plugins.js @@ -1,19 +1,6 @@ module.exports = { "@arkecosystem/core-event-emitter": {}, - "@arkecosystem/core-logger-winston": { - transports: { - console: { - options: { - level: process.env.CORE_LOG_LEVEL || "debug", - }, - }, - dailyRotate: { - options: { - level: process.env.CORE_LOG_LEVEL || "debug", - }, - }, - }, - }, + "@arkecosystem/core-logger-pino": {}, "@arkecosystem/core-database-postgres": { connection: { host: process.env.CORE_DB_HOST || "localhost", diff --git a/packages/core/bin/config/devnet/plugins.js b/packages/core/bin/config/devnet/plugins.js index 2daa2e526d..8e74db761d 100644 --- a/packages/core/bin/config/devnet/plugins.js +++ b/packages/core/bin/config/devnet/plugins.js @@ -1,19 +1,6 @@ module.exports = { "@arkecosystem/core-event-emitter": {}, - "@arkecosystem/core-logger-winston": { - transports: { - console: { - options: { - level: process.env.CORE_LOG_LEVEL || "debug", - }, - }, - dailyRotate: { - options: { - level: process.env.CORE_LOG_LEVEL || "debug", - }, - }, - }, - }, + "@arkecosystem/core-logger-pino": {}, "@arkecosystem/core-database-postgres": { connection: { host: process.env.CORE_DB_HOST || "localhost", diff --git a/packages/core/bin/config/mainnet/plugins.js b/packages/core/bin/config/mainnet/plugins.js index 03e36299b3..ca8676e613 100644 --- a/packages/core/bin/config/mainnet/plugins.js +++ b/packages/core/bin/config/mainnet/plugins.js @@ -1,19 +1,6 @@ module.exports = { "@arkecosystem/core-event-emitter": {}, - "@arkecosystem/core-logger-winston": { - transports: { - console: { - options: { - level: process.env.CORE_LOG_LEVEL || "debug", - }, - }, - dailyRotate: { - options: { - level: process.env.CORE_LOG_LEVEL || "debug", - }, - }, - }, - }, + "@arkecosystem/core-logger-pino": {}, "@arkecosystem/core-database-postgres": { connection: { host: process.env.CORE_DB_HOST || "localhost", diff --git a/packages/core/bin/config/testnet/plugins.js b/packages/core/bin/config/testnet/plugins.js index f15ac8164a..151bfedfcc 100644 --- a/packages/core/bin/config/testnet/plugins.js +++ b/packages/core/bin/config/testnet/plugins.js @@ -1,19 +1,6 @@ module.exports = { "@arkecosystem/core-event-emitter": {}, - "@arkecosystem/core-logger-winston": { - transports: { - console: { - options: { - level: process.env.CORE_LOG_LEVEL || "debug", - }, - }, - dailyRotate: { - options: { - level: process.env.CORE_LOG_LEVEL || "debug", - }, - }, - }, - }, + "@arkecosystem/core-logger-pino": {}, "@arkecosystem/core-database-postgres": { connection: { host: process.env.CORE_DB_HOST || "localhost", diff --git a/packages/core/package.json b/packages/core/package.json index e47a6e0509..1225db6148 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -59,7 +59,7 @@ "@arkecosystem/core-event-emitter": "^2.2.0-beta.4", "@arkecosystem/core-forger": "^2.2.0-beta.4", "@arkecosystem/core-json-rpc": "^2.2.0-beta.4", - "@arkecosystem/core-logger-winston": "^2.2.0-beta.4", + "@arkecosystem/core-logger-pino": "^2.2.0-beta.4", "@arkecosystem/core-p2p": "^2.2.0-beta.4", "@arkecosystem/core-snapshots": "^2.2.0-beta.4", "@arkecosystem/core-transaction-pool": "^2.2.0-beta.4", diff --git a/packages/core/src/commands/forger/run.ts b/packages/core/src/commands/forger/run.ts index e3dcf13876..788cbe589c 100644 --- a/packages/core/src/commands/forger/run.ts +++ b/packages/core/src/commands/forger/run.ts @@ -26,7 +26,7 @@ $ ark forger:run --bip38="..." --password="..." "@arkecosystem/core-event-emitter", "@arkecosystem/core-config", "@arkecosystem/core-logger", - "@arkecosystem/core-logger-winston", + "@arkecosystem/core-logger-pino", "@arkecosystem/core-forger", ], options: { From b7e53bef8ba313da4d5d885802237dc56447433e Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Thu, 21 Feb 2019 15:11:23 +0200 Subject: [PATCH 02/19] refactor: remove emojis from log, unnecessary log processing --- packages/core-api/src/plugin.ts | 2 +- packages/core-blockchain/src/blockchain.ts | 12 ++++++------ .../src/processor/handlers/exception-handler.ts | 4 +--- .../src/processor/handlers/unchained-handler.ts | 4 ++-- packages/core-blockchain/src/state-machine.ts | 6 +++--- .../core-blockchain/src/utils/validate-generator.ts | 2 +- packages/core-container/src/container.ts | 2 +- packages/core-database/src/database-service.ts | 2 +- packages/core-database/src/wallet-manager.ts | 6 ++---- packages/core-forger/src/index.ts | 2 +- packages/core-graphql/src/index.ts | 2 +- packages/core-http-utils/src/plugins/whitelist.ts | 2 +- packages/core-json-rpc/src/index.ts | 2 +- packages/core-json-rpc/src/server/index.ts | 2 +- packages/core-logger-pino/README.md | 1 - packages/core-logger-pino/package.json | 1 - packages/core-logger-pino/src/driver.ts | 1 - packages/core-p2p/src/monitor.ts | 2 +- packages/core-snapshots/src/utils.ts | 4 ++-- packages/core-transaction-pool/src/connection.ts | 4 ++-- packages/core-webhooks/src/index.ts | 4 ++-- 21 files changed, 30 insertions(+), 37 deletions(-) diff --git a/packages/core-api/src/plugin.ts b/packages/core-api/src/plugin.ts index be469c15b2..52aaa651e3 100644 --- a/packages/core-api/src/plugin.ts +++ b/packages/core-api/src/plugin.ts @@ -8,7 +8,7 @@ export const plugin: Container.PluginDescriptor = { alias: "api", async register(container: Container.IContainer, options) { if (!options.enabled) { - container.resolvePlugin("logger").info("Public API is disabled :grey_exclamation:"); + container.resolvePlugin("logger").info("Public API is disabled"); return false; } diff --git a/packages/core-blockchain/src/blockchain.ts b/packages/core-blockchain/src/blockchain.ts index 6650fcd992..42d0b6aecc 100644 --- a/packages/core-blockchain/src/blockchain.ts +++ b/packages/core-blockchain/src/blockchain.ts @@ -75,9 +75,9 @@ export class Blockchain implements blockchain.IBlockchain { if (this.state.networkStart) { logger.warn( - "Ark Core is launched in Genesis Start mode. This is usually for starting the first node on the blockchain. Unless you know what you are doing, this is likely wrong. :warning:", + "Ark Core is launched in Genesis Start mode. This is usually for starting the first node on the blockchain. Unless you know what you are doing, this is likely wrong.", ); - logger.info("Starting Ark Core for a new world, welcome aboard :rocket:"); + logger.info("Starting Ark Core for a new world, welcome aboard"); } this.actions = stateMachine.actionMap(this); @@ -110,7 +110,7 @@ export class Blockchain implements blockchain.IBlockchain { if (action) { setTimeout(() => action.call(this, event), 0); } else { - logger.error(`No action '${actionKey}' found :interrobang:`); + logger.error(`No action '${actionKey}' found`); } }); @@ -248,7 +248,7 @@ export class Blockchain implements blockchain.IBlockchain { this.dispatch("NEWBLOCK"); this.enqueueBlocks([block]); } else { - logger.info(`Block disregarded because blockchain is not ready :exclamation:`); + logger.info(`Block disregarded because blockchain is not ready`); } } @@ -291,7 +291,7 @@ export class Blockchain implements blockchain.IBlockchain { this.state.lastDownloadedBlock = newLastBlock; }; - logger.info(`Removing ${pluralize("block", height - newHeight, true)} to reset current round :warning:`); + logger.info(`Removing ${pluralize("block", height - newHeight, true)} to reset current round`); let count = 0; const max = this.state.getLastBlock().data.height - newHeight; @@ -527,7 +527,7 @@ export class Blockchain implements blockchain.IBlockchain { block = block || this.getLastBlock(); const remaining = slots.getTime() - block.data.timestamp; - logger.info(`Remaining block timestamp ${remaining} :hourglass:`); + logger.info(`Remaining block timestamp ${remaining}`); // stop fast rebuild 7 days before the last network block return slots.getTime() - block.data.timestamp < 3600 * 24 * 7; diff --git a/packages/core-blockchain/src/processor/handlers/exception-handler.ts b/packages/core-blockchain/src/processor/handlers/exception-handler.ts index 52f05e8bec..50328146db 100644 --- a/packages/core-blockchain/src/processor/handlers/exception-handler.ts +++ b/packages/core-blockchain/src/processor/handlers/exception-handler.ts @@ -11,9 +11,7 @@ export class ExceptionHandler extends BlockHandler { return super.execute(); } - this.logger.warn( - `Block ${this.block.data.height.toLocaleString()} (${this.block.data.id}) forcibly accepted. :exclamation:`, - ); + this.logger.warn(`Block ${this.block.data.height.toLocaleString()} (${this.block.data.id}) forcibly accepted.`); return new AcceptBlockHandler(this.blockchain, this.block).execute(); } diff --git a/packages/core-blockchain/src/processor/handlers/unchained-handler.ts b/packages/core-blockchain/src/processor/handlers/unchained-handler.ts index f706288a43..a0e1d8bf4d 100644 --- a/packages/core-blockchain/src/processor/handlers/unchained-handler.ts +++ b/packages/core-blockchain/src/processor/handlers/unchained-handler.ts @@ -54,7 +54,7 @@ export class UnchainedHandler extends BlockHandler { const lastBlock = this.blockchain.getLastBlock(); if (this.block.data.height > lastBlock.data.height + 1) { this.logger.debug( - `Blockchain not ready to accept new block at height ${this.block.data.height.toLocaleString()}. Last block: ${lastBlock.data.height.toLocaleString()} :warning:`, + `Blockchain not ready to accept new block at height ${this.block.data.height.toLocaleString()}. Last block: ${lastBlock.data.height.toLocaleString()}`, ); // Also remove all remaining queued blocks. Since blocks are downloaded in batches, @@ -68,7 +68,7 @@ export class UnchainedHandler extends BlockHandler { return UnchainedBlockStatus.NotReadyToAcceptNewHeight; } else if (this.block.data.height < lastBlock.data.height) { this.logger.debug( - `Block ${this.block.data.height.toLocaleString()} disregarded because already in blockchain :warning:`, + `Block ${this.block.data.height.toLocaleString()} disregarded because already in blockchain`, ); return UnchainedBlockStatus.AlreadyInBlockchain; diff --git a/packages/core-blockchain/src/state-machine.ts b/packages/core-blockchain/src/state-machine.ts index b5f5754475..18c5c00504 100644 --- a/packages/core-blockchain/src/state-machine.ts +++ b/packages/core-blockchain/src/state-machine.ts @@ -104,7 +104,7 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ }, downloadFinished() { - logger.info("Block download finished :rocket:"); + logger.info("Block download finished"); if (stateStorage.networkStart) { // next time we will use normal behaviour @@ -394,7 +394,7 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ if (!blockchainAudit.valid) { // TODO: multiple attempts? rewind further? restore snapshot? - logger.error("FATAL: Failed to restore database integrity :skull: :skull: :skull:"); + logger.error("FATAL: Failed to restore database integrity"); logger.error(JSON.stringify(blockchainAudit.errors, null, 4)); blockchain.dispatch("FAILURE"); return; @@ -404,7 +404,7 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ const lastBlock = await blockchain.database.getLastBlock(); logger.info( - `Database integrity verified again after rollback to height ${lastBlock.data.height.toLocaleString()} :green_heart:`, + `Database integrity verified again after rollback to height ${lastBlock.data.height.toLocaleString()}`, ); blockchain.dispatch("SUCCESS"); diff --git a/packages/core-blockchain/src/utils/validate-generator.ts b/packages/core-blockchain/src/utils/validate-generator.ts index f517b58948..24baaf0fc2 100644 --- a/packages/core-blockchain/src/utils/validate-generator.ts +++ b/packages/core-blockchain/src/utils/validate-generator.ts @@ -16,7 +16,7 @@ export const validateGenerator = async (block: models.Block): Promise = logger.debug( `Could not decide if delegate ${generatorUsername} (${ block.data.generatorPublicKey - }) is allowed to forge block ${block.data.height.toLocaleString()} :grey_question:`, + }) is allowed to forge block ${block.data.height.toLocaleString()}`, ); } else if (forgingDelegate.publicKey !== block.data.generatorPublicKey) { const forgingUsername = database.walletManager.findByPublicKey(forgingDelegate.publicKey).username; diff --git a/packages/core-container/src/container.ts b/packages/core-container/src/container.ts index 058ec4bbe0..608ec339d4 100644 --- a/packages/core-container/src/container.ts +++ b/packages/core-container/src/container.ts @@ -247,7 +247,7 @@ export class Container implements container.IContainer { const logger = this.resolvePlugin("logger"); if (logger) { logger.suppressConsoleOutput(this.silentShutdown); - logger.info("Core is trying to gracefully shut down to avoid data corruption :pizza:"); + logger.info("Core is trying to gracefully shut down to avoid data corruption"); } try { diff --git a/packages/core-database/src/database-service.ts b/packages/core-database/src/database-service.ts index 7c9e327a22..0112ffe6c8 100644 --- a/packages/core-database/src/database-service.ts +++ b/packages/core-database/src/database-service.ts @@ -91,7 +91,7 @@ export class DatabaseService implements Database.IDatabaseService { } else { this.logger.warn( // tslint:disable-next-line:max-line-length - `Round ${round.toLocaleString()} has already been applied. This should happen only if you are a forger. :warning:`, + `Round ${round.toLocaleString()} has already been applied. This should happen only if you are a forger.`, ); } } diff --git a/packages/core-database/src/wallet-manager.ts b/packages/core-database/src/wallet-manager.ts index 0aecbd4a9e..4efbd611d2 100644 --- a/packages/core-database/src/wallet-manager.ts +++ b/packages/core-database/src/wallet-manager.ts @@ -303,7 +303,7 @@ export class WalletManager implements Database.IWalletManager { this.logger.debug(`Delegate by address: ${this.byAddress[generator]}`); if (this.byAddress[generator]) { - this.logger.info("This look like a bug, please report :bug:"); + this.logger.info("This look like a bug, please report"); } throw new Error(`Could not find delegate with publicKey ${generatorPublicKey}`); @@ -351,9 +351,7 @@ export class WalletManager implements Database.IWalletManager { const delegate = this.byPublicKey[block.data.generatorPublicKey]; if (!delegate) { - app.forceExit( - `Failed to lookup generator '${block.data.generatorPublicKey}' of block '${block.data.id}'. :skull:`, - ); + app.forceExit(`Failed to lookup generator '${block.data.generatorPublicKey}' of block '${block.data.id}'.`); } const revertedTransactions = []; diff --git a/packages/core-forger/src/index.ts b/packages/core-forger/src/index.ts index c01e157169..2d45bfd850 100644 --- a/packages/core-forger/src/index.ts +++ b/packages/core-forger/src/index.ts @@ -13,7 +13,7 @@ export const plugin: Container.PluginDescriptor = { const logger = container.resolvePlugin("logger"); if (!forgers) { - logger.info("Forger is disabled :grey_exclamation:"); + logger.info("Forger is disabled"); return false; } diff --git a/packages/core-graphql/src/index.ts b/packages/core-graphql/src/index.ts index 867988e21d..8989a6cc6d 100644 --- a/packages/core-graphql/src/index.ts +++ b/packages/core-graphql/src/index.ts @@ -12,7 +12,7 @@ export const plugin: Container.PluginDescriptor = { alias: "graphql", async register(container: Container.IContainer, options) { if (!options.enabled) { - container.resolvePlugin("logger").info("GraphQL API is disabled :grey_exclamation:"); + container.resolvePlugin("logger").info("GraphQL API is disabled"); return; } diff --git a/packages/core-http-utils/src/plugins/whitelist.ts b/packages/core-http-utils/src/plugins/whitelist.ts index 9bed9351aa..c1293082ed 100644 --- a/packages/core-http-utils/src/plugins/whitelist.ts +++ b/packages/core-http-utils/src/plugins/whitelist.ts @@ -24,7 +24,7 @@ export const whitelist = { } app.resolvePlugin("logger").warn( - `${remoteAddress} tried to access the ${options.name} without being whitelisted :warning:`, + `${remoteAddress} tried to access the ${options.name} without being whitelisted`, ); return Boom.forbidden(); diff --git a/packages/core-json-rpc/src/index.ts b/packages/core-json-rpc/src/index.ts index 384b06471b..71303fff87 100644 --- a/packages/core-json-rpc/src/index.ts +++ b/packages/core-json-rpc/src/index.ts @@ -12,7 +12,7 @@ export const plugin: Container.PluginDescriptor = { const logger = container.resolvePlugin("logger"); if (!options.enabled) { - logger.info("JSON-RPC Server is disabled :grey_exclamation:"); + logger.info("JSON-RPC Server is disabled"); return; } diff --git a/packages/core-json-rpc/src/server/index.ts b/packages/core-json-rpc/src/server/index.ts index fc1a9b5715..08dbe2aedb 100755 --- a/packages/core-json-rpc/src/server/index.ts +++ b/packages/core-json-rpc/src/server/index.ts @@ -7,7 +7,7 @@ import { Processor } from "./services/processor"; export async function startServer(options) { if (options.allowRemote) { app.resolvePlugin("logger").warn( - "JSON-RPC server allows remote connections, this is a potential security risk :warning:", + "JSON-RPC server allows remote connections, this is a potential security risk", ); } diff --git a/packages/core-logger-pino/README.md b/packages/core-logger-pino/README.md index e824876f72..6ba178e95b 100644 --- a/packages/core-logger-pino/README.md +++ b/packages/core-logger-pino/README.md @@ -15,7 +15,6 @@ If you discover a security vulnerability within this package, please send an e-m ## Credits - [Brian Faust](https://github.com/faustbrian) -- [François-Xavier Thoorens](https://github.com/fix) - [All Contributors](../../../../contributors) ## License diff --git a/packages/core-logger-pino/package.json b/packages/core-logger-pino/package.json index 44cc1fdd86..b14fe72d83 100644 --- a/packages/core-logger-pino/package.json +++ b/packages/core-logger-pino/package.json @@ -3,7 +3,6 @@ "description": "Pino integration for Ark Core", "version": "2.2.0-beta.4", "contributors": [ - "François-Xavier Thoorens ", "Brian Faust " ], "license": "MIT", diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts index 1e18439d01..2d95527936 100644 --- a/packages/core-logger-pino/src/driver.ts +++ b/packages/core-logger-pino/src/driver.ts @@ -1,5 +1,4 @@ import { AbstractLogger } from "@arkecosystem/core-logger"; -import "colors"; import isEmpty from "lodash/isEmpty"; import pino from "pino"; import { inspect } from "util"; diff --git a/packages/core-p2p/src/monitor.ts b/packages/core-p2p/src/monitor.ts index 95f632f878..f72f4d2e0a 100644 --- a/packages/core-p2p/src/monitor.ts +++ b/packages/core-p2p/src/monitor.ts @@ -778,7 +778,7 @@ export class Monitor implements P2P.IMonitor { const peerList = config.get("peers.list"); if (!peerList) { - app.forceExit("No seed peers defined in peers.json :interrobang:"); + app.forceExit("No seed peers defined in peers.json"); } let peers = peerList.map(peer => { diff --git a/packages/core-snapshots/src/utils.ts b/packages/core-snapshots/src/utils.ts index 6b1559e74c..16121a9318 100644 --- a/packages/core-snapshots/src/utils.ts +++ b/packages/core-snapshots/src/utils.ts @@ -33,7 +33,7 @@ export const copySnapshot = (sourceFolder, destFolder, codec) => { fs.ensureFileSync(paths.dest.transactions); if (!fs.existsSync(paths.source.blocks) || !fs.existsSync(paths.source.transactions)) { - app.forceExit(`Unable to copy snapshot from ${sourceFolder} as it doesn't exist :bomb:`); + app.forceExit(`Unable to copy snapshot from ${sourceFolder} as it doesn't exist`); } fs.copyFileSync(paths.source.blocks, paths.dest.blocks); @@ -73,7 +73,7 @@ export const getSnapshotInfo = folder => { export const readMetaJSON = folder => { const metaFileInfo = this.getFilePath("meta.json", folder); if (!fs.existsSync(metaFileInfo)) { - app.forceExit("Meta file meta.json not found. Exiting :bomb:"); + app.forceExit("Meta file meta.json not found. Exiting"); } return fs.readJSONSync(metaFileInfo); diff --git a/packages/core-transaction-pool/src/connection.ts b/packages/core-transaction-pool/src/connection.ts index 01766d8475..77c718fb41 100644 --- a/packages/core-transaction-pool/src/connection.ts +++ b/packages/core-transaction-pool/src/connection.ts @@ -394,7 +394,7 @@ export class TransactionPool implements transactionPool.ITransactionPool { this.blockedByPublicKey[senderPublicKey] = blockReleaseTime; - logger.warn(`Sender ${senderPublicKey} blocked until ${this.blockedByPublicKey[senderPublicKey]} :stopwatch:`); + logger.warn(`Sender ${senderPublicKey} blocked until ${this.blockedByPublicKey[senderPublicKey]}`); return blockReleaseTime; } @@ -437,7 +437,7 @@ export class TransactionPool implements transactionPool.ITransactionPool { logger.error( `CanApply transaction test failed on acceptChainedBlock() in transaction pool for transaction id:${ data.id - } due to ${JSON.stringify(errors)}. Possible double spending attack :bomb:`, + } due to ${JSON.stringify(errors)}. Possible double spending attack`, ); } } diff --git a/packages/core-webhooks/src/index.ts b/packages/core-webhooks/src/index.ts index 109e380a5e..e480348a97 100644 --- a/packages/core-webhooks/src/index.ts +++ b/packages/core-webhooks/src/index.ts @@ -12,7 +12,7 @@ export const plugin: Container.PluginDescriptor = { const logger = container.resolvePlugin("logger"); if (!options.enabled) { - logger.info("Webhooks are disabled :grey_exclamation:"); + logger.info("Webhooks are disabled"); return; } @@ -25,7 +25,7 @@ export const plugin: Container.PluginDescriptor = { return startServer(options.server); } - logger.info("Webhooks API server is disabled :grey_exclamation:"); + logger.info("Webhooks API server is disabled"); }, async deregister(container: Container.IContainer, options) { if (options.server.enabled) { From 4afd1b531562770e774b613bca1cb39f88d12491 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Thu, 21 Feb 2019 15:13:24 +0200 Subject: [PATCH 03/19] refactor: remove emojis from log, unnecessary log processing --- packages/core-blockchain/src/blockchain.ts | 6 +++--- .../src/processor/block-processor.ts | 4 ++-- .../src/processor/handlers/unchained-handler.ts | 6 +++--- packages/core-blockchain/src/state-machine.ts | 2 +- .../src/utils/validate-generator.ts | 4 ++-- packages/core-database/src/database-service.ts | 4 ++-- packages/core-forger/src/client.ts | 4 ++-- packages/core-forger/src/manager.ts | 6 +++--- packages/core-p2p/src/monitor.ts | 14 ++++++-------- packages/core-snapshots/src/manager.ts | 2 +- packages/core-snapshots/src/transport/index.ts | 2 +- 11 files changed, 26 insertions(+), 28 deletions(-) diff --git a/packages/core-blockchain/src/blockchain.ts b/packages/core-blockchain/src/blockchain.ts index 42d0b6aecc..4489833980 100644 --- a/packages/core-blockchain/src/blockchain.ts +++ b/packages/core-blockchain/src/blockchain.ts @@ -218,7 +218,7 @@ export class Blockchain implements blockchain.IBlockchain { * @return {void} */ public async postTransactions(transactions) { - logger.info(`Received ${transactions.length} new ${pluralize("transaction", transactions.length)} :moneybag:`); + logger.info(`Received ${transactions.length} new ${pluralize("transaction", transactions.length)}`); await this.transactionPool.addTransactions(transactions); } @@ -437,10 +437,10 @@ export class Blockchain implements blockchain.IBlockchain { return callback(); } this.state.lastDownloadedBlock = lastBlock; - logger.info(`Block ${block.data.height.toLocaleString()} disregarded because on a fork :knife_fork_plate:`); + logger.info(`Block ${block.data.height.toLocaleString()} disregarded because on a fork`); return callback(); } - logger.warn(`Block ${block.data.height.toLocaleString()} disregarded because verification failed :scroll:`); + logger.warn(`Block ${block.data.height.toLocaleString()} disregarded because verification failed`); logger.warn(JSON.stringify(block.verification, null, 4)); return callback(); } diff --git a/packages/core-blockchain/src/processor/block-processor.ts b/packages/core-blockchain/src/processor/block-processor.ts index 29d51782db..3009be231d 100644 --- a/packages/core-blockchain/src/processor/block-processor.ts +++ b/packages/core-blockchain/src/processor/block-processor.ts @@ -71,7 +71,7 @@ export class BlockProcessor { this.logger.warn( `Block ${block.data.height.toLocaleString()} (${ block.data.id - }) disregarded because verification failed :scroll:`, + }) disregarded because verification failed`, ); this.logger.warn(JSON.stringify(block.verification, null, 4)); return false; @@ -90,7 +90,7 @@ export class BlockProcessor { ); if (forgedIds.length > 0) { this.logger.warn( - `Block ${block.data.height.toLocaleString()} disregarded, because it contains already forged transactions :scroll:`, + `Block ${block.data.height.toLocaleString()} disregarded, because it contains already forged transactions`, ); this.logger.debug(`${JSON.stringify(forgedIds, null, 4)}`); return true; diff --git a/packages/core-blockchain/src/processor/handlers/unchained-handler.ts b/packages/core-blockchain/src/processor/handlers/unchained-handler.ts index a0e1d8bf4d..b2decc300d 100644 --- a/packages/core-blockchain/src/processor/handlers/unchained-handler.ts +++ b/packages/core-blockchain/src/processor/handlers/unchained-handler.ts @@ -73,7 +73,7 @@ export class UnchainedHandler extends BlockHandler { return UnchainedBlockStatus.AlreadyInBlockchain; } else if (this.block.data.height === lastBlock.data.height && this.block.data.id === lastBlock.data.id) { - this.logger.debug(`Block ${this.block.data.height.toLocaleString()} just received :chains:`); + this.logger.debug(`Block ${this.block.data.height.toLocaleString()} just received`); return UnchainedBlockStatus.EqualToLastBlock; } else if (this.block.data.timestamp < lastBlock.data.timestamp) { this.logger.debug( @@ -82,14 +82,14 @@ export class UnchainedHandler extends BlockHandler { return UnchainedBlockStatus.InvalidTimestamp; } else { if (this.isValidGenerator) { - this.logger.warn(`Detect double forging by ${this.block.data.generatorPublicKey} :chains:`); + this.logger.warn(`Detect double forging by ${this.block.data.generatorPublicKey}`); return UnchainedBlockStatus.DoubleForging; } this.logger.info( `Forked block disregarded because it is not allowed to be forged. Caused by delegate: ${ this.block.data.generatorPublicKey - } :bangbang:`, + }`, ); return UnchainedBlockStatus.GeneratorMismatch; diff --git a/packages/core-blockchain/src/state-machine.ts b/packages/core-blockchain/src/state-machine.ts index 18c5c00504..3f94ddf6e1 100644 --- a/packages/core-blockchain/src/state-machine.ts +++ b/packages/core-blockchain/src/state-machine.ts @@ -369,7 +369,7 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ await blockchain.removeBlocks(random); - logger.info(`Removed ${pluralize("block", random, true)} :wastebasket:`); + logger.info(`Removed ${pluralize("block", random, true)}`); await blockchain.transactionPool.buildWallets(); await blockchain.p2p.refreshPeersAfterFork(); diff --git a/packages/core-blockchain/src/utils/validate-generator.ts b/packages/core-blockchain/src/utils/validate-generator.ts index 24baaf0fc2..34f3c5f799 100644 --- a/packages/core-blockchain/src/utils/validate-generator.ts +++ b/packages/core-blockchain/src/utils/validate-generator.ts @@ -24,7 +24,7 @@ export const validateGenerator = async (block: models.Block): Promise = logger.warn( `Delegate ${generatorUsername} (${ block.data.generatorPublicKey - }) not allowed to forge, should be ${forgingUsername} (${forgingDelegate.publicKey}) :-1:`, + }) not allowed to forge, should be ${forgingUsername} (${forgingDelegate.publicKey})`, ); return false; @@ -33,7 +33,7 @@ export const validateGenerator = async (block: models.Block): Promise = logger.debug( `Delegate ${generatorUsername} (${ block.data.generatorPublicKey - }) allowed to forge block ${block.data.height.toLocaleString()} :+1:`, + }) allowed to forge block ${block.data.height.toLocaleString()}`, ); return true; diff --git a/packages/core-database/src/database-service.ts b/packages/core-database/src/database-service.ts index 0112ffe6c8..63b8387f25 100644 --- a/packages/core-database/src/database-service.ts +++ b/packages/core-database/src/database-service.ts @@ -72,7 +72,7 @@ export class DatabaseService implements Database.IDatabaseService { this.forgingDelegates.length === 0 || (this.forgingDelegates.length && this.forgingDelegates[0].round !== round) ) { - this.logger.info(`Starting Round ${round.toLocaleString()} :dove_of_peace:`); + this.logger.info(`Starting Round ${round.toLocaleString()}`); try { this.updateDelegateStats(this.forgingDelegates); @@ -386,7 +386,7 @@ export class DatabaseService implements Database.IDatabaseService { const { round, nextRound, maxDelegates } = roundCalculator.calculateRound(height); if (nextRound === round + 1 && height >= maxDelegates) { - this.logger.info(`Back to previous round: ${round.toLocaleString()} :back:`); + this.logger.info(`Back to previous round: ${round.toLocaleString()}`); const delegates = await this.calcPreviousActiveDelegates(round); this.forgingDelegates = await this.getActiveDelegates(height, delegates); diff --git a/packages/core-forger/src/client.ts b/packages/core-forger/src/client.ts index f19b579f8c..c91b28275a 100644 --- a/packages/core-forger/src/client.ts +++ b/packages/core-forger/src/client.ts @@ -44,7 +44,7 @@ export class Client { this.logger.debug( `Broadcasting forged block id:${block.id} at height:${block.height.toLocaleString()} with ${ block.numberOfTransactions - } transactions to ${this.host} :package:`, + } transactions to ${this.host}`, ); return this.__post(`${this.host}/internal/blocks`, { block }); @@ -164,7 +164,7 @@ export class Client { this.host = host; } catch (error) { - this.logger.debug(`${host} didn't respond to the forger. Trying another host :sparkler:`); + this.logger.debug(`${host} didn't respond to the forger. Trying another host`); if (wait > 0) { await delay(wait); diff --git a/packages/core-forger/src/manager.ts b/packages/core-forger/src/manager.ts index 4433cc9d17..89df27544c 100644 --- a/packages/core-forger/src/manager.ts +++ b/packages/core-forger/src/manager.ts @@ -147,7 +147,7 @@ export class ForgerManager { } // README: The Blockchain is ready but an action still failed. - this.logger.error(`Forging failed: ${error.message} :bangbang:`); + this.logger.error(`Forging failed: ${error.message}`); if (!isEmpty(round)) { this.logger.info( @@ -188,7 +188,7 @@ export class ForgerManager { const block = await delegate.forge(transactions, blockOptions); const username = this.usernames[delegate.publicKey]; - this.logger.info(`Forged new block ${block.data.id} by delegate ${username} (${delegate.publicKey}) :trident:`); + this.logger.info(`Forged new block ${block.data.id} by delegate ${username} (${delegate.publicKey})`); await this.client.broadcast(block.toJson()); @@ -212,7 +212,7 @@ export class ForgerManager { this.logger.debug( `Received ${pluralize("transaction", transactions.length, true)} from the pool containing ${ response.poolSize - } :money_with_wings:`, + }`, ); } diff --git a/packages/core-p2p/src/monitor.ts b/packages/core-p2p/src/monitor.ts index f72f4d2e0a..cc023873c6 100644 --- a/packages/core-p2p/src/monitor.ts +++ b/packages/core-p2p/src/monitor.ts @@ -220,7 +220,7 @@ export class Monitor implements P2P.IMonitor { const pingDelay = fast ? 1500 : localConfig.get("globalTimeout"); const max = keys.length; - logger.info(`Checking ${max} peers :telescope:`); + logger.info(`Checking ${max} peers`); const peerErrors = {}; await Promise.all( keys.map(async ip => { @@ -595,7 +595,7 @@ export class Monitor implements P2P.IMonitor { "peer", peersMostCommonHeight.length, true, - )} are at height ${peersMostCommonHeight[0].state.height.toLocaleString()} and lagging behind last height ${lastBlock.data.height.toLocaleString()}. :zzz:`, + )} are at height ${peersMostCommonHeight[0].state.height.toLocaleString()} and lagging behind last height ${lastBlock.data.height.toLocaleString()}.`, ); return state; } @@ -628,13 +628,13 @@ export class Monitor implements P2P.IMonitor { const quota = chosenPeers.length / flatten(commonIdGroups).length; if (quota < 0.66) { // or quota too low TODO: find better number - logger.info(`Common id quota '${quota}' is too low. Going to rollback. :repeat:`); + logger.info(`Common id quota '${quota}' is too low. Going to rollback.`); state = "rollback"; } else if (badLastBlock) { // Rollback if last block is bad and quota high logger.info( `Last block id ${lastBlock.data.id} is bad, ` + - `but got enough common id quota: ${quota}. Going to rollback. :repeat:`, + `but got enough common id quota: ${quota}. Going to rollback.`, ); state = "rollback"; } @@ -663,7 +663,7 @@ export class Monitor implements P2P.IMonitor { logger.info( `All peers at most common height ${peersMostCommonHeight[0].state.height.toLocaleString()} share the same block id${ commonHeader ? ` '${commonHeader.id}'` : "" - }. :pray:`, + }.`, ); } @@ -729,9 +729,7 @@ export class Monitor implements P2P.IMonitor { logger.info(`Your NTP connectivity has been verified by ${host}`); - logger.info( - `Local clock is off by ${time.t < 0 ? "-" : ""}${prettyMs(Math.abs(time.t))} from NTP :alarm_clock:`, - ); + logger.info(`Local clock is off by ${time.t < 0 ? "-" : ""}${prettyMs(Math.abs(time.t))} from NTP`); } catch (error) { logger.error(error.message); } diff --git a/packages/core-snapshots/src/manager.ts b/packages/core-snapshots/src/manager.ts index 0e872d2305..0042a9c4af 100644 --- a/packages/core-snapshots/src/manager.ts +++ b/packages/core-snapshots/src/manager.ts @@ -55,7 +55,7 @@ export class SnapshotManager { logger.info( `Import from folder ${ params.meta.folder - } completed. Last block in database: ${lastBlock.height.toLocaleString()} :+1:`, + } completed. Last block in database: ${lastBlock.height.toLocaleString()}`, ); if (!params.skipRestartRound) { const newLastBlock = await this.database.rollbackChain(lastBlock.height); diff --git a/packages/core-snapshots/src/transport/index.ts b/packages/core-snapshots/src/transport/index.ts index 8dca3e4d96..779acaceca 100644 --- a/packages/core-snapshots/src/transport/index.ts +++ b/packages/core-snapshots/src/transport/index.ts @@ -132,7 +132,7 @@ export const verifyTable = async (table, options) => { }); readStream.on("finish", () => { - logger.info(`Snapshot file ${sourceFile} succesfully verified :+1:`); + logger.info(`Snapshot file ${sourceFile} succesfully verified`); }); }; From 6d4652976e7a565558640ad8ee74eb744fe0201f Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 08:55:40 +0200 Subject: [PATCH 04/19] feat(core-logger-pino): daily rotating log --- .circleci/config.yml | 32 +++++++++--- packages/core-logger-pino/package.json | 3 +- packages/core-logger-pino/src/driver.ts | 66 ++++++++++--------------- yarn.lock | 5 ++ 4 files changed, 57 insertions(+), 49 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 587978f2a4..80222a2caf 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -53,6 +53,7 @@ jobs: - ./packages/core-jest-matchers/node_modules - ./packages/core-json-rpc/node_modules - ./packages/core-logger/node_modules + - ./packages/core-logger-pino/node_modules - ./packages/core-logger-winston/node_modules - ./packages/core-p2p/node_modules - ./packages/core-snapshots/node_modules @@ -161,6 +162,7 @@ jobs: - ./packages/core-jest-matchers/node_modules - ./packages/core-json-rpc/node_modules - ./packages/core-logger/node_modules + - ./packages/core-logger-pino/node_modules - ./packages/core-logger-winston/node_modules - ./packages/core-p2p/node_modules - ./packages/core-snapshots/node_modules @@ -269,6 +271,7 @@ jobs: - ./packages/core-jest-matchers/node_modules - ./packages/core-json-rpc/node_modules - ./packages/core-logger/node_modules + - ./packages/core-logger-pino/node_modules - ./packages/core-logger-winston/node_modules - ./packages/core-p2p/node_modules - ./packages/core-snapshots/node_modules @@ -320,15 +323,15 @@ jobs: cd ~/core/.circleci && ./rebuild-db.sh && cd ~/core/packages/core-logger && yarn test:coverage - run: - name: core-logger-winston + name: core-logger-pino command: >- cd ~/core/.circleci && ./rebuild-db.sh && cd - ~/core/packages/core-logger-winston && yarn test:coverage + ~/core/packages/core-logger-pino && yarn test:coverage - run: - name: core-p2p + name: core-logger-winston command: >- cd ~/core/.circleci && ./rebuild-db.sh && cd - ~/core/packages/core-p2p && yarn test:coverage + ~/core/packages/core-logger-winston && yarn test:coverage - run: name: Last 1000 lines of test output when: on_fail @@ -392,6 +395,7 @@ jobs: - ./packages/core-jest-matchers/node_modules - ./packages/core-json-rpc/node_modules - ./packages/core-logger/node_modules + - ./packages/core-logger-pino/node_modules - ./packages/core-logger-winston/node_modules - ./packages/core-p2p/node_modules - ./packages/core-snapshots/node_modules @@ -407,6 +411,11 @@ jobs: - run: name: Create .core/database directory command: mkdir -p $HOME/.core/database + - run: + name: core-p2p + command: >- + cd ~/core/.circleci && ./rebuild-db.sh && cd + ~/core/packages/core-p2p && yarn test:coverage - run: name: core-snapshots command: >- @@ -510,6 +519,7 @@ jobs: - ./packages/core-jest-matchers/node_modules - ./packages/core-json-rpc/node_modules - ./packages/core-logger/node_modules + - ./packages/core-logger-pino/node_modules - ./packages/core-logger-winston/node_modules - ./packages/core-p2p/node_modules - ./packages/core-snapshots/node_modules @@ -561,15 +571,15 @@ jobs: cd ~/core/.circleci && ./rebuild-db.sh && cd ~/core/packages/core-logger && yarn test:coverage - run: - name: core-logger-winston + name: core-logger-pino command: >- cd ~/core/.circleci && ./rebuild-db.sh && cd - ~/core/packages/core-logger-winston && yarn test:coverage + ~/core/packages/core-logger-pino && yarn test:coverage - run: - name: core-p2p + name: core-logger-winston command: >- cd ~/core/.circleci && ./rebuild-db.sh && cd - ~/core/packages/core-p2p && yarn test:coverage + ~/core/packages/core-logger-winston && yarn test:coverage - run: name: Last 1000 lines of test output when: on_fail @@ -633,6 +643,7 @@ jobs: - ./packages/core-jest-matchers/node_modules - ./packages/core-json-rpc/node_modules - ./packages/core-logger/node_modules + - ./packages/core-logger-pino/node_modules - ./packages/core-logger-winston/node_modules - ./packages/core-p2p/node_modules - ./packages/core-snapshots/node_modules @@ -648,6 +659,11 @@ jobs: - run: name: Create .core/database directory command: mkdir -p $HOME/.core/database + - run: + name: core-p2p + command: >- + cd ~/core/.circleci && ./rebuild-db.sh && cd + ~/core/packages/core-p2p && yarn test:coverage - run: name: core-snapshots command: >- diff --git a/packages/core-logger-pino/package.json b/packages/core-logger-pino/package.json index b14fe72d83..e0ab3002fc 100644 --- a/packages/core-logger-pino/package.json +++ b/packages/core-logger-pino/package.json @@ -34,7 +34,8 @@ "dependencies": { "@arkecosystem/core-interfaces": "^2.2.0-beta.4", "@arkecosystem/core-logger": "^2.2.0-beta.4", - "lodash.isempty": "^4.4.0" + "lodash.isempty": "^4.4.0", + "rotating-file-stream": "^1.4.0" }, "devDependencies": { "@types/capture-console": "^1.0.0", diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts index 2d95527936..ab22662889 100644 --- a/packages/core-logger-pino/src/driver.ts +++ b/packages/core-logger-pino/src/driver.ts @@ -1,6 +1,7 @@ import { AbstractLogger } from "@arkecosystem/core-logger"; import isEmpty from "lodash/isEmpty"; import pino from "pino"; +import rfs from "rotating-file-stream"; import { inspect } from "util"; export class PinoLogger extends AbstractLogger { @@ -11,75 +12,37 @@ export class PinoLogger extends AbstractLogger { super(options); } - /** - * Make the logger instance. - */ public make() { - this.logger = pino(this.options); + // @TODO enable CLI output + this.logger = pino(this.options, this.getWriteStream()); return this; } - /** - * Log an error message. - * @param {*} message - * @return {void} - */ public error(message: any): void { this.createLog("error", message); } - /** - * Log a warning message. - * @param {*} message - * @return {void} - */ public warn(message: any): void { this.createLog("warn", message); } - /** - * Log an info message. - * @param {*} message - * @return {void} - */ public info(message: any): void { this.createLog("info", message); } - /** - * Log a debug message. - * @param {*} message - * @return {void} - */ public debug(message: any): void { this.createLog("debug", message); } - /** - * Log a verbose message. - * @param {*} message - * @return {void} - */ public verbose(message: any): void { this.createLog("trace", message); } - /** - * Suppress console output. - * @param {Boolean} - * @return {void} - */ public suppressConsoleOutput(suppress: boolean): void { this.silent = suppress; } - /** - * Log a message with the given method. - * @param {String} method - * @param {*} message - * @return {void} - */ private createLog(method: string, message: any): void { if (this.silent) { return; @@ -95,4 +58,27 @@ export class PinoLogger extends AbstractLogger { this.logger[method](message); } + + private getWriteStream() { + const withLeadingZero = (num: number) => (num > 9 ? "" : "0") + num; + + const createFileName = (time: Date) => { + if (!time) { + return "core.log"; + } + + const year = withLeadingZero(time.getFullYear()); + const month = withLeadingZero(time.getMonth()); + const day = withLeadingZero(time.getDate()); + + return `${year}-${month}-${day}.log`; + }; + + return rfs(createFileName, { + path: process.env.CORE_PATH_LOG, + interval: "1d", + maxSize: "100m", + maxFiles: 10, + }); + } } diff --git a/yarn.lock b/yarn.lock index 6417b3b7b0..87e2037d76 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12540,6 +12540,11 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rotating-file-stream@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/rotating-file-stream/-/rotating-file-stream-1.4.0.tgz#7df5dcfe1c8ac32296cee4ab79430d189608c780" + integrity sha512-y1hYZ+JcgPSCchbfeZYuFed0GyWpdcs7TR3eagZmvFTv4nWZq86gxyMmtuV4z8/D8ozcfJ2uJw4QCzQdn5X+WQ== + router-ips@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/router-ips/-/router-ips-1.0.0.tgz#44e00858ebebc0133d58e40b2cd8a1fbb04203f5" From 63eb8ea8df501019abe0df536219e57446d7615a Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 09:03:20 +0200 Subject: [PATCH 05/19] test(core-logger-pino): adjust failing tests --- .../core-logger-pino/__tests__/logger.test.ts | 25 +++++++------------ packages/core-logger-pino/package.json | 1 + packages/core-logger-pino/src/defaults.ts | 1 + packages/core-logger-pino/src/driver.ts | 7 +++--- 4 files changed, 15 insertions(+), 19 deletions(-) diff --git a/packages/core-logger-pino/__tests__/logger.test.ts b/packages/core-logger-pino/__tests__/logger.test.ts index ae1e64e0ab..aa04f732c0 100644 --- a/packages/core-logger-pino/__tests__/logger.test.ts +++ b/packages/core-logger-pino/__tests__/logger.test.ts @@ -1,27 +1,20 @@ import { AbstractLogger } from "@arkecosystem/core-logger"; import * as capcon from "capture-console"; import "jest-extended"; -import * as winston from "winston"; -import { WinstonLogger } from "../src"; +import { tmpdir } from "os"; +import { PinoLogger } from "../src"; let logger: AbstractLogger; let message; beforeAll(() => { - const driver = new WinstonLogger({ - transports: [ - { - constructor: "Console", - package: "winston/lib/winston/transports/console", - options: { - level: "debug", - }, - }, - { - constructor: "File", - options: { filename: "tmp.log", level: "silly" }, - }, - ], + process.env.CORE_PATH_LOG = tmpdir(); + + const driver = new PinoLogger({ + name: "ark-core", + safe: true, + prettyPrint: { translateTime: true }, + level: "trace", }); logger = driver.make(); diff --git a/packages/core-logger-pino/package.json b/packages/core-logger-pino/package.json index e0ab3002fc..e94f31364f 100644 --- a/packages/core-logger-pino/package.json +++ b/packages/core-logger-pino/package.json @@ -35,6 +35,7 @@ "@arkecosystem/core-interfaces": "^2.2.0-beta.4", "@arkecosystem/core-logger": "^2.2.0-beta.4", "lodash.isempty": "^4.4.0", + "pino-multi-stream": "^4.0.2", "rotating-file-stream": "^1.4.0" }, "devDependencies": { diff --git a/packages/core-logger-pino/src/defaults.ts b/packages/core-logger-pino/src/defaults.ts index 0fb8c268fc..0851a868ba 100644 --- a/packages/core-logger-pino/src/defaults.ts +++ b/packages/core-logger-pino/src/defaults.ts @@ -2,4 +2,5 @@ export const defaults = { name: `${process.env.CORE_TOKEN}-core`, safe: true, prettyPrint: { translateTime: true }, + level: process.env.CORE_LOG_LEVEL || "debug", }; diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts index ab22662889..b2030c71e3 100644 --- a/packages/core-logger-pino/src/driver.ts +++ b/packages/core-logger-pino/src/driver.ts @@ -13,8 +13,9 @@ export class PinoLogger extends AbstractLogger { } public make() { - // @TODO enable CLI output - this.logger = pino(this.options, this.getWriteStream()); + // @TODO add support for multistream + this.logger = pino(this.options); + // this.logger = pino(this.options, this.getWriteStream()); return this; } @@ -77,7 +78,7 @@ export class PinoLogger extends AbstractLogger { return rfs(createFileName, { path: process.env.CORE_PATH_LOG, interval: "1d", - maxSize: "100m", + maxSize: "100M", maxFiles: 10, }); } From f0287ad53919aca02f1c376d95fa90842792fbc2 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 09:14:06 +0200 Subject: [PATCH 06/19] feat(core-logger-pino): multi stream logging --- .../core-logger-pino/__tests__/logger.test.ts | 5 ++++- packages/core-logger-pino/src/defaults.ts | 3 ++- packages/core-logger-pino/src/driver.ts | 15 +++++++++++---- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/core-logger-pino/__tests__/logger.test.ts b/packages/core-logger-pino/__tests__/logger.test.ts index aa04f732c0..704d459473 100644 --- a/packages/core-logger-pino/__tests__/logger.test.ts +++ b/packages/core-logger-pino/__tests__/logger.test.ts @@ -13,7 +13,6 @@ beforeAll(() => { const driver = new PinoLogger({ name: "ark-core", safe: true, - prettyPrint: { translateTime: true }, level: "trace", }); @@ -22,6 +21,10 @@ beforeAll(() => { capcon.startCapture(process.stdout, stdout => { message += stdout; }); + + capcon.startCapture(process.stderr, stderr => { + message += stderr; + }); }); describe("Logger", () => { diff --git a/packages/core-logger-pino/src/defaults.ts b/packages/core-logger-pino/src/defaults.ts index 0851a868ba..8c800a7831 100644 --- a/packages/core-logger-pino/src/defaults.ts +++ b/packages/core-logger-pino/src/defaults.ts @@ -1,6 +1,7 @@ export const defaults = { name: `${process.env.CORE_TOKEN}-core`, safe: true, - prettyPrint: { translateTime: true }, + // @FIX: this causes the multistream to not log to the CLI + // prettyPrint: { translateTime: true }, level: process.env.CORE_LOG_LEVEL || "debug", }; diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts index b2030c71e3..26499c4dfd 100644 --- a/packages/core-logger-pino/src/driver.ts +++ b/packages/core-logger-pino/src/driver.ts @@ -1,6 +1,7 @@ import { AbstractLogger } from "@arkecosystem/core-logger"; import isEmpty from "lodash/isEmpty"; import pino from "pino"; +import { multistream } from "pino-multi-stream"; import rfs from "rotating-file-stream"; import { inspect } from "util"; @@ -13,9 +14,13 @@ export class PinoLogger extends AbstractLogger { } public make() { - // @TODO add support for multistream - this.logger = pino(this.options); - // this.logger = pino(this.options, this.getWriteStream()); + this.logger = pino( + this.options, + multistream([ + { level: this.options.level, stream: process.stdout }, + { level: this.options.level, stream: this.getWriteStream() }, + ]), + ); return this; } @@ -65,9 +70,11 @@ export class PinoLogger extends AbstractLogger { const createFileName = (time: Date) => { if (!time) { - return "core.log"; + return new Date().toISOString().slice(0, 10) + ".log"; } + console.log(time.getMonth()); + const year = withLeadingZero(time.getFullYear()); const month = withLeadingZero(time.getMonth()); const day = withLeadingZero(time.getDate()); From e9f55279d0eb843b224a0200b317e997a8aff07b Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 09:25:05 +0200 Subject: [PATCH 07/19] fix(core-logger-pino): support for prettier in CLI --- packages/core-logger-pino/src/defaults.ts | 2 -- packages/core-logger-pino/src/driver.ts | 20 +++++++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/core-logger-pino/src/defaults.ts b/packages/core-logger-pino/src/defaults.ts index 8c800a7831..a6eb2a3641 100644 --- a/packages/core-logger-pino/src/defaults.ts +++ b/packages/core-logger-pino/src/defaults.ts @@ -1,7 +1,5 @@ export const defaults = { name: `${process.env.CORE_TOKEN}-core`, safe: true, - // @FIX: this causes the multistream to not log to the CLI - // prettyPrint: { translateTime: true }, level: process.env.CORE_LOG_LEVEL || "debug", }; diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts index 26499c4dfd..9e78afd069 100644 --- a/packages/core-logger-pino/src/driver.ts +++ b/packages/core-logger-pino/src/driver.ts @@ -2,6 +2,8 @@ import { AbstractLogger } from "@arkecosystem/core-logger"; import isEmpty from "lodash/isEmpty"; import pino from "pino"; import { multistream } from "pino-multi-stream"; +import PinoPretty from "pino-pretty"; +import { getPrettyStream } from "pino/lib/tools"; import rfs from "rotating-file-stream"; import { inspect } from "util"; @@ -17,8 +19,8 @@ export class PinoLogger extends AbstractLogger { this.logger = pino( this.options, multistream([ - { level: this.options.level, stream: process.stdout }, - { level: this.options.level, stream: this.getWriteStream() }, + { level: this.options.level, stream: this.getConsoleStream() }, + { level: this.options.level, stream: this.getFileStream() }, ]), ); @@ -65,7 +67,19 @@ export class PinoLogger extends AbstractLogger { this.logger[method](message); } - private getWriteStream() { + private getConsoleStream() { + return getPrettyStream( + { + levelFirst: false, + translateTime: true, + colorize: true, + }, + PinoPretty, + process.stdout, + ); + } + + private getFileStream() { const withLeadingZero = (num: number) => (num > 9 ? "" : "0") + num; const createFileName = (time: Date) => { From 84f9f6b0daf40d44d356529a64009b16e7a6d64d Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 09:26:13 +0200 Subject: [PATCH 08/19] test(core-blockchain): change log message assertion --- packages/core-blockchain/__tests__/state-machine.test.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/core-blockchain/__tests__/state-machine.test.ts b/packages/core-blockchain/__tests__/state-machine.test.ts index bcd5347c2d..abd2121aee 100644 --- a/packages/core-blockchain/__tests__/state-machine.test.ts +++ b/packages/core-blockchain/__tests__/state-machine.test.ts @@ -637,9 +637,7 @@ describe("State Machine", () => { await expect(() => actionMap.rollbackDatabase()).toDispatch(blockchain, "FAILURE"); - expect(loggerError).toHaveBeenCalledWith( - "FATAL: Failed to restore database integrity :skull: :skull: :skull:", - ); + expect(loggerError).toHaveBeenCalledWith("FATAL: Failed to restore database integrity"); expect(removeTopBlocks).toHaveBeenCalledTimes(5); // because after 5 times we get past maxBlockRewind }); }); From 98394ad754065963572603ccb15b0d87b55283f4 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 09:30:58 +0200 Subject: [PATCH 09/19] chore: deprecate core-logger-winston --- {packages => deprecated}/core-logger-winston/.gitattributes | 0 {packages => deprecated}/core-logger-winston/README.md | 0 .../core-logger-winston/__tests__/logger.test.ts | 0 {packages => deprecated}/core-logger-winston/package.json | 0 {packages => deprecated}/core-logger-winston/src/defaults.ts | 0 {packages => deprecated}/core-logger-winston/src/driver.ts | 0 {packages => deprecated}/core-logger-winston/src/formatter.ts | 0 {packages => deprecated}/core-logger-winston/src/index.ts | 0 {packages => deprecated}/core-logger-winston/src/plugin.ts | 0 {packages => deprecated}/core-logger-winston/tsconfig.json | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename {packages => deprecated}/core-logger-winston/.gitattributes (100%) rename {packages => deprecated}/core-logger-winston/README.md (100%) rename {packages => deprecated}/core-logger-winston/__tests__/logger.test.ts (100%) rename {packages => deprecated}/core-logger-winston/package.json (100%) rename {packages => deprecated}/core-logger-winston/src/defaults.ts (100%) rename {packages => deprecated}/core-logger-winston/src/driver.ts (100%) rename {packages => deprecated}/core-logger-winston/src/formatter.ts (100%) rename {packages => deprecated}/core-logger-winston/src/index.ts (100%) rename {packages => deprecated}/core-logger-winston/src/plugin.ts (100%) rename {packages => deprecated}/core-logger-winston/tsconfig.json (100%) diff --git a/packages/core-logger-winston/.gitattributes b/deprecated/core-logger-winston/.gitattributes similarity index 100% rename from packages/core-logger-winston/.gitattributes rename to deprecated/core-logger-winston/.gitattributes diff --git a/packages/core-logger-winston/README.md b/deprecated/core-logger-winston/README.md similarity index 100% rename from packages/core-logger-winston/README.md rename to deprecated/core-logger-winston/README.md diff --git a/packages/core-logger-winston/__tests__/logger.test.ts b/deprecated/core-logger-winston/__tests__/logger.test.ts similarity index 100% rename from packages/core-logger-winston/__tests__/logger.test.ts rename to deprecated/core-logger-winston/__tests__/logger.test.ts diff --git a/packages/core-logger-winston/package.json b/deprecated/core-logger-winston/package.json similarity index 100% rename from packages/core-logger-winston/package.json rename to deprecated/core-logger-winston/package.json diff --git a/packages/core-logger-winston/src/defaults.ts b/deprecated/core-logger-winston/src/defaults.ts similarity index 100% rename from packages/core-logger-winston/src/defaults.ts rename to deprecated/core-logger-winston/src/defaults.ts diff --git a/packages/core-logger-winston/src/driver.ts b/deprecated/core-logger-winston/src/driver.ts similarity index 100% rename from packages/core-logger-winston/src/driver.ts rename to deprecated/core-logger-winston/src/driver.ts diff --git a/packages/core-logger-winston/src/formatter.ts b/deprecated/core-logger-winston/src/formatter.ts similarity index 100% rename from packages/core-logger-winston/src/formatter.ts rename to deprecated/core-logger-winston/src/formatter.ts diff --git a/packages/core-logger-winston/src/index.ts b/deprecated/core-logger-winston/src/index.ts similarity index 100% rename from packages/core-logger-winston/src/index.ts rename to deprecated/core-logger-winston/src/index.ts diff --git a/packages/core-logger-winston/src/plugin.ts b/deprecated/core-logger-winston/src/plugin.ts similarity index 100% rename from packages/core-logger-winston/src/plugin.ts rename to deprecated/core-logger-winston/src/plugin.ts diff --git a/packages/core-logger-winston/tsconfig.json b/deprecated/core-logger-winston/tsconfig.json similarity index 100% rename from packages/core-logger-winston/tsconfig.json rename to deprecated/core-logger-winston/tsconfig.json From b88bf543445907f84716755b7381b8c812d30a62 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 09:32:18 +0200 Subject: [PATCH 10/19] chore: deprecate core-logger-winston --- packages/core-logger-pino/package.json | 6 +- packages/core/package.json | 2 +- packages/core/src/helpers/snapshot.ts | 2 +- yarn.lock | 213 ++----------------------- 4 files changed, 18 insertions(+), 205 deletions(-) diff --git a/packages/core-logger-pino/package.json b/packages/core-logger-pino/package.json index e94f31364f..a70599abf6 100644 --- a/packages/core-logger-pino/package.json +++ b/packages/core-logger-pino/package.json @@ -1,7 +1,7 @@ { "name": "@arkecosystem/core-logger-pino", "description": "Pino integration for Ark Core", - "version": "2.2.0-beta.4", + "version": "2.2.0-beta.7", "contributors": [ "Brian Faust " ], @@ -32,8 +32,8 @@ "updates": "../../node_modules/npm-check-updates/bin/npm-check-updates -a" }, "dependencies": { - "@arkecosystem/core-interfaces": "^2.2.0-beta.4", - "@arkecosystem/core-logger": "^2.2.0-beta.4", + "@arkecosystem/core-interfaces": "^2.2.0-beta.7", + "@arkecosystem/core-logger": "^2.2.0-beta.7", "lodash.isempty": "^4.4.0", "pino-multi-stream": "^4.0.2", "rotating-file-stream": "^1.4.0" diff --git a/packages/core/package.json b/packages/core/package.json index d1e706cbbc..25c722a664 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -59,7 +59,7 @@ "@arkecosystem/core-event-emitter": "^2.2.0-beta.7", "@arkecosystem/core-forger": "^2.2.0-beta.7", "@arkecosystem/core-json-rpc": "^2.2.0-beta.7", - "@arkecosystem/core-logger-winston": "^2.2.0-beta.7", + "@arkecosystem/core-logger-pino": "^2.2.0-beta.7", "@arkecosystem/core-p2p": "^2.2.0-beta.7", "@arkecosystem/core-snapshots": "^2.2.0-beta.7", "@arkecosystem/core-transaction-pool": "^2.2.0-beta.7", diff --git a/packages/core/src/helpers/snapshot.ts b/packages/core/src/helpers/snapshot.ts index 69bb6e6056..39f4a1b2da 100644 --- a/packages/core/src/helpers/snapshot.ts +++ b/packages/core/src/helpers/snapshot.ts @@ -9,7 +9,7 @@ export async function setUpLite(options) { await app.setUp(version, options, { include: [ "@arkecosystem/core-logger", - "@arkecosystem/core-logger-winston", + "@arkecosystem/core-logger-pino", "@arkecosystem/core-event-emitter", "@arkecosystem/core-snapshots", ], diff --git a/yarn.lock b/yarn.lock index f643f4296e..32d6eb30d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2394,11 +2394,6 @@ dependencies: "@types/node" "*" -"@types/node-emoji@^1.8.1": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@types/node-emoji/-/node-emoji-1.8.1.tgz#689cb74fdf6e84309bcafce93a135dfecd01de3f" - integrity sha512-0fRfA90FWm6KJfw6P9QGyo0HDTCmthZ7cWaBQndITlaWLTZ6njRyKwrwpzpg+n6kBXBIGKeUHEQuBx7bphGJkA== - "@types/node-forge@^0.7.11": version "0.7.11" resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-0.7.11.tgz#6b25860d54a0e2e37a53b97e2554f99fbcc7e8bb" @@ -4680,7 +4675,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.1: +color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -4692,50 +4687,16 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" - integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - -colornames@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96" - integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y= - colors@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= -colors@^1.1.2, colors@^1.2.1, colors@^1.3.3: +colors@^1.1.2: version "1.3.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== -colorspace@1.1.x: - version "1.1.1" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.1.tgz#9ac2491e1bc6f8fb690e2176814f8d091636d972" - integrity sha512-pI3btWyiuz7Ken0BWh9Elzsmv2bM9AhA7psXib4anUXy/orfZ/E0MbQwhSOG/9L8hLlalqrU0UhOuqxW1YjmVw== - dependencies: - color "3.0.x" - text-hex "1.0.x" - columnify@^1.5.4, columnify@~1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" @@ -5170,11 +5131,6 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" -cycle@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" - integrity sha1-IegLK+hYD5i0aPN5QwZisEbDStI= - cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" @@ -5496,15 +5452,6 @@ dezalgo@^1.0.0, dezalgo@^1.0.1, dezalgo@~1.0.3: asap "^2.0.0" wrappy "1" -diagnostics@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a" - integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ== - dependencies: - colorspace "1.1.x" - enabled "1.0.x" - kuler "1.0.x" - dicer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" @@ -5712,13 +5659,6 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= -enabled@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93" - integrity sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M= - dependencies: - env-variable "0.0.x" - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -5752,11 +5692,6 @@ env-paths@^2.0.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.0.0.tgz#5a71723f3df7ca98113541f6fa972184f2c9611d" integrity sha512-13VpSqOO91W3MskXxWJ8x+Y33RKaPT53/HviPp8QcMmEbAJaPFEm8BmMpxCHroJ5rGADqr34Zl6zosBt3F+xAA== -env-variable@0.0.x: - version "0.0.5" - resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.5.tgz#913dd830bef11e96a039c038d4130604eba37f88" - integrity sha512-zoB603vQReOFvTg5xMl9I1P2PnHsHQQKTEowsKKD7nseUfJq6UWzK+4YtlWUO1nhiQUxe6XMkk+JleSZD1NZFA== - envfile@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/envfile/-/envfile-2.3.0.tgz#0ced8f8846e45e2868623c54ecfe3d1914b1e3f4" @@ -6256,7 +6191,7 @@ fast-redact@^1.4.2: resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-1.4.3.tgz#a11db5191e659354f8a431cca512d48d5f7951c7" integrity sha512-x4qQsA2zOcVuUBHv80EURely8MiAOTR3Z6T1Od82LzFbthhq7DXVUdxwfxtvP9hNCvd+rdcY9qMipK0YDTwWCw== -fast-safe-stringify@2.0.x, fast-safe-stringify@^2.0.4, fast-safe-stringify@^2.0.6: +fast-safe-stringify@2.0.x, fast-safe-stringify@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz#04b26106cc56681f51a044cfc0d76cf0008ac2c2" integrity sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg== @@ -6283,11 +6218,6 @@ fclone@1.0.11, fclone@^1.0.11: resolved "https://registry.yarnpkg.com/fclone/-/fclone-1.0.11.tgz#10e85da38bfea7fc599341c296ee1d77266ee640" integrity sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA= -fecha@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" - integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg== - figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -6308,13 +6238,6 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -file-stream-rotator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz#09f67b86d6ea589d20b7852c51c59de55d916d6d" - integrity sha512-W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ== - dependencies: - moment "^2.11.2" - file-uri-to-path@1, file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -7825,11 +7748,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -8939,13 +8857,6 @@ kleur@^3.0.2: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.2.tgz#83c7ec858a41098b613d5998a7b653962b504f68" integrity sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q== -kuler@1.0.x: - version "1.0.1" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz#ef7c784f36c9fb6e16dd3150d152677b2b0228a6" - integrity sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ== - dependencies: - colornames "^1.1.1" - latest-version@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" @@ -9393,11 +9304,6 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "~3.0.0" -lodash.toarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" - integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= - lodash.union@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" @@ -9446,28 +9352,6 @@ log-update@^2.3.0: cli-cursor "^2.0.0" wrap-ansi "^3.0.1" -logform@^1.6.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-1.10.0.tgz#c9d5598714c92b546e23f4e78147c40f1e02012e" - integrity sha512-em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg== - dependencies: - colors "^1.2.1" - fast-safe-stringify "^2.0.4" - fecha "^2.3.3" - ms "^2.1.1" - triple-beam "^1.2.0" - -logform@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.1.2.tgz#957155ebeb67a13164069825ce67ddb5bb2dd360" - integrity sha512-+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ== - dependencies: - colors "^1.2.1" - fast-safe-stringify "^2.0.4" - fecha "^2.3.3" - ms "^2.1.1" - triple-beam "^1.3.0" - long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" @@ -9947,7 +9831,7 @@ moment-timezone@^0.5.14, moment-timezone@^0.5.x: dependencies: moment ">= 2.9.0" -moment@2.x.x, "moment@>= 2.9.0", moment@>=2.14.0, moment@^2.11.2, moment@^2.20.0, moment@^2.21.0, moment@^2.22.1, moment@^2.22.2: +moment@2.x.x, "moment@>= 2.9.0", moment@>=2.14.0, moment@^2.20.0, moment@^2.21.0, moment@^2.22.1, moment@^2.22.2: version "2.24.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== @@ -10118,13 +10002,6 @@ node-alias@^1.0.4: chalk "^1.1.1" lodash "^4.2.0" -node-emoji@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.8.1.tgz#6eec6bfb07421e2148c75c6bba72421f8530a826" - integrity sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg== - dependencies: - lodash.toarray "^4.4.0" - node-fetch-npm@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" @@ -10656,11 +10533,6 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-hash@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" - integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== - object-keys@^1.0.12: version "1.1.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz#11bd22348dd2e096a045ab06f6c85bcc340fa032" @@ -10720,11 +10592,6 @@ once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0, once@~1.4.0: dependencies: wrappy "1" -one-time@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e" - integrity sha1-+M33eISCb+Tf+T46nMN7HkSAdC4= - onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" @@ -11385,6 +11252,13 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pino-multi-stream@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pino-multi-stream/-/pino-multi-stream-4.0.2.tgz#1996716dc5938e4de58f044469c549dbb3d7008b" + integrity sha512-QQajDnc0dv5p/iOgPiDoYwI5EKnnBNxK1NCsdD6IlM14ddmIt5kaGqk+73qjvCc2usSELSNa95D2qXGLehl6YQ== + dependencies: + pino "^5.11.1" + pino-pretty@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-2.5.0.tgz#fade5b6d2acbdbf2c7e77adf220e7b7d89d04437" @@ -12108,7 +11982,7 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1: +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.6: version "3.1.1" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.1.1.tgz#ed6bbc6c5ba58b090039ff18ce670515795aeb06" integrity sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA== @@ -12868,13 +12742,6 @@ simple-git@^1.85.0: dependencies: debug "^4.0.1" -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - sisteransi@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" @@ -13398,7 +13265,7 @@ stack-generator@^2.0.3: dependencies: stackframe "^1.0.4" -stack-trace@0.0.10, stack-trace@0.0.x: +stack-trace@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= @@ -13827,11 +13694,6 @@ text-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -14058,11 +13920,6 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= -triple-beam@^1.2.0, triple-beam@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" - integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== - ts-jest@^23.10.5: version "23.10.5" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-23.10.5.tgz#cdb550df4466a30489bf70ba867615799f388dd5" @@ -14808,50 +14665,6 @@ windows-release@^3.1.0: dependencies: execa "^0.10.0" -winston-compat@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/winston-compat/-/winston-compat-0.1.4.tgz#599b4ce807ffe728713ecc25ede3f6b89425b739" - integrity sha512-mMEfFsSm6GmkFF+f4/0UJtG4N1vSaczGmXLVJYmS/+u2zUaIPcw2ZRuwUg2TvVBjswgiraN+vNnAG8z4fRUZ4w== - dependencies: - cycle "~1.0.3" - logform "^1.6.0" - triple-beam "^1.2.0" - -winston-daily-rotate-file@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/winston-daily-rotate-file/-/winston-daily-rotate-file-3.6.0.tgz#93b18c62ee778611494955ed0740f3a3dd67ba19" - integrity sha512-J02YBlG+NJkgpcz0xOlziaNUCEXB/Rer9L3h1b3IClzEH/XsGDpttmyxaXN4pECBxkOSTyk2YDFiqGlTIlxmbw== - dependencies: - file-stream-rotator "^0.4.1" - object-hash "^1.3.0" - semver "^5.6.0" - triple-beam "^1.3.0" - winston-compat "^0.1.4" - winston-transport "^4.2.0" - -winston-transport@^4.2.0, winston-transport@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.3.0.tgz#df68c0c202482c448d9b47313c07304c2d7c2c66" - integrity sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A== - dependencies: - readable-stream "^2.3.6" - triple-beam "^1.2.0" - -winston@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz#63061377976c73584028be2490a1846055f77f07" - integrity sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw== - dependencies: - async "^2.6.1" - diagnostics "^1.1.1" - is-stream "^1.1.0" - logform "^2.1.1" - one-time "0.0.4" - readable-stream "^3.1.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.3.0" - wkx@^0.4.1: version "0.4.6" resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.4.6.tgz#228ab592e6457382ea6fb79fc825058d07fce523" From 7d2afc0a2bc9d2d49e35047c00b193bcdf83a865 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 09:39:18 +0200 Subject: [PATCH 11/19] test(core-blockchain): change log message assertion --- .../__tests__/blockchain-networkStart.test.ts | 6 ++--- .../__tests__/blockchain.test.ts | 8 +++--- .../processor/handlers/accept-handler.test.ts | 2 +- .../__tests__/state-machine.test.ts | 26 +++++++++---------- 4 files changed, 20 insertions(+), 22 deletions(-) diff --git a/packages/core-blockchain/__tests__/blockchain-networkStart.test.ts b/packages/core-blockchain/__tests__/blockchain-networkStart.test.ts index e42d267b7a..643850b062 100644 --- a/packages/core-blockchain/__tests__/blockchain-networkStart.test.ts +++ b/packages/core-blockchain/__tests__/blockchain-networkStart.test.ts @@ -28,9 +28,9 @@ describe("constructor - networkStart", () => { await __start(true); expect(loggerWarn).toHaveBeenCalledWith( - "Ark Core is launched in Genesis Start mode. This is usually for starting the first node on the blockchain. Unless you know what you are doing, this is likely wrong. :warning:", + "Ark Core is launched in Genesis Start mode. This is usually for starting the first node on the blockchain. Unless you know what you are doing, this is likely wrong.", ); - expect(loggerInfo).toHaveBeenCalledWith("Starting Ark Core for a new world, welcome aboard :rocket:"); + expect(loggerInfo).toHaveBeenCalledWith("Starting Ark Core for a new world, welcome aboard"); }); describe("dispatch", () => { @@ -50,7 +50,7 @@ describe("constructor - networkStart", () => { }); blockchain.dispatch("STOP"); - expect(loggerError).toHaveBeenCalledWith("No action 'yooo' found :interrobang:"); + expect(loggerError).toHaveBeenCalledWith("No action 'yooo' found"); }); }); }); diff --git a/packages/core-blockchain/__tests__/blockchain.test.ts b/packages/core-blockchain/__tests__/blockchain.test.ts index 58ddb2f714..e8833a8e1f 100644 --- a/packages/core-blockchain/__tests__/blockchain.test.ts +++ b/packages/core-blockchain/__tests__/blockchain.test.ts @@ -217,7 +217,7 @@ describe("Blockchain", () => { expect(mockCallback.mock.calls.length).toBe(1); expect(loggerInfo).toHaveBeenCalledWith( - `Block ${lastBlockCopy.data.height.toLocaleString()} disregarded because on a fork :knife_fork_plate:`, + `Block ${lastBlockCopy.data.height.toLocaleString()} disregarded because on a fork`, ); expect(blockchain.getLastBlock().data.id).toBe(lastBlock.data.id); }); @@ -249,7 +249,7 @@ describe("Blockchain", () => { expect(mockCallback.mock.calls.length).toBe(1); expect(loggerWarn).toHaveBeenCalledWith( - `Block ${lastBlockCopy.data.height.toLocaleString()} disregarded because verification failed :scroll:`, + `Block ${lastBlockCopy.data.height.toLocaleString()} disregarded because verification failed`, ); expect(blockchain.getLastBlock().data.id).toBe(lastBlock.data.id); }); @@ -355,7 +355,7 @@ describe("Blockchain", () => { const debugMessage = `Blockchain not ready to accept new block at height ${lastBlock.data.height.toLocaleString()}. Last block: ${( lastBlock.data.height - 2 - ).toLocaleString()} :warning:`; + ).toLocaleString()}`; expect(mockLoggerDebug).toHaveBeenCalledWith(debugMessage); expect(blockchain.getLastBlock().data.height).toBe(lastBlock.data.height - 2); @@ -447,7 +447,7 @@ describe("Blockchain", () => { await blockchain.handleIncomingBlock(blocks101to155[54]); - expect(loggerInfo).toHaveBeenCalledWith("Block disregarded because blockchain is not ready :exclamation:"); + expect(loggerInfo).toHaveBeenCalledWith("Block disregarded because blockchain is not ready"); blockchain.state.started = true; mockGetSlotNumber.mockRestore(); diff --git a/packages/core-blockchain/__tests__/processor/handlers/accept-handler.test.ts b/packages/core-blockchain/__tests__/processor/handlers/accept-handler.test.ts index f6652a9136..c508942e27 100644 --- a/packages/core-blockchain/__tests__/processor/handlers/accept-handler.test.ts +++ b/packages/core-blockchain/__tests__/processor/handlers/accept-handler.test.ts @@ -37,7 +37,7 @@ describe("Accept handler", () => { blockchain.state.forkedBlock = new Block(blocks2to100[0]); expect(await handler.execute()).toBe(BlockProcessorResult.Accepted); - expect(loggerInfo).toHaveBeenCalledWith("Successfully recovered from fork :star2:"); + expect(loggerInfo).toHaveBeenCalledWith("Successfully recovered from fork"); expect(blockchain.state.forkedBlock).toBe(null); }); diff --git a/packages/core-blockchain/__tests__/state-machine.test.ts b/packages/core-blockchain/__tests__/state-machine.test.ts index fd92804779..db97c8dd90 100644 --- a/packages/core-blockchain/__tests__/state-machine.test.ts +++ b/packages/core-blockchain/__tests__/state-machine.test.ts @@ -201,7 +201,7 @@ describe("State Machine", () => { const logger = container.resolvePlugin("logger"); const loggerInfo = jest.spyOn(logger, "info"); actionMap.downloadPaused(); - expect(loggerInfo).lastCalledWith("Blockchain download paused :clock1030:"); + expect(loggerInfo).lastCalledWith("Blockchain download paused "); }); }); @@ -222,7 +222,7 @@ describe("State Machine", () => { const logger = container.resolvePlugin("logger"); const loggerInfo = jest.spyOn(logger, "info"); actionMap.stopped(); - expect(loggerInfo).lastCalledWith("The blockchain has been stopped :guitar:"); + expect(loggerInfo).lastCalledWith("The blockchain has been stopped"); }); }); @@ -230,7 +230,7 @@ describe("State Machine", () => { it("should call container forceExit with error message", () => { const forceExit = jest.spyOn(container, "forceExit").mockImplementationOnce(() => null); actionMap.exitApp(); - expect(forceExit).lastCalledWith("Failed to startup blockchain. Exiting Ark Core! :rotating_light:"); + expect(forceExit).lastCalledWith("Failed to startup blockchain. Exiting Ark Core!"); }); }); @@ -304,8 +304,8 @@ describe("State Machine", () => { it("should verify database integrity if database recovery was not successful (!restoredDatabaseIntegrity)", async () => { await expect(() => actionMap.init()).toDispatch(blockchain, "STARTED"); - expect(loggerInfo).nthCalledWith(1, "Verifying database integrity :hourglass_flowing_sand:"); - expect(loggerInfo).nthCalledWith(2, "Verified database integrity :smile_cat:"); + expect(loggerInfo).nthCalledWith(1, "Verifying database integrity"); + expect(loggerInfo).nthCalledWith(2, "Verified database integrity"); }); it("should dispatch ROLLBACK if database recovery was not successful and verifyBlockchain failed", async () => { @@ -315,7 +315,7 @@ describe("State Machine", () => { }); await expect(() => actionMap.init()).toDispatch(blockchain, "ROLLBACK"); - expect(loggerError).nthCalledWith(1, "FATAL: The database is corrupted :fire:"); + expect(loggerError).nthCalledWith(1, "FATAL: The database is corrupted"); }); it("should skip database integrity check if database recovery was successful (restoredDatabaseIntegrity)", async () => { @@ -324,7 +324,7 @@ describe("State Machine", () => { await expect(() => actionMap.init()).toDispatch(blockchain, "STARTED"); expect(loggerInfo).nthCalledWith( 1, - "Skipping database integrity check after successful database recovery :smile_cat:", + "Skipping database integrity check after successful database recovery", ); }); @@ -347,7 +347,7 @@ describe("State Machine", () => { await expect(() => actionMap.init()).toDispatch(blockchain, "STARTED"); expect(databaseMocks.buildWallets).toHaveBeenCalledWith(1); expect(loggerVerbose).toHaveBeenCalledWith( - "TEST SUITE DETECTED! SYNCING WALLETS AND STARTING IMMEDIATELY. :bangbang:", + "TEST SUITE DETECTED! SYNCING WALLETS AND STARTING IMMEDIATELY.", ); }); @@ -394,7 +394,7 @@ describe("State Machine", () => { await expect(() => actionMap.init()).toDispatch(blockchain, "STARTED"); expect(loggerWarn).toHaveBeenCalledWith( - "Rebuilding wallets table because of some inconsistencies. Most likely due to an unfortunate shutdown. :hammer:", + "Rebuilding wallets table because of some inconsistencies. Most likely due to an unfortunate shutdown.", ); expect(databaseMocks.saveWallets).toHaveBeenCalledWith(true); }); @@ -553,7 +553,7 @@ describe("State Machine", () => { actionMap.analyseFork(); - expect(loggerInfo).toHaveBeenCalledWith("Analysing fork :mag:"); + expect(loggerInfo).toHaveBeenCalledWith("Analysing fork"); }); }); @@ -575,7 +575,7 @@ describe("State Machine", () => { ]; await expect(() => actionMap.startForkRecovery()).toDispatch(blockchain, "SUCCESS"); - expect(loggerInfo).toHaveBeenCalledWith("Starting fork recovery :fork_and_knife:"); + expect(loggerInfo).toHaveBeenCalledWith("Starting fork recovery"); methodsCalled.forEach(method => { expect(method).toHaveBeenCalled(); }); @@ -609,9 +609,7 @@ describe("State Machine", () => { await expect(() => actionMap.rollbackDatabase()).toDispatch(blockchain, "SUCCESS"); - expect(loggerInfo).toHaveBeenCalledWith( - "Database integrity verified again after rollback to height 1 :green_heart:", - ); + expect(loggerInfo).toHaveBeenCalledWith("Database integrity verified again after rollback to height 1"); expect(removeTopBlocks).toHaveBeenCalledTimes(3); // because the 3rd time verifyBlockchain returned true }); From 23e58c4d4a11c3ecf24dc17a89d2e5c6d0564006 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 09:48:13 +0200 Subject: [PATCH 12/19] chore: update CircleCI config --- .circleci/config.yml | 30 ++++-------------------------- 1 file changed, 4 insertions(+), 26 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 80222a2caf..5019fb2722 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -54,10 +54,8 @@ jobs: - ./packages/core-json-rpc/node_modules - ./packages/core-logger/node_modules - ./packages/core-logger-pino/node_modules - - ./packages/core-logger-winston/node_modules - ./packages/core-p2p/node_modules - ./packages/core-snapshots/node_modules - - ./packages/core-snapshots-cli/node_modules - ./packages/core-test-utils/node_modules - ./packages/core-tester-cli/node_modules - ./packages/core-transaction-pool/node_modules @@ -163,10 +161,8 @@ jobs: - ./packages/core-json-rpc/node_modules - ./packages/core-logger/node_modules - ./packages/core-logger-pino/node_modules - - ./packages/core-logger-winston/node_modules - ./packages/core-p2p/node_modules - ./packages/core-snapshots/node_modules - - ./packages/core-snapshots-cli/node_modules - ./packages/core-test-utils/node_modules - ./packages/core-tester-cli/node_modules - ./packages/core-transaction-pool/node_modules @@ -272,10 +268,8 @@ jobs: - ./packages/core-json-rpc/node_modules - ./packages/core-logger/node_modules - ./packages/core-logger-pino/node_modules - - ./packages/core-logger-winston/node_modules - ./packages/core-p2p/node_modules - ./packages/core-snapshots/node_modules - - ./packages/core-snapshots-cli/node_modules - ./packages/core-test-utils/node_modules - ./packages/core-tester-cli/node_modules - ./packages/core-transaction-pool/node_modules @@ -328,10 +322,10 @@ jobs: cd ~/core/.circleci && ./rebuild-db.sh && cd ~/core/packages/core-logger-pino && yarn test:coverage - run: - name: core-logger-winston + name: core-p2p command: >- cd ~/core/.circleci && ./rebuild-db.sh && cd - ~/core/packages/core-logger-winston && yarn test:coverage + ~/core/packages/core-p2p && yarn test:coverage - run: name: Last 1000 lines of test output when: on_fail @@ -396,10 +390,8 @@ jobs: - ./packages/core-json-rpc/node_modules - ./packages/core-logger/node_modules - ./packages/core-logger-pino/node_modules - - ./packages/core-logger-winston/node_modules - ./packages/core-p2p/node_modules - ./packages/core-snapshots/node_modules - - ./packages/core-snapshots-cli/node_modules - ./packages/core-test-utils/node_modules - ./packages/core-tester-cli/node_modules - ./packages/core-transaction-pool/node_modules @@ -411,11 +403,6 @@ jobs: - run: name: Create .core/database directory command: mkdir -p $HOME/.core/database - - run: - name: core-p2p - command: >- - cd ~/core/.circleci && ./rebuild-db.sh && cd - ~/core/packages/core-p2p && yarn test:coverage - run: name: core-snapshots command: >- @@ -520,10 +507,8 @@ jobs: - ./packages/core-json-rpc/node_modules - ./packages/core-logger/node_modules - ./packages/core-logger-pino/node_modules - - ./packages/core-logger-winston/node_modules - ./packages/core-p2p/node_modules - ./packages/core-snapshots/node_modules - - ./packages/core-snapshots-cli/node_modules - ./packages/core-test-utils/node_modules - ./packages/core-tester-cli/node_modules - ./packages/core-transaction-pool/node_modules @@ -576,10 +561,10 @@ jobs: cd ~/core/.circleci && ./rebuild-db.sh && cd ~/core/packages/core-logger-pino && yarn test:coverage - run: - name: core-logger-winston + name: core-p2p command: >- cd ~/core/.circleci && ./rebuild-db.sh && cd - ~/core/packages/core-logger-winston && yarn test:coverage + ~/core/packages/core-p2p && yarn test:coverage - run: name: Last 1000 lines of test output when: on_fail @@ -644,10 +629,8 @@ jobs: - ./packages/core-json-rpc/node_modules - ./packages/core-logger/node_modules - ./packages/core-logger-pino/node_modules - - ./packages/core-logger-winston/node_modules - ./packages/core-p2p/node_modules - ./packages/core-snapshots/node_modules - - ./packages/core-snapshots-cli/node_modules - ./packages/core-test-utils/node_modules - ./packages/core-tester-cli/node_modules - ./packages/core-transaction-pool/node_modules @@ -659,11 +642,6 @@ jobs: - run: name: Create .core/database directory command: mkdir -p $HOME/.core/database - - run: - name: core-p2p - command: >- - cd ~/core/.circleci && ./rebuild-db.sh && cd - ~/core/packages/core-p2p && yarn test:coverage - run: name: core-snapshots command: >- From 32c2fe6e05632db8105882bb83c595a9814bbbe4 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 10:20:52 +0200 Subject: [PATCH 13/19] test(core-blockchain): change log message assertion --- .../__tests__/state-machine.test.ts | 2 +- .../handlers/accept-block-handler.ts | 2 +- packages/core-blockchain/src/state-machine.ts | 45 +++++++++---------- 3 files changed, 22 insertions(+), 27 deletions(-) diff --git a/packages/core-blockchain/__tests__/state-machine.test.ts b/packages/core-blockchain/__tests__/state-machine.test.ts index db97c8dd90..89e8151cd6 100644 --- a/packages/core-blockchain/__tests__/state-machine.test.ts +++ b/packages/core-blockchain/__tests__/state-machine.test.ts @@ -201,7 +201,7 @@ describe("State Machine", () => { const logger = container.resolvePlugin("logger"); const loggerInfo = jest.spyOn(logger, "info"); actionMap.downloadPaused(); - expect(loggerInfo).lastCalledWith("Blockchain download paused "); + expect(loggerInfo).lastCalledWith("Blockchain download paused"); }); }); diff --git a/packages/core-blockchain/src/processor/handlers/accept-block-handler.ts b/packages/core-blockchain/src/processor/handlers/accept-block-handler.ts index 91f9472a82..89f23694da 100644 --- a/packages/core-blockchain/src/processor/handlers/accept-block-handler.ts +++ b/packages/core-blockchain/src/processor/handlers/accept-block-handler.ts @@ -11,7 +11,7 @@ export class AcceptBlockHandler extends BlockHandler { // Check if we recovered from a fork if (state.forkedBlock && state.forkedBlock.data.height === this.block.data.height) { - this.logger.info("Successfully recovered from fork :star2:"); + this.logger.info("Successfully recovered from fork"); state.forkedBlock = null; } diff --git a/packages/core-blockchain/src/state-machine.ts b/packages/core-blockchain/src/state-machine.ts index e01e91cff8..17a0b9a2a2 100644 --- a/packages/core-blockchain/src/state-machine.ts +++ b/packages/core-blockchain/src/state-machine.ts @@ -63,15 +63,13 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ // tried to download but no luck after 5 tries (looks like network missing blocks) if (stateStorage.noBlockCounter > 5 && blockchain.processQueue.length() === 0) { - logger.info( - "Tried to sync 5 times to different nodes, looks like the network is missing blocks :umbrella:", - ); + logger.info("Tried to sync 5 times to different nodes, looks like the network is missing blocks"); stateStorage.noBlockCounter = 0; event = "NETWORKHALTED"; if (stateStorage.p2pUpdateCounter + 1 > 3) { - logger.info("Network keeps missing blocks. :umbrella:"); + logger.info("Network keeps missing blocks."); const networkStatus = await blockchain.p2p.checkNetworkHealth(); if (networkStatus.forked) { @@ -118,7 +116,7 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ async rebuildFinished() { try { - logger.info("Blockchain rebuild finished :chains:"); + logger.info("Blockchain rebuild finished"); stateStorage.rebuild = false; @@ -135,24 +133,24 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ } }, - downloadPaused: () => logger.info("Blockchain download paused :clock1030:"), + downloadPaused: () => logger.info("Blockchain download paused"), syncingComplete() { - logger.info("Blockchain 100% in sync :100:"); + logger.info("Blockchain 100% in sync"); blockchain.dispatch("SYNCFINISHED"); }, rebuildingComplete() { - logger.info("Blockchain rebuild complete :unicorn_face:"); + logger.info("Blockchain rebuild complete"); blockchain.dispatch("REBUILDCOMPLETE"); }, stopped() { - logger.info("The blockchain has been stopped :guitar:"); + logger.info("The blockchain has been stopped"); }, exitApp() { - app.forceExit("Failed to startup blockchain. Exiting Ark Core! :rotating_light:"); + app.forceExit("Failed to startup blockchain. Exiting Ark Core!"); }, async init() { @@ -160,14 +158,12 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ let block = await blockchain.database.getLastBlock(); if (!block) { - logger.warn("No block found in database :hushed:"); + logger.warn("No block found in database"); block = new Block(config.get("genesisBlock")); if (block.data.payloadHash !== config.get("network.nethash")) { - logger.error( - "FATAL: The genesis block payload hash is different from configured the nethash :rotating_light:", - ); + logger.error("FATAL: The genesis block payload hash is different from configured the nethash"); return blockchain.dispatch("FAILURE"); } @@ -176,19 +172,19 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ } if (!blockchain.database.restoredDatabaseIntegrity) { - logger.info("Verifying database integrity :hourglass_flowing_sand:"); + logger.info("Verifying database integrity"); const blockchainAudit = await blockchain.database.verifyBlockchain(); if (!blockchainAudit.valid) { - logger.error("FATAL: The database is corrupted :fire:"); + logger.error("FATAL: The database is corrupted"); logger.error(JSON.stringify(blockchainAudit.errors, null, 4)); return blockchain.dispatch("ROLLBACK"); } - logger.info("Verified database integrity :smile_cat:"); + logger.info("Verified database integrity"); } else { - logger.info("Skipping database integrity check after successful database recovery :smile_cat:"); + logger.info("Skipping database integrity check after successful database recovery"); } // only genesis block? special case of first round needs to be dealt with @@ -219,7 +215,7 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ slots.getTime() - block.data.timestamp > 3600 * 24 * 7 && !!localConfig.get("fastRebuild"); if (process.env.NODE_ENV === "test") { - logger.verbose("TEST SUITE DETECTED! SYNCING WALLETS AND STARTING IMMEDIATELY. :bangbang:"); + logger.verbose("TEST SUITE DETECTED! SYNCING WALLETS AND STARTING IMMEDIATELY."); stateStorage.setLastBlock(new Block(config.get("genesisBlock"))); await blockchain.database.buildWallets(block.data.height); @@ -248,7 +244,7 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ const verifiedWalletsIntegrity = await blockchain.database.buildWallets(block.data.height); if (!verifiedWalletsIntegrity && block.data.height > 1) { logger.warn( - "Rebuilding wallets table because of some inconsistencies. Most likely due to an unfortunate shutdown. :hammer:", + "Rebuilding wallets table because of some inconsistencies. Most likely due to an unfortunate shutdown.", ); await blockchain.database.saveWallets(true); } @@ -356,11 +352,11 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ }, async analyseFork() { - logger.info("Analysing fork :mag:"); + logger.info("Analysing fork"); }, async startForkRecovery() { - logger.info("Starting fork recovery :fork_and_knife:"); + logger.info("Starting fork recovery"); blockchain.clearAndStopQueue(); await blockchain.database.commitQueuedQueries(); @@ -379,7 +375,7 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ }, async rollbackDatabase() { - logger.info("Trying to restore database integrity :fire_engine:"); + logger.info("Trying to restore database integrity"); const { maxBlockRewind, steps } = localConfig.get("databaseRollback"); let blockchainAudit; @@ -412,5 +408,4 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ }, }); -const stateMachine = blockchainMachine; -export { stateMachine }; +export const stateMachine = blockchainMachine; From 9206598c8dbd19465a46e5cfff1b26011e5f34d7 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 10:39:53 +0200 Subject: [PATCH 14/19] refactor(core-logger-pino): simpler configuration --- packages/core-logger-pino/__tests__/logger.test.ts | 6 +----- packages/core-logger-pino/src/defaults.ts | 2 -- packages/core-logger-pino/src/driver.ts | 8 ++++++-- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/core-logger-pino/__tests__/logger.test.ts b/packages/core-logger-pino/__tests__/logger.test.ts index 704d459473..9298d01951 100644 --- a/packages/core-logger-pino/__tests__/logger.test.ts +++ b/packages/core-logger-pino/__tests__/logger.test.ts @@ -10,11 +10,7 @@ let message; beforeAll(() => { process.env.CORE_PATH_LOG = tmpdir(); - const driver = new PinoLogger({ - name: "ark-core", - safe: true, - level: "trace", - }); + const driver = new PinoLogger({ level: "trace" }); logger = driver.make(); diff --git a/packages/core-logger-pino/src/defaults.ts b/packages/core-logger-pino/src/defaults.ts index a6eb2a3641..501931a77f 100644 --- a/packages/core-logger-pino/src/defaults.ts +++ b/packages/core-logger-pino/src/defaults.ts @@ -1,5 +1,3 @@ export const defaults = { - name: `${process.env.CORE_TOKEN}-core`, - safe: true, level: process.env.CORE_LOG_LEVEL || "debug", }; diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts index 9e78afd069..ee53534cc3 100644 --- a/packages/core-logger-pino/src/driver.ts +++ b/packages/core-logger-pino/src/driver.ts @@ -17,10 +17,14 @@ export class PinoLogger extends AbstractLogger { public make() { this.logger = pino( - this.options, + { + name: `${process.env.CORE_TOKEN}-core`, + safe: true, + level: this.options.level, + }, multistream([ { level: this.options.level, stream: this.getConsoleStream() }, - { level: this.options.level, stream: this.getFileStream() }, + { level: "trace", stream: this.getFileStream() }, ]), ); From bdad4884bdca96b0076551d76f1ca7a45636099e Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 10:52:39 +0200 Subject: [PATCH 15/19] refactor(core-logger-pino): remove logger name --- packages/core-logger-pino/src/driver.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts index ee53534cc3..44c886ff7a 100644 --- a/packages/core-logger-pino/src/driver.ts +++ b/packages/core-logger-pino/src/driver.ts @@ -18,7 +18,6 @@ export class PinoLogger extends AbstractLogger { public make() { this.logger = pino( { - name: `${process.env.CORE_TOKEN}-core`, safe: true, level: this.options.level, }, From 8bb67265d68a859a7cec2d94fcd3bf72c7fd3851 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 11:02:49 +0200 Subject: [PATCH 16/19] refactor: remove the verbose log level --- .../core-blockchain/__tests__/state-machine.test.ts | 4 ++-- packages/core-blockchain/src/state-machine.ts | 2 +- packages/core-interfaces/src/core-logger/logger.ts | 7 ------- packages/core-logger-pino/__tests__/logger.test.ts | 12 +----------- packages/core-logger-pino/src/driver.ts | 4 ---- packages/core-logger/__tests__/__stubs__/logger.ts | 4 ---- packages/core-logger/src/logger.ts | 7 ------- 7 files changed, 4 insertions(+), 36 deletions(-) diff --git a/packages/core-blockchain/__tests__/state-machine.test.ts b/packages/core-blockchain/__tests__/state-machine.test.ts index 89e8151cd6..df0815e87d 100644 --- a/packages/core-blockchain/__tests__/state-machine.test.ts +++ b/packages/core-blockchain/__tests__/state-machine.test.ts @@ -342,11 +342,11 @@ describe("State Machine", () => { it('should dispatch STARTED if NODE_ENV === "test"', async () => { process.env.NODE_ENV = "test"; const logger = container.resolvePlugin("logger"); - const loggerVerbose = jest.spyOn(logger, "verbose"); + const loggerWarn = jest.spyOn(logger, "warn"); await expect(() => actionMap.init()).toDispatch(blockchain, "STARTED"); expect(databaseMocks.buildWallets).toHaveBeenCalledWith(1); - expect(loggerVerbose).toHaveBeenCalledWith( + expect(loggerWarn).toHaveBeenCalledWith( "TEST SUITE DETECTED! SYNCING WALLETS AND STARTING IMMEDIATELY.", ); }); diff --git a/packages/core-blockchain/src/state-machine.ts b/packages/core-blockchain/src/state-machine.ts index 17a0b9a2a2..5ea6a3008f 100644 --- a/packages/core-blockchain/src/state-machine.ts +++ b/packages/core-blockchain/src/state-machine.ts @@ -215,7 +215,7 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ slots.getTime() - block.data.timestamp > 3600 * 24 * 7 && !!localConfig.get("fastRebuild"); if (process.env.NODE_ENV === "test") { - logger.verbose("TEST SUITE DETECTED! SYNCING WALLETS AND STARTING IMMEDIATELY."); + logger.warn("TEST SUITE DETECTED! SYNCING WALLETS AND STARTING IMMEDIATELY."); stateStorage.setLastBlock(new Block(config.get("genesisBlock"))); await blockchain.database.buildWallets(block.data.height); diff --git a/packages/core-interfaces/src/core-logger/logger.ts b/packages/core-interfaces/src/core-logger/logger.ts index c01cbd5a8d..d08a9a856d 100644 --- a/packages/core-interfaces/src/core-logger/logger.ts +++ b/packages/core-interfaces/src/core-logger/logger.ts @@ -33,13 +33,6 @@ export interface ILogger { */ debug(message: string): void; - /** - * Log a verbose message. - * @param {String} message - * @return {void} - */ - verbose(message: string): void; - /** * Suppress console output. * @param {Boolean} diff --git a/packages/core-logger-pino/__tests__/logger.test.ts b/packages/core-logger-pino/__tests__/logger.test.ts index 9298d01951..414aa39f0b 100644 --- a/packages/core-logger-pino/__tests__/logger.test.ts +++ b/packages/core-logger-pino/__tests__/logger.test.ts @@ -10,7 +10,7 @@ let message; beforeAll(() => { process.env.CORE_PATH_LOG = tmpdir(); - const driver = new PinoLogger({ level: "trace" }); + const driver = new PinoLogger({ level: "debug" }); logger = driver.make(); @@ -64,16 +64,6 @@ describe("Logger", () => { }); }); - describe("verbose", () => { - it("should log a message", () => { - logger.verbose("verbose_message"); - - expect(message).toMatch(/verbose/); - expect(message).toMatch(/verbose_message/); - message = null; - }); - }); - describe("suppressConsoleOutput", () => { it("should suppress console output", () => { logger.suppressConsoleOutput(true); diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts index 44c886ff7a..69af5f9f23 100644 --- a/packages/core-logger-pino/src/driver.ts +++ b/packages/core-logger-pino/src/driver.ts @@ -46,10 +46,6 @@ export class PinoLogger extends AbstractLogger { this.createLog("debug", message); } - public verbose(message: any): void { - this.createLog("trace", message); - } - public suppressConsoleOutput(suppress: boolean): void { this.silent = suppress; } diff --git a/packages/core-logger/__tests__/__stubs__/logger.ts b/packages/core-logger/__tests__/__stubs__/logger.ts index 0d9730c65c..d06833c922 100644 --- a/packages/core-logger/__tests__/__stubs__/logger.ts +++ b/packages/core-logger/__tests__/__stubs__/logger.ts @@ -21,10 +21,6 @@ export class Logger extends AbstractLogger { // } - public verbose(message: string): void { - // - } - public suppressConsoleOutput(suppress: boolean): void { // } diff --git a/packages/core-logger/src/logger.ts b/packages/core-logger/src/logger.ts index 884c10be91..3937b8974c 100644 --- a/packages/core-logger/src/logger.ts +++ b/packages/core-logger/src/logger.ts @@ -41,13 +41,6 @@ export abstract class AbstractLogger implements Logger.ILogger { */ public abstract debug(message: any): void; - /** - * Log a verbose message. - * @param {*} message - * @return {void} - */ - public abstract verbose(message: any): void; - /** * Suppress console output. * @param {Boolean} From 791ba2c599f053e662bd647b0e757d7f8725faaa Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 25 Feb 2019 11:12:03 +0200 Subject: [PATCH 17/19] Revert "refactor: remove the verbose log level" This reverts commit 8bb67265d68a859a7cec2d94fcd3bf72c7fd3851. --- .../core-blockchain/__tests__/state-machine.test.ts | 4 ++-- packages/core-blockchain/src/state-machine.ts | 2 +- packages/core-interfaces/src/core-logger/logger.ts | 7 +++++++ packages/core-logger-pino/__tests__/logger.test.ts | 12 +++++++++++- packages/core-logger-pino/src/driver.ts | 4 ++++ packages/core-logger/__tests__/__stubs__/logger.ts | 4 ++++ packages/core-logger/src/logger.ts | 7 +++++++ 7 files changed, 36 insertions(+), 4 deletions(-) diff --git a/packages/core-blockchain/__tests__/state-machine.test.ts b/packages/core-blockchain/__tests__/state-machine.test.ts index df0815e87d..89e8151cd6 100644 --- a/packages/core-blockchain/__tests__/state-machine.test.ts +++ b/packages/core-blockchain/__tests__/state-machine.test.ts @@ -342,11 +342,11 @@ describe("State Machine", () => { it('should dispatch STARTED if NODE_ENV === "test"', async () => { process.env.NODE_ENV = "test"; const logger = container.resolvePlugin("logger"); - const loggerWarn = jest.spyOn(logger, "warn"); + const loggerVerbose = jest.spyOn(logger, "verbose"); await expect(() => actionMap.init()).toDispatch(blockchain, "STARTED"); expect(databaseMocks.buildWallets).toHaveBeenCalledWith(1); - expect(loggerWarn).toHaveBeenCalledWith( + expect(loggerVerbose).toHaveBeenCalledWith( "TEST SUITE DETECTED! SYNCING WALLETS AND STARTING IMMEDIATELY.", ); }); diff --git a/packages/core-blockchain/src/state-machine.ts b/packages/core-blockchain/src/state-machine.ts index 5ea6a3008f..17a0b9a2a2 100644 --- a/packages/core-blockchain/src/state-machine.ts +++ b/packages/core-blockchain/src/state-machine.ts @@ -215,7 +215,7 @@ blockchainMachine.actionMap = (blockchain: Blockchain) => ({ slots.getTime() - block.data.timestamp > 3600 * 24 * 7 && !!localConfig.get("fastRebuild"); if (process.env.NODE_ENV === "test") { - logger.warn("TEST SUITE DETECTED! SYNCING WALLETS AND STARTING IMMEDIATELY."); + logger.verbose("TEST SUITE DETECTED! SYNCING WALLETS AND STARTING IMMEDIATELY."); stateStorage.setLastBlock(new Block(config.get("genesisBlock"))); await blockchain.database.buildWallets(block.data.height); diff --git a/packages/core-interfaces/src/core-logger/logger.ts b/packages/core-interfaces/src/core-logger/logger.ts index d08a9a856d..c01cbd5a8d 100644 --- a/packages/core-interfaces/src/core-logger/logger.ts +++ b/packages/core-interfaces/src/core-logger/logger.ts @@ -33,6 +33,13 @@ export interface ILogger { */ debug(message: string): void; + /** + * Log a verbose message. + * @param {String} message + * @return {void} + */ + verbose(message: string): void; + /** * Suppress console output. * @param {Boolean} diff --git a/packages/core-logger-pino/__tests__/logger.test.ts b/packages/core-logger-pino/__tests__/logger.test.ts index 414aa39f0b..9298d01951 100644 --- a/packages/core-logger-pino/__tests__/logger.test.ts +++ b/packages/core-logger-pino/__tests__/logger.test.ts @@ -10,7 +10,7 @@ let message; beforeAll(() => { process.env.CORE_PATH_LOG = tmpdir(); - const driver = new PinoLogger({ level: "debug" }); + const driver = new PinoLogger({ level: "trace" }); logger = driver.make(); @@ -64,6 +64,16 @@ describe("Logger", () => { }); }); + describe("verbose", () => { + it("should log a message", () => { + logger.verbose("verbose_message"); + + expect(message).toMatch(/verbose/); + expect(message).toMatch(/verbose_message/); + message = null; + }); + }); + describe("suppressConsoleOutput", () => { it("should suppress console output", () => { logger.suppressConsoleOutput(true); diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts index 69af5f9f23..44c886ff7a 100644 --- a/packages/core-logger-pino/src/driver.ts +++ b/packages/core-logger-pino/src/driver.ts @@ -46,6 +46,10 @@ export class PinoLogger extends AbstractLogger { this.createLog("debug", message); } + public verbose(message: any): void { + this.createLog("trace", message); + } + public suppressConsoleOutput(suppress: boolean): void { this.silent = suppress; } diff --git a/packages/core-logger/__tests__/__stubs__/logger.ts b/packages/core-logger/__tests__/__stubs__/logger.ts index d06833c922..0d9730c65c 100644 --- a/packages/core-logger/__tests__/__stubs__/logger.ts +++ b/packages/core-logger/__tests__/__stubs__/logger.ts @@ -21,6 +21,10 @@ export class Logger extends AbstractLogger { // } + public verbose(message: string): void { + // + } + public suppressConsoleOutput(suppress: boolean): void { // } diff --git a/packages/core-logger/src/logger.ts b/packages/core-logger/src/logger.ts index 3937b8974c..884c10be91 100644 --- a/packages/core-logger/src/logger.ts +++ b/packages/core-logger/src/logger.ts @@ -41,6 +41,13 @@ export abstract class AbstractLogger implements Logger.ILogger { */ public abstract debug(message: any): void; + /** + * Log a verbose message. + * @param {*} message + * @return {void} + */ + public abstract verbose(message: any): void; + /** * Suppress console output. * @param {Boolean} From 4235fea5d69e47db2e1319fbc013a8e4d9b84478 Mon Sep 17 00:00:00 2001 From: supaiku Date: Mon, 25 Feb 2019 14:42:49 +0100 Subject: [PATCH 18/19] refactor: remove hostname and pid --- packages/core-logger-pino/src/driver.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts index 44c886ff7a..5a2654ac0e 100644 --- a/packages/core-logger-pino/src/driver.ts +++ b/packages/core-logger-pino/src/driver.ts @@ -18,6 +18,7 @@ export class PinoLogger extends AbstractLogger { public make() { this.logger = pino( { + base: null, safe: true, level: this.options.level, }, From 009b6aaa45cbd7c182e21ac4802456a482723514 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Tue, 26 Feb 2019 06:30:30 +0200 Subject: [PATCH 19/19] fix: resolve conflicts that cause the test setup to fail --- .../core-api/__tests__/__support__/setup.ts | 1 - .../versions/1/shared/transformers/ports.ts | 1 - .../versions/2/shared/transformers/ports.ts | 1 - .../__tests__/__support__/setup.ts | 2 +- .../__tests__/__support__/setup.ts | 7 +- .../versions/config/transformers/plugins.ts | 7 +- .../src/config/testnet/plugins.js | 5 - .../src/config/unitnet/plugins.js | 5 - .../__tests__/__support__/setup.ts | 2 +- .../core-webhooks/__tests__/server.test.ts | 108 ++++++++---------- yarn.lock | 80 +------------ 11 files changed, 55 insertions(+), 164 deletions(-) diff --git a/packages/core-api/__tests__/__support__/setup.ts b/packages/core-api/__tests__/__support__/setup.ts index d990a0a17e..def706b934 100644 --- a/packages/core-api/__tests__/__support__/setup.ts +++ b/packages/core-api/__tests__/__support__/setup.ts @@ -24,7 +24,6 @@ async function setUp() { await setUpContainer({ exclude: [ "@arkecosystem/core-webhooks", - "@arkecosystem/core-graphql", "@arkecosystem/core-forger", "@arkecosystem/core-json-rpc", "@arkecosystem/core-api", diff --git a/packages/core-api/src/versions/1/shared/transformers/ports.ts b/packages/core-api/src/versions/1/shared/transformers/ports.ts index 579a94b156..51adcfbdae 100644 --- a/packages/core-api/src/versions/1/shared/transformers/ports.ts +++ b/packages/core-api/src/versions/1/shared/transformers/ports.ts @@ -3,7 +3,6 @@ export function transformPortsLegacy(config: any) { const keys = [ "@arkecosystem/core-p2p", "@arkecosystem/core-api", - "@arkecosystem/core-graphql", "@arkecosystem/core-json-rpc", "@arkecosystem/core-webhooks", ]; diff --git a/packages/core-api/src/versions/2/shared/transformers/ports.ts b/packages/core-api/src/versions/2/shared/transformers/ports.ts index 3193f00719..0c1b99b198 100644 --- a/packages/core-api/src/versions/2/shared/transformers/ports.ts +++ b/packages/core-api/src/versions/2/shared/transformers/ports.ts @@ -3,7 +3,6 @@ export function transformPorts(config: any) { const keys = [ "@arkecosystem/core-p2p", "@arkecosystem/core-api", - "@arkecosystem/core-graphql", "@arkecosystem/core-json-rpc", "@arkecosystem/core-webhooks", ]; diff --git a/packages/core-graphql/__tests__/__support__/setup.ts b/packages/core-graphql/__tests__/__support__/setup.ts index 326ac4d09f..e2e1c5033a 100644 --- a/packages/core-graphql/__tests__/__support__/setup.ts +++ b/packages/core-graphql/__tests__/__support__/setup.ts @@ -13,7 +13,7 @@ export const setUp = async () => { process.env.CORE_GRAPHQL_ENABLED = "true"; await setUpContainer({ - exclude: ["@arkecosystem/core-api", "@arkecosystem/core-forger", "@arkecosystem/core-graphql"], + exclude: ["@arkecosystem/core-api", "@arkecosystem/core-forger"], }); const { plugin } = require("../../src"); diff --git a/packages/core-json-rpc/__tests__/__support__/setup.ts b/packages/core-json-rpc/__tests__/__support__/setup.ts index 4290b0cbc8..8d11b40a2f 100644 --- a/packages/core-json-rpc/__tests__/__support__/setup.ts +++ b/packages/core-json-rpc/__tests__/__support__/setup.ts @@ -16,12 +16,7 @@ export async function setUp() { process.env.CORE_JSON_RPC_ENABLED = true; await setUpContainer({ - exclude: [ - "@arkecosystem/core-webhooks", - "@arkecosystem/core-graphql", - "@arkecosystem/core-forger", - "@arkecosystem/core-json-rpc", - ], + exclude: ["@arkecosystem/core-webhooks", "@arkecosystem/core-forger", "@arkecosystem/core-json-rpc"], }); const { plugin } = require("../../src"); diff --git a/packages/core-p2p/src/server/versions/config/transformers/plugins.ts b/packages/core-p2p/src/server/versions/config/transformers/plugins.ts index b5f7bcc1e8..87bd14e921 100644 --- a/packages/core-p2p/src/server/versions/config/transformers/plugins.ts +++ b/packages/core-p2p/src/server/versions/config/transformers/plugins.ts @@ -4,12 +4,7 @@ * @return {Object} */ export function transformPlugins(config) { - const allowed = [ - "@arkecosystem/core-api", - "@arkecosystem/core-graphql", - "@arkecosystem/core-json-rpc", - "@arkecosystem/core-webhooks", - ]; + const allowed = ["@arkecosystem/core-api", "@arkecosystem/core-json-rpc", "@arkecosystem/core-webhooks"]; const result = {}; diff --git a/packages/core-test-utils/src/config/testnet/plugins.js b/packages/core-test-utils/src/config/testnet/plugins.js index c5c564bd6f..9d8318c623 100644 --- a/packages/core-test-utils/src/config/testnet/plugins.js +++ b/packages/core-test-utils/src/config/testnet/plugins.js @@ -46,11 +46,6 @@ module.exports = { whitelist: ["127.0.0.1", "::ffff:127.0.0.1"], }, }, - "@arkecosystem/core-graphql": { - enabled: process.env.CORE_GRAPHQL_ENABLED, - host: process.env.CORE_GRAPHQL_HOST || "0.0.0.0", - port: process.env.CORE_GRAPHQL_PORT || 4005, - }, "@arkecosystem/core-forger": { hosts: [`http://127.0.0.1:${process.env.CORE_P2P_PORT || 4000}`], }, diff --git a/packages/core-test-utils/src/config/unitnet/plugins.js b/packages/core-test-utils/src/config/unitnet/plugins.js index c5c564bd6f..9d8318c623 100644 --- a/packages/core-test-utils/src/config/unitnet/plugins.js +++ b/packages/core-test-utils/src/config/unitnet/plugins.js @@ -46,11 +46,6 @@ module.exports = { whitelist: ["127.0.0.1", "::ffff:127.0.0.1"], }, }, - "@arkecosystem/core-graphql": { - enabled: process.env.CORE_GRAPHQL_ENABLED, - host: process.env.CORE_GRAPHQL_HOST || "0.0.0.0", - port: process.env.CORE_GRAPHQL_PORT || 4005, - }, "@arkecosystem/core-forger": { hosts: [`http://127.0.0.1:${process.env.CORE_P2P_PORT || 4000}`], }, diff --git a/packages/core-webhooks/__tests__/__support__/setup.ts b/packages/core-webhooks/__tests__/__support__/setup.ts index 7506e10d01..2806d9fe22 100644 --- a/packages/core-webhooks/__tests__/__support__/setup.ts +++ b/packages/core-webhooks/__tests__/__support__/setup.ts @@ -9,7 +9,7 @@ export async function setUp() { process.env.CORE_WEBHOOKS_ENABLED = "true"; await setUpContainer({ - exit: "@arkecosystem/core-logger-winston", + exit: "@arkecosystem/core-logger-pino", }); database.make(); diff --git a/packages/core-webhooks/__tests__/server.test.ts b/packages/core-webhooks/__tests__/server.test.ts index dc88d34fb5..5aea628ec7 100644 --- a/packages/core-webhooks/__tests__/server.test.ts +++ b/packages/core-webhooks/__tests__/server.test.ts @@ -33,82 +33,72 @@ function createWebhook(data = null) { } describe("API 2.0 - Webhooks", () => { - describe("GET /webhooks", () => { - it("should GET all the webhooks", async () => { - const response = await utils.request("GET", "webhooks"); - utils.expectSuccessful(response); - utils.expectCollection(response); - }); + it("should GET all the webhooks", async () => { + const response = await utils.request("GET", "webhooks"); + utils.expectSuccessful(response); + utils.expectCollection(response); }); - describe("POST /webhooks", () => { - it("should POST a new webhook with a simple condition", async () => { - const response = await createWebhook(); - utils.expectSuccessful(response, 201); - utils.expectResource(response); - }); + it("should POST a new webhook with a simple condition", async () => { + const response = await createWebhook(); + utils.expectSuccessful(response, 201); + utils.expectResource(response); + }); - it("should POST a new webhook with a complex condition", async () => { - const response = await createWebhook({ - event: "block.forged", - target: "https://httpbin.org/post", - enabled: true, - conditions: [ - { - key: "fee", - condition: "between", - value: { - min: 1, - max: 2, - }, + it("should POST a new webhook with a complex condition", async () => { + const response = await createWebhook({ + event: "block.forged", + target: "https://httpbin.org/post", + enabled: true, + conditions: [ + { + key: "fee", + condition: "between", + value: { + min: 1, + max: 2, }, - ], - }); - utils.expectSuccessful(response, 201); - utils.expectResource(response); + }, + ], }); + utils.expectSuccessful(response, 201); + utils.expectResource(response); + }); - it("should POST a new webhook with an empty array as condition", async () => { - const response = await createWebhook({ - event: "block.forged", - target: "https://httpbin.org/post", - enabled: true, - conditions: [], - }); - utils.expectSuccessful(response, 201); - utils.expectResource(response); + it("should POST a new webhook with an empty array as condition", async () => { + const response = await createWebhook({ + event: "block.forged", + target: "https://httpbin.org/post", + enabled: true, + conditions: [], }); + utils.expectSuccessful(response, 201); + utils.expectResource(response); }); - describe("GET /webhooks/{id}", () => { - it("should GET a webhook by the given id", async () => { - const webhook = await createWebhook(); + it("should GET a webhook by the given id", async () => { + const webhook = await createWebhook(); - const response = await utils.request("GET", `webhooks/${webhook.data.data.id}`); - utils.expectSuccessful(response); - utils.expectResource(response); + const response = await utils.request("GET", `webhooks/${webhook.data.data.id}`); + utils.expectSuccessful(response); + utils.expectResource(response); - delete webhook.data.data.token; + delete webhook.data.data.token; - expect(response.data.data).toEqual(webhook.data.data); - }); + expect(response.data.data).toEqual(webhook.data.data); }); - describe("PUT /webhooks/{id}", () => { - it("should PUT a webhook by the given id", async () => { - const webhook = await createWebhook(); + it("should PUT a webhook by the given id", async () => { + const webhook = await createWebhook(); - const response = await utils.request("PUT", `webhooks/${webhook.data.data.id}`, postData); - utils.expectStatus(response, 204); - }); + const response = await utils.request("PUT", `webhooks/${webhook.data.data.id}`, postData); + utils.expectStatus(response, 204); }); - describe("DELETE /webhooks/{id}", () => { - it("should DELETE a webhook by the given id", async () => { - const webhook = await createWebhook(); + it("should DELETE a webhook by the given id", async () => { + const webhook = await createWebhook(); - const response = await utils.request("DELETE", `webhooks/${webhook.data.data.id}`); - utils.expectStatus(response, 204); - }); + const response = await utils.request("DELETE", `webhooks/${webhook.data.data.id}`); + utils.expectStatus(response, 204); }); }); diff --git a/yarn.lock b/yarn.lock index 99718af597..9e81f8fed2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3306,7 +3306,7 @@ async@^1.4.0, async@~1.5: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.1.4, async@^2.5.0, async@^2.6.1: +async@^2.1.4, async@^2.5.0: version "2.6.1" resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== @@ -6007,18 +6007,6 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" -<<<<<<< HEAD -fclone@1.0.11, fclone@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fclone/-/fclone-1.0.11.tgz#10e85da38bfea7fc599341c296ee1d77266ee640" - integrity sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA= -======= -fecha@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" - integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg== ->>>>>>> 2.3 - figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -9560,18 +9548,7 @@ modify-values@^1.0.0: resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== -<<<<<<< HEAD -moment-timezone@^0.5.14, moment-timezone@^0.5.x: - version "0.5.23" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.23.tgz#7cbb00db2c14c71b19303cb47b0fb0a6d8651463" - integrity sha512-WHFH85DkCfiNMDX5D3X7hpNH3/PUhjTGcD0U1SgfBGZxJ3qUmJh5FdvaFjcClxOvB3rzdfj4oRffbI38jEnC1w== - dependencies: - moment ">= 2.9.0" - -moment@2.x.x, "moment@>= 2.9.0", moment@>=2.14.0, moment@^2.20.0, moment@^2.21.0, moment@^2.22.1, moment@^2.22.2: -======= -moment@2.x.x, moment@>=2.14.0, moment@^2.11.2, moment@^2.22.1: ->>>>>>> 2.3 +moment@2.x.x, moment@>=2.14.0, moment@^2.22.1: version "2.24.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== @@ -14141,59 +14118,6 @@ windows-release@^3.1.0: dependencies: execa "^0.10.0" -<<<<<<< HEAD -wkx@^0.4.1: - version "0.4.6" - resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.4.6.tgz#228ab592e6457382ea6fb79fc825058d07fce523" - integrity sha512-LHxXlzRCYQXA9ZHgs8r7Gafh0gVOE8o3QmudM1PIkOdkXXjW7Thcl+gb2P2dRuKgW8cqkitCRZkkjtmWzpHi7A== - dependencies: - "@types/node" "*" -======= -winston-compat@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/winston-compat/-/winston-compat-0.1.4.tgz#599b4ce807ffe728713ecc25ede3f6b89425b739" - integrity sha512-mMEfFsSm6GmkFF+f4/0UJtG4N1vSaczGmXLVJYmS/+u2zUaIPcw2ZRuwUg2TvVBjswgiraN+vNnAG8z4fRUZ4w== - dependencies: - cycle "~1.0.3" - logform "^1.6.0" - triple-beam "^1.2.0" - -winston-daily-rotate-file@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/winston-daily-rotate-file/-/winston-daily-rotate-file-3.6.0.tgz#93b18c62ee778611494955ed0740f3a3dd67ba19" - integrity sha512-J02YBlG+NJkgpcz0xOlziaNUCEXB/Rer9L3h1b3IClzEH/XsGDpttmyxaXN4pECBxkOSTyk2YDFiqGlTIlxmbw== - dependencies: - file-stream-rotator "^0.4.1" - object-hash "^1.3.0" - semver "^5.6.0" - triple-beam "^1.3.0" - winston-compat "^0.1.4" - winston-transport "^4.2.0" - -winston-transport@^4.2.0, winston-transport@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.3.0.tgz#df68c0c202482c448d9b47313c07304c2d7c2c66" - integrity sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A== - dependencies: - readable-stream "^2.3.6" - triple-beam "^1.2.0" - -winston@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz#63061377976c73584028be2490a1846055f77f07" - integrity sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw== - dependencies: - async "^2.6.1" - diagnostics "^1.1.1" - is-stream "^1.1.0" - logform "^2.1.1" - one-time "0.0.4" - readable-stream "^3.1.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.3.0" ->>>>>>> 2.3 - wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"