Giter VIP home page Giter VIP logo

allisterb / libpwrm Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 1.0 1.17 MB

Realtime, decentralized measuring and reporting on CPU and GPU hardware electricity consumption by blockchain nodes

Home Page: https://devpost.com/software/libpwrm

License: GNU General Public License v3.0

CMake 0.35% C++ 84.94% C 13.80% Makefile 0.73% Shell 0.02% JavaScript 0.16%
blockchain hardware-monitoring power-monitoring

libpwrm's Introduction

About

libpwrm is an embeddable library, CLI app and daemon for realtime, decentralized measuring and reporting on CPU and GPU hardware electricity consumption by blockchain nodes without requiring specialized hardware power meters. libpwrm provides software-based continuous monitoring of different hardware power consumption interfaces and automatic reporting of the measurement data and estimated CO2 Emissions to the CO2.Storage data network.

libpwrm can read power consumption data from different hardware power meters including laptop power supply meters. It can also read CPU power consumption data from Intel's Running Average Power Limit โ€“ RAPL interface which uses power metering builtin to Intel CPUs, and NVIDIA GPU power consumption data using the builtin GPU power meters and the NVML interface.

libpwrm runs continuously and publishes the power consumption and emissions data it collects for each system it runs on as assets on CO2.Storage. Each asset can be signed by the operator which authenticates the entity creating it and contains information that the blockchain node operator provides like a unique miner ID and geographic information together with up-to-date information on the current electricity consumption of their hardware. This allows individual blockchain node operators like Filecoin storage providers to automate reporting their electrical consumption data estimates in real-time without requiring installation of external power metering hardware or complex software or making changes to their existing processes.

The aggregated data collected can also provide a useful complement to existing methods of estimating power consumption of an entire blockchain network at a particular time.

Getting started

Requirements:

  1. C++11 toolchain
  2. CMake 3.17 or greater.
  3. To monitor NVIDIA graphics card you'll need the CUDA Toolkit installed.
  4. To upload data to CO2.Storage you will need a recent version of NodeJS.

Installation

  1. Clone the git repository git clone https://github.com/allisterb/libpwrm.git --recurse-submodules.
  2. Run the build-debug script from the repo folder.
  3. If you want to upload data to CO2.Storage:
    • cd to the src/co2.storage directory and run npm install.
    • Create a .env file in the same directory with the required CO2.Storage settings plus other fields for recording power usage and emissions. See the .env.example file for an example.
  4. Run ./pwrm --help from the repo folder to see the available commands.

libpwrm's People

Contributors

allisterb avatar

Watchers

 avatar  avatar  avatar

Forkers

a-symmetry-dao

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.