run-db
Version:
A local database that indexes jig states from RUN transactions
41 lines (33 loc) • 1.36 kB
JavaScript
/**
* direct-server-worker.js
*
* Internal worker thread that runs the user server
*/
const { parentPort, workerData } = require('worker_threads')
const Server = require('./server')
const Bus = require('./bus')
const Database = require('./database')
const logger = {
info: (...args) => Bus.sendRequest(parentPort, 'info', ...args),
warn: (...args) => Bus.sendRequest(parentPort, 'warn', ...args),
error: (...args) => Bus.sendRequest(parentPort, 'error', ...args),
debug: (...args) => Bus.sendRequest(parentPort, 'debug', ...args)
}
const readonly = true
const database = new Database(workerData.dbPath, logger, readonly)
const server = new Server(database, logger, workerData.port)
database.trust = (txid) => Bus.sendRequest(parentPort, 'trust', txid)
database.ban = (txid) => Bus.sendRequest(parentPort, 'ban', txid)
database.addTransaction = (txid, hex) => Bus.sendRequest(parentPort, 'addTransaction', txid, hex)
database.untrust = (txid) => Bus.sendRequest(parentPort, 'untrust', txid)
database.unban = (txid) => Bus.sendRequest(parentPort, 'unban', txid)
database.deleteTransaction = (txid) => Bus.sendRequest(parentPort, 'deleteTransaction', txid)
Bus.listen(parentPort, { start, stop })
async function start () {
await database.open()
await server.start()
}
async function stop () {
await server.stop()
await database.close()
}