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


Java IndexedBlockStore.saveBlock方法代码示例

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


在下文中一共展示了IndexedBlockStore.saveBlock方法的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: 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

示例7: 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

示例8: 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

示例9: 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

示例10: 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

示例11: invalidSiblingUncles

import org.ethereum.db.IndexedBlockStore; //导入方法依赖的package包/类
@Test
public void invalidSiblingUncles() {
    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, null, uncles1, 1, null);

    store.saveBlock(genesis, BigInteger.ONE, true);
    store.saveBlock(uncle1a, BigInteger.ONE, false);
    store.saveBlock(uncle1b, 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,代码行数:28,代码来源:BlockValidatorTest.java

示例12: invalidPOWUncles

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

    BlockGenerator blockGenerator = new BlockGenerator();

    Blockchain blockchain = BlockChainBuilder.ofSize(30, true);

    Block genesis = blockchain.getBlockByNumber(0);
    Block uncle1a = blockchain.getBlockByNumber(1);
    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);

    BlockParentDependantValidationRule parentValidationRule = Mockito.mock(BlockParentDependantValidationRule.class);
    Mockito.when(parentValidationRule.isValid(Mockito.any(), Mockito.any())).thenReturn(true);
  
    BlockValidatorImpl validator = new BlockValidatorBuilder()
            .addBlockUnclesValidationRule(store, new ProofOfWorkRule(ConfigHelper.CONFIG).setFallbackMiningEnabled(false), parentValidationRule)
            .blockStore(store)
            .build();

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

示例13: invalidUncleHasParentThatIsNotAncestor

import org.ethereum.db.IndexedBlockStore; //导入方法依赖的package包/类
@Test
public void invalidUncleHasParentThatIsNotAncestor() {
    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 uncle2a = blockGenerator.createChildBlock(uncle1a);

    List<BlockHeader> uncles3 = new ArrayList<>();
    uncles3.add(uncle2a.getHeader());
    uncles3.add(uncle1a.getHeader());

    Block block1 = blockGenerator.createChildBlock(genesis, null, null, 1, null);
    Block block2 = blockGenerator.createChildBlock(block1, null, null, 1, null);
    Block block3 = blockGenerator.createChildBlock(block2, null, uncles3, 1, null);

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

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

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

示例14: invalidUncleAlreadyUsed

import org.ethereum.db.IndexedBlockStore; //导入方法依赖的package包/类
@Test
public void invalidUncleAlreadyUsed() {
    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, null, uncles1, 1, null);

    Block uncle2a = blockGenerator.createChildBlock(genesis);
    Block uncle2b = blockGenerator.createChildBlock(genesis);
    List<BlockHeader> uncles2 = new ArrayList<>();
    uncles2.add(uncle2a.getHeader());
    uncles2.add(uncle2b.getHeader());

    Block block2 = blockGenerator.createChildBlock(block1, null, uncles2, 1, null);
    Block block3 = blockGenerator.createChildBlock(block2, null, uncles2, 1, null);

    store.saveBlock(genesis, BigInteger.ONE, true);
    store.saveBlock(uncle1a, BigInteger.ONE, false);
    store.saveBlock(uncle1b, BigInteger.ONE, false);
    store.saveBlock(block1, BigInteger.ONE, true);
    store.saveBlock(uncle2a, BigInteger.ONE, false);
    store.saveBlock(uncle2b, BigInteger.ONE, false);
    store.saveBlock(block2, BigInteger.ONE, true);

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

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

示例15: tooManyUncles

import org.ethereum.db.IndexedBlockStore; //导入方法依赖的package包/类
@Test
public void tooManyUncles() {
    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);
    Block block1 =  blockGenerator.createChildBlock(genesis, null, null, 1, null);

    Block uncle2a = blockGenerator.createChildBlock(genesis);
    Block uncle2b = blockGenerator.createChildBlock(genesis);
    List<BlockHeader> uncles2 = new ArrayList<>();
    uncles2.add(uncle2a.getHeader());
    uncles2.add(uncle2b.getHeader());
    uncles2.add(uncle1a.getHeader());
    uncles2.add(uncle1b.getHeader());

    for(int i = 0; i < 10; i++) {
        uncles2.add(blockGenerator.createChildBlock(genesis).getHeader());
    }

    Block block2 = blockGenerator.createChildBlock(block1, null, uncles2, 1, null);

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

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

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


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