diff --git a/arrayofblocks.js b/arrayofblocks.js new file mode 100644 index 0000000..5f2d2b1 --- /dev/null +++ b/arrayofblocks.js @@ -0,0 +1,5 @@ +var getGenesisBlock = () => { + return new Block(0, "0", 1465154705, "my block!!", "816534932c2b7154836da6afc367695e6337db8a921823784c14378abed4f7d7"); +}; + +var blockchain = [getGenesisBlock()]; diff --git a/block.js b/block.js new file mode 100644 index 0000000..0412250 --- /dev/null +++ b/block.js @@ -0,0 +1,9 @@ +class Block { + constructor(index, previousHash, timestamp, data, hash) { + this.index = index; + this.previousHash = previousHash.toString(); + this.timestamp = timestamp; + this.data = data; + this.hash = hash.toString(); + } +} diff --git a/calHash.js b/calHash.js new file mode 100644 index 0000000..d9da2c4 --- /dev/null +++ b/calHash.js @@ -0,0 +1,3 @@ +var calHash = (index, previousHash, timestamp, data) => { + return CryptoJS.SHA256(index + previousHash + timestamp + data).toString(); +}; diff --git a/generateNextblock.js b/generateNextblock.js new file mode 100644 index 0000000..8080c74 --- /dev/null +++ b/generateNextblock.js @@ -0,0 +1,7 @@ +var generateNextBlock = (blockData) => { + var previousBlock = getLatestBlock(); + var nextIndex = previousBlock.index + 1; + var nextTimestamp = new Date().getTime() / 1000; + var nextHash = calculateHash(nextIndex, previousBlock.hash, nextTimestamp, blockData); + return new Block(nextIndex, previousBlock.hash, nextTimestamp, blockData, nextHash); +}; diff --git a/package.json b/package.json index 128b067..e7a9d32 100644 --- a/package.json +++ b/package.json @@ -16,3 +16,13 @@ "lite-server": "^2.3.0" } } +"dependencies": { + "body-parser": "~1.10.2", + "cookie-parser": "~1.3.3", + "debug": "~2.1.1", + "express": "~4.11.1", + "jade": "~1.9.1", + "morgan": "~1.5.1", + "serve-favicon": "~2.2.0" + } +} diff --git a/server.js b/server.js new file mode 100644 index 0000000..58ccbbf --- /dev/null +++ b/server.js @@ -0,0 +1,28 @@ +var formidable = require('formidable'), + util = require('util'), + express = require('express'), + fs = require('fs'), + app = express(); + app.use(express.static(__dirname, '/public')); + app.post('/upload', function(req, res) { + var form = new formidable.IncomingForm(); + form.parse(req, function(err, fields, files) { + // console.log(util.inspect({ + // fields: fields, + // files: files + // })); + + fs.readFile(files.RemoteFile.path, function(err, data) { + // save file from temp dir to new dir + var newPath = __dirname + "/uploads/" + files.RemoteFile.name; + fs.writeFile(newPath, data, function(err) { + if (err) throw err; + console.log('file saved'); + res.end(); + }); + }); + }); +}); +app.listen(process.env.PORT, process.env.IP, function(){ + console.log("The Blockchain Server Has Started!"); +});