From 52698a18659c2cfd95f7aca5ac54546d088fa1c1 Mon Sep 17 00:00:00 2001 From: Kirill Fedoseev Date: Fri, 11 Oct 2019 11:50:41 +0300 Subject: [PATCH] Added reset block functionality --- demo/reset-to-block.sh | 19 +++++++++++++++++++ src/oracle/scripts/resetToBlock/Dockerfile | 11 +++++++++++ src/oracle/scripts/resetToBlock/package.json | 7 +++++++ .../scripts/resetToBlock/resetToBlock.js | 18 ++++++++++++++++++ src/oracle/scripts/resetToBlock/run.sh | 9 +++++++++ 5 files changed, 64 insertions(+) create mode 100755 demo/reset-to-block.sh create mode 100644 src/oracle/scripts/resetToBlock/Dockerfile create mode 100644 src/oracle/scripts/resetToBlock/package.json create mode 100644 src/oracle/scripts/resetToBlock/resetToBlock.js create mode 100755 src/oracle/scripts/resetToBlock/run.sh diff --git a/demo/reset-to-block.sh b/demo/reset-to-block.sh new file mode 100755 index 0000000..7028678 --- /dev/null +++ b/demo/reset-to-block.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +set -e + +cd $(dirname "$0") + +# either development or staging +TARGET_NETWORK=${TARGET_NETWORK:=development} + +echo "Resetting block in redis" + +docker network create redis_net > /dev/null 2>&1 || true +docker kill redis > /dev/null 2>&1 || true +docker rm redis > /dev/null 2>&1 || true +docker run --rm --network redis_net -d --name redis -v "$PWD/validator$N/$TARGET_NETWORK/db:/data" redis:5.0.5-alpine + +../src/oracle/scripts/resetToBlock/run.sh redis_net $1 + +docker kill redis diff --git a/src/oracle/scripts/resetToBlock/Dockerfile b/src/oracle/scripts/resetToBlock/Dockerfile new file mode 100644 index 0000000..1702c3d --- /dev/null +++ b/src/oracle/scripts/resetToBlock/Dockerfile @@ -0,0 +1,11 @@ +FROM node:10.16.0-alpine + +WORKDIR /test + +COPY package.json /test/ + +RUN npm install + +COPY resetToBlock.js /test/ + +ENTRYPOINT ["node", "resetToBlock.js"] diff --git a/src/oracle/scripts/resetToBlock/package.json b/src/oracle/scripts/resetToBlock/package.json new file mode 100644 index 0000000..f4546c1 --- /dev/null +++ b/src/oracle/scripts/resetToBlock/package.json @@ -0,0 +1,7 @@ +{ + "name": "reset-to-block", + "version": "0.0.1", + "dependencies": { + "ioredis": "4.14.1" + } +} diff --git a/src/oracle/scripts/resetToBlock/resetToBlock.js b/src/oracle/scripts/resetToBlock/resetToBlock.js new file mode 100644 index 0000000..bcbaddf --- /dev/null +++ b/src/oracle/scripts/resetToBlock/resetToBlock.js @@ -0,0 +1,18 @@ +const Redis = require('ioredis') + +const redis = new Redis({ + port: 6379, + host: 'redis', + family: 4, + db: 0 +}) + +redis.on('error', () => { + console.log('Error: Cannot connect to redis') +}) + +redis.on('connect', async () => { + await redis.set('homeBlock', parseInt(process.argv[2])) + await redis.save() + redis.disconnect() +}) diff --git a/src/oracle/scripts/resetToBlock/run.sh b/src/oracle/scripts/resetToBlock/run.sh new file mode 100755 index 0000000..d739bb7 --- /dev/null +++ b/src/oracle/scripts/resetToBlock/run.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e + +cd $(dirname "$0") + +docker build -t reset-to-block . + +docker run --rm --network $1 reset-to-block $2