Skip to content

Commit

Permalink
Merge pull request #1239 from ainblockchain/bugfix/platfowner/bugfix
Browse files Browse the repository at this point in the history
Spin off Consensus APIs from Block APIs
  • Loading branch information
platfowner committed Feb 7, 2024
2 parents a3bc69a + af9e336 commit 07bb948
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 74 deletions.
15 changes: 0 additions & 15 deletions json_rpc/account.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,20 +40,5 @@ module.exports = function getAccountApis(node) {
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result }));
},

[JSON_RPC_METHODS.AIN_GET_VALIDATOR_INFO]: function(args, done) {
const beginTime = Date.now();
const addr = args.address;
const isWhitelisted = node.db.getValue(PathUtil.getConsensusProposerWhitelistAddrPath(addr)) || false;
const stake = node.db.getValue(PathUtil.getServiceAccountBalancePath(addr)) || 0;
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({
result: {
isWhitelisted,
stake,
}
}));
},
};
};
79 changes: 20 additions & 59 deletions json_rpc/block.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,12 @@ const {
TrafficEventTypes,
trafficStatsManager,
} = require('../common/constants');
const CommonUtil = require('../common/common-util');
const JsonRpcUtil = require('./json-rpc-util');
const { JSON_RPC_METHODS } = require('./constants');

module.exports = function getBlockApis(node) {
return {
[JSON_RPC_METHODS.AIN_GET_BLOCK_LIST]: function(args, done) {
const beginTime = Date.now();
const blocks = node.bc.getBlockList(args.from, args.to);
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result: blocks }));
},

[JSON_RPC_METHODS.AIN_GET_LAST_BLOCK]: function(args, done) {
const beginTime = Date.now();
const result = node.bc.lastBlock();
Expand All @@ -31,75 +24,52 @@ module.exports = function getBlockApis(node) {
done(null, JsonRpcUtil.addProtocolVersion({ result }));
},

[JSON_RPC_METHODS.AIN_GET_BLOCK_HEADERS_LIST]: function(args, done) {
[JSON_RPC_METHODS.AIN_GET_BLOCK_BY_NUMBER]: function(args, done) {
const beginTime = Date.now();
const blocks = node.bc.getBlockList(args.from, args.to);
const blockHeaders = [];
blocks.forEach((block) => {
blockHeaders.push(block.header);
});
const block = node.bc.getBlockByNumber(args.number);
if (block && !CommonUtil.toBool(args.getFullTransactions)) {
block.transactions = JsonRpcUtil.extractTransactionHashes(block);
}
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result: blockHeaders }));
done(null, JsonRpcUtil.addProtocolVersion({ result: block }));
},

[JSON_RPC_METHODS.AIN_GET_BLOCK_BY_HASH]: function(args, done) {
const beginTime = Date.now();
const block = node.bc.getBlockByHash(args.hash);
if (block && !args.getFullTransactions) {
if (block && !CommonUtil.toBool(args.getFullTransactions)) {
block.transactions = JsonRpcUtil.extractTransactionHashes(block);
}
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result: block }));
},

[JSON_RPC_METHODS.AIN_GET_BLOCK_BY_NUMBER]: function(args, done) {
const beginTime = Date.now();
const block = node.bc.getBlockByNumber(args.number);
if (!block || args.getFullTransactions) {
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result: block }));
} else {
block.transactions = JsonRpcUtil.extractTransactionHashes(block);
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result: block }));
}
},

[JSON_RPC_METHODS.AIN_GET_PROPOSER_BY_HASH]: function(args, done) {
[JSON_RPC_METHODS.AIN_GET_BLOCK_LIST]: function(args, done) {
const beginTime = Date.now();
const block = node.bc.getBlockByHash(args.hash);
const result = block ? block.proposer : null;
const blocks = node.bc.getBlockList(args.from, args.to);
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result }));
done(null, JsonRpcUtil.addProtocolVersion({ result: blocks }));
},

[JSON_RPC_METHODS.AIN_GET_PROPOSER_BY_NUMBER]: function(args, done) {
[JSON_RPC_METHODS.AIN_GET_BLOCK_HEADERS_LIST]: function(args, done) {
const beginTime = Date.now();
const block = node.bc.getBlockByNumber(args.number);
const result = block ? block.proposer : null;
const blocks = node.bc.getBlockList(args.from, args.to);
const blockHeaders = [];
blocks.forEach((block) => {
blockHeaders.push(block.header);
});
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result }));
done(null, JsonRpcUtil.addProtocolVersion({ result: blockHeaders }));
},

[JSON_RPC_METHODS.AIN_GET_VALIDATORS_BY_NUMBER]: function(args, done) {
[JSON_RPC_METHODS.AIN_GET_BLOCK_TRANSACTION_COUNT_BY_NUMBER]: function(args, done) {
const beginTime = Date.now();
const block = node.bc.getBlockByNumber(args.number);
const result = block ? block.validators : null;
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result }));
},

[JSON_RPC_METHODS.AIN_GET_VALIDATORS_BY_HASH]: function(args, done) {
const beginTime = Date.now();
const block = node.bc.getBlockByHash(args.hash);
const result = block ? block.validators : null;
const result = block ? block.transactions.length : null;
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result }));
Expand All @@ -113,14 +83,5 @@ module.exports = function getBlockApis(node) {
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result }));
},

[JSON_RPC_METHODS.AIN_GET_BLOCK_TRANSACTION_COUNT_BY_NUMBER]: function(args, done) {
const beginTime = Date.now();
const block = node.bc.getBlockByNumber(args.number);
const result = block ? block.transactions.length : null;
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result }));
},
};
};
61 changes: 61 additions & 0 deletions json_rpc/consensus.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
const {
TrafficEventTypes,
trafficStatsManager,
} = require('../common/constants');
const JsonRpcUtil = require('./json-rpc-util');
const { JSON_RPC_METHODS } = require('./constants');

module.exports = function getBlockApis(node) {
return {
[JSON_RPC_METHODS.AIN_GET_VALIDATOR_INFO]: function(args, done) {
const beginTime = Date.now();
const addr = args.address;
const isWhitelisted = node.db.getValue(PathUtil.getConsensusProposerWhitelistAddrPath(addr)) || false;
const stake = node.db.getValue(PathUtil.getServiceAccountBalancePath(addr)) || 0;
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({
result: {
isWhitelisted,
stake,
}
}));
},

[JSON_RPC_METHODS.AIN_GET_VALIDATORS_BY_NUMBER]: function(args, done) {
const beginTime = Date.now();
const block = node.bc.getBlockByNumber(args.number);
const result = block ? block.validators : null;
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result }));
},

[JSON_RPC_METHODS.AIN_GET_VALIDATORS_BY_HASH]: function(args, done) {
const beginTime = Date.now();
const block = node.bc.getBlockByHash(args.hash);
const result = block ? block.validators : null;
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result }));
},

[JSON_RPC_METHODS.AIN_GET_PROPOSER_BY_NUMBER]: function(args, done) {
const beginTime = Date.now();
const block = node.bc.getBlockByNumber(args.number);
const result = block ? block.proposer : null;
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result }));
},

[JSON_RPC_METHODS.AIN_GET_PROPOSER_BY_HASH]: function(args, done) {
const beginTime = Date.now();
const block = node.bc.getBlockByHash(args.hash);
const result = block ? block.proposer : null;
const latency = Date.now() - beginTime;
trafficStatsManager.addEvent(TrafficEventTypes.JSON_RPC_GET, latency);
done(null, JsonRpcUtil.addProtocolVersion({ result }));
},
};
};

0 comments on commit 07bb948

Please sign in to comment.