35 lines
1.1 KiB
Markdown
35 lines
1.1 KiB
Markdown
``` js
|
|
var bcoin = require('bcoin');
|
|
|
|
bcoin.set({
|
|
// Default network (so we can avoid passing
|
|
// the `network` option into every object below.
|
|
network: 'regtest',
|
|
// Enable the global worker pool
|
|
// for mining and transaction verification.
|
|
useWorkers: true
|
|
});
|
|
|
|
// Start up a blockchain, mempool, and miner using in-memory
|
|
// databases (stored in a red-black tree instead of on-disk).
|
|
var chain = new bcoin.chain({ db: 'memory' });
|
|
var mempool = new bcoin.mempool({ chain: chain });
|
|
var miner = new bcoin.miner({ chain: chain, mempool: mempool });
|
|
|
|
// Open the miner (initialize the databases, etc).
|
|
// Miner will implicitly call `open` on chain and mempool.
|
|
miner.open().then(function() {
|
|
// Create a Cpu miner job
|
|
return miner.createJob();
|
|
}).then(function(job) {
|
|
// Mine the block on the worker pool (use mine() for the master process)
|
|
return job.mineAsync();
|
|
}).then(function(block) {
|
|
// Add the block to the chain
|
|
console.log('Adding %s to the blockchain.', block.rhash);
|
|
console.log(block);
|
|
return chain.add(block);
|
|
}).then(function() {
|
|
console.log('Added block!');
|
|
});
|
|
``` |