diff --git a/debug_scripts/block_locker.js b/debug_scripts/block_locker.js new file mode 100644 index 0000000..e164eb0 --- /dev/null +++ b/debug_scripts/block_locker.js @@ -0,0 +1,19 @@ +"use strict"; +let mysql = require("promise-mysql"); +let fs = require("fs"); +let argv = require('minimist')(process.argv.slice(2)); +let config = fs.readFileSync("../config.json"); +let coinConfig = fs.readFileSync("../coinConfig.json"); +let protobuf = require('protocol-buffers'); + +global.support = require("../lib/support.js")(); +global.config = JSON.parse(config); +global.mysql = mysql.createPool(global.config.mysql); +global.protos = protobuf(fs.readFileSync('../lib/data.proto')); +let comms; +comms = require('../lib/local_comms'); +global.database = new comms(); +global.database.initEnv(); +global.database.lockBlock(argv.blockID); +console.log("Block "+argv.blockID+" re-locked! Exiting!"); +process.exit(); \ No newline at end of file diff --git a/lib/local_comms.js b/lib/local_comms.js index 43ddb06..0f8b0a7 100644 --- a/lib/local_comms.js +++ b/lib/local_comms.js @@ -324,6 +324,17 @@ function Database(){ txn.commit(); }; + this.lockBlock = function(blockId){ + let txn = this.env.beginTxn(); + let blockProto = txn.getBinary(this.blockDB, blockId); + if (blockProto !== null){ + let blockData = global.protos.Block.decode(blockProto); + blockData['unlocked'] = false; + txn.putBinary(this.blockDB, blockId, global.protos.Block.encode(blockData)); + } + txn.commit(); + }; + this.getCache = function(cacheKey){ debug("Getting Key: "+cacheKey); try {