Code Monkey home page Code Monkey logo

energynet's Introduction

Blockchain-based transactive energy network

The aim of this project is to develop a blockchain-based distributed ledger for transactive energy networks using Ethereum and IOTA running on lightweight resource-constrained devices - smartphones and Raspberry pi's

energynet's People

Contributors

danzvara avatar egospodinova avatar fangyi-zhou avatar levex avatar norbo11 avatar vincepandolfo avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

energynet's Issues

Create UI

We don't have any UI. Create UI. Simple.

Fix grafana

It needs to run locally together with InfluxDB so we can show pretty graphs.

Create a docker environment for Parity

Parity is a Rust based ETH client. Let's have our environment (Parity, custom client, etc.) in a Docker so we can easily scale number of clients to emulate larger network.

meter: Re-write python API in node

Right now we have a Python Eve server which serves as our smart meter DB... and also a Node server which serves as our blockchain API... we should probably merge the two. Unless we keep them seperate?

Won't take long if you use something like http://docs.sequelizejs.com/ and SQLite, because fuck Mongo

Refactor frontend

Frontend is a mess, needs clean up - break it down into JSX components and JS app logic.

Contract: Add expiry

Contract should have an expiry date/time.

Upon that, the penalty system can work.

Meter: Serve the dapp front end

We don't really parity to serve the front end. Although it might be nice to do so bc we want more details for error handling. Other than that I don't think it's necessary to keep them connected.

Meter: add logic for contract management

So - wat to du.
Simulation only feeds real values into meter that means how much energy we produced (or consumed). Based on that, meter has to figure out whether to sell or consume. If we don't have a contract to consume energy from, we need to do a search for new one and buy energy from it.

Optionally this all can be governed by settings made from GUI (how much energy to buy, are we even allowed to buy automatically etc.)

Add caching to smart meter blockchain calls

Right now we have some functions defined in meter/blockchain.js which call stuff from contracts.

The front end is supposed to make calls to smart meter endpoints like /my_buyer_contracts/ in order to get this data into the dapp.

However, what's the point of doing this, if we can just import blockchain.js and call those functions directly?

The answer is obviously that the smart meter would add some extra functionality to those endpoints. One idea is to cache blockchain calls, for performance.

Fix scripts

Deploy.sh and Ansible needs to run like smoothly.

Btw. i'm using this temporarily to kill stuff at the end of deploy, 'jobs -p' doesn't work the way it's used atm.

pids=""

cd $PROJ_DIR && pip3.5 install --user -r requirements.txt

cd $PROJ_DIR/client/meter && npm install && npm start &
pids="$pids $!"

cd $PROJ_DIR/simulation && python3 meter.py -e $ENERGY_MIN $ENERGY_MAX &
pids="$pids $!"

handler() {
    echo "Killing everything"
    echo $pids | xargs kill -9
}

trap handler SIGINT EXIT```

Create basic simulation environment

The basic simulation environment will have to

  • simulate the exchange of energy between clients
  • for each client, decide the amount of excess energy (possibly negative) produced based on simulation parameters
  • dynamically (or not) create contracts to allow the exchange of energy
  • verify enforcement of the smart contracts
  • gather relevant data regarding effectiveness of different types of contracts

Define a Smart Meter API

This API will be used to communicate information such as energy input and output (how many units of energy we are putting/taking into/from the grid) and the information will be used to validate smart contracts.

Smart meter: Detect debt

If energy is consumed by the payment did not go through, there should be ways to detect that and action taken.

UI: Display contracts involving me

Ideally, the UI should display

my seller contracts: how much energy is still not sold
my buyer contract(s): how much energy do i have

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.