From 83193d5c3766b1126c8b59d07ff5e1e7c906e877 Mon Sep 17 00:00:00 2001 From: lena Date: Tue, 24 Aug 2021 09:53:26 +0200 Subject: [PATCH] BlockPro funktioniert --- .gitignore | 6 ++++++ BlockPro/gitignore | 6 +++--- BlockPro/settings.json | 2 +- BlockPro/src/doichain/smartMeterInit.js | 1 + BlockPro/src/doichain/smlToIpfs.js | 14 ++++++++------ BlockPro/src/p2p/quiz.js | 15 ++++++--------- BlockPro/src/p2p/sleep15Minutes.js | 4 ++-- BlockPro/src/p2p/writeWinnerToLog.js | 2 +- .../winnerBlockchain1.csv | 0 .../winnerBlockchain2.csv | 0 BlockPro/winnerBlockchain3.csv | 0 p2pDemo/src/sleep15Minutes.js | 2 +- winnerBlockchain1.csv | 2 -- 13 files changed, 29 insertions(+), 25 deletions(-) rename winnerBlockchain2.csv => BlockPro/winnerBlockchain1.csv (100%) rename winnerBlockchain3.csv => BlockPro/winnerBlockchain2.csv (100%) create mode 100644 BlockPro/winnerBlockchain3.csv delete mode 100644 winnerBlockchain1.csv diff --git a/.gitignore b/.gitignore index f7d6283..3f15172 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,12 @@ test/repo-tests* ./p2pDemo/winnerBlockchain2.csv ./p2pDemo/winnerBlockchain3.csv +./BlockPro/winnerBlockchain1.csv +./BlockPro/winnerBlockchain2.csv +./BlockPro/winnerBlockchain3.csv + +./BlockPro/settings.json + # Logs logs *.log diff --git a/BlockPro/gitignore b/BlockPro/gitignore index 11af872..43c89f5 100644 --- a/BlockPro/gitignore +++ b/BlockPro/gitignore @@ -10,9 +10,9 @@ test/repo-tests* **/bundle.js .cache .parcel-cache -./winnerBlockchain1.csv -./winnerBlockchain2.csv -./winnerBlockchain3.csv +./BlockPro/winnerBlockchain1.csv +./BlockPro/winnerBlockchain2.csv +./BlockPro/winnerBlockchain3.csv # Logs logs diff --git a/BlockPro/settings.json b/BlockPro/settings.json index 9464e10..fc3e110 100644 --- a/BlockPro/settings.json +++ b/BlockPro/settings.json @@ -1,7 +1,7 @@ { "doichain": { "host": "localhost", - "port": "8339", + "port": "18332", "username": "admin", "password": "adminpw" }, diff --git a/BlockPro/src/doichain/smartMeterInit.js b/BlockPro/src/doichain/smartMeterInit.js index 736ff43..6ed0e18 100644 --- a/BlockPro/src/doichain/smartMeterInit.js +++ b/BlockPro/src/doichain/smartMeterInit.js @@ -3,6 +3,7 @@ import SmartmeterObis from "smartmeter-obis" import ipfs from "ipfs-core"; global.ipfs = await ipfs.create() +global.start = true const smartMeterInit = async (options) => { console.log("started reading consolino meter"); diff --git a/BlockPro/src/doichain/smlToIpfs.js b/BlockPro/src/doichain/smlToIpfs.js index ecb9329..6b6a4c1 100644 --- a/BlockPro/src/doichain/smlToIpfs.js +++ b/BlockPro/src/doichain/smlToIpfs.js @@ -9,6 +9,7 @@ var peerIdConf var id var node var seed +var eigeneCID const smlToIpfs = async (err, obisResult) => { @@ -32,9 +33,10 @@ const smlToIpfs = async (err, obisResult) => { console.info('__our hash', hash) console.info('writing data into ipfs') - const cid = await writeToIPFS(global.ipfs, stringJSON) - console.info('__cid', cid) + const eigeneCID = await writeToIPFS(global.ipfs, stringJSON) + console.info('__eigeneCID', eigeneCID) +if (start == true){ console.info('Starting p2p Quiz') peerIdConf = process.env.PEER; @@ -50,15 +52,15 @@ const smlToIpfs = async (err, obisResult) => { async function getWinnerPeerId() { if (peerIdConf.includes('id-1')) { seed = true - await quiz(node, id, seed, cid, hash) + await quiz(node, id, seed, eigeneCID, hash) } else { seed = false - await quiz(node, id, seed, cid, hash) + await quiz(node, id, seed, eigeneCID, hash) } } - + start = false await getWinnerPeerId() - + } } export default smlToIpfs diff --git a/BlockPro/src/p2p/quiz.js b/BlockPro/src/p2p/quiz.js index 266d58f..ddfb83d 100644 --- a/BlockPro/src/p2p/quiz.js +++ b/BlockPro/src/p2p/quiz.js @@ -7,7 +7,6 @@ import publishZählerstand from './publishZaehlerstand.js' import writePoEToDoichain from '../doichain/writePoEToDoichain.js' - // This function is for the Quizmaster who sets the hidden number var iteration var receivedNumbers = [] @@ -20,9 +19,7 @@ var ersteRunde var rolle -async function quiz(node, id, seed, cid, hash) { - - var eigeneCID = cid +async function quiz(node, id, seed, eigeneCID, hash) { let topic = "Quiz" @@ -35,7 +32,7 @@ async function quiz(node, id, seed, cid, hash) { await node.pubsub.subscribe(topic) - // Listener for Quiz numbers + // Listener for Quiz numbers and meter readings await node.pubsub.on(topic, async (msg) => { let data = await msg.data @@ -151,7 +148,7 @@ async function quiz(node, id, seed, cid, hash) { // sleep for 15 Minutes until Solution is revealed console.log("neuer SLEEP Thread gestartet") - const worker = new Worker('./src/sleep15Minutes.js'); + const worker = new Worker('./src/p2p/sleep15Minutes.js'); //Listen for a message from worker worker.once("message", (result) => { @@ -182,12 +179,10 @@ async function quiz(node, id, seed, cid, hash) { console.log("Array Zählerstand = ", uploadFile) receivedZählerstand = [] - const { cid } = await ipfs.add(uploadFile) + var cid = await ipfs.add(uploadFile) console.log("Uploaded list of CIDs to IPFS: ", cid.toString()) console.log("Saved CID and Hash to Doichain") - // write CID to Doichain here - if (receivedNumbers.length > 1) { solutionNumber = solution.split(' ')[1] @@ -211,6 +206,8 @@ async function quiz(node, id, seed, cid, hash) { writeWinnerToLog(iteration, winnerPeerId, solution) await writePoEToDoichain(cid, hash) solution = undefined + cid = undefined + eigeneCID = undefined console.log("written Block ") console.log("von sleep thread neuer SLEEP thread") rolle = "schläfer" diff --git a/BlockPro/src/p2p/sleep15Minutes.js b/BlockPro/src/p2p/sleep15Minutes.js index 42abf43..94b7382 100644 --- a/BlockPro/src/p2p/sleep15Minutes.js +++ b/BlockPro/src/p2p/sleep15Minutes.js @@ -7,8 +7,8 @@ import { parentPort }from 'worker_threads' console.log(`Timeout over`); // generate a random number - solutionNumber = Math.floor(Math.random() * 100).toString(); - solution = 'Solution ' + solutionNumber + let solutionNumber = Math.floor(Math.random() * 300).toString(); + let solution = 'Solution ' + solutionNumber console.log('Random number: ' + solution) parentPort.postMessage(`${solution}`); diff --git a/BlockPro/src/p2p/writeWinnerToLog.js b/BlockPro/src/p2p/writeWinnerToLog.js index 30499d5..06a620a 100644 --- a/BlockPro/src/p2p/writeWinnerToLog.js +++ b/BlockPro/src/p2p/writeWinnerToLog.js @@ -2,7 +2,7 @@ import fs from 'fs' import fsPromise from 'fs/promises' import csv from '@fast-csv/format' import path from 'path' -const __dirname = path.resolve(); +const __dirname = path.resolve('./BlockPro/'); const writeWinnerToLog = async (iteration, winnerPeerId, solutionNumber) => { diff --git a/winnerBlockchain2.csv b/BlockPro/winnerBlockchain1.csv similarity index 100% rename from winnerBlockchain2.csv rename to BlockPro/winnerBlockchain1.csv diff --git a/winnerBlockchain3.csv b/BlockPro/winnerBlockchain2.csv similarity index 100% rename from winnerBlockchain3.csv rename to BlockPro/winnerBlockchain2.csv diff --git a/BlockPro/winnerBlockchain3.csv b/BlockPro/winnerBlockchain3.csv new file mode 100644 index 0000000..e69de29 diff --git a/p2pDemo/src/sleep15Minutes.js b/p2pDemo/src/sleep15Minutes.js index 8b24292..3969150 100644 --- a/p2pDemo/src/sleep15Minutes.js +++ b/p2pDemo/src/sleep15Minutes.js @@ -7,7 +7,7 @@ const { isMainThread, parentPort } = require('worker_threads'); console.log(`Timeout over`); // generate a random number - solutionNumber = Math.floor(Math.random() * 100).toString(); + solutionNumber = Math.floor(Math.random() * 300).toString(); solution = 'Solution ' + solutionNumber console.log('Random number: ' + solution) parentPort.postMessage(`${solution}`); diff --git a/winnerBlockchain1.csv b/winnerBlockchain1.csv deleted file mode 100644 index da274dc..0000000 --- a/winnerBlockchain1.csv +++ /dev/null @@ -1,2 +0,0 @@ -index,timestamp,winnerPeerId,solutionNumber -0,"23.8.2021, 18:22:05",QmUkf9pfefP2F55GJ7G9WjqQwpJR5rZTKqSthCMcmxNF1m,undefined