I'm trying to run a script that retrieves transactions from the blockchain. When I run the script though I get the following error:

Error: IO error: lock /home/bucko/.bcoin/testnet/chain.ldb/LOCK: Resource temporarily unavailable

Here is the JS I'm trying to run:

'use strict';

const path = require('path');
const bcoin = require('../..');
const Chain = bcoin.chain;
const Logger = bcoin.logger;
const util = bcoin.util;

const HOME = process.env.HOME;

// Setup logger to see what's Bcoin doing.
const logger = new Logger({
  level: 'debug'

// Create chain for testnet, specify chain directory
const chain = new Chain({
  logger: logger,
  network: 'testnet',
  db: 'leveldb',
  prefix: path.join(HOME, '.bcoin/testnet'),
  indexTX: true,
  indexAddress: true

(async () => {
  await logger.open();
  await chain.open();

  const entry = await chain.getEntry(50000);
  console.log('Block at 50k:', entry);

  // eslint-disable-next-line max-len
  const txhash = '7f5990b008a2d0fc006d13b15e25d05ff30fadab656d49a5c6afea0e0d0b458c';
  const txmeta = await chain.db.getMeta(util.revHex(txhash));
  console.log(`Tx with hash ${txhash}:`, txmeta);

})().catch((err) => {

You must be running testnet in another shell or some other script that has opened the chain database.

Whenever you open chain database it gets locked so only one process is in charge of it.

lsof -d txt | grep filename You could try this one to locate process holding FD for it.

  • This worked! Thanks. I was able to grep for bcoin with lsof -d txt | grep bcoin and then kill [PID]. I guess this would only work if the running process is bcoin and not a custom script, but good to know at least for checking possibilities. Thanks! – Bucko Aug 10 '17 at 17:30

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.