Skip to main content

Monitoring/visualization GUI for a Bitcoin node

Icon

Home page: https://www.welshcomputing.com/code/bitnomon.html

About

Bitnomon aims to increase the interest and educational value in running a full node on the Bitcoin peer-to-peer network by presenting a clear view of its activities.

It is a Python/Qt application and works with Bitcoin Core version 0.9+ (or alternatives with a compatible JSON-RPC interface). It must be run on the same system as the node, unless you are comfortable securing the API for remote access yourself.

Features

  • Basic information like difficulty, block and peer count

  • Transactions in the memory pool, plotted by age versus fee, with “high priority” transactions highlighted

  • Block arrival times (as seen by Bitnomon, up to the last 24 blocks)

  • Inbound and outbound network traffic: total, recent averages, and plotted over time; data is stored for up to a year, at decreasing resolutions, using a round-robin database in the standard RRDtool format

  • Interactive panning/zooming of plots

  • Full screen mode

Supported Platforms

The primary target platform is X11 on Linux/UNIX. In principle, all the code is portable to Windows and Mac OS X, but these have not yet been a priority. Known working:

  • Fedora 20

  • CentOS 7

  • Debian 7 (Wheezy)

  • Ubuntu 12.04 LTS

Installing

First, install the dependencies that can’t be installed from PyPI (or at least are easier with the system package manager).

Fedora/Red Hat:

sudo yum install PyQt4 numpy rrdtool-python python-pip

Debian/Ubuntu:

sudo apt-get install python-qt4 python-numpy python-rrdtool python-pip

Then pip can download the rest (but see “More Secure Install,” below):

pip install [--user] bitnomon

Or if you already have the source distribution:

pip install [--user] bitnomon-<version>.tar.bz2

The --user option causes Bitnomon to be installed in your home directory (under ~/.local). If you prefer a system-wide install, omit it and use sudo. Either way, uninstalling is simple:

pip uninstall bitnomon

A launcher icon will be installed to the system menu, or you can run bitnomon from the command line. For the latter to work with a user install, you may need to add ~/.local/bin to your PATH, for example by adding at the beginning of ~/.bashrc:

export PATH="$HOME/.local/bin:$PATH"

More Secure Install

The pip install command (as well as easy_install and setup.py install) is subject to automatically downloading and executing code from PyPI (the Python Package Index). Newer versions of pip at least enforce HTTPS, but this still leaves openings for attack, such as the PyPI web infrastructure, third party uploaders, and certificate authorities.

To mitigate this risk, I am providing a PGP-signed bundle of Bitnomon and its PyPI dependencies, available from the home page. Once you have downloaded and verified the signature, run:

tar xf bitnomon-<version>-bundle.tar
pip install [--user] --no-index -f bitnomon-<version>-bundle bitnomon

(If your pip is too old to understand a local directory for -f, such as on Ubuntu 12.04, then you must explicitly specify the files to install.)

License

Copyright 2015 Jacob Welsh

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this software except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Parts of Bitnomon may be considered derivatives of works under other free software licenses, specifically:

  • bitnomon/qbitcoinrpc.py: GNU Lesser General Public License, version 2.1 or later; see the file itself and lgpl-2.1.txt for details

PyQt Note

Bitnomon can use either PySide or PyQt. PyQt is the default and recommended binding (in part because there is a slow but steady memory leak at least as of PySide 1.2.1). However, it is only available under the GPL or a commercial license from Riverbank Computing Limited. If you use or redistribute Bitnomon with PyQt, you may be subject to the additional restrictions of the GPL. PySide is available under the LGPL, like Qt itself.

Changes

0.1.1 (2015-06-30)

  • Reduce debug.log noise by avoiding the getinfo RPC

  • Limit the number of plotted mempool transactions to maintain performance under a backlog (currently hardcoded to 5000)

  • Update the bundled PyQtGraph to a recent git version, removing the need for a custom patch

0.1.0 (2015-02-02)

  • Initial release

Release files for bitnomon 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bitnomon 0.1.1
File Size Uploaded
bitnomon-0.1.1.tar.bz2 575.0 kB Details

Release files / bitnomon-0.1.1.tar.bz2

Download URL bitnomon-0.1.1.tar.bz2
Size 575.0 kB
Tags Source
SHA-256 checksum
How to use checksums
df2b6ce45573863ad1d333459ce91306b6749bfc0b4176b9a9d5b769e3343e2b
BLAKE2b-256 checksum
How to use checksums
77c79473231a1d1def09e7c80f8a4c41727cc019885542f46fd84ae10de37982
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page