46 lines
878 B
JavaScript
46 lines
878 B
JavaScript
'use strict';
|
|
|
|
// Usage: $ node ./examples/peer.js [ip]:[port]
|
|
|
|
var Peer = require('bcoin/lib/net/peer');
|
|
var NetAddress = require('bcoin/lib/primitives/netaddress');
|
|
var Network = require('bcoin/lib/protocol/network');
|
|
var network = Network.get('testnet');
|
|
var peer, addr;
|
|
|
|
peer = Peer.fromOptions({
|
|
network: 'testnet',
|
|
agent: 'my-subversion',
|
|
hasWitness: function() {
|
|
return false;
|
|
}
|
|
});
|
|
|
|
addr = NetAddress.fromHostname(process.argv[2], 'testnet');
|
|
|
|
peer.connect(addr);
|
|
peer.tryOpen();
|
|
|
|
peer.on('error', function(err) {
|
|
console.error(err);
|
|
});
|
|
|
|
peer.on('packet', function(msg) {
|
|
console.log(msg);
|
|
|
|
if (msg.cmd === 'block') {
|
|
console.log('Block!');
|
|
console.log(msg.block.toBlock());
|
|
return;
|
|
}
|
|
|
|
if (msg.cmd === 'inv') {
|
|
peer.getData(msg.items);
|
|
return;
|
|
}
|
|
});
|
|
|
|
peer.on('open', function() {
|
|
peer.getBlock([network.genesis.hash]);
|
|
});
|