在某种程度上用户必须能够控制节点。这一点通过搭建一个HTTP服务器可以实现。4 H) F+ R& j8 p; h
- var initHttpServer = () => {
- var app = express();# c, ]+ X9 e/ B% d
- app.use(bodyParser.json());
- app.get('/blocks', (req, res) => res.send(JSON.stringify(blockchain)));
- app.post('/mineBlock', (req, res) => {/ A9 H Q. H6 X( Q- z
- var newBlock = generateNextBlock(req.body.data);
- addBlock(newBlock);
- broadcast(responseLatestMsg());& V# S. x4 I- {8 C/ z( n, N4 B
- console.log('block added: ' + JSON.stringify(newBlock));3 w) g' U0 S; @: `
- res.send();: |9 h. C1 [3 k7 x) _/ ~7 ~2 E* \+ y" I: G
- });
- app.get('/peers', (req, res) => {/ N1 { c: p" X" N+ r# W
- res.send(sockets.map(s => s._socket.remoteAddress + ':' + s._socket.remotePort));
- });
- app.post('/addPeer', (req, res) => {
- connectToPeers([req.body.peer]);- d5 g% z/ F3 W2 m4 d' w" b/ V9 @
- res.send(); s! M, E6 E5 q& G
- });
- app.listen(http_port, () => console.log('Listening http on port: ' + http_port));, s5 H, _0 y. U0 n$ u( r7 P' }
- };