Skip to content

webanizer/BlockPro

Repository files navigation

BlockPro

Table of Contents

Background

Im Rahmen des BlockPro Projekts wird ein blockchainbasierter Herkunftsnachweis für erneuerbare Energien entwickelt. Transaktionen zwischen Energieerzeuger und Konsumenten werden manipulations- und revisionssicher in der Doichain gespeichert. Bisher wird Grünstrom auf Kontingentbasis verkauft, wohingegen mit BlockPro genaue Daten für den Peer-to-Peer-Handel erfasst werden. So können Jahresspitzenlasten ausgeglichen und Netznutzungsgebühren eingespart werden.

Get Started

  1. git clone this repo
  2. run npm i in root directory
  3. run docker-compose up to start 3 p2plib hosts in the docker environment, an electrumx server and doichain-node only in regtest
  4. connect to regtest: docker exec -it regtest bash. To create a balance run this in container regtest: doichain-cli -generate 101
  5. Connect to peer1 docker-compose exec peer1 bash, install: npm i -g [email protected] and run npm run peer1
  6. Connect to peer2 docker-compose exec peer1 bash, install: npm i -g [email protected] and run npm run peer2
  7. Ionnect to peer3 docker-compose exec peer3 bash, install: npm i -g [email protected] and run npm run peer3
  8. In container regtest create a new block to trigger new game for the peers with: doichain-cli -generate 1
  9. If needed configure requestInterval in settings.json to change the interval time in seconds in which meter data is collected
  10. If encountering electrumx error connecting to (doichain) daemon: In regtest container try: doichaind --reindex

Usage

BlockPro dient dem Herkunfts- und Verbrauchsnachweis von erneuerbarer Energie zwischen Produzenten und Konsumenten (Prosumenten). Über das Second-Layer Modell werden im Konsens Prosumenten ausgewählt, die die gesammelten Zählerstände aller peers in die Doichain schreiben und hierfür ein Bounty erhalten.

Aktivitätsdiagramm zum Peer2Peer Demoprotokoll

Resources

  1. Serial Port npm package for reading meter data https://www.npmjs.com/package/serialport
  2. Bitcoinjs-lib used for doichainjs-lib https://github.com/bitcoinjs/bitcoinjs-lib
  3. p2p lib used in 2nd Layer model https://github.com/libp2p/js-libp2p

Contributing

Small note: If editing the Readme, please conform to the standard-readme compliant specification.

License

License: MIT

MIT © 2021 Webanizer AG.