{"_id":"@alessiodf/productivity-statistics","_rev":"10-549890bc56408c188d2189f65c9db772","name":"@alessiodf/productivity-statistics","dist-tags":{"latest":"1.3.0","next":"1.3.0-next.0"},"versions":{"0.0.1":{"name":"@alessiodf/productivity-statistics","version":"0.0.1","description":"View productivity statistics of delegates on ARK-powered blockchains","homepage":"https://github.com/alessiodf/productivity-statistics","main":"lib/index.js","author":{"name":"alessiodf"},"license":"GPL-3.0","dependencies":{"better-sqlite3":"^5.4.3","delay":"^4.3.0","@hapi/boom":"^7.4.3","path":"^0.12.7"},"gitHead":"3ee91bb2c443ee99892a6777beb9517bd49db994","_id":"@alessiodf/productivity-statistics@0.0.1","_nodeVersion":"10.16.2","_npmVersion":"6.9.0","dist":{"integrity":"sha512-lhU+DQtrD5ZSRpaF6yHyG6vLwanabNeIwRQPTqNRVqc7jX0KAzTzP9RAQBMAWxwDU6ktV/cWj3dWYBu0iNptWw==","shasum":"d6784b03c5c9243d99c4f923964c05051e7a8368","tarball":"https://registry.npmjs.org/@alessiodf/productivity-statistics/-/productivity-statistics-0.0.1.tgz","fileCount":7,"unpackedSize":70204,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdd8RJCRA9TVsSAnZWagAAjawQAI75vhyqP+MHfClcjU8m\nlGH1XDdT7V9HgkhZIpdWcaJGdx0W69rrW2FikD6U6l7kcN1M7rl2ChvdxtGz\nxJ10oq/L7ndipbHRKm5RKUJ9bDjvfUD3I8UOQfuuRYFGDbszlanCEsekBrc/\nzcTB8C7hHEaYyvXycpxxGq7Z/Fj7mlt3hJuSnaI93DuoACeEPFta5oiisuGO\nvdJPKDKrkbDegUvV/u7J4EYEdOdCzvWfKvX0k2oxU+78xRuNMn6L+rupOcYU\nn3UZNt2XadNn5NRmwHZzYF+ifr4M5M014vA38iL+gOoP914m+4TJTs3+SNc3\nQq8Y7S35pj7o8YJPNPleoNtgNOw0oNgsC/cLgbYxTfUCQIbgC0LHsEc9iC4c\nuEL6PyXDHuIXHusfFH25T1PTp70md7pixgeEVM0n4X3NOvxbBC9ckxFm16BV\nJoQNNmhLEc5vn4WrapfbBy+RRZwyv6LuqjUwJMgqoLSS17BS7V0HagZlRuMB\nlVtJmnnUWSZ35HDlEjujBam1BTgAdF1NzRYqetpihONpPiQPAa0XFSWXtAKb\nkLFsIEtpdCrdtBB6Peb5C/7y4iyrv5qGhrAXL6VJcO4fSwWBFNMkhQDpp53v\nMQIoZy18m8w1BnmmS7I1dEV4542709PK+8RdPIOUPjUp/0+boFaquZ7nT9ar\nCSx8\r\n=GxEV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGSluZbeYc+XAMZkmegZoePMmIVND6CinozeYdwck8+OAiEA48QXfn7G4jwSjUPtckWOk8Fw/QPYInGg6GsuSn9VXAQ="}]},"maintainers":[{"name":"alessiodf","email":"alessiodefanti87@gmail.com"}],"_npmUser":{"name":"alessiodf","email":"alessiodefanti87@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/productivity-statistics_0.0.1_1568130120966_0.7413027907559078"},"_hasShrinkwrap":false},"0.0.2":{"name":"@alessiodf/productivity-statistics","version":"0.0.2","description":"View productivity statistics of delegates on ARK-powered blockchains","homepage":"https://github.com/alessiodf/productivity-statistics","main":"lib/index.js","author":{"name":"alessiodf"},"license":"GPL-3.0","dependencies":{"better-sqlite3":"^5.4.3","delay":"^4.3.0","@hapi/boom":"^7.4.3","path":"^0.12.7"},"gitHead":"86bfd7a3ffeb259b2cc4810ee6917ae9e4e09c5d","_id":"@alessiodf/productivity-statistics@0.0.2","_nodeVersion":"10.16.2","_npmVersion":"6.9.0","dist":{"integrity":"sha512-BLIBVSnMC890GkC4HTlFeIcnbcw2/IJvn4SL9PMq3btqP+UU/Rg1sNTAoKptOaDXMbatyUhgjAW/R5nvsmxnyQ==","shasum":"f3cc14af8a39a41b7b16fe40fde24074f821cd62","tarball":"https://registry.npmjs.org/@alessiodf/productivity-statistics/-/productivity-statistics-0.0.2.tgz","fileCount":7,"unpackedSize":70367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgfPuCRA9TVsSAnZWagAA2WUQAJ9EVJL0VPJr0AwL9Nju\ng+RCJO44D/1nxw2pDZ/EKkv6AmsP0tPh9CtsfxDoHHnRVrHfiD7fkYsz2Tej\n8DMtf0zVe/dpFEW+EcCjAYQrihHtOHDZee5BCdxQ4TIUWaF3FSWM3LP1N/2Z\naa/bhKrY88YivJJIDFtgUvSXcckRVJLmZb+rZgnbAj1N+4mLfmi11EuYLcuj\nnmO7N9eEB3kZnxUN+sPCUKwzQc0mDC6wax81uAJ0NzlfumZCIox13PKkexkw\noG8dzvRXCN+zIuW0y2JpX4tNTRCQwe8vzin9ELWQLuH5lbjLvFVxqT2tnUqS\nJA/ccI/cYPOpLEz3M7EtZkAqLMq7tzQgRnJKnrPuy83SAQm0emfOMq5PCs/9\nUOKGS1AXPhW+CZ2fiouz/Aio04iiMmMv2z3yqs5nNXb53pOYPR2SWaA1tQmt\nuCC5MCEW6r6DCJjcGBLIgJQ6Ta3yEiiGVnaayPdWNW7fXYJsm/C8dFio/Uxb\nJ0/9psAYtnFTCEAjP4Qde4ko8EaltnqTXKfxGCDUXrZ5mnzwdGuhVPa5pPmZ\nehsf4PGQMhGwXMynLZ7NxEJ8c0m4WDN6kfbqJRNHLwQJbunSTNR3oBtapo3s\nPFpmaFVgOcdcAR7VqqWBthEfb2gHjdikwOwUq5OZ8hXvNjczyPntcR5wxCuM\nUkug\r\n=lPPi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/Q+xQ7HLSb8soSfa7+ZR00QgSnj1+8UJq22R/FCokiQIhALqmBMK1j2y3CPb700EQrOGxvv7oQMUFu92SrF7RuEnd"}]},"maintainers":[{"name":"alessiodf","email":"alessiodefanti87@gmail.com"}],"_npmUser":{"name":"alessiodf","email":"alessiodefanti87@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/productivity-statistics_0.0.2_1568797677774_0.18448332540898038"},"_hasShrinkwrap":false},"0.0.3":{"name":"@alessiodf/productivity-statistics","version":"0.0.3","description":"View productivity statistics of delegates on ARK-powered blockchains","homepage":"https://github.com/alessiodf/productivity-statistics","main":"lib/index.js","author":{"name":"alessiodf"},"license":"GPL-3.0","dependencies":{"better-sqlite3":"^5.4.3","delay":"^4.3.0","@hapi/boom":"^7.4.3","path":"^0.12.7"},"gitHead":"8a0e7748f03869ff56565cfbc29bd426d818e442","_id":"@alessiodf/productivity-statistics@0.0.3","_nodeVersion":"10.16.2","_npmVersion":"6.9.0","dist":{"integrity":"sha512-juvnqEajj+IKQF2M1t0jqMJb/fgprxJEt3RMY3fotI8rhDWS6rwGakDTqNdnNbRQk5Y5g+svgRDkwISPW9yJ8Q==","shasum":"65d2469e2f4ab0cd4cc5cd6c300e776eeab48a86","tarball":"https://registry.npmjs.org/@alessiodf/productivity-statistics/-/productivity-statistics-0.0.3.tgz","fileCount":8,"unpackedSize":72477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgk4MCRA9TVsSAnZWagAARJkP/2rsbfRpk2poWZXo6imF\nGDRy4jzbYatFY0tQXs2BZG1LXLr/ywtpln5r9w/OInx+rlroc2MuY6YCOpPH\njinIn4dhZ5YexPof0zii4vD/WZOBCSfKowvOXHChxaEN1qBon09O5VInlyC8\nr4B+c9mD1WqYjsG5z0vbZ+MvbvPSugZKQ7jP6CaJgYYLvPd2hgNwo6KZAYwD\nvLmROSwTKEHGmzbNLQVt8oIb9gruuxoyOSqWM2lJmvsYhvL6xyZTXrLA3zzP\nFAK1HxfF901CiLSxxAaHf2K2biRQZ+QXJnIa7olW09J+w2NNJXxWbf+Zifd2\nOjFG62Pz9lMr7PkrhRDg7OXqvMoZbHaynxa/ZK404CHPlI0bw3f/0O1mGoEI\ny6LizBWkFjsMVrD+jTiLaymwmTQPtR096a+X/x1OT1vSBMYDNwC7dA1Rqkn8\nLeca2JiKnSw04lQdjuza4/oPDLOqRIIQTShd44v/iZW07LCtcl1q0qbO/IZw\naRv4A0gpbW9DWoPhQQ3A1i6lMujn/3H8K3DQ5fxtCKUCuXDTC3Wdo6wZ7VR5\njkgbUXhpzO4ejDfgINpF8McdShwH8y/yjENppAZXWvXKBuW31CRmFfTUxWOC\np+s7Ei34Hj4KOwCe9n3NTIiup1CMcEOAztn4t8AHA7aCcWafgpKFK2IkvsKo\nsm1A\r\n=r0X8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD950ak2HZtt6u/B11AKtugTHQf7vyZgYoULW/l4vx3fwIhANK2Z9d+YzqbfHtJt/xIoXUbcVxDt0oc4M3UJURK8Quh"}]},"maintainers":[{"name":"alessiodf","email":"alessiodefanti87@gmail.com"}],"_npmUser":{"name":"alessiodf","email":"alessiodefanti87@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/productivity-statistics_0.0.3_1568820747541_0.40471831550397375"},"_hasShrinkwrap":false},"0.1.0":{"name":"@alessiodf/productivity-statistics","version":"0.1.0","description":"View productivity statistics of delegates on ARK-powered blockchains","homepage":"https://github.com/alessiodf/productivity-statistics","main":"lib/index.js","author":{"name":"alessiodf"},"license":"GPL-3.0","dependencies":{"better-sqlite3":"^5.4.3","delay":"^4.3.0","@hapi/boom":"^7.4.3","path":"^0.12.7"},"gitHead":"99c6e9108aa911bfcb1afde1aa608312f7d8c57a","_id":"@alessiodf/productivity-statistics@0.1.0","_nodeVersion":"10.16.2","_npmVersion":"6.9.0","dist":{"integrity":"sha512-bMmftE2UB+J1Y8mLfcAo+fvRzjbSIhYlMvUjbnkJN9rH0IFsTSp3aXTaCGvhg178vhW2+0TAOgrBlBTpmu8/4g==","shasum":"b1413c1eb5de2fcfb3555127fbb376c3fc88b375","tarball":"https://registry.npmjs.org/@alessiodf/productivity-statistics/-/productivity-statistics-0.1.0.tgz","fileCount":8,"unpackedSize":73575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZtp/CRA9TVsSAnZWagAAaXsP/0+P5lXBqO7nasY0V8LD\nfTNhiastHPW+56PREF5MaTriVQ4x8NmrlO26ZwxybPl2OmsIV0yWu4+iXvo7\nn202jvpbCiGfix76iv0WHjDp+ypPyolyvRaSBI6qcc8Pw/wEBPAGhccWIj34\nRQlUGmfEoma3FDiKx9woG385jplCui0w+404b9MM1/uguOF6IqMRz748qhkZ\naIKrBSfuCqNb7nxCBwJKEhBOXJSUe9tU3qBQmhHJzyCqsoIwNOG0DkE/Vvlg\nlTc2X9EEjALmDCFW0qHTdJE9crswv2eXwzn9iehavmtETIIcQPOuTz58aJ/P\nNAr1aQsaS6HwXiWp8qkkmuB4KcXVrN4WSGG/Mpf2MYhGRXycat6RXjI883iU\ntL1hEv4TI9JdEfjkbLgqxi0V7v8EAuDYWH7v3G1AlzEg5EXac1Pf911YntSA\niIr5nz9MSTcgK/UTjyYUtg6MVHVjTCzDr9FkdV8XRQuJFdAE7NaaUfSIlXFn\nqNd+5F7PVnX+oKXtIc66vTA8YBCFcfzjuSJ9fWxg5MH3971ayROWye/yS4Vr\nWlSVQ3DJUCJ8ulB9FBoLO3us4eXgTCWfsXkN6pOsroAkDE+QUDC/ahutb5ar\nQ+5/R45+iVN8+ZqkCDj+GBaOIanOHbyjKIuotWUeZna5/X7+3O/GMhQTbyFt\njJPu\r\n=8M3m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDpk5C9BSpbHhpo+TkrJplpe9qClhQmqAmp4N2MCJswLAiAcPt7t3+WMWbV2LPTKm+YQwAX5oR/raHraY7jtMr2QaA=="}]},"maintainers":[{"name":"alessiodf","email":"alessiodefanti87@gmail.com"}],"_npmUser":{"name":"alessiodf","email":"alessiodf@pm.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/productivity-statistics_0.1.0_1583798910252_0.4336446048381999"},"_hasShrinkwrap":false},"0.1.1":{"name":"@alessiodf/productivity-statistics","version":"0.1.1","description":"View productivity statistics of delegates on ARK-powered blockchains","homepage":"https://github.com/alessiodf/productivity-statistics","main":"lib/index.js","author":{"name":"alessiodf"},"license":"GPL-3.0","dependencies":{"better-sqlite3":"^5.4.3","delay":"^4.3.0","@hapi/boom":"^7.4.3","path":"^0.12.7"},"gitHead":"c66555a4ab0c93dce17cd535c52b55ea09eb9963","_id":"@alessiodf/productivity-statistics@0.1.1","_nodeVersion":"10.16.2","_npmVersion":"6.9.0","dist":{"integrity":"sha512-QyXfj6e9A5uBRSQzFGMwy8NaqDjEHsYtCarGtk/gSKd2BzyZ/NVx+bS33DReW5flTo0l/z5iSuvkTjaCGCWgfg==","shasum":"9ba3cdd63a40328c521202d58334781e3120a2b1","tarball":"https://registry.npmjs.org/@alessiodf/productivity-statistics/-/productivity-statistics-0.1.1.tgz","fileCount":8,"unpackedSize":73947,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZuC1CRA9TVsSAnZWagAA/fYP/Ag3e3eOqd1l7HxH6ZLc\nRelhPT4EUzY8DiHKCxrM0Qz7/msINXwCkU0oCPygjeuHa60nUdkrFEsjoBWY\nrY9MAZ4vw+Zng02IXSG4G14oHgIXUQisKcC0Aw4QwNG09Ccxop5VkTYLLekc\nOONCYWyOHLYuCwIUv9BRy1313qq28IBrHwUbBu5GIzXMnANsAs0sdqFeD4o7\nFkbOdBuSzI+eAf3hSyVBzmydDa2RGMcuLR6BooJyd62N/zP5CC2EmQcWOcwN\nbtG8sYCyumIKmo19SXHkGiZSNsIoc0/e+edj0tj5TE5nEwQGCDSTi+yTObtC\nKPDp1Glf0L0es6wHyM/EwEQgI0P4lPfHEgeMQgD4J0Wg1wcc9bHugCMIvzON\nu+uZwtuPU0FJnWUz2ElWQbUd5AEkagJolqecPF8DdlRyI0ku7nWIkD971a54\n0ooOc3A6dDMauBTP8agGqSv3vweh8rObFsjPRi59VnVGu1mrb58mX2zWg0cs\nt4Vp/Q+aV8ODRaB9XDKbsc/jIVGyF/MsA2DydxwVjNOmPBn7iGU1zvhjSqne\n7tNjDW9iR0qx32UBH46xZMQqrsjQxoZUEhwK3ovJiw8LDfr7pYDqzrZahxJX\ntJIsifIVRUmoBQrR3+5V6XBF/Z8bE8BoXCbtwAcwNGxLR3B6u+Ye5ewd++FH\nV2zp\r\n=JH2A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGP4ZOI2RkbPMgn5uO5zIhxV5r0H1TCN4NLj81xOZFhxAiAUMRjmFF1kUMq8ve+yrVLwRVdg9Fqehphfcz1sgUNHeg=="}]},"maintainers":[{"name":"alessiodf","email":"alessiodefanti87@gmail.com"}],"_npmUser":{"name":"alessiodf","email":"alessiodf@pm.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/productivity-statistics_0.1.1_1583800501204_0.4346890085163384"},"_hasShrinkwrap":false},"1.3.0-next.0":{"name":"@alessiodf/productivity-statistics","description":"Productivity Statistics for ARK Core","homepage":"https://github.com/alessiodf/productivity-statistics","version":"1.3.0-next.0","contributors":[{"name":"alessiodf","email":"alessiodf@pm.me"}],"license":"GPL-3.0-or-later","main":"dist/index.js","scripts":{"prepublishOnly":"yarn pretest","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","lint":"../../node_modules/eslint/bin/eslint.js 'src/**/*.ts' --fix"},"dependencies":{"better-sqlite3":"^7.1.2"},"devDependencies":{"@arkecosystem/core":"^3.0.0-next.30"},"_id":"@alessiodf/productivity-statistics@1.3.0-next.0","_nodeVersion":"14.17.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-E0HWk06WDXESO7FVNPBXLf2yPjgw+vgPFDsvbtueCLXWYP4khKTWbIEmj8OcMc4mp0ywDB4WDmUNe1zFVjYk+w==","shasum":"467362b4696c6a0474b2e26c63e8cadcc89a582d","tarball":"https://registry.npmjs.org/@alessiodf/productivity-statistics/-/productivity-statistics-1.3.0-next.0.tgz","fileCount":24,"unpackedSize":107907,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg4kDeCRA9TVsSAnZWagAAKRwQAIvapn64aAYLqeP/kv6/\nidDyMrPUW3DUwaCbYvCZ0s6DLbjqY9kotD5kApkVzGfq1JkVoUzOwHA9CA5q\nSpV8Azhp6xf+IH4ss1h+A12PyWK4idl0J9hMEa1OZd7KjW4pa73TnsXwGk6a\nyiBZoO3NgufIEauNOoFoW8LFMAsW2Wj0A1AMgCS8vsNJN7zo5L5Qg8jGOO4v\n/C6R1Oo0Qw08n/tTs1blXZ6Q2dqyJ2qzKkCRDHAC8PVklTHNQzWQDZfx+vgu\n6pyZqdciplM5KZqii1otw3wYoIpsKZafcwSJVxeYwrwPzbGHVQ1V1kpPnuY3\noi+Jw2ttXDpPyaNeUPdaBqPXZpK4WJ9pHfjhrtOo71Ao4H5NOrVDYCyouU9d\n7qwGxEsGe1aP+UmBwvils2XVaAayx94RuQwt0NXXavMSfdwd0WGriy1lCgsF\nORPqe4itUjdkzXrimsFY5QKRATmCK0HIppIDhji3dzlFl0O1e09PhH8zZMJf\n7vn7H6067xOx7KV5aBZBk4dobFPSThV0fZSajwESceBVNuP9jxZbeO5XKfPA\nkMactVJzMdpKJXQkwZI60E0L9XBWyAhYGy46oakDZMZPJStybT5s6hpgaju2\n7aou1y8KwrShzeCHu7iglhbEv7kPigQuOANgXsdnbnrTczT+WzMXMdzAIqSj\nWpzg\r\n=4UdC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDh5qiwk+0jCmeeNRcdr9ogYDnpdteXlTT6rElF/8EkBAIgIphLxr8Mp9vRW+keScKpGtiIoia4qUxL/PrgQCIWgnw="}]},"_npmUser":{"name":"alessiodf","email":"alessiodf@pm.me"},"directories":{},"maintainers":[{"name":"alessiodf","email":"alessiodf@pm.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/productivity-statistics_1.3.0-next.0_1625440478123_0.6844264283559185"},"_hasShrinkwrap":false},"1.3.0":{"name":"@alessiodf/productivity-statistics","description":"Productivity Statistics for ARK Core","homepage":"https://github.com/alessiodf/productivity-statistics","version":"1.3.0","contributors":[{"name":"alessiodf","email":"alessiodf@pm.me"}],"license":"GPL-3.0-or-later","main":"dist/index.js","scripts":{"prepublishOnly":"yarn pretest","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","lint":"../../node_modules/eslint/bin/eslint.js 'src/**/*.ts' --fix"},"dependencies":{"better-sqlite3":"^7.1.2"},"devDependencies":{"@arkecosystem/core":"^3.0.0 || ^3.0.0-next.0"},"gitHead":"aeee1287f7a16725ee2671a83bc503d34d6e0737","_id":"@alessiodf/productivity-statistics@1.3.0","_nodeVersion":"14.17.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-baM8hPH9C+H8sTT1WPrRcRRcttpso+ddDiVOfotHbbi0fV4WiYsen8aKkQMH/tX6jBlrHmHm6QFgC2nEGF/ceg==","shasum":"9761664efb7b98c603a91d5f9707374f7ef666b6","tarball":"https://registry.npmjs.org/@alessiodf/productivity-statistics/-/productivity-statistics-1.3.0.tgz","fileCount":10,"unpackedSize":81700,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhxI3iCRA9TVsSAnZWagAA7LQP/ig8ulPxdKAoIOUGSqeX\nYlwIWhsXCfXITEZ79Rj04u4EriookQcvCQtyK19OcNVjhFlhSZKG4hoDfIy6\nGU2M/zBrg3zsANMcH+B33gN7Ee/NCAiIwoT16RGjwgY8kwpBQT53V2gA15q+\nz+I+a2IuWY0AJL2OBeiaRoJoxDLRZGUsBI6/i6ut9e8imaz23HSUy1Q2Q+jy\nDs2ua5qS5qTeDrHbw6A5vvNlOhS7b1b2/wLUXW39O/6qgv42C/kZlNKIjXXC\nJoY+mWmxzbrmt2eSWUd1qbnCV9WgxYtXkpUFGV1LJIaFVSRt/cSkN2iumSPM\nAwhB4ivk8ACxlLasQpyko4XohVQh3WrtYcu4QuLKSzR6UZ/P3yGlAx+tyPCO\nPIsNAPJMpHumlxYudhKsEYUzwxsysVguMg84sZ/OioIdqFp0T4VWxh2A7q47\nOn6kRcyB229OctlVdEBZ8VT2I+N6viT4CEGwsphPDVvudgH514X7dZlQw5Mh\nDM3uNMhKsvi4ctVbjWgRw5ksl+tmKHKxKV9TkhcsqTH8IrQtujSdNxCi2azF\n2KvVUwVhHjteDpv9pyOp8ocM20c69yr0rwIB3QLxLKyGiO6ueOwwjE3pxrqb\nOXIvtHPn0pJB55xPNRk0zLZCpD5tfDi8DX4m9mW5WdqgV+Xd9AXIU51eZHau\njCv/\r\n=oMuj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1Obtc2RaRafZtuuC952bpl/K6aF+zxAObtIlZ9wTweQIgPesaLoGUvjYg3cIZdIKQQnwln2ml6IrHNqousHIvIFw="}]},"_npmUser":{"name":"alessiodf","email":"alessiodf@pm.me"},"directories":{},"maintainers":[{"name":"alessiodf","email":"alessiodf@pm.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/productivity-statistics_1.3.0_1632228356411_0.06591696121356394"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-10T15:42:00.754Z","0.0.1":"2019-09-10T15:42:01.081Z","modified":"2022-04-04T12:37:59.991Z","0.0.2":"2019-09-18T09:07:57.870Z","0.0.3":"2019-09-18T15:32:27.665Z","0.1.0":"2020-03-10T00:08:30.468Z","0.1.1":"2020-03-10T00:35:01.570Z","1.3.0-next.0":"2021-07-04T23:14:38.257Z","1.3.0":"2021-09-21T12:45:56.572Z"},"maintainers":[{"name":"alessiodf","email":"alessiodf@pm.me"}],"description":"Productivity Statistics for ARK Core","homepage":"https://github.com/alessiodf/productivity-statistics","license":"GPL-3.0-or-later","readme":"# Productivity Statistics\n\n## Introduction\n\nThis repository contains the Productivity Statistics plugin. It augments the `delegates` API endpoints within Core 3.0 for ARK and ARK-powered blockchains by including statistics to display the number of missed rounds and slots for each delegate, along with a productivity score (`forged / (forged + missed)`).\n\nThe time periods are fully configurable and, by default, there are daily (24 hours), weekly (7 days), monthly (30 days) and quarterly (90 days) statistics.\n\nThe statistics are generated and stored in a separate SQLite3 database. This is significantly more performant than running queries on the live Core PostgreSQL database and it also means the Core database remains untouched. However, there must be sufficient disk space to hold the database, which will grow as the blockchain gets larger.\n\n## Installation\n\n**This is TBC with the new `ark plugin:install` command.**\n\nOnce the plugin is installed, we must configure it by modifying `app.json`. This file is found in `~/.config/ark-core/{mainnet|devnet|testnet|unitnet}/app.json` depending on network.\n\nAdd a new entry to the end of the `plugins` section within either the `relay` or `core` blocks, depending on whether you wish to use the separate relay/forger processes or the unified Core respectively. Of course, you can also add the plugin to both blocks if you wish to have the freedom to swap between the separate processes and the unified Core. Your entry or entries should look like the following:\n\n```\n    \"relay\": {\n        \"plugins\": [\n            ...\n            {\n                \"package\": \"@alessiodf/productivity-statistics\",\n                \"options\": {\n                    \"enabled\": true\n                }\n            }\n        ]\n    },\n```\n\nOr:\n\n```\n    \"core\": {\n        \"plugins\": [\n            ...\n            {\n                \"package\": \"@alessiodf/productivity-statistics\",\n                \"options\": {\n                    \"enabled\": true\n                }\n            }\n        ]\n    },\n```\n\nIf you wish to set up different time periods, see the Configuration Options section below.\n\n## Running\n\nAfter installation, make sure the `app.json` file is correctly configured and restart Core. If you are using the CLI, this will probably be `ark core:restart` (or `ark relay:restart` if you wish to use the separate processes rather than the unified Core), although `ark` may be different in the case of bridgechains. If using Core Control, run `ccontrol restart relay`.\n\nThe plugin will start whenever the Core or Relay process is running, as long as the `enabled` configuration option is `true`. When the process starts, historical productivity statistics will be calculated, which may take a few minutes to complete for the first run as it must calculate statistics from the genesis block until the current height, however future runs will append to the existing database so should be much quicker. Periodic status updates will be printed to the console during this time.\n\nIt is normal for the CPU usage to reach 100% during this calculation process, but this will not affect the node's ability to receive and process blocks.\n\nOnce calculated, statistics can be viewed using the `/api/delegates` endpoint as well as `/api/delegates/{username}` for statistics about a single delegate. Furthermore, `/api/delegates/{username}/missed/{slots|rounds}` will show the individual slots or rounds that were missed, including heights and timestamps.\n\nStatistics are also continually updated in real time after every new block is applied.\n\nExamples of some API calls are as follows:\n\n`/api/delegates?limit=2`:\n\n>[{\"username\":\"biz_classic\",\"address\":\"AKdr5d9AMEnsKYxpDcoHdyyjSCKVx3r9Nj\",\"publicKey\":\"020431436cf94f3c6a6ba566fe9e42678db8486590c732ca6c3803a10a86f50b92\",\"votes\":\"297493958946084\",\"rank\":1,\"blocks\":{\"produced\":168670,\"last\":{\"id\":\"8693ad13751af253e27e7eec1d2bedcbd457e04cf31fd8c45e186c8b46984f32\",\"height\":9611717,\"timestamp\":{\"epoch\":78023800,\"unix\":1568125000,\"human\":\"2019-09-10T14:16:40.000Z\"}}},\"production\":{\"approval\":2.36},\"forged\":{\"fees\":\"1173040419815\",\"rewards\":\"33734000000000\",\"total\":\"34907040419815\"},\"statistics\":{\"day\":{\"forged\":213,\"slots\":{\"missed\":0,\"productivity\":1},\"rounds\":{\"missed\":0,\"productivity\":1}},\"week\":{\"forged\":1483,\"slots\":{\"missed\":0,\"productivity\":1},\"rounds\":{\"missed\":0,\"productivity\":1}},\"month\":{\"forged\":6353,\"slots\":{\"missed\":0,\"productivity\":1},\"rounds\":{\"missed\":0,\"productivity\":1}},\"quarter\":{\"forged\":19062,\"slots\":{\"missed\":5,\"productivity\":0.9997376980379813},\"rounds\":{\"missed\":4,\"productivity\":0.9997901584303851}},\"year\":{\"forged\":76517,\"slots\":{\"missed\":774,\"productivity\":0.9898846008076636},\"rounds\":{\"missed\":43,\"productivity\":0.9994380333782036}}}},{\"username\":\"biz_private\",\"address\":\"AaAy8BZkjV86YN7xUtZ35iwyXRMQKtKoAy\",\"publicKey\":\"02fa6902e91e127d6d3410f6abc271a79ae24029079caa0db5819757e3c1c1c5a4\",\"votes\":\"198969760676414\",\"rank\":2,\"blocks\":{\"produced\":142492,\"last\":{\"id\":\"ce6281712e223a3e377799895437509ffecff7a4f459d61028e098bcc250fefc\",\"height\":9611783,\"timestamp\":{\"epoch\":78024328,\"unix\":1568125528,\"human\":\"2019-09-10T14:25:28.000Z\"}}},\"production\":{\"approval\":1.58},\"forged\":{\"fees\":\"1909120101399\",\"rewards\":\"28498400000000\",\"total\":\"30407520101399\"},\"statistics\":{\"day\":{\"forged\":213,\"slots\":{\"missed\":0,\"productivity\":1},\"rounds\":{\"missed\":0,\"productivity\":1}},\"week\":{\"forged\":1482,\"slots\":{\"missed\":1,\"productivity\":0.9993252361673415},\"rounds\":{\"missed\":1,\"productivity\":0.9993252361673415}},\"month\":{\"forged\":6352,\"slots\":{\"missed\":5,\"productivity\":0.9992128463476071},\"rounds\":{\"missed\":5,\"productivity\":0.9992128463476071}},\"quarter\":{\"forged\":19025,\"slots\":{\"missed\":41,\"productivity\":0.9978449408672799},\"rounds\":{\"missed\":36,\"productivity\":0.998107752956636}},\"year\":{\"forged\":76437,\"slots\":{\"missed\":841,\"productivity\":0.9889974750448082},\"rounds\":{\"missed\":101,\"productivity\":0.9986786503918259}}}}]\n\n\nThis shows the productivity statistics for the top 2 delegates by rank.\n\nSimilarly for an individual delegate:\n\n`/api/delegates/therock`:\n\n>{\"username\":\"therock\",\"address\":\"AJC9TuRXGxmqiCs3wmtt9CowfC8s2vMhEF\",\"publicKey\":\"023a4015f921d8d0248f40362db44e856769a7291224cbd8f2fc14d61be2138174\",\"votes\":\"705206420619\",\"rank\":71,\"blocks\":{\"produced\":167891,\"last\":{\"id\":\"f28a5d9b90a5397c867ba1e01e73a2d2a7e86cc5ac0637cb4fdf456686a7369b\",\"height\":9393698,\"timestamp\":{\"epoch\":76279200,\"unix\":1566380400,\"human\":\"2019-08-21T09:40:00.000Z\"}}},\"production\":{\"approval\":0.01},\"forged\":{\"fees\":\"315609079238\",\"rewards\":\"33578200000000\",\"total\":\"33893809079238\"},\"statistics\":{\"day\":{\"forged\":0,\"slots\":{\"missed\":0,\"productivity\":0},\"rounds\":{\"missed\":0,\"productivity\":0}},\"week\":{\"forged\":0,\"slots\":{\"missed\":0,\"productivity\":0},\"rounds\":{\"missed\":0,\"productivity\":0}},\"month\":{\"forged\":2078,\"slots\":{\"missed\":0,\"productivity\":1},\"rounds\":{\"missed\":0,\"productivity\":1}},\"quarter\":{\"forged\":14712,\"slots\":{\"missed\":79,\"productivity\":0.9946302338227297},\"rounds\":{\"missed\":70,\"productivity\":0.995241979336596}},\"year\":{\"forged\":70495,\"slots\":{\"missed\":2543,\"productivity\":0.9639265196113199},\"rounds\":{\"missed\":1964,\"productivity\":0.97213986807575}}}}\n\nHere we can see the productivity statistics for `therock`.\n\nIf we want to go deeper, we can see the individual rounds or slots missed by a delegate:\n\n`/api/delegates/doc/missed/rounds`:\n\n>[{\"height\":163954,\"timestamp\":{\"epoch\":1350816,\"unix\":1491452016,\"human\":\"2017-04-06T04:13:36.000Z\"}},{\"height\":163993,\"timestamp\":{\"epoch\":1351136,\"unix\":1491452336,\"human\":\"2017-04-06T04:18:56.000Z\"}},{\"height\":164032,\"timestamp\":{\"epoch\":1351456,\"unix\":1491452656,\"human\":\"2017-04-06T04:24:16.000Z\"}},{\"height\":164116,\"timestamp\":{\"epoch\":1352136,\"unix\":1491453336,\"human\":\"2017-04-06T04:35:36.000Z\"}},{\"height\":164131,\"timestamp\":{\"epoch\":1352264,\"unix\":1491453464,\"human\":\"2017-04-06T04:37:44.000Z\"}},{\"height\":164181,\"timestamp\":{\"epoch\":1352672,\"unix\":1491453872,\"human\":\"2017-04-06T04:44:32.000Z\"}},{\"height\":164231,\"timestamp\":{\"epoch\":1353080,\"unix\":1491454280,\"human\":\"2017-04-06T04:51:20.000Z\"}},{\"height\":164312,\"timestamp\":{\"epoch\":1353736,\"unix\":1491454936,\"human\":\"2017-04-06T05:02:16.000Z\"}},{\"height\":265305,\"timestamp\":{\"epoch\":2165936,\"unix\":1492267136,\"human\":\"2017-04-15T14:38:56.000Z\"}},{\"height\":1168470,\"timestamp\":{\"epoch\":9409952,\"unix\":1499511152,\"human\":\"2017-07-08T10:52:32.000Z\"}},{\"height\":1295906,\"timestamp\":{\"epoch\":10434176,\"unix\":1500535376,\"human\":\"2017-07-20T07:22:56.000Z\"}},{\"height\":1462009,\"timestamp\":{\"epoch\":11765896,\"unix\":1501867096,\"human\":\"2017-08-04T17:18:16.000Z\"}},{\"height\":1897737,\"timestamp\":{\"epoch\":15266096,\"unix\":1505367296,\"human\":\"2017-09-14T05:34:56.000Z\"}},{\"height\":1961858,\"timestamp\":{\"epoch\":15789640,\"unix\":1505890840,\"human\":\"2017-09-20T07:00:40.000Z\"}},{\"height\":1961898,\"timestamp\":{\"epoch\":15789984,\"unix\":1505891184,\"human\":\"2017-09-20T07:06:24.000Z\"}},{\"height\":1961941,\"timestamp\":{\"epoch\":15790344,\"unix\":1505891544,\"human\":\"2017-09-20T07:12:24.000Z\"}},{\"height\":1961995,\"timestamp\":{\"epoch\":15790824,\"unix\":1505892024,\"human\":\"2017-09-20T07:20:24.000Z\"}},{\"height\":1962033,\"timestamp\":{\"epoch\":15791144,\"unix\":1505892344,\"human\":\"2017-09-20T07:25:44.000Z\"}},{\"height\":1962114,\"timestamp\":{\"epoch\":15791848,\"unix\":1505893048,\"human\":\"2017-09-20T07:37:28.000Z\"}},{\"height\":1962163,\"timestamp\":{\"epoch\":15792264,\"unix\":1505893464,\"human\":\"2017-09-20T07:44:24.000Z\"}},{\"height\":1962206,\"timestamp\":{\"epoch\":15792640,\"unix\":1505893840,\"human\":\"2017-09-20T07:50:40.000Z\"}},{\"height\":1962259,\"timestamp\":{\"epoch\":15793104,\"unix\":1505894304,\"human\":\"2017-09-20T07:58:24.000Z\"}}]\n\nWe can see the height and timestamps of all the missed rounds. By changing `rounds` to `slots` in the above API call the missed slots would be returned instead.\n\n## Slots vs rounds\n\nMost people use the term \"missed block\" but that is terminology is ambiguous:\n\nCore versions 2.5 and below define a \"missed block\" as one where a delegate does not forge within the current round. That means, for example, if a delegate is due to forge first in a round but fails to do so, it will get another chance to forge later at the end of the round, and if it forges successfully the second time, it is not considered to have missed a block. Similarly, that delegate will remain green on the explorer and will only be considered to have missed a block if it did not forge at all in the round. This is the definition of a _missed round_ within this plugin.\n\nCore versions 2.6 onwards instead refer to a \"missed block\" as an incident where a delegate fails to forge within its designated slot, even if it forges successfully later in the same round. This is the definition of a _missed slot_ within this plugin.\n\nDue to the conflicting definitions of \"missed block\", this plugin avoids that term in its API responses and explicitly refers to missed _rounds_ and _slots_ instead.\n\n## Configuration Options\n\n- `enabled` - Should be `true` to enable the plugin or `false` to disable it. Default: `false`.\n\n- `statistics` - An object containing the granular timescales for the productivity statistics. Examples of some statistics are below:\n\n```\n\"week\": {\n    \"time\": 604800,\n    \"type\": \"rolling\"\n}\n```\n\nThis will create a new productivity metric called `week` which is calculated by looking back over the last 604800 seconds, which equates to 7 days. The `rolling` type means this refers to the last 604800 seconds on a rolling basis. Contrast with the `exact` type as shown below:\n\n```\n\"thisyear\": {\n    \"time\": 1546300800,\n    \"type\": \"exact\"\n}\n```\n\nThis would calculate productivity statistics for a metric called `thisyear` which would show statistics since the start of 2019, since the `exact` type means that it will calculate all blocks since the UNIX timestamp stipulated in the `time` value, and 1546300800 is the timestamp for 2019-01-01 00:00:00 UTC.\n\nNote that it is not recommended to create a metric that shows productivity statistics for all time on a publicly accessible API as it may incentivise attackers to target certain delegates with the intention of permanently ruining their productivity statistics. Network outages would also permanently damage such statistics. However, the option remains available for those who may need it.\n\n## Credits\n\n-   [All Contributors](../../contributors)\n-   [alessiodf](https://github.com/alessiodf)\n\n## License\n\n[GPLv3](LICENSE) © [alessiodf](https://github.com/alessiodf)\n","readmeFilename":"README.md","contributors":[{"name":"alessiodf","email":"alessiodf@pm.me"}]}