Skip to content

Commit f3f6463

Browse files
committed
BE-447 | fetch latest block time to get channels updation time
1 parent 476b8f3 commit f3f6463

File tree

2 files changed

+158
-51
lines changed

2 files changed

+158
-51
lines changed

app/persistence/fabric/CRUDService.ts

Lines changed: 52 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -103,17 +103,36 @@ export class CRUDService {
103103
let sqlTxList = ` select t.creator_msp_id,t.txhash,t.type,t.chaincodename,t.createdt,channel.name as channelName from transactions as t
104104
inner join channel on t.channel_genesis_hash=channel.channel_genesis_hash and t.network_name = channel.network_name where t.blockid >= $1 and t.id >= $2 and
105105
t.channel_genesis_hash = $3 and t.network_name = $4 and t.createdt between $5 and $6 `;
106-
const values = [blockNum, txid, channel_genesis_hash, network_name, from, to, page, size];
106+
const values = [
107+
blockNum,
108+
txid,
109+
channel_genesis_hash,
110+
network_name,
111+
from,
112+
to,
113+
page,
114+
size
115+
];
107116
if (page == 1) {
108117
let sqlTxCount: string;
109-
const filterValues = [blockNum, txid, channel_genesis_hash, network_name, from, to];
118+
const filterValues = [
119+
blockNum,
120+
txid,
121+
channel_genesis_hash,
122+
network_name,
123+
from,
124+
to
125+
];
110126
sqlTxCount = ` select count(*) from transactions as t inner join channel on t.channel_genesis_hash=channel.channel_genesis_hash and t.network_name = channel.network_name
111-
where t.blockid >= $1 and t.id >= $2 and t.channel_genesis_hash = $3 and t.network_name = $4 and t.createdt between $5 and $6 `
127+
where t.blockid >= $1 and t.id >= $2 and t.channel_genesis_hash = $3 and t.network_name = $4 and t.createdt between $5 and $6 `;
112128
if (orgs && orgs.length > 0) {
113129
sqlTxCount += ' and t.creator_msp_id = ANY($7)';
114130
filterValues.push(orgs);
115131
}
116-
countOfTxns = await this.sql.getRowsCountBySQlQuery(sqlTxCount, filterValues)
132+
countOfTxns = await this.sql.getRowsCountBySQlQuery(
133+
sqlTxCount,
134+
filterValues
135+
);
117136
}
118137
if (orgs && orgs.length > 0) {
119138
sqlTxList += ' and t.creator_msp_id = ANY($9)';
@@ -124,7 +143,7 @@ export class CRUDService {
124143
let response = {
125144
txnsData: txnsData,
126145
noOfpages: Math.ceil(countOfTxns / size)
127-
}
146+
};
128147

129148
return response;
130149
}
@@ -162,7 +181,7 @@ export class CRUDService {
162181
byOrgs = ' and creator_msp_id = ANY($7)';
163182
}
164183
let sqlBlockTxList;
165-
if(orgs == null || orgs.length == 0 ) {
184+
if (orgs == null || orgs.length == 0) {
166185
sqlBlockTxList = `SELECT a.* FROM (
167186
SELECT (SELECT c.name FROM channel c WHERE c.channel_genesis_hash =$1 AND c.network_name = $2)
168187
as channelname, blocks.blocknum,blocks.txcount ,blocks.datahash ,blocks.blockhash ,blocks.prehash,blocks.createdt, blocks.blksize, (
@@ -188,18 +207,18 @@ export class CRUDService {
188207
filterValues.push(orgs);
189208
byOrgs = ' and creator_msp_id = ANY($5)';
190209
}
191-
if(orgs == null || orgs.length == 0 ) {
210+
if (orgs == null || orgs.length == 0) {
192211
sqlBlockTxCount = `SELECT COUNT(DISTINCT blocks.blocknum) FROM blocks
193212
JOIN transactions ON blocks.blocknum = transactions.blockid
194213
WHERE blockid = blocks.blocknum ${byOrgs} AND
195214
blocknum >= 0 AND blocks.channel_genesis_hash = $1 AND blocks.network_name = $2 AND
196-
blocks.createdt between $3 AND $4`
215+
blocks.createdt between $3 AND $4`;
197216
} else {
198217
sqlBlockTxCount = `SELECT COUNT(DISTINCT blocks.blocknum) FROM blocks
199218
JOIN transactions ON blocks.blocknum = transactions.blockid
200219
WHERE blockid = blocks.blocknum ${byOrgs}
201220
AND blocks.channel_genesis_hash = $1 and blocks.network_name = $2 AND blocks.createdt between $3 AND $4
202-
AND transactions.creator_msp_id IS NOT NULL AND transactions.creator_msp_id != ' ' AND length(creator_msp_id) > 0`
221+
AND transactions.creator_msp_id IS NOT NULL AND transactions.creator_msp_id != ' ' AND length(creator_msp_id) > 0`;
203222
}
204223
countOfBlocks = await this.sql.getRowsCountBySQlQuery(
205224
sqlBlockTxCount,
@@ -326,7 +345,12 @@ export class CRUDService {
326345
await this.sql.saveRow('transactions', transaction);
327346
await this.sql.updateBySql(
328347
'update chaincodes set txcount =txcount+1 where channel_genesis_hash=$1 and network_name = $2 and name=$3 and version=$4',
329-
[transaction.channel_genesis_hash, network_name, transaction.chaincodename, chaincodeversion]
348+
[
349+
transaction.channel_genesis_hash,
350+
network_name,
351+
transaction.chaincodename,
352+
chaincodeversion
353+
]
330354
);
331355
await this.sql.updateBySql(
332356
'update channel set trans =trans+1 where channel_genesis_hash=$1 and network_name = $2 ',
@@ -513,11 +537,16 @@ export class CRUDService {
513537
*/
514538
async getChannelsInfo(network_name) {
515539
const channels = await this.sql.getRowsBySQlNoCondition(
516-
` select c.id as id,c.name as channelName,c.blocks as blocks ,c.channel_genesis_hash as channel_genesis_hash,c.trans as transactions,c.createdt as createdat,c.channel_hash as channel_hash from channel c,
517-
peer_ref_channel pc where c.channel_genesis_hash = pc.channelid and c.network_name = $1 group by c.id ,c.name ,c.blocks ,c.trans ,c.createdt ,c.channel_hash,c.channel_genesis_hash order by c.name `,
540+
` SELECT c.id as id, c.name as channelName, c.blocks as blocks, c.channel_genesis_hash as channel_genesis_hash,
541+
c.trans as transactions, c.createdt as createdat, c.channel_hash as channel_hash, MAX(blocks.createdt)
542+
as latestDate FROM channel c
543+
INNER JOIN blocks ON c.channel_genesis_hash = blocks.channel_genesis_hash AND c.network_name = blocks.network_name
544+
INNER JOIN peer_ref_channel pc ON c.channel_genesis_hash = blocks.channel_genesis_hash AND c.network_name = pc.network_name
545+
WHERE c.network_name = $1
546+
GROUP BY c.id, c.name, c.blocks, c.trans, c.createdt, c.channel_hash, c.channel_genesis_hash
547+
ORDER BY c.name `,
518548
[network_name]
519549
);
520-
521550
return channels;
522551
}
523552

@@ -549,20 +578,25 @@ export class CRUDService {
549578
* @returns
550579
* @memberof CRUDService
551580
*/
552-
async getBlockByBlocknum(network_name: any, channel_genesis_hash: any, blockNo: any) {
581+
async getBlockByBlocknum(
582+
network_name: any,
583+
channel_genesis_hash: any,
584+
blockNo: any
585+
) {
553586
const sqlBlockTxList = `select a.* from (
554587
select (select c.name from channel c where c.channel_genesis_hash =$1 and c.network_name = $2)
555588
as channelname, blocks.blocknum,blocks.txcount ,blocks.datahash ,blocks.blockhash ,blocks.prehash,blocks.createdt, blocks.blksize, (
556589
SELECT array_agg(txhash) as txhash FROM transactions where blockid = $3 and
557590
channel_genesis_hash = $1 and network_name = $2) from blocks where
558591
blocks.channel_genesis_hash =$1 and blocks.network_name = $2 and blocknum = $3) a where a.txhash IS NOT NULL`;
559592

560-
const row: any = await this.sql.getRowsBySQlCase(
561-
sqlBlockTxList,
562-
[channel_genesis_hash, network_name, blockNo]);
593+
const row: any = await this.sql.getRowsBySQlCase(sqlBlockTxList, [
594+
channel_genesis_hash,
595+
network_name,
596+
blockNo
597+
]);
563598
return row;
564599
}
565-
566600
}
567601

568602
/**

0 commit comments

Comments
 (0)