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.
- git clone this repo
- run
npm i
in root directory - run
docker-compose up
to start 3 p2plib hosts in the docker environment, an electrumx server and doichain-node only in regtest - connect to regtest:
docker exec -it regtest bash
. To create a balance run this in container regtest:doichain-cli -generate 101
- Connect to peer1
docker-compose exec peer1 bash
, install:npm i -g [email protected]
and runnpm run peer1
- Connect to peer2
docker-compose exec peer1 bash
, install:npm i -g [email protected]
and runnpm run peer2
- Ionnect to peer3
docker-compose exec peer3 bash
, install:npm i -g [email protected]
and runnpm run peer3
- In container regtest create a new block to trigger new game for the peers with:
doichain-cli -generate 1
- If needed configure requestInterval in settings.json to change the interval time in seconds in which meter data is collected
- If encountering electrumx error connecting to (doichain) daemon: In regtest container try:
doichaind --reindex
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.
- Serial Port npm package for reading meter data https://www.npmjs.com/package/serialport
- Bitcoinjs-lib used for doichainjs-lib https://github.com/bitcoinjs/bitcoinjs-lib
- p2p lib used in 2nd Layer model https://github.com/libp2p/js-libp2p
Small note: If editing the Readme, please conform to the specification.