npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

chkplot

v0.0.3

Published

chia plot log analyzer

Downloads

5

Readme

chkplot

npm version License: MIT

Chia plot log parser/analyzer

Install

npm install chkplot
# or
yarn add chkplot

Command line

npx chkplot list [-n <N>] [-c] [-d <plot log directory>]
    Show available plot log files.
    -n: If you specify -n 3, then top 3 of most recent started plotting progress/result will be shown.
    -c: Compact output
    -d: Specifys plot log directory. Default is $CHIA_HOME/mainnet/plotter.

npx chkplot wip [-n <N>] [-c] [-d <plot log directory>]
    Show plotting progress from plotter log files.
    -n: If you specify -n 10, then top 10 of most recent started plotting progress will be shown.
    -c: Compact output
    -d: Specifys plot log directory. Default is $CHIA_HOME/mainnet/plotter.

npx chkplot summary [-u <uuid>|-n <N>|-a] [-d <plot log directory>]
    Show plot summary.
    -u: Specify plot uuid for summary. uuid can be listed by 'npx chkplot list'
    -n: If you specify -n 3, then top 3 of most recent started plotting log summary will be shown.
    -a: Show all available plot log summary
    -d: Specifys plot log directory. Default is $CHIA_HOME/mainnet/plotter.

npx chkplot watch [-d <plot log directory>]
    Realtime monitor for plot progress.
    -d: Specifys plot log directory. Default is $CHIA_HOME/mainnet/plotter.
  • If you globally install chkplot such as npm install -g chkplot or yarn global add chkplot,
    you can directly run above command without npx command prefix.

    Example:

    chkplot wip -n 10

chkplot list

$ chkplot list -n 4

5f4f50c2-c4f4-441c-be73-8d72af6342f6 31.3% phase2 20210604_123039 k:32 r:2 b:4600MiB t:E:\chia_plot d:?
a065f74d-cf80-4784-99a1-627dd58fac35 31.4% phase2 20210604_123039 k:32 r:2 b:4600MiB t:D:\chia_plot d:?
e613f9c7-dfc7-4e4d-8829-15945c73e7f3 100%  complete 20210604_003946 k:32 r:4 b:4600MiB t:E:\chia_plot d:?
eba1de83-12be-4c7e-8936-c92da581e4d2 100%  complete 20210604_003946 k:32 r:4 b:4600MiB t:D:\chia_plot d:?
$ chkplot list -n 4 -c

5f4f50c2 31.4% phase2 20210604_123039 k:32 r:2 b:4600MiB
a065f74d 31.4% phase2 20210604_123039 k:32 r:2 b:4600MiB
e613f9c7 100%  complete 20210604_003946 k:32 r:4 b:4600MiB
eba1de83 100%  complete 20210604_003946 k:32 r:4 b:4600MiB

chkplot wip

Show only work in progress plotting tasks

$ chkplot wip

5f4f50c2-c4f4-441c-be73-8d72af6342f6 31.4% phase2 20210604_123039 k:32 r:2 b:4600MiB t:E:\chia_plot d:?
a065f74d-cf80-4784-99a1-627dd58fac35 31.4% phase2 20210604_123039 k:32 r:2 b:4600MiB t:D:\chia_plot d:?
$ chkplot wip -c

5f4f50c2 31.4% phase2 20210604_123039 k:32 r:2 b:4600MiB
a065f74d 31.4% phase2 20210604_123039 k:32 r:2 b:4600MiB

chkplot summary

$ chkplot summary -u e613f9c7

uuid                : e613f9c7-dfc7-4e4d-8829-15945c73e7f3
id                  : f8a891124b31847bcc3dceaae7ab740ec50ebbf659520a1e335d47e860106772
start_date          : 20210604_003946
k                   : 32
r                   : 4
b                   : 4600MiB
t                   : E:\chia_plot
d                   :
phase1CompleteTime  : 01:41:41
phase2CompleteTime  : 00:52:52
phase3CompleteTime  : 01:37:37
phase4CompleteTime  : 00:07:07
plotCompleteTime    : 04:18:18
copyTime            : 00:16:16
overallCompleteTime : 04:35:35
progress            : 100
phase               : complete
finish_date         : 2021-6-4 5:14:50

chkplot watch

Realtime plot progress monitor. Press 'q' to exit.

$ chkplot watch

Note: Terminal output sample is includes in demo movie below.

Demo

Library

chkplot exposes several function to parse/analyze plotter log.

parsePlotterLog

const {parsePlotterLog} = require("chkplot");
const log = fs.readFileSync(<path_to_plotter_log>, {encoding: "utf-8"});
const parsedLog = parsePlotterLog(log);

The content of parsedLog looks like:

{
  "params": {
    "start_time": "2021-05-19T01:29:19.301Z",
    "k": 32,
    "pool_public_key": "xxxxxxxxxxxxxx",
    "farmer_public_key": "xxxxxxxxxxxxxx",
    "memo": "xxxxxxxxxxxxxx",
    "temp1_dir": "D:\\chia_plot",
    "temp2_dir": "D:\\chia_plot",
    "id": "xxxxxxxxxxxxxx",
    "buffer_size": [
      4100,
      "MiB"
    ],
    "buckets": 128,
    "threads": 2,
    "stripe_size": 65536
  },
  "phase1": {
    "start_date": "2021-05-19T01:29:19.000Z",
    "table1": {
      "f1_complete": {
        "time": 127.007,
        "cpu": 102.34,
        "date": "2021-05-19T01:31:26.000Z"
      }
    },
    ...
  }
  "phase2": {
    "start_date": "2021-05-19T04:45:39.000Z",
    "table7": {
      "time": 101.065,
      "cpu": 19.12,
      "date": "2021-05-19T04:47:21.000Z"
    },
    ...
  },
  "phase3": {
    "tmp_path": "D:\\\\chia_plot\\\\plot-k32-2021-05-19-10-29-xxxxxxxxxxxxxx.plot.2.tmp",
    "start_date": "2021-05-19T05:55:16.000Z",
    "table1and2": {
      "bucketInfo": [
        ...
      ],
      "firstComputationSummary": {
        "time": 677.709,
        "cpu": 85.55,
        "date": "2021-05-19T06:06:34.000Z"
      },
      "secondComputationSummary": {
        "time": 522.29,
        "cpu": 79.7,
        "date": "2021-05-19T06:15:17.000Z"
      },
      "totalCompressSummary": {
        "time": 1200.39,
        "cpu": 83.01,
        "date": "2021-05-19T06:15:17.000Z"
      }
    },
    ...
  },
  "phase4": {
    "tmp_path": "D:\\\\chia_plot\\\\plot-k32-2021-05-19-10-29-xxxxxxxxxxxxxx.plot.2.tmp",
    "start_date": "2021-05-19T08:16:42.000Z",
    "bucketInfo": [...],
    "P1": "0xfff",
    "P2": "0xaaaaaaaaaa",
    "P3": "0xbbbbbbbbbb",
    "P4": "0xcccccccccc",
    "P5": "0xdddddddddd",
    "P6": "0xeeeeeeeeee",
    "P7": "0xffffffffff",
    "C1": "0x1111111111",
    "C2": "0x2222222222",
    "C3": "0x3333333333",
    "complete": {
      "time": 511.085,
      "cpu": 82.85,
      "date": "2021-05-19T08:25:13.000Z"
    }
  },
  "phaseSummary": {
    "approximate_working_space_used": [
      269.387,
      " GiB"
    ],
    "final_file_size": [
      101.379,
      " GiB"
    ],
    "complete": {
      "time": 24954.324,
      "cpu": 112.88,
      "date": "2021-05-19T08:25:13.000Z"
    },
    "finished_time": "2021-05-19T09:27:58.962Z"
  },
  "copyPhase": {
    "from": "D:\\\\chia_plot\\\\plot-k32-2021-05-19-10-29-xxxxxxxxxxxxxx.plot.2.tmp",
    "to": "R:\\\\plot-k32-2021-05-19-10-29-xxxxxxxxxxxxxx.plot.2.tmp",
    "complete": {
      "time": 3762.214,
      "cpu": 0.83,
      "date": "2021-05-19T09:27:55.000Z"
    },
    "removed_temp2_file": "D:\\\\chia_plot\\\\plot-k32-2021-05-19-10-29-xxxxxxxxxxxxxx.plot.2.tmp",
    "renamed_final_file": {
      "from": "R:\\\\plot-k32-2021-05-19-10-29-xxxxxxxxxxxxxx.plot.2.tmp",
      "to": "R:\\\\plot-k32-2021-05-19-10-29-xxxxxxxxxxxxxx.plot"
    }
  }
}

summarize

const {summarize} = require("chkplot");
const log = fs.readFileSync(<path_to_plotter_log>, {encoding: "utf-8"});
const summarizedLog = summarize(log);

The content of summarizedLog looks like:

{
  "id": "xxxxxxxxxxxxxxxxxxxxxx",
  "start_date": "2021-5-25 2:17:19",
  "k": 32,
  "r": 3,
  "b": [ 4100, "MiB" ],
  "t": "D:\\chia_plot",
  "d": undefined,
  "phase1CompleteTime": { "hour": 3, "minute": 4, "second": 54.753 },
  "phase2CompleteTime": { "hour": 1, "minute": 16, "second": 9.744 },
  "phase3CompleteTime": { "hour": 2, "minute": 33, "second": 14.112 },
  "phase4CompleteTime": { "hour": 0, "minute": 11, "second": 51.734 },
  "plotCompleteTime": { "hour": 7, "minute": 6, "second": 10.344 },
  "copyTime": { "hour": 0, "minute": 12, "second": 39.958 },
  "overallCompleteTime": { "hour": 7, "minute": 18, "second": 50.302 },
  "progress": 100,
  "phase": "complete",
  "finish_date": "2021-5-25 9:36:14"
}

Donation

For continuous development, please support me with donation xch1wqpcvquv98qmeh9hg6wqpzhzmgs73lgvd8a7v5240nxgyat4p0sq4gdzyy