在某种程度上用户必须能够控制节点。这一点通过搭建一个HTTP服务器可以实现。
- var initHttpServer = () => {! T6 Z ^) U: ~
- var app = express();
- app.use(bodyParser.json());$ b) Y& {, ]( o: G# |
- app.get('/blocks', (req, res) => res.send(JSON.stringify(blockchain)));1 c0 \- ]% o$ h' y' t! S5 ]& q
- app.post('/mineBlock', (req, res) => {
- var newBlock = generateNextBlock(req.body.data);
- addBlock(newBlock);0 O- {& c5 O5 f% C8 H
- broadcast(responseLatestMsg());
- console.log('block added: ' + JSON.stringify(newBlock));) I! Y {* t [- s( R. [5 j
- res.send();4 m' o. h% z4 T# A7 E8 Y2 N! f
- });
- app.get('/peers', (req, res) => {
- res.send(sockets.map(s => s._socket.remoteAddress + ':' + s._socket.remotePort));
- });, i0 G4 S! P: L) x* ~' X
- app.post('/addPeer', (req, res) => {
- connectToPeers([req.body.peer]);; ?) X" u9 ~3 B3 W- a9 o5 N
- res.send();
- });+ p; j0 i) M7 V! U$ I
- app.listen(http_port, () => console.log('Listening http on port: ' + http_port));
- };