DB migration to fix bad v1 audits
This commit is contained in:
		
							parent
							
								
									248cef7718
								
							
						
					
					
						commit
						c9171224e1
					
				@ -7,7 +7,7 @@ import cpfpRepository from '../repositories/CpfpRepository';
 | 
				
			|||||||
import { RowDataPacket } from 'mysql2';
 | 
					import { RowDataPacket } from 'mysql2';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class DatabaseMigration {
 | 
					class DatabaseMigration {
 | 
				
			||||||
  private static currentVersion = 81;
 | 
					  private static currentVersion = 82;
 | 
				
			||||||
  private queryTimeout = 3600_000;
 | 
					  private queryTimeout = 3600_000;
 | 
				
			||||||
  private statisticsAddedIndexed = false;
 | 
					  private statisticsAddedIndexed = false;
 | 
				
			||||||
  private uniqueLogs: string[] = [];
 | 
					  private uniqueLogs: string[] = [];
 | 
				
			||||||
@ -700,6 +700,11 @@ class DatabaseMigration {
 | 
				
			|||||||
      await this.$executeQuery('ALTER TABLE `blocks_audits` ADD unseen_txs JSON DEFAULT "[]"');
 | 
					      await this.$executeQuery('ALTER TABLE `blocks_audits` ADD unseen_txs JSON DEFAULT "[]"');
 | 
				
			||||||
      await this.updateToSchemaVersion(81);
 | 
					      await this.updateToSchemaVersion(81);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (databaseSchemaVersion < 82 && isBitcoin === true && config.MEMPOOL.NETWORK === 'mainnet') {
 | 
				
			||||||
 | 
					      await this.$fixBadV1AuditBlocks();
 | 
				
			||||||
 | 
					      await this.updateToSchemaVersion(82);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
@ -1314,6 +1319,28 @@ class DatabaseMigration {
 | 
				
			|||||||
      logger.warn(`Failed to migrate cpfp transaction data`);
 | 
					      logger.warn(`Failed to migrate cpfp transaction data`);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private async $fixBadV1AuditBlocks(): Promise<void> {
 | 
				
			||||||
 | 
					    const badBlocks = [
 | 
				
			||||||
 | 
					      '000000000000000000011ad49227fc8c9ba0ca96ad2ebce41a862f9a244478dc',
 | 
				
			||||||
 | 
					      '000000000000000000010ac1f68b3080153f2826ffddc87ceffdd68ed97d6960',
 | 
				
			||||||
 | 
					      '000000000000000000024cbdafeb2660ae8bd2947d166e7fe15d1689e86b2cf7',
 | 
				
			||||||
 | 
					      '00000000000000000002e1dbfbf6ae057f331992a058b822644b368034f87286',
 | 
				
			||||||
 | 
					      '0000000000000000000019973b2778f08ad6d21e083302ff0833d17066921ebb',
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (const hash of badBlocks) {
 | 
				
			||||||
 | 
					      try {
 | 
				
			||||||
 | 
					        await this.$executeQuery(`
 | 
				
			||||||
 | 
					          UPDATE blocks_audits
 | 
				
			||||||
 | 
					          SET prioritized_txs = '[]'
 | 
				
			||||||
 | 
					          WHERE hash = '${hash}'
 | 
				
			||||||
 | 
					        `, true);
 | 
				
			||||||
 | 
					      } catch (e) {
 | 
				
			||||||
 | 
					        continue;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default new DatabaseMigration();
 | 
					export default new DatabaseMigration();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user