feat: backport remote BTC node support
This commit is contained in:
parent
24473de6d5
commit
1b6ba5e6dc
15 changed files with 272 additions and 55 deletions
|
|
@ -6,6 +6,8 @@ const setEnvVariable = require('./set-env-var')
|
|||
|
||||
fs.copyFileSync(path.resolve(__dirname, '../.sample.env'), path.resolve(__dirname, '../.env'))
|
||||
|
||||
setEnvVariable('NODE_ENV', 'development')
|
||||
|
||||
setEnvVariable('LAMASSU_DB', 'DEV')
|
||||
setEnvVariable('POSTGRES_USER', 'postgres')
|
||||
setEnvVariable('POSTGRES_PASSWORD', 'postgres123')
|
||||
|
|
@ -20,6 +22,7 @@ setEnvVariable('KEY_PATH', `${process.env.PWD}/certs/Lamassu_OP.key`)
|
|||
setEnvVariable('MNEMONIC_PATH', `${process.env.HOME}/.lamassu/mnemonics/mnemonic.txt`)
|
||||
setEnvVariable('MIGRATE_STATE_PATH', `${process.env.HOME}/.lamassu/.migrate`)
|
||||
|
||||
setEnvVariable('BLOCKCHAIN_DIR', `${process.env.PWD}/blockchains`)
|
||||
setEnvVariable('OFAC_DATA_DIR', `${process.env.HOME}/.lamassu/ofac`)
|
||||
setEnvVariable('ID_PHOTO_CARD_DIR', `${process.env.HOME}/.lamassu/idphotocard`)
|
||||
setEnvVariable('FRONT_CAMERA_DIR', `${process.env.HOME}/.lamassu/frontcamera`)
|
||||
|
|
@ -28,5 +31,8 @@ setEnvVariable('OPERATOR_DATA_DIR', `${process.env.HOME}/.lamassu/operatordata`)
|
|||
setEnvVariable('OFAC_SOURCES_NAMES', 'sdn_advanced,cons_advanced')
|
||||
setEnvVariable('OFAC_SOURCES_URLS', 'https://www.treasury.gov/ofac/downloads/sanctions/1.0/sdn_advanced.xml,https://www.treasury.gov/ofac/downloads/sanctions/1.0/cons_advanced.xml')
|
||||
|
||||
setEnvVariable('BTC_NODE_LOCATION', 'remote')
|
||||
setEnvVariable('BTC_WALLET_LOCATION', 'local')
|
||||
|
||||
setEnvVariable('HOSTNAME', 'localhost')
|
||||
setEnvVariable('LOG_LEVEL', 'debug')
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ if (!_.isEqual(_.intersection(_.keys(argv), requiredParams), requiredParams)) {
|
|||
|
||||
fs.copyFileSync(path.resolve(__dirname, '../.sample.env'), path.resolve('/etc', 'lamassu', '.env'))
|
||||
|
||||
setEnvVariable('NODE_ENV', 'production')
|
||||
|
||||
setEnvVariable('POSTGRES_USER', 'lamassu_pg')
|
||||
setEnvVariable('POSTGRES_PASSWORD', `${argv['db-password']}`)
|
||||
setEnvVariable('POSTGRES_HOST', 'localhost')
|
||||
|
|
@ -40,5 +42,8 @@ setEnvVariable('COIN_ATM_RADAR_URL', `https://coinatmradar.info/api/lamassu/`)
|
|||
setEnvVariable('OFAC_SOURCES_NAMES', 'sdn_advanced,cons_advanced')
|
||||
setEnvVariable('OFAC_SOURCES_URLS', 'https://www.treasury.gov/ofac/downloads/sanctions/1.0/sdn_advanced.xml,https://www.treasury.gov/ofac/downloads/sanctions/1.0/cons_advanced.xml')
|
||||
|
||||
setEnvVariable('BTC_NODE_LOCATION', 'local')
|
||||
setEnvVariable('BTC_WALLET_LOCATION', 'local')
|
||||
|
||||
setEnvVariable('HOSTNAME', `${argv.hostname}`)
|
||||
setEnvVariable('LOG_LEVEL', 'info')
|
||||
|
|
|
|||
32
tools/migrate-env.js
Normal file
32
tools/migrate-env.js
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
const _ = require('lodash/fp')
|
||||
const setEnvVariable = require('./set-env-var')
|
||||
|
||||
const ENV_PATH = process.env.NODE_ENV === 'production' ? path.resolve('/etc', 'lamassu', '.env') : path.resolve(__dirname, '../.env')
|
||||
const BACKUP_TIMESTAMP = Date.now()
|
||||
const BACKUP_PATH = `${ENV_PATH}-${BACKUP_TIMESTAMP}`
|
||||
|
||||
const migrateEnv = newVars => {
|
||||
try {
|
||||
fs.copyFileSync(ENV_PATH, BACKUP_PATH)
|
||||
_.forEach(it => {
|
||||
setEnvVariable(it[0], it[1], { ENV_PATH })
|
||||
}, newVars)
|
||||
fs.unlinkSync(BACKUP_PATH)
|
||||
console.log('Environment migration successful')
|
||||
} catch (e) {
|
||||
// Rollback the migration and restore the backup file
|
||||
if (fs.existsSync(BACKUP_PATH)) {
|
||||
console.log('Rolling back the environment migration...')
|
||||
fs.copyFileSync(BACKUP_PATH, ENV_PATH)
|
||||
fs.unlinkSync(BACKUP_PATH)
|
||||
console.log('Rollback finished')
|
||||
}
|
||||
console.log('Environment migration failed')
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = migrateEnv
|
||||
|
|
@ -1,9 +1,10 @@
|
|||
const fs = require('fs')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
const _ = require('lodash/fp')
|
||||
|
||||
const setEnvVariable = (key, value) => {
|
||||
const ENV_PATH = path.resolve(__dirname, '../.env')
|
||||
const setEnvVariable = (key, value, opts) => {
|
||||
const ENV_PATH = !_.isNil(opts.ENV_PATH) ? opts.ENV_PATH : process.env.NODE_ENV === 'production' ? path.resolve('/etc', 'lamassu', '.env') : path.resolve(__dirname, '../.env')
|
||||
const ENV_VARIABLES = fs.readFileSync(ENV_PATH, 'utf-8').split(os.EOL)
|
||||
const target = ENV_VARIABLES.indexOf(ENV_VARIABLES.find(line => line.match(new RegExp(`^${key}=`))))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue