org.bitcoinj.core.Block.setDifficultyTarget()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(13.5k)|赞(0)|评价(0)|浏览(108)

本文整理了Java中org.bitcoinj.core.Block.setDifficultyTarget()方法的一些代码示例,展示了Block.setDifficultyTarget()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Block.setDifficultyTarget()方法的具体详情如下:
包路径:org.bitcoinj.core.Block
类名称:Block
方法名:setDifficultyTarget

Block.setDifficultyTarget介绍

[英]Sets the difficulty target in compact form.
[中]以紧凑的形式设置难度目标。

代码示例

代码示例来源:origin: greenaddress/GreenBits

@Override
public Block getGenesisBlock() {
  synchronized (RegTestParams.class) {
    if (genesis == null) {
      genesis = super.getGenesisBlock();
      genesis.setNonce(2);
      genesis.setDifficultyTarget(0x207fFFFFL);
      genesis.setTime(1296688602L);
      checkState(genesis.getHashAsString().toLowerCase().equals("0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206"));
    }
    return genesis;
  }
}

代码示例来源:origin: fr.acinq/bitcoinj-core

@Override
public Block getGenesisBlock() {
  synchronized (RegTestParams.class) {
    if (genesis == null) {
      genesis = super.getGenesisBlock();
      genesis.setNonce(2);
      genesis.setDifficultyTarget(0x207fFFFFL);
      genesis.setTime(1296688602L);
      checkState(genesis.getHashAsString().toLowerCase().equals("0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206"));
    }
    return genesis;
  }
}

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

public UnitTestParams() {
  super();
  id = ID_UNITTESTNET;
  packetMagic = 0xf4e5f3f4L;      // must be same as testnet3
  addressHeader = 111;
  p2shHeader = 196;
  acceptableAddressCodes = new int[] { addressHeader, p2shHeader };
  maxTarget = new BigInteger("00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16);
  genesisBlock.setTime(System.currentTimeMillis() / 1000);
  genesisBlock.setDifficultyTarget(Block.EASIEST_DIFFICULTY_TARGET);
  genesisBlock.solve();
  port = 18333;
  interval = 10;
  dumpedPrivateKeyHeader = 239;
  targetTimespan = 200000000;  // 6 years. Just a very big number.
  spendableCoinbaseDepth = 5;
  subsidyDecreaseBlockCount = 100;
  dnsSeeds = null;
  addrSeeds = null;
  bip32HeaderPub = 0x043587CF;
  bip32HeaderPriv = 0x04358394;
  majorityEnforceBlockUpgrade = 3;
  majorityRejectBlockOutdated = 4;
  majorityWindow = 7;
  // support for legacy tests - dont test BCH 2017-11-13 hardfork by default
  cashHardForkActivationTime = (System.currentTimeMillis()/1000)+24*60*60;
  daaHeight = 1000000;
}

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

@Override
public Block getGenesisBlock() {
  synchronized (RegTestParams.class) {
    if (genesis == null) {
      genesis = super.getGenesisBlock();
      genesis.setNonce(2);
      genesis.setDifficultyTarget(0x207fFFFFL);
      genesis.setTime(1296688602L);
      checkState(genesis.getHashAsString().toLowerCase().equals("0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206"));
    }
    return genesis;
  }
}

代码示例来源:origin: fr.acinq/bitcoinj-core

public UnitTestParams() {
  super();
  id = ID_UNITTESTNET;
  packetMagic = 0x0b110907;
  addressHeader = 111;
  p2shHeader = 196;
  acceptableAddressCodes = new int[] { addressHeader, p2shHeader };
  maxTarget = new BigInteger("00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16);
  genesisBlock.setTime(System.currentTimeMillis() / 1000);
  genesisBlock.setDifficultyTarget(Block.EASIEST_DIFFICULTY_TARGET);
  genesisBlock.solve();
  port = 18333;
  interval = 10;
  dumpedPrivateKeyHeader = 239;
  targetTimespan = 200000000;  // 6 years. Just a very big number.
  spendableCoinbaseDepth = 5;
  subsidyDecreaseBlockCount = 100;
  dnsSeeds = null;
  addrSeeds = null;
  bip32HeaderPub = 0x043587CF;
  bip32HeaderPriv = 0x04358394;
  majorityEnforceBlockUpgrade = 3;
  majorityRejectBlockOutdated = 4;
  majorityWindow = 7;
}

代码示例来源:origin: HashEngineering/dashj

public UnitTestParams() {
  super();
  id = ID_UNITTESTNET;
  packetMagic = 0x0b110907;
  addressHeader = CoinDefinition.testnetAddressHeader;
  p2shHeader = CoinDefinition.testnetp2shHeader;
  acceptableAddressCodes = new int[] { addressHeader, p2shHeader };
  maxTarget = new BigInteger("00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16);
  genesisBlock.setTime(System.currentTimeMillis() / 1000);
  genesisBlock.setDifficultyTarget(Block.EASIEST_DIFFICULTY_TARGET);
  genesisBlock.solve();
  port = CoinDefinition.TestPort;
  interval = 10;
  dumpedPrivateKeyHeader = 239;
  targetTimespan = 200000000;  // 6 years. Just a very big number.
  spendableCoinbaseDepth = 5;
  subsidyDecreaseBlockCount = 100;
  dnsSeeds = null;
  addrSeeds = null;
  bip32HeaderPub = 0x043587CF;
  bip32HeaderPriv = 0x04358394;
  majorityEnforceBlockUpgrade = 3;
  majorityRejectBlockOutdated = 4;
  majorityWindow = 7;
  DIP0001BlockHeight = 100000;  // not active
  strSporkAddress = "yjPtiKh2uwk3bDutTEA2q9mCtXyiZRWn55";
}

代码示例来源:origin: greenaddress/GreenBits

public UnitTestParams() {
  super();
  id = ID_UNITTESTNET;
  packetMagic = 0x0b110907;
  addressHeader = 111;
  p2shHeader = 196;
  p2wpkhHeader = 3;
  p2wshHeader = 40;
  acceptableAddressCodes = new int[] { addressHeader, p2shHeader, p2wpkhHeader, p2wshHeader };
  maxTarget = new BigInteger("00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16);
  genesisBlock.setTime(System.currentTimeMillis() / 1000);
  genesisBlock.setDifficultyTarget(Block.EASIEST_DIFFICULTY_TARGET);
  genesisBlock.solve();
  port = 18333;
  interval = 10;
  dumpedPrivateKeyHeader = 239;
  targetTimespan = 200000000;  // 6 years. Just a very big number.
  spendableCoinbaseDepth = 5;
  subsidyDecreaseBlockCount = 100;
  dnsSeeds = null;
  addrSeeds = null;
  bip32HeaderPub = 0x043587CF;
  bip32HeaderPriv = 0x04358394;
  majorityEnforceBlockUpgrade = 3;
  majorityRejectBlockOutdated = 4;
  majorityWindow = 7;
}

代码示例来源:origin: HashEngineering/dashj

@Override
public Block getGenesisBlock() {
  synchronized (RegTestParams.class) {
    if (genesis == null) {
      genesis = super.getGenesisBlock();
      genesis.setNonce(2);
      genesis.setDifficultyTarget(0x207fFFFFL);
      genesis.setTime(1296688602L);
      //checkState(genesis.getHashAsString().toLowerCase().equals("0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206"));
    }
    return genesis;
  }
}

代码示例来源:origin: HashEngineering/dashj

genesisBlock.setDifficultyTarget(CoinDefinition.testnetGenesisBlockDifficultyTarget);
genesisBlock.setNonce(CoinDefinition.testnetGenesisBlockNonce);
spendableCoinbaseDepth = CoinDefinition.spendableCoinbaseDepth;

代码示例来源:origin: dogecoin/libdohj

/**
 * Extract from Litecoin source code, definition of regtest params.
 * https://github.com/litecoin-project/litecoin/blob/edc66b374ea68107c721062152dd95e6aa037d53/src/chainparams.cpp
 */
@Override
public Block getGenesisBlock() {
  synchronized (LitecoinRegTestParams.class) {
    if (genesis == null) {
      genesis = super.getGenesisBlock();
      genesis.setNonce(0);
      genesis.setDifficultyTarget(0x207fffffL);
      genesis.setTime(1296688602L);
      checkState(genesis.getVersion() == 1);
      checkState(genesis.getMerkleRoot().toString().equals("97ddfbbae6be97fd6cdf3e7ca13232a3afff2353e29badfab7f73011edd4ced9"));
      checkState(genesis.getHashAsString().toLowerCase().equals("530827f38f93b43ed12af0b3ad25a288dc02ed74d6d7857862df51fc56c416f9"));
      genesis.verifyHeader();
    }
    return genesis;
  }
}

代码示例来源:origin: fr.acinq/bitcoinj-core

dumpedPrivateKeyHeader = 239;
genesisBlock.setTime(1296688602L);
genesisBlock.setDifficultyTarget(0x1d00ffffL);
genesisBlock.setNonce(414098458);
spendableCoinbaseDepth = 100;

代码示例来源:origin: fr.acinq/bitcoinj-core

public TestNet2Params() {
  super();
  id = ID_TESTNET;
  packetMagic = 0xfabfb5daL;
  port = 18333;
  addressHeader = 111;
  p2shHeader = 196;
  acceptableAddressCodes = new int[] { addressHeader, p2shHeader };
  interval = INTERVAL;
  targetTimespan = TARGET_TIMESPAN;
  maxTarget = Utils.decodeCompactBits(0x1d0fffffL);
  dumpedPrivateKeyHeader = 239;
  genesisBlock.setTime(1296688602L);
  genesisBlock.setDifficultyTarget(0x1d07fff8L);
  genesisBlock.setNonce(384568319);
  spendableCoinbaseDepth = 100;
  subsidyDecreaseBlockCount = 210000;
  String genesisHash = genesisBlock.getHashAsString();
  checkState(genesisHash.equals("00000007199508e34a9ff81e6ec0c477a4cccff2a4767a8eee39c11db367b008"));
  dnsSeeds = null;
  addrSeeds = null;
  bip32HeaderPub = 0x043587CF;
  bip32HeaderPriv = 0x04358394;
  majorityEnforceBlockUpgrade = TESTNET_MAJORITY_ENFORCE_BLOCK_UPGRADE;
  majorityRejectBlockOutdated = TESTNET_MAJORITY_REJECT_BLOCK_OUTDATED;
  majorityWindow = TESTNET_MAJORITY_WINDOW;
}

代码示例来源:origin: greenaddress/GreenBits

public TestNet2Params() {
  super();
  id = ID_TESTNET;
  packetMagic = 0xfabfb5daL;
  port = 18333;
  addressHeader = 111;
  p2shHeader = 196;
  acceptableAddressCodes = new int[] { addressHeader, p2shHeader };
  interval = INTERVAL;
  targetTimespan = TARGET_TIMESPAN;
  maxTarget = Utils.decodeCompactBits(0x1d0fffffL);
  dumpedPrivateKeyHeader = 239;
  genesisBlock.setTime(1296688602L);
  genesisBlock.setDifficultyTarget(0x1d07fff8L);
  genesisBlock.setNonce(384568319);
  spendableCoinbaseDepth = 100;
  subsidyDecreaseBlockCount = 210000;
  String genesisHash = genesisBlock.getHashAsString();
  checkState(genesisHash.equals("00000007199508e34a9ff81e6ec0c477a4cccff2a4767a8eee39c11db367b008"));
  dnsSeeds = null;
  addrSeeds = null;
  bip32HeaderPub = 0x043587CF;
  bip32HeaderPriv = 0x04358394;
  majorityEnforceBlockUpgrade = TESTNET_MAJORITY_ENFORCE_BLOCK_UPGRADE;
  majorityRejectBlockOutdated = TESTNET_MAJORITY_REJECT_BLOCK_OUTDATED;
  majorityWindow = TESTNET_MAJORITY_WINDOW;
}

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

public TestNet2Params() {
  super();
  id = ID_TESTNET;
  packetMagic = 0xdab5bffaL;
  port = 18333;
  addressHeader = 111;
  p2shHeader = 196;
  acceptableAddressCodes = new int[] { addressHeader, p2shHeader };
  interval = INTERVAL;
  targetTimespan = TARGET_TIMESPAN;
  maxTarget = Utils.decodeCompactBits(0x1d0fffffL);
  dumpedPrivateKeyHeader = 239;
  genesisBlock.setTime(1296688602L);
  genesisBlock.setDifficultyTarget(0x1d07fff8L);
  genesisBlock.setNonce(384568319);
  spendableCoinbaseDepth = 100;
  subsidyDecreaseBlockCount = 210000;
  String genesisHash = genesisBlock.getHashAsString();
  checkState(genesisHash.equals("00000007199508e34a9ff81e6ec0c477a4cccff2a4767a8eee39c11db367b008"));
  dnsSeeds = null;
  addrSeeds = null;
  bip32HeaderPub = 0x043587CF;
  bip32HeaderPriv = 0x04358394;
  majorityEnforceBlockUpgrade = TESTNET_MAJORITY_ENFORCE_BLOCK_UPGRADE;
  majorityRejectBlockOutdated = TESTNET_MAJORITY_REJECT_BLOCK_OUTDATED;
  majorityWindow = TESTNET_MAJORITY_WINDOW;
  /** Activation time at which the cash HF kicks in. */
  cashHardForkActivationTime = 1510600000;
  daaHeight = 1188697;
}

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

dumpedPrivateKeyHeader = 239;
genesisBlock.setTime(1296688602L);
genesisBlock.setDifficultyTarget(0x1d00ffffL);
genesisBlock.setNonce(414098458);
spendableCoinbaseDepth = 100;

代码示例来源:origin: greenaddress/GreenBits

dumpedPrivateKeyHeader = 239;
genesisBlock.setTime(1296688602L);
genesisBlock.setDifficultyTarget(0x1d00ffffL);
genesisBlock.setNonce(414098458);
spendableCoinbaseDepth = 100;

代码示例来源:origin: dogecoin/libdohj

public DogecoinTestNet3Params() {
  super(DIFFICULTY_CHANGE_TARGET);
  id = ID_DOGE_TESTNET;
  packetMagic = 0xfcc1b7dc;
  maxTarget = Utils.decodeCompactBits(0x1e0fffffL);
  port = 44556;
  addressHeader = 113;
  p2shHeader = 196;
  acceptableAddressCodes = new int[] { addressHeader, p2shHeader };
  dumpedPrivateKeyHeader = 241;
  genesisBlock.setTime(1391503289L);
  genesisBlock.setDifficultyTarget(0x1e0ffff0L);
  genesisBlock.setNonce(997879);
  spendableCoinbaseDepth = 30;
  subsidyDecreaseBlockCount = 100000;
  String genesisHash = genesisBlock.getHashAsString();
  checkState(genesisHash.equals("bb0a78264637406b6360aad926284d544d7049f45189db5664f3c4d07350559e"));
  alertSigningKey = Hex.decode("042756726da3c7ef515d89212ee1705023d14be389e25fe15611585661b9a20021908b2b80a3c7200a0139dd2b26946606aab0eef9aa7689a6dc2c7eee237fa834");
  majorityEnforceBlockUpgrade = TESTNET_MAJORITY_ENFORCE_BLOCK_UPGRADE;
  majorityRejectBlockOutdated = TESTNET_MAJORITY_REJECT_BLOCK_OUTDATED;
  majorityWindow = TESTNET_MAJORITY_WINDOW;
  dnsSeeds = new String[] {
    "testseed.jrn.me.uk"
  };
  // Note this is the same as the BIP32 testnet, as BIP44 makes HD wallets
  // chain agnostic. Dogecoin mainnet has its own headers for legacy reasons.
  bip32HeaderPub = 0x043587CF;
  bip32HeaderPriv = 0x04358394;
}

代码示例来源:origin: greenaddress/GreenBits

@Test
public void testProofOfWork() throws Exception {
  // This params accepts any difficulty target.
  NetworkParameters params = UnitTestParams.get();
  Block block = params.getDefaultSerializer().makeBlock(blockBytes);
  block.setNonce(12346);
  try {
    block.verify(Block.BLOCK_HEIGHT_GENESIS, EnumSet.noneOf(Block.VerifyFlag.class));
    fail();
  } catch (VerificationException e) {
    // Expected.
  }
  // Blocks contain their own difficulty target. The BlockChain verification mechanism is what stops real blocks
  // from containing artificially weak difficulties.
  block.setDifficultyTarget(Block.EASIEST_DIFFICULTY_TARGET);
  // Now it should pass.
  block.verify(Block.BLOCK_HEIGHT_GENESIS, EnumSet.noneOf(Block.VerifyFlag.class));
  // Break the nonce again at the lower difficulty level so we can try solving for it.
  block.setNonce(1);
  try {
    block.verify(Block.BLOCK_HEIGHT_GENESIS, EnumSet.noneOf(Block.VerifyFlag.class));
    fail();
  } catch (VerificationException e) {
    // Expected to fail as the nonce is no longer correct.
  }
  // Should find an acceptable nonce.
  block.solve();
  block.verify(Block.BLOCK_HEIGHT_GENESIS, EnumSet.noneOf(Block.VerifyFlag.class));
  assertEquals(block.getNonce(), 2);
}

代码示例来源:origin: greenaddress/GreenBits

bad.setDifficultyTarget(Block.EASIEST_DIFFICULTY_TARGET);
try {
  testNetChain.add(bad);

代码示例来源:origin: greenaddress/GreenBits

@Test
public void difficultyTransitions() throws Exception {
  // Add a bunch of blocks in a loop until we reach a difficulty transition point. The unit test params have an
  // artificially shortened period.
  Block prev = PARAMS.getGenesisBlock();
  Utils.setMockClock(System.currentTimeMillis()/1000);
  for (int height = 0; height < PARAMS.getInterval() - 1; height++) {
    Block newBlock = prev.createNextBlock(coinbaseTo, 1, Utils.currentTimeSeconds(), height);
    assertTrue(chain.add(newBlock));
    prev = newBlock;
    // The fake chain should seem to be "fast" for the purposes of difficulty calculations.
    Utils.rollMockClock(2);
  }
  // Now add another block that has no difficulty adjustment, it should be rejected.
  try {
    chain.add(prev.createNextBlock(coinbaseTo, 1, Utils.currentTimeSeconds(), PARAMS.getInterval()));
    fail();
  } catch (VerificationException e) {
  }
  // Create a new block with the right difficulty target given our blistering speed relative to the huge amount
  // of time it's supposed to take (set in the unit test network parameters).
  Block b = prev.createNextBlock(coinbaseTo, 1, Utils.currentTimeSeconds(), PARAMS.getInterval() + 1);
  b.setDifficultyTarget(0x201fFFFFL);
  b.solve();
  assertTrue(chain.add(b));
  // Successfully traversed a difficulty transition period.
}

相关文章

微信公众号

最新文章

更多