本文整理汇总了Java中nxt.db.DerivedDbTable类的典型用法代码示例。如果您正苦于以下问题:Java DerivedDbTable类的具体用法?Java DerivedDbTable怎么用?Java DerivedDbTable使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DerivedDbTable类属于nxt.db包,在下文中一共展示了DerivedDbTable类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: popOffTo
import nxt.db.DerivedDbTable; //导入依赖的package包/类
private List<BlockImpl> popOffTo(Block commonBlock) {
synchronized (blockchain) {
if (commonBlock.getHeight() < getMinRollbackHeight()) {
throw new IllegalArgumentException("Rollback to height " + commonBlock.getHeight() + " not suppported, "
+ "current height " + Nxt.getBlockchain().getHeight());
}
if (! blockchain.hasBlock(commonBlock.getId())) {
Logger.logDebugMessage("Block " + commonBlock.getStringId() + " not found in blockchain, nothing to pop off");
return Collections.emptyList();
}
List<BlockImpl> poppedOffBlocks = new ArrayList<>();
try {
Db.beginTransaction();
BlockImpl block = blockchain.getLastBlock();
Logger.logDebugMessage("Rollback from " + block.getHeight() + " to " + commonBlock.getHeight());
while (block.getId() != commonBlock.getId() && block.getId() != Genesis.GENESIS_BLOCK_ID) {
poppedOffBlocks.add(block);
block = popLastBlock();
}
for (DerivedDbTable table : derivedTables) {
table.rollback(commonBlock.getHeight());
}
Db.commitTransaction();
} catch (RuntimeException e) {
Db.rollbackTransaction();
Logger.logDebugMessage("Error popping off to " + commonBlock.getHeight(), e);
throw e;
} finally {
Db.endTransaction();
}
return poppedOffBlocks;
} // synchronized
}
开发者ID:muhatzg,项目名称:burstcoin,代码行数:34,代码来源:BlockchainProcessorImpl.java
示例2: registerDerivedTable
import nxt.db.DerivedDbTable; //导入依赖的package包/类
@Override
public void registerDerivedTable(DerivedDbTable table) {
if (alreadyInitialized) {
throw new IllegalStateException("Too late to register table " + table + ", must have done it in Nxt.Init");
}
derivedTables.add(table);
}
开发者ID:giannisKonst,项目名称:blockchain,代码行数:8,代码来源:BlockchainProcessorImpl.java
示例3: popOffTo
import nxt.db.DerivedDbTable; //导入依赖的package包/类
private List<BlockImpl> popOffTo(Block commonBlock) {
synchronized (blockchain) {
/*
if (commonBlock.getHeight() < getMinRollbackHeight()) {
throw new IllegalArgumentException("Rollback to height " + commonBlock.getHeight() + " not supported, "
+ "current height " + Nxt.getBlockchain().getHeight());
}*/
if (! blockchain.hasBlock(commonBlock.getId())) {
Logger.logDebugMessage("Block " + commonBlock.getStringId() + " not found in blockchain, nothing to pop off");
return Collections.emptyList();
}
List<BlockImpl> poppedOffBlocks = new ArrayList<>();
try {
Db.db.beginTransaction();
BlockImpl block = blockchain.getLastBlock();
block.getTransactions();
Logger.logDebugMessage("Rollback from " + block.getHeight() + " to " + commonBlock.getHeight());
while (block.getId() != commonBlock.getId() && block.getHeight() > 0 ) {
poppedOffBlocks.add(block);
block = popLastBlock();
}
for (DerivedDbTable table : derivedTables) {
table.rollback(commonBlock.getHeight());
}
Db.db.commitTransaction();
} catch (RuntimeException e) {
Db.db.rollbackTransaction();
Logger.logDebugMessage("Error popping off to " + commonBlock.getHeight(), e);
throw e;
} finally {
Db.db.endTransaction();
}
return poppedOffBlocks;
} // synchronized
}
开发者ID:giannisKonst,项目名称:blockchain,代码行数:36,代码来源:BlockchainProcessorImpl.java
示例4: doTrimDerivedTables
import nxt.db.DerivedDbTable; //导入依赖的package包/类
private void doTrimDerivedTables() {
lastTrimHeight = Math.max(blockchain.getHeight() - Constants.MAX_ROLLBACK, 0);
if (lastTrimHeight > 0) {
for (DerivedDbTable table : derivedTables) {
table.trim(lastTrimHeight);
Db.db.commitTransaction();
}
}
}
开发者ID:BitcoinFullnode,项目名称:ROKOS-OK-Bitcoin-Fullnode,代码行数:10,代码来源:BlockchainProcessorImpl.java
示例5: popOffTo
import nxt.db.DerivedDbTable; //导入依赖的package包/类
private List<BlockImpl> popOffTo(Block commonBlock) {
synchronized (blockchain) {
if (commonBlock.getHeight() < getMinRollbackHeight()) {
throw new IllegalArgumentException("Rollback to height " + commonBlock.getHeight() + " not supported, "
+ "current height " + Nxt.getBlockchain().getHeight());
}
if (! blockchain.hasBlock(commonBlock.getId())) {
Logger.logDebugMessage("Block " + commonBlock.getStringId() + " not found in blockchain, nothing to pop off");
return Collections.emptyList();
}
List<BlockImpl> poppedOffBlocks = new ArrayList<>();
try {
Db.db.beginTransaction();
BlockImpl block = blockchain.getLastBlock();
block.getTransactions();
Logger.logDebugMessage("Rollback from " + block.getHeight() + " to " + commonBlock.getHeight());
while (block.getId() != commonBlock.getId() && block.getId() != Genesis.GENESIS_BLOCK_ID) {
poppedOffBlocks.add(block);
block = popLastBlock();
}
for (DerivedDbTable table : derivedTables) {
table.rollback(commonBlock.getHeight());
}
Db.db.commitTransaction();
} catch (RuntimeException e) {
Db.db.rollbackTransaction();
Logger.logDebugMessage("Error popping off to " + commonBlock.getHeight(), e);
throw e;
} finally {
Db.db.endTransaction();
}
return poppedOffBlocks;
} // synchronized
}
开发者ID:Ziftr,项目名称:nxt,代码行数:35,代码来源:BlockchainProcessorImpl.java
示例6: registerDerivedTable
import nxt.db.DerivedDbTable; //导入依赖的package包/类
@Override
public void registerDerivedTable(DerivedDbTable table) {
derivedTables.add(table);
}
开发者ID:muhatzg,项目名称:burstcoin,代码行数:5,代码来源:BlockchainProcessorImpl.java
示例7: Scanner
import nxt.db.DerivedDbTable; //导入依赖的package包/类
Scanner(Listeners<Block, Event> blockListeners, List<DerivedDbTable> derivedTables) {
this.blockListeners = blockListeners;
this.derivedTables = derivedTables;
}
开发者ID:giannisKonst,项目名称:blockchain,代码行数:5,代码来源:Scanner.java
示例8: getDerivedTables
import nxt.db.DerivedDbTable; //导入依赖的package包/类
List<DerivedDbTable> getDerivedTables() {
return derivedTables;
}
开发者ID:BitcoinFullnode,项目名称:ROKOS-OK-Bitcoin-Fullnode,代码行数:4,代码来源:BlockchainProcessorImpl.java
示例9: popOffTo
import nxt.db.DerivedDbTable; //导入依赖的package包/类
private List<BlockImpl> popOffTo(Block commonBlock) {
blockchain.writeLock();
try {
if (!Db.db.isInTransaction()) {
try {
Db.db.beginTransaction();
return popOffTo(commonBlock);
} finally {
Db.db.endTransaction();
}
}
if (commonBlock.getHeight() < getMinRollbackHeight()) {
Logger.logMessage("Rollback to height " + commonBlock.getHeight() + " not supported, will do a full rescan");
popOffWithRescan(commonBlock.getHeight() + 1);
return Collections.emptyList();
}
if (! blockchain.hasBlock(commonBlock.getId())) {
Logger.logDebugMessage("Block " + commonBlock.getStringId() + " not found in blockchain, nothing to pop off");
return Collections.emptyList();
}
List<BlockImpl> poppedOffBlocks = new ArrayList<>();
try {
BlockImpl block = blockchain.getLastBlock();
block.loadTransactions();
Logger.logDebugMessage("Rollback from block " + block.getStringId() + " at height " + block.getHeight()
+ " to " + commonBlock.getStringId() + " at " + commonBlock.getHeight());
while (block.getId() != commonBlock.getId() && block.getId() != Genesis.GENESIS_BLOCK_ID) {
poppedOffBlocks.add(block);
block = popLastBlock();
}
for (DerivedDbTable table : derivedTables) {
table.rollback(commonBlock.getHeight());
}
Db.db.commitTransaction();
} catch (RuntimeException e) {
Logger.logErrorMessage("Error popping off to " + commonBlock.getHeight() + ", " + e.toString());
Db.db.rollbackTransaction();
BlockImpl lastBlock = BlockDb.findLastBlock();
blockchain.setLastBlock(lastBlock);
popOffTo(lastBlock);
throw e;
}
return poppedOffBlocks;
} finally {
blockchain.writeUnlock();
}
}
开发者ID:BitcoinFullnode,项目名称:ROKOS-OK-Bitcoin-Fullnode,代码行数:48,代码来源:BlockchainProcessorImpl.java
示例10: registerDerivedTable
import nxt.db.DerivedDbTable; //导入依赖的package包/类
void registerDerivedTable(DerivedDbTable table);
开发者ID:muhatzg,项目名称:burstcoin,代码行数:2,代码来源:BlockchainProcessor.java
注:本文中的nxt.db.DerivedDbTable类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论