Keygen restart tests

This commit is contained in:
Kirill Fedoseev 2019-11-26 17:41:59 +03:00
parent 2d444a8cd2
commit 3b6e64b784
15 changed files with 66 additions and 8 deletions

View File

@ -27,4 +27,6 @@ VOTES_PROXY_PORT=5001
SIGN_RESTART_PORT=6001
KEYGEN_RESTART_PORT=7001
LOG_LEVEL=trace

View File

@ -27,4 +27,6 @@ VOTES_PROXY_PORT=5001
SIGN_RESTART_PORT=6001
KEYGEN_RESTART_PORT=7001
LOG_LEVEL=info

View File

@ -27,4 +27,6 @@ VOTES_PROXY_PORT=5002
SIGN_RESTART_PORT=6002
KEYGEN_RESTART_PORT=7002
LOG_LEVEL=trace

View File

@ -27,4 +27,6 @@ VOTES_PROXY_PORT=5002
SIGN_RESTART_PORT=6002
KEYGEN_RESTART_PORT=7002
LOG_LEVEL=info

View File

@ -27,4 +27,6 @@ VOTES_PROXY_PORT=5003
SIGN_RESTART_PORT=6003
KEYGEN_RESTART_PORT=7003
LOG_LEVEL=trace

View File

@ -27,4 +27,6 @@ VOTES_PROXY_PORT=5003
SIGN_RESTART_PORT=6003
KEYGEN_RESTART_PORT=7003
LOG_LEVEL=info

View File

@ -39,6 +39,8 @@ services:
- LOG_LEVEL
volumes:
- '${PWD}/${TARGET_NETWORK}/keys:/keys'
ports:
- '${KEYGEN_RESTART_PORT}:8001'
networks:
- test_network
signer:

View File

@ -36,6 +36,8 @@ services:
- LOG_LEVEL
volumes:
- '${PWD}/${TARGET_NETWORK}/keys:/keys'
ports:
- '${KEYGEN_RESTART_PORT}:8001'
networks:
- keygen-proxy-net
- rabbit-keygen-net

View File

@ -44,6 +44,12 @@ function killKeygen() {
exec.execSync('pkill gg18_keygen || true')
}
function restart(req, res) {
logger.info('Manual cancelling current keygen attempt')
killKeygen()
res.send('Done')
}
function keygen(keysFile, epoch) {
let restartTimeoutId
let epochDaemonIntervalId
@ -144,7 +150,7 @@ async function main() {
})
}
app.get('/restart', restart)
app.get('/start', (req, res) => {
logger.info('Ready to start')
ready = true

View File

@ -1,2 +1,2 @@
FOREIGN_URL=http://http-api:8000
FOREIGN_ASSET=DEV-BA8
FOREIGN_ASSET=DEV-9BA

View File

@ -1,4 +1,4 @@
FOREIGN_URL=http://http-api:8000
FOREIGN_ASSET=DEV-BA8
FOREIGN_ASSET=DEV-9BA
FOREIGN_PRIVATE_KEY=dd5ec5a7abe9d1fff21170ae591085f000fc6fd9ca0107fe047593f44e328e40

View File

@ -7,5 +7,5 @@ SIDE_RPC_URL=http://ganache_side:8545
FOREIGN_URL=http://http-api:8000
FOREIGN_CHAIN_ID=Binance-Dev
FOREIGN_ASSET=DEV-BA8
FOREIGN_ASSET=DEV-9BA
FOREIGN_PRIVATE_KEY=dd5ec5a7abe9d1fff21170ae591085f000fc6fd9ca0107fe047593f44e328e40

View File

@ -2,16 +2,21 @@ const assert = require('assert')
const { waitPromise, delay } = require('./utils/wait')
const { getBepBalance, getBncFlags } = require('./utils/bncController')
const { getNonce } = require('./utils/sideController')
const { controller1, controller2, controller3 } = require('./utils/proxyController')
const { keygenController1 } = require('./utils/keygenController')
const { validators } = require('../config')
module.exports = (newThreshold) => {
describe('change threshold', function () {
let info
let initialInfo
let validatorNonce
before(async function () {
initialInfo = await controller1.getInfo()
validatorNonce = await getNonce(validators[0])
info = initialInfo
})
@ -89,8 +94,17 @@ module.exports = (newThreshold) => {
assert.strictEqual(info.nextThreshold, newThreshold, 'Next threshold is not set correctly')
})
it('should finish keygen process and start funds transfer', async function () {
it('should start keys generation', async function () {
this.timeout(120000)
await waitPromise(
() => getNonce(validators[0]),
(nonce) => nonce > validatorNonce + 2
)
})
it('should restart keygen generation and regenerate keys properly, should start funds transfer', async function () {
this.timeout(360000)
await keygenController1.restart()
info = await waitPromise(controller1.getInfo, (newInfo) => newInfo.bridgeStatus === 'funds_transfer')
const flags = await getBncFlags(initialInfo.foreignBridgeAddress)
assert.strictEqual(flags, 0, 'Foreign bridge flags are not set correctly')

View File

@ -0,0 +1,22 @@
const axios = require('axios')
function createController(validatorId) {
const url = `http://validator${validatorId}_keygen_1:8001/`
const keygenClient = axios.create({
baseURL: url,
timeout: 10000
})
return {
async restart() {
await keygenClient.get('/restart')
}
}
}
module.exports = {
keygenController1: createController(1),
keygenController2: createController(2),
keygenController3: createController(3)
}

View File

@ -3,14 +3,14 @@ const axios = require('axios')
function createController(validatorId) {
const url = `http://validator${validatorId}_signer_1:8001/`
const sideClient = axios.create({
const signerClient = axios.create({
baseURL: url,
timeout: 10000
})
return {
async restart() {
await sideClient.get('/restart')
await signerClient.get('/restart')
}
}
}