当前位置: 首页>>代码示例>>Java>>正文


Java IndexedBlockStore类代码示例

本文整理汇总了Java中org.ethereum.db.IndexedBlockStore的典型用法代码示例。如果您正苦于以下问题:Java IndexedBlockStore类的具体用法?Java IndexedBlockStore怎么用?Java IndexedBlockStore使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


IndexedBlockStore类属于org.ethereum.db包,在下文中一共展示了IndexedBlockStore类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: validateHeader

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void validateHeader() {
    IndexedBlockStore store = new IndexedBlockStore(ConfigHelper.CONFIG);
    store.init(new HashMap<>(), new HashMapDB(), null);

    BlockGenerator blockGenerator = new BlockGenerator();
    Block genesis = blockGenerator.getGenesisBlock();
    Block parent = new BlockBuilder().parent(genesis).build();
    Block block = new BlockBuilder().parent(parent).build();

    store.saveBlock(parent, BigInteger.ONE, true);

    BlockValidatorImpl validator = new BlockValidatorBuilder()
            .addParentBlockHeaderValidator()
            .addBlockRootValidationRule()
            .addBlockUnclesValidationRule(null)
            .blockStore(store)
            .build();

    Assert.assertTrue(validator.isValid(block));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:22,代码来源:BlockValidatorTest.java

示例2: invalidUnclesUncleIncludedMultipeTimes

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void invalidUnclesUncleIncludedMultipeTimes () {
    IndexedBlockStore store = new IndexedBlockStore(ConfigHelper.CONFIG);
    store.init(new HashMap<>(), new HashMapDB(), null);

    BlockGenerator blockGenerator = new BlockGenerator();

    Block genesis = blockGenerator.getGenesisBlock();
    Block uncle1a = blockGenerator.createChildBlock(genesis);
    List<BlockHeader> uncles1 = new ArrayList<>();
    uncles1.add(uncle1a.getHeader());
    uncles1.add(uncle1a.getHeader());
    Block block1 = blockGenerator.createChildBlock(genesis, null, uncles1, 1, null);

    store.saveBlock(genesis, BigInteger.ONE, true);
    store.saveBlock(uncle1a, BigInteger.ONE, false);
    store.saveBlock(block1, BigInteger.ONE, true);

    BlockValidatorImpl validator = new BlockValidatorBuilder()
            .addBlockUnclesValidationRule(store)
            .blockStore(store)
            .build();

    Assert.assertFalse(validator.isValid(block1));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:26,代码来源:BlockValidatorTest.java

示例3: invalidUncleIsAncestor

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void invalidUncleIsAncestor() {
    IndexedBlockStore store = new IndexedBlockStore(ConfigHelper.CONFIG);
    store.init(new HashMap<>(), new HashMapDB(), null);

    BlockGenerator blockGenerator = new BlockGenerator();

    Block genesis = blockGenerator.getGenesisBlock();
    Block uncle1a = blockGenerator.createChildBlock(genesis);
    List<BlockHeader> uncles1 = new ArrayList<>();
    uncles1.add(uncle1a.getHeader());
    uncles1.add(genesis.getHeader());
    Block block1 = blockGenerator.createChildBlock(genesis, null, uncles1, 1, null);

    store.saveBlock(genesis, BigInteger.ONE, true);
    store.saveBlock(uncle1a, BigInteger.ONE, false);
    store.saveBlock(block1, BigInteger.ONE, true);

    BlockValidatorImpl validator = new BlockValidatorBuilder()
            .addBlockUnclesValidationRule(store)
            .blockStore(store)
            .build();

    Assert.assertFalse(validator.isValid(block1));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:26,代码来源:BlockValidatorTest.java

示例4: invalidUncleHasNoSavedParent

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void invalidUncleHasNoSavedParent() {
    IndexedBlockStore store = new IndexedBlockStore(ConfigHelper.CONFIG);
    store.init(new HashMap<>(), new HashMapDB(), null);

    BlockGenerator blockGenerator = new BlockGenerator();

    Block genesis = blockGenerator.getGenesisBlock();
    Block uncle1a = blockGenerator.createChildBlock(new BlockGenerator().createChildBlock(genesis));
    List<BlockHeader> uncles1 = new ArrayList<>();
    uncles1.add(uncle1a.getHeader());
    Block block1 = blockGenerator.createChildBlock(genesis, null, uncles1, 1, null);

    store.saveBlock(genesis, BigInteger.ONE, true);
    store.saveBlock(block1, BigInteger.ONE, true);

    BlockValidatorImpl validator = new BlockValidatorBuilder()
            .addBlockUnclesValidationRule(store)
            .blockStore(store)
            .build();

    Assert.assertFalse(validator.isValid(block1));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:24,代码来源:BlockValidatorTest.java

示例5: invalidUncleHasNoCommonAncestor

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void invalidUncleHasNoCommonAncestor() {
    IndexedBlockStore store = new IndexedBlockStore(ConfigHelper.CONFIG);
    store.init(new HashMap<>(), new HashMapDB(), null);

    BlockGenerator blockGenerator = new BlockGenerator();

    Block genesis = blockGenerator.getGenesisBlock();
    Block uncle1a = blockGenerator.createChildBlock(new SimpleBlock(null, null, new byte[]{12, 12}, null, BigInteger.ONE.toByteArray(),
            0, null, 0L, 0L, new byte[]{}, null, null, null, Block.getTxTrie(null).getHash(), null, null, null));

    List<BlockHeader> uncles1 = new ArrayList<>();
    uncles1.add(uncle1a.getHeader());
    Block block1 = blockGenerator.createChildBlock(genesis, null, uncles1, 1, null);

    store.saveBlock(genesis, BigInteger.ONE, true);
    store.saveBlock(uncle1a, BigInteger.ONE, false);
    store.saveBlock(block1, BigInteger.ONE, true);

    BlockValidatorImpl validator = new BlockValidatorBuilder()
            .addBlockUnclesValidationRule(store)
            .blockStore(store)
            .build();

    Assert.assertFalse(validator.isValid(block1));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:27,代码来源:BlockValidatorTest.java

示例6: parentInvalidNumber

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void parentInvalidNumber() {
    IndexedBlockStore store = new IndexedBlockStore(ConfigHelper.CONFIG);
    store.init(new HashMap<>(), new HashMapDB(), null);

    BlockGenerator blockGenerator = new BlockGenerator();

    Block genesis = blockGenerator.getGenesisBlock();

    Block block = new BlockBuilder().parent(genesis).build();
    block.getHeader().setNumber(25L);
    BlockValidatorImpl validator = new BlockValidatorBuilder()
            .addParentNumberRule()
            .blockStore(store)
            .build();

    Assert.assertFalse(validator.isValid(block));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:19,代码来源:BlockValidatorTest.java

示例7: addInvalidMGPBlock

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void addInvalidMGPBlock() {
    Repository repository = new RepositoryImpl(ConfigHelper.CONFIG, new TrieStoreImpl(new HashMapDB()));

    IndexedBlockStore blockStore = new IndexedBlockStore(ConfigHelper.CONFIG);
    blockStore.init(new HashMap<>(), new HashMapDB(), null);

    BlockValidatorBuilder validatorBuilder = new BlockValidatorBuilder();
    validatorBuilder.addBlockRootValidationRule().addBlockUnclesValidationRule(blockStore)
            .addBlockTxsValidationRule(repository).addPrevMinGasPriceRule().addTxsMinGasPriceRule();

    BlockChainImpl blockChain = createBlockChain(repository, blockStore, validatorBuilder.build());

    Block genesis = getGenesisBlock(blockChain);

    Block block = new BlockBuilder().minGasPrice(BigInteger.ONE)
            .parent(genesis).build();

    Assert.assertEquals(ImportResult.IMPORTED_BEST, blockChain.tryToConnect(genesis));
    Assert.assertEquals(ImportResult.INVALID_BLOCK, blockChain.tryToConnect(block));

    List<Transaction> txs = new ArrayList<>();
    Transaction tx = Transaction.create(ConfigHelper.CONFIG, "0000000000000000000000000000000000000006", BigInteger.ZERO, BigInteger.ZERO, BigInteger.valueOf(1L), BigInteger.TEN);
    tx.sign(new byte[]{22, 11, 00});
    txs.add(tx);

    block = new BlockBuilder().transactions(txs).minGasPrice(BigInteger.valueOf(11L))
            .parent(genesis).build();

    Assert.assertEquals(ImportResult.INVALID_BLOCK, blockChain.tryToConnect(block));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:32,代码来源:BlockChainImplTest.java

示例8: addValidMGPBlock

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void addValidMGPBlock() {
    Repository repository = new RepositoryImpl(ConfigHelper.CONFIG, new TrieStoreImpl(new HashMapDB()));

    IndexedBlockStore blockStore = new IndexedBlockStore(ConfigHelper.CONFIG);
    blockStore.init(new HashMap<>(), new HashMapDB(), null);

    BlockValidatorBuilder validatorBuilder = new BlockValidatorBuilder();
    validatorBuilder.blockStore(blockStore)
            .addPrevMinGasPriceRule().addTxsMinGasPriceRule();

    BlockChainImpl blockChain = createBlockChain(repository, blockStore, validatorBuilder.build());

    Repository track = repository.startTracking();

    Account account = BlockExecutorTest.createAccount("acctest1", track, BigInteger.valueOf(100000));
    Assert.assertTrue(account.getEcKey().hasPrivKey());
    track.commit();

    List<Transaction> txs = new ArrayList<>();
    Transaction tx = Transaction.create(ConfigHelper.CONFIG, "0000000000000000000000000000000000000100", BigInteger.ZERO, BigInteger.ZERO, BigInteger.ONE, BigInteger.valueOf(22000L));
    tx.sign(account.getEcKey().getPrivKeyBytes());
    txs.add(tx);

    Block genesis = getGenesisBlock(blockChain);
    genesis.setStateRoot(repository.getRoot());
    genesis.flushRLP();

    Block block = new BlockBuilder().minGasPrice(BigInteger.ZERO).transactions(txs)
            .parent(genesis).build();

    BlockExecutor executor = new BlockExecutor(ConfigHelper.CONFIG, repository, blockChain, null, null);
    executor.executeAndFill(block, genesis);

    Assert.assertEquals(ImportResult.IMPORTED_BEST, blockChain.tryToConnect(genesis));
    Assert.assertEquals(ImportResult.IMPORTED_BEST, blockChain.tryToConnect(block));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:38,代码来源:BlockChainImplTest.java

示例9: createBlockChain

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
public static BlockChainImpl createBlockChain(Repository repository) {
    IndexedBlockStore blockStore = new IndexedBlockStore(ConfigHelper.CONFIG);
    blockStore.init(new HashMap<>(), new HashMapDB(), null);

    BlockValidatorBuilder validatorBuilder = new BlockValidatorBuilder();
    validatorBuilder.addBlockRootValidationRule().addBlockUnclesValidationRule(blockStore)
            .addBlockTxsValidationRule(repository).blockStore(blockStore);

    BlockValidatorImpl blockValidator = validatorBuilder.build();

    return createBlockChain(repository, blockStore, blockValidator);
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:13,代码来源:BlockChainImplTest.java

示例10: validateEmptyBlock

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void validateEmptyBlock() {
    IndexedBlockStore blockStore = new IndexedBlockStore(ConfigHelper.CONFIG);
    blockStore.init(new HashMap<>(), new HashMapDB(), null);
    Block genesis = new BlockGenerator().getGenesisBlock();
    blockStore.saveBlock(genesis, genesis.getCumulativeDifficulty(), true);

    Block block = new BlockBuilder().parent(genesis).build();
    BlockValidator validator = createValidator(blockStore);

    Assert.assertTrue(validator.isValid(block));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:13,代码来源:BlockValidatorTest.java

示例11: validateChildBlock

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void validateChildBlock() {
    IndexedBlockStore blockStore = new IndexedBlockStore(ConfigHelper.CONFIG);
    blockStore.init(new HashMap<>(), new HashMapDB(), null);
    Block genesis = new BlockGenerator().getGenesisBlock();
    blockStore.saveBlock(genesis, genesis.getCumulativeDifficulty(), true);

    Block block = new BlockGenerator().createChildBlock(genesis);

    BlockValidator validator = createValidator(blockStore);

    Assert.assertTrue(validator.isValid(block));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:14,代码来源:BlockValidatorTest.java

示例12: getGenesisEmptyAncestorSet

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void getGenesisEmptyAncestorSet() {
    IndexedBlockStore store = new IndexedBlockStore(ConfigHelper.CONFIG);
    store.init(new HashMap<>(), new HashMapDB(), null);
    BlockGenerator blockGenerator = new BlockGenerator();
    Block genesis = blockGenerator.getGenesisBlock();
    Assert.assertTrue(FamilyUtils.getAncestors(store, genesis, 6).isEmpty());
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:9,代码来源:BlockValidatorTest.java

示例13: getBlockOneAncestorSet

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void getBlockOneAncestorSet() {
    IndexedBlockStore store = new IndexedBlockStore(ConfigHelper.CONFIG);
    store.init(new HashMap<>(), new HashMapDB(), null);
    BlockGenerator blockGenerator = new BlockGenerator();
    Block genesis = blockGenerator.getGenesisBlock();
    store.saveBlock(genesis, BigInteger.ONE, true);
    Block block = new BlockGenerator().createChildBlock(genesis);

    Set<ByteArrayWrapper> ancestors = FamilyUtils.getAncestors(store, block, 6);
    Assert.assertFalse(ancestors.isEmpty());
    Assert.assertTrue(ancestors.contains(new ByteArrayWrapper(genesis.getHash())));
    Assert.assertFalse(ancestors.contains(new ByteArrayWrapper(block.getHash())));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:15,代码来源:BlockValidatorTest.java

示例14: getThreeAncestorSet

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void getThreeAncestorSet() {
    IndexedBlockStore store = new IndexedBlockStore(ConfigHelper.CONFIG);
    store.init(new HashMap<>(), new HashMapDB(), null);
    BlockGenerator blockGenerator = new BlockGenerator();
    Block genesis = blockGenerator.getGenesisBlock();
    store.saveBlock(genesis, BigInteger.ONE, true);

    Block block1 = blockGenerator.createChildBlock(genesis);
    store.saveBlock(block1, BigInteger.ONE, true);
    Block block2 = blockGenerator.createChildBlock(block1);
    store.saveBlock(block2, BigInteger.ONE, true);
    Block block3 = blockGenerator.createChildBlock(block2);
    store.saveBlock(block3, BigInteger.ONE, true);
    Block block4 = blockGenerator.createChildBlock(block3);
    store.saveBlock(block4, BigInteger.ONE, true);
    Block block5 = blockGenerator.createChildBlock(block4);
    store.saveBlock(block5, BigInteger.ONE, true);

    Set<ByteArrayWrapper> ancestors = FamilyUtils.getAncestors(store, block5, 3);
    Assert.assertFalse(ancestors.isEmpty());
    Assert.assertEquals(3, ancestors.size());
    Assert.assertFalse(ancestors.contains(new ByteArrayWrapper(genesis.getHash())));
    Assert.assertFalse(ancestors.contains(new ByteArrayWrapper(block1.getHash())));
    Assert.assertTrue(ancestors.contains(new ByteArrayWrapper(block2.getHash())));
    Assert.assertTrue(ancestors.contains(new ByteArrayWrapper(block3.getHash())));
    Assert.assertTrue(ancestors.contains(new ByteArrayWrapper(block4.getHash())));
    Assert.assertFalse(ancestors.contains(new ByteArrayWrapper(block5.getHash())));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:30,代码来源:BlockValidatorTest.java

示例15: validUncles

import org.ethereum.db.IndexedBlockStore; //导入依赖的package包/类
@Test
public void validUncles() {
    IndexedBlockStore store = new IndexedBlockStore(ConfigHelper.CONFIG);
    store.init(new HashMap<>(), new HashMapDB(), null);

    BlockGenerator blockGenerator = new BlockGenerator();

    Block genesis = blockGenerator.getGenesisBlock();
    Block uncle1a = blockGenerator.createChildBlock(genesis);
    Block uncle1b = blockGenerator.createChildBlock(genesis);
    List<BlockHeader> uncles1 = new ArrayList<>();
    uncles1.add(uncle1a.getHeader());
    uncles1.add(uncle1b.getHeader());
    Block block1 = blockGenerator.createChildBlock(genesis);
    Block block2 = blockGenerator.createChildBlock(block1, null, uncles1, 1, null);

    store.saveBlock(genesis, BigInteger.ONE, true);
    store.saveBlock(block1, BigInteger.ONE, true);
    store.saveBlock(block2, BigInteger.ONE, true);

    store.saveBlock(uncle1a, BigInteger.ONE, false);
    store.saveBlock(uncle1b, BigInteger.ONE, false);

    BlockValidatorImpl validator = new BlockValidatorBuilder()
            .addBlockUnclesValidationRule(store)
            .blockStore(store)
            .build();

    Assert.assertTrue(validator.isValid(block1));
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:31,代码来源:BlockValidatorTest.java


注:本文中的org.ethereum.db.IndexedBlockStore类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。