在某种程度上用户必须能够控制节点。这一点通过搭建一个HTTP服务器可以实现。7 u+ U' C o; a0 ^; D8 t4 v+ g
- var initHttpServer = () => {
- var app = express();
- app.use(bodyParser.json());
- app.get('/blocks', (req, res) => res.send(JSON.stringify(blockchain)));
- app.post('/mineBlock', (req, res) => {% P8 {: u( P% W. b
- var newBlock = generateNextBlock(req.body.data);5 M% F7 u b/ Z0 O; H2 y
- addBlock(newBlock);0 R& ^2 A- |( ^. B( P+ ]' D7 w) I
- broadcast(responseLatestMsg());& g1 M( T( ], S
- console.log('block added: ' + JSON.stringify(newBlock));; C8 ]/ ~5 U, h T: T( b' d3 s
- res.send(); `3 {+ p/ }1 \9 P' z5 D2 {6 f) Q
- });
- app.get('/peers', (req, res) => {2 P3 j9 Z2 C* z6 |' G1 Z" Q, L! O
- res.send(sockets.map(s => s._socket.remoteAddress + ':' + s._socket.remotePort));- W7 D9 { A/ _8 K, l
- });
- app.post('/addPeer', (req, res) => {0 |- y" c* U) R6 D
- connectToPeers([req.body.peer]);
- res.send();
- });
- app.listen(http_port, () => console.log('Listening http on port: ' + http_port));: H, ~) O. W7 P6 A: O5 q4 J
- };