forked from killerstorm/node-bitcoin-exit
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathserver.js
executable file
·87 lines (68 loc) · 2.08 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env node
var bitcoin = require('bitcoinjs');
var express = require('express');
var Pubkeys = require('./pubkeys').Pubkeys;
var Tx = require('./tx').Tx;
var Block = require('./block').Block;
var RealtimeAPI = require('./realtime').API;
var http = require('http');
var Query = require('./query');
var createNode = require('bitcoinjs/daemon/init').createNode;
var node = createNode({ welcome: true });
node.start();
var app = express();
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express['static'](__dirname + '/public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
app.get(/^\/json\//, function (req, res) {
console.log("URL: " + req.url);
var req = http.request({method: 'GET',
host: 'localhost',
port: 3334,
path: req.url},
function (resp) {
var temp = '';
resp.on('data', function (chunk) {
temp = temp.concat(chunk);
});
resp.on('end', function(){
res.send(temp);
});
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
res.send("error");
});
req.end();
});
app.get('/', function(req, res){
res.send('This is a BitcoinJS exit node. Source code available at <a href="https://github.com/bitcoinjs/node-bitcoin-exit">https://github.com/bitcoinjs/node-bitcoin-exit</a>.');
});
var pubkeysModule = new Pubkeys({
node: node
});
pubkeysModule.attach(app, '/pubkeys/');
var txModule = new Tx({
node: node
});
txModule.attach(app, '/tx/');
var blockModule = new Block({
node: node
});
blockModule.attach(app, '/block/');
var server = http.createServer(app);
var io = require('socket.io').listen(server);
var realtimeApi = new RealtimeAPI(io, node, pubkeysModule, txModule, blockModule, Query);
server.listen(3125);