在某种程度上用户必须能够控制节点。这一点通过搭建一个HTTP服务器可以实现。; y) o9 Q+ [/ q9 p9 f" V2 g
- var initHttpServer = () => {% T( V2 e% z! s* ]3 C# O& [
- var app = express();2 N2 `0 w& y! z8 h
- app.use(bodyParser.json());
- app.get('/blocks', (req, res) => res.send(JSON.stringify(blockchain)));
- app.post('/mineBlock', (req, res) => { j( U5 U+ h3 @% O* a
- var newBlock = generateNextBlock(req.body.data);& W ^' N4 ~( q9 S
- addBlock(newBlock);
- broadcast(responseLatestMsg());: u& @ a/ l& J8 |! U( s) ^+ U
- console.log('block added: ' + JSON.stringify(newBlock));# W' v- @/ z$ Q \, h8 X3 q
- res.send();
- });
- app.get('/peers', (req, res) => {
- res.send(sockets.map(s => s._socket.remoteAddress + ':' + s._socket.remotePort));5 O% g8 N% ]$ y! h c
- });
- app.post('/addPeer', (req, res) => {
- connectToPeers([req.body.peer]);
- res.send();
- });
- app.listen(http_port, () => console.log('Listening http on port: ' + http_port));2 }8 i5 o; X2 D( L" i
- };