diff --git a/scriptUpdateNode2.js b/scriptChildNode.js similarity index 68% rename from scriptUpdateNode2.js rename to scriptChildNode.js index 9c53af0..829e511 100644 --- a/scriptUpdateNode2.js +++ b/scriptChildNode.js @@ -6,6 +6,8 @@ const IpfsClient = require('ipfs-http-client'); const OrbitDB = require('orbit-db'); //Instance of IPFS locally in IPFS daemon const node = IpfsClient('http://localhost:5001'); +const MongoClient = require('mongodb').MongoClient; +const url = "mongodb://"+process.env.USERDB+":"+process.env.PASSDB+"@localhost:27017/"+process.env.DBNAME; //Module for get prices var getEth = require('./getEth'); @@ -35,41 +37,59 @@ async function index() { indexBy: 'dates' }); await db3.load(); - const db4 = await orbitdb.docs('decaCCT', { + const db4 = await orbitdb.docs('decaCCTS', { indexBy: 'dates' }); await db4.load(); + const dbm = await MongoClient.connect(url, { useUnifiedTopology: true }).catch(err => { console.log(err); }); //Flag to save the following data - let dates = 1591980300; + let dates = 1593553845; while (true) { //Get Carbon Credits Data const data = db.get(''); //Compare flag and unixtime to add data if (Math.round(new Date().getTime() / 1000) == dates) { - dates += 300; + var dbo = dbm.db("DECA"); //Get data from functions let elemsGeth = await getGethElems(dates); let elemsDECAPrice = await getEth(dates); let ccTotalEth = await getEthSum(data, dates); //checks every 2 minutes to see if the data has already been inserted into the DBs if not - setTimeout(function () { + setTimeout(async function () { const query1 = db2.query((doc) => doc.dates == dates); const query2 = db3.query((doc) => doc.dates == dates); const query3 = db4.query((doc) => doc.dates == dates); - if(query1.length > 0){ + dbo.collection("decaPrice").insertOne(elemsDECAPrice, function(err, res) { + if (err) throw err; + console.log("Insert decaPrice") + }); + dbo.collection("decaGeth").insertOne(elemsGeth, function(err, res) { + if (err) throw err; + console.log("Insert decaGeth") + }); + dbo.collection("decaCCTS").insertOne(ccTotalEth, function(err, res) { + if (err) throw err; + console.log("Insert decaCCTS") + }); + if (query1.length > 0) { + let elemsDECAPrice = await getEth(dates); const hash1 = await db2.put(elemsDECAPrice); console.log(hash1); } - if(query2.length > 0){ + if (query2.length > 0) { + let elemsGeth = await getGethElems(dates); + const hash2 = await db3.put(elemsGeth); console.log(hash2); } - if(query3.length > 0){ + if (query3.length > 0) { + let ccTotalEth = await getEthSum(data, dates); + const hash3 = await db4.put(ccTotalEth); - console.log(hash3); + console.log(hash3); } - - }, 20000); + dates += 60; + }, 10000); } } } diff --git a/scriptUpdateNode1.js b/scriptMainNode.js similarity index 52% rename from scriptUpdateNode1.js rename to scriptMainNode.js index c53eb52..78198a5 100644 --- a/scriptUpdateNode1.js +++ b/scriptMainNode.js @@ -1,11 +1,12 @@ //Load Environment Variables require('dotenv').config() - //IPFS const IpfsClient = require('ipfs-http-client'); const OrbitDB = require('orbit-db'); //Instance of IPFS locally in IPFS daemon const node = IpfsClient('http://localhost:5001'); +const MongoClient = require('mongodb').MongoClient; +const url = "mongodb://accountUser:Asd123456!@localhost:27017/DECA"; //Module for get prices var getEth = require('./getEth'); @@ -18,8 +19,7 @@ const Web3 = require('web3'); const web3 = new Web3(new Web3.providers.WebsocketProvider(process.env.INFURAKEY)); //DECA Contract instance -const decaContract = new web3.eth.Contract(abi, '0xD60DC0805f44d10cAc6594f1a501c67929448957'); - +const decaContract = new web3.eth.Contract(abi, '0xE453a11fC1925605638cC590897498375973D301'); async function index() { //Open and load orbitdb databases @@ -28,7 +28,7 @@ async function index() { indexBy: 'CCID' }); await db.load(); - const db2 = await orbitdb.docs('decaPrices', { + const db2 = await orbitdb.docs('decaPrice', { indexBy: 'dates' }); await db2.load(); @@ -36,43 +36,54 @@ async function index() { indexBy: 'dates' }); await db3.load(); - const db4 = await orbitdb.docs('decaCCT', { + const db4 = await orbitdb.docs('decaCCTS', { indexBy: 'dates' }); await db4.load(); + const dbm = await MongoClient.connect(url, { useUnifiedTopology: true }) + .catch(err => { console.log(err); }); //Flag to save the following data - let dates = 1592331780; + let dates = 1593552592; while (true) { - //Get Carbon Credits Data - const data = db.get(''); //Compare flag and unixtime to add data if (Math.round(new Date().getTime() / 1000) == dates) { - dates += 120; + dates += 30; //Get data from functions - try{ - let elemsDECAPrice = await getEth(dates); - console.log(elemsDECAPrice); - const hash1 = await db2.put(elemsDECAPrice); - console.log(hash1); - }catch{ - console.error("Error in DECA Prices"); - } - try{ - let elemsGeth = await getGethElems(dates); - console.log(elemsGeth); - const hash2 = await db3.put(elemsGeth); - console.log(hash2); - }catch{ - console.error("Error in GETH"); - } - try{ - let ccTotalEth = await getEthSum(data, dates); - console.log(ccTotalEth); - const hash3 = await db4.put(ccTotalEth); - console.log(hash3); - }catch{ - console.error("Error in CCDB") - } + var dbo = dbm.db("DECA"); + try{ + let elemsDECAPrice = await getEth(dates); + const hash1 = await db2.put(elemsDECAPrice); + dbo.collection("decaPrice").insertOne(elemsDECAPrice, function(err, res) { + if (err) throw err; + console.log("Insert decaPrice") + }); + console.log(hash1); + }catch{ + console.error("Error in DECA Prices"); + } + try{ + let elemsGeth = await getGethElems(dates); + const hash2 = await db3.put(elemsGeth); + dbo.collection("decaGeth").insertOne(elemsGeth, function(err, res) { + if (err) throw err; + console.log("Insert decaGeth") + }); + console.log(hash2); + }catch{ + console.error("Error in GETH"); + } + try{ + const data = await db.get(''); + let ccTotalEth = await getEthSum(data, dates); + const hash3 = await db4.put(ccTotalEth); + dbo.collection("decaCCTS").insertOne(ccTotalEth, function(err, res) { + if (err) throw err; + console.log("Insert decaCCTS") + }); + console.log(hash3); + }catch{ + console.error("Error in CCDB") + } } } } @@ -99,10 +110,10 @@ const getEthSum = async (elemsCC, dates) => { let sumCC = 0; for (let key in elemsCC) { sum += elemsCC[key]['conversionPrice']['ETH']; - sumCC +=1; + sumCC += 1; } ret.ccTotal = sumCC; ret.ccTS = sum; ret.dates = dates; return ret; -} +} \ No newline at end of file