Skip to content

Commit

Permalink
Merge pull request #105 from zelcash/development
Browse files Browse the repository at this point in the history
v0.62.0
  • Loading branch information
TheTrunk authored Jun 15, 2020
2 parents 2d778a6 + dd22350 commit 5b5b525
Show file tree
Hide file tree
Showing 13 changed files with 1,695 additions and 109 deletions.
17 changes: 11 additions & 6 deletions ZelBack/config/default.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ module.exports = {
collections: {
loggedUsers: 'loggedusers',
activeLoginPhrases: 'activeloginphrases',
activeSignatures: 'activesignatures',
},
},
zelcash: {
Expand All @@ -35,8 +36,9 @@ module.exports = {
zelappsglobal: {
database: 'globalzelapps',
collections: {
zelAppsMessages: 'zelappsmessages', // storage for all zelapps messages done on zelcash network
zelAppsInfo: 'zelappsinfo', // stores actual state of zelapp configuration info - initial state and its overwrites with update messages
zelappsMessages: 'zelappsmessages', // storage for all zelapps messages done on zelcash network
zelappsInformation: 'zelappsinformation', // stores actual state of zelapp configuration info - initial state and its overwrites with update messages
zelappsTemporaryMessages: 'zelappstemporarymessages', // storages for all zelapps messages that are not yet confirmed on the zelcash network
},
},
},
Expand All @@ -50,16 +52,19 @@ module.exports = {
zelapps: {
// in zel per month
price: {
cpu: 3, // per 0.1 cpu core,
ram: 1, // per 100mb,
hdd: 0.5, // per 1gb,
cpu: 3 * 5, // per 0.1 cpu core,
ram: 1 * 5, // per 100mb,
hdd: 0.5 * 5, // per 1gb,
},
address: 't1...', // apps registration address
epochstart: 1000000, // zelapps epoch blockheight start
portMin: 30001, // originally should have been from 30000 but we got temporary folding there
portMax: 39999,
maxImageSize: 300000000, // 300mb
},
lockedSystemResources: {
cpu: 10, // 1 cpu core
ram: 20, // 2000mb
ram: 2000, // 2000mb
hdd: 30, // 30gb // this value is likely to rise
},
fluxSpecifics: {
Expand Down
25 changes: 22 additions & 3 deletions ZelBack/src/routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,12 @@ module.exports = (app, expressWs) => {
app.get('/zelapps/zelappsresources', (req, res) => {
zelappsService.zelappsResources(req, res);
});
app.get('/zelapps/registrationinformation', (req, res) => {
zelappsService.registrationInformation(req, res);
});
app.get('/zelapps/temporarymessages', (req, res) => {
zelappsService.getZelAppsTemporaryMessages(req, res);
});

// app.get('/explorer/allutxos', (req, res) => {
// explorerService.getAllUtxos(req, res);
Expand Down Expand Up @@ -587,6 +593,9 @@ module.exports = (app, expressWs) => {
app.get('/zelflux/allowport/:port?', (req, res) => {
zelfluxCommunication.allowPortApi(req, res);
});
app.get('/zelflux/checkcommunication', (req, res) => {
zelfluxCommunication.isCommunicationEstablished(req, res);
});

app.get('/zelbench/restartnodebenchmarks', (req, res) => {
zelbenchService.restartNodeBenchmarks(req, res);
Expand All @@ -605,9 +614,6 @@ module.exports = (app, expressWs) => {
explorerService.rescanExplorer(req, res);
});

app.get('/zelapps/zelappregister/:repotag?/:name?/:owner?/:cpus?/:ram?/:space?/:port?/:ip?/:envvars?/:privacylevel?', (req, res) => { // privacy level means restrictions of calls. envvars can have privacy to be/not to be exposed // TODO make me post, needs redoing
zelappsService.zelAppRegister(req, res);
});
app.get('/zelapps/zelapppull/:repotag?', (req, res) => { // TODO make me post, needs redoing
zelappsService.zelAppPull(req, res);
});
Expand Down Expand Up @@ -664,6 +670,9 @@ module.exports = (app, expressWs) => {
app.post('/zelid/verifylogin', (req, res) => {
zelidService.verifyLogin(req, res);
});
app.post('/zelid/providesign', (req, res) => {
zelidService.provideSign(req, res);
});

app.post('/zelcash/createrawtransaction', (req, res) => {
zelcashService.createRawTransactionPost(req, res);
Expand Down Expand Up @@ -696,6 +705,13 @@ module.exports = (app, expressWs) => {
zelcashService.submitBlockPost(req, res);
});

app.post('/zelapps/checkdockerexistance', async (req, res) => {
zelappsService.checkDockerAccessibility(req, res);
});
app.post('/zelapps/zelappregister', (req, res) => {
zelappsService.registerZelAppGlobalyApi(req, res);
});

// POST PROTECTED API - ZelNode owner level
app.post('/zelcash/signrawtransaction', (req, res) => {
zelcashService.signRawTransactionPost(req, res);
Expand Down Expand Up @@ -744,6 +760,9 @@ module.exports = (app, expressWs) => {
app.ws('/ws/zelid/:loginphrase', (ws, req) => {
zelidService.wsRespondLoginPhrase(ws, req);
});
app.ws('/ws/zelsign/:message', (ws, req) => {
zelidService.wsRespondSignature(ws, req);
});

// communication between multiple zelflux solution is on this:
app.ws('/ws/zelflux', (ws, req) => {
Expand Down
38 changes: 38 additions & 0 deletions ZelBack/src/services/serviceHelper.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
const axios = require('axios');
const mongodb = require('mongodb');
const config = require('config');
const bitcoinMessage = require('bitcoinjs-message');
Expand Down Expand Up @@ -312,6 +313,24 @@ async function verifyPrivilege(privilege, req) {
return authorized;
}

function verifyZelID(address) {
let isValid = false;
try {
if (!address) {
throw new Error({ message: 'Missing parameters for message verification' });
}

if (address.length > 36) {
const btcPubKeyHash = '00';
zeltrezjs.address.pubKeyToAddr(address, btcPubKeyHash);
}
isValid = true;
} catch (e) {
log.error(e);
isValid = e;
}
return isValid;
}

function verifyMessage(message, address, signature) {
let isValid = false;
Expand Down Expand Up @@ -355,6 +374,23 @@ function signMessage(message, pk) {
return signature;
}

// helper function for timeout on axios connection
const axiosGet = (url, options = {
timeout: 20000,
}) => {
const abort = axios.CancelToken.source();
const id = setTimeout(
() => abort.cancel(`Timeout of ${options.timeout}ms.`),
options.timeout,
);
return axios
.get(url, { cancelToken: abort.token, ...options })
.then((res) => {
clearTimeout(id);
return res;
});
};

module.exports = {
ensureBoolean,
ensureNumber,
Expand Down Expand Up @@ -382,4 +418,6 @@ module.exports = {
createWarningMessage,
createErrorMessage,
errUnauthorizedMessage,
axiosGet,
verifyZelID,
};
Loading

0 comments on commit 5b5b525

Please sign in to comment.