56 lines
1.0 KiB
JavaScript
56 lines
1.0 KiB
JavaScript
'use strict';
|
|
|
|
const FullNode = require('bcoin/lib/node/fullnode');
|
|
|
|
function MyPlugin(node) {
|
|
this.node = node;
|
|
}
|
|
|
|
MyPlugin.id = 'my-plugin';
|
|
|
|
MyPlugin.init = function init(node) {
|
|
return new MyPlugin(node);
|
|
};
|
|
|
|
MyPlugin.prototype.open = function open() {
|
|
console.log('Opened my plugin.');
|
|
return Promise.resolve();
|
|
};
|
|
|
|
MyPlugin.prototype.close = function close() {
|
|
console.log('Closed my plugin.');
|
|
return Promise.resolve();
|
|
};
|
|
|
|
MyPlugin.prototype.sayPeers = function sayPeers() {
|
|
console.log('Number of peers: %d', this.node.pool.peers.size());
|
|
};
|
|
|
|
const node = new FullNode({
|
|
network: 'testnet',
|
|
db: 'memory',
|
|
workers: true
|
|
});
|
|
|
|
node.use(MyPlugin);
|
|
|
|
(async () => {
|
|
let plugin = node.require('my-plugin');
|
|
|
|
await node.open();
|
|
|
|
await node.connect();
|
|
|
|
plugin.sayPeers();
|
|
|
|
node.on('connect', (entry, block) => {
|
|
console.log('%s (%d) added to chain.', entry.rhash(), entry.height);
|
|
});
|
|
|
|
node.on('tx', (tx) => {
|
|
console.log('%s added to mempool.', tx.txid());
|
|
});
|
|
|
|
node.startSync();
|
|
})();
|