在某种程度上用户必须能够控制节点。这一点通过搭建一个HTTP服务器可以实现。
- var initHttpServer = () => {7 ^' V4 I# k8 j9 F" p$ {
- var app = express();
- app.use(bodyParser.json());: b- r$ P6 V8 z& ]
- app.get('/blocks', (req, res) => res.send(JSON.stringify(blockchain)));1 K" d0 \5 e: i* K
- app.post('/mineBlock', (req, res) => {: S% e; q) e: y" E: p& j
- var newBlock = generateNextBlock(req.body.data);5 l/ b" K% @$ Q& A4 `" g$ ` Y8 X% @
- addBlock(newBlock);' d3 y# C) E, I4 w/ E) S
- broadcast(responseLatestMsg());
- console.log('block added: ' + JSON.stringify(newBlock));
- res.send();+ h3 n; l8 M- k- J
- });+ F+ t3 y+ N6 t% \, n% U+ T: D
- app.get('/peers', (req, res) => {% G" K5 B/ a/ ~ ?! r6 R7 y0 b- k
- res.send(sockets.map(s => s._socket.remoteAddress + ':' + s._socket.remotePort));2 s9 N0 A- b- w% K% }
- });: j% y5 |- j" p# c2 H6 l& ?( X$ {" y
- app.post('/addPeer', (req, res) => {
- connectToPeers([req.body.peer]);
- res.send();
- });
- app.listen(http_port, () => console.log('Listening http on port: ' + http_port));
- };