Package org.bitcoinj.params
Class AbstractBitcoinNetParams
- java.lang.Object
-
- org.bitcoinj.core.NetworkParameters
-
- org.bitcoinj.params.AbstractBitcoinNetParams
-
- Direct Known Subclasses:
MainNetParams
,RegTestParams
,TestNet3Params
,UnitTestParams
public abstract class AbstractBitcoinNetParams extends NetworkParameters
Parameters for Bitcoin-like networks.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.bitcoinj.core.NetworkParameters
NetworkParameters.ProtocolVersion
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
BITCOIN_SCHEME
Scheme part for Bitcoin URIs.protected Block
genesisBlock
lazy-initialized by the first call toNetworkParameters.getGenesisBlock()
static int
REWARD_HALVING_INTERVAL
-
Fields inherited from class org.bitcoinj.core.NetworkParameters
addressHeader, addrSeeds, BIP16_ENFORCE_TIME, bip32HeaderP2PKHpriv, bip32HeaderP2PKHpub, bip32HeaderP2WPKHpriv, bip32HeaderP2WPKHpub, checkpoints, defaultSerializer, dnsSeeds, dumpedPrivateKeyHeader, httpSeeds, id, ID_MAINNET, ID_REGTEST, ID_TESTNET, ID_UNITTESTNET, interval, INTERVAL, majorityEnforceBlockUpgrade, majorityRejectBlockOutdated, majorityWindow, MAX_COINS, MAX_MONEY, maxTarget, p2shHeader, packetMagic, PAYMENT_PROTOCOL_ID_MAINNET, PAYMENT_PROTOCOL_ID_REGTEST, PAYMENT_PROTOCOL_ID_TESTNET, PAYMENT_PROTOCOL_ID_UNIT_TESTS, port, segwitAddressHrp, spendableCoinbaseDepth, subsidyDecreaseBlockCount, TARGET_SPACING, TARGET_TIMESPAN, targetTimespan
-
-
Constructor Summary
Constructors Constructor Description AbstractBitcoinNetParams()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
checkDifficultyTransitions(StoredBlock storedPrev, Block nextBlock, BlockStore blockStore)
Throws an exception if the block's difficulty is not correct.Coin
getBlockInflation(int height)
A utility method that calculates how much new Bitcoin would be created by the block at the given height.Coin
getMaxMoney()
Returns the number of coins that will be produced in total, on this network.Coin
getMinNonDustOutput()
Deprecated.MonetaryFormat
getMonetaryFormat()
The monetary object for this currency.int
getProtocolVersionNum(NetworkParameters.ProtocolVersion version)
BitcoinSerializer
getSerializer(boolean parseRetain)
Construct and return a custom serializer.java.lang.String
getUriScheme()
Scheme part for URIs, for example "bitcoin".boolean
hasMaxMoney()
Returns whether this network has a maximum number of coins (finite supply) or not.boolean
isDifficultyTransitionPoint(int previousHeight)
Checks if we are at a difficulty transition point.boolean
isRewardHalvingPoint(int previousHeight)
Checks if we are at a reward halving point.-
Methods inherited from class org.bitcoinj.core.NetworkParameters
allowEmptyPeerChain, equals, fromID, fromPmtProtocolID, getAddressHeader, getAddrSeeds, getBip32HeaderP2PKHpriv, getBip32HeaderP2PKHpub, getBip32HeaderP2WPKHpriv, getBip32HeaderP2WPKHpub, getBlockVerificationFlags, getDefaultSerializer, getDnsSeeds, getDumpedPrivateKeyHeader, getGenesisBlock, getHttpSeeds, getId, getInterval, getMajorityEnforceBlockUpgrade, getMajorityRejectBlockOutdated, getMajorityWindow, getMaxTarget, getP2SHHeader, getPacketMagic, getPaymentProtocolId, getPort, getSegwitAddressHrp, getSpendableCoinbaseDepth, getSubsidyDecreaseBlockCount, getTargetTimespan, getTransactionVerificationFlags, hashCode, isCheckpoint, passesCheckpoint
-
-
-
-
Field Detail
-
BITCOIN_SCHEME
public static final java.lang.String BITCOIN_SCHEME
Scheme part for Bitcoin URIs.- See Also:
- Constant Field Values
-
REWARD_HALVING_INTERVAL
public static final int REWARD_HALVING_INTERVAL
- See Also:
- Constant Field Values
-
genesisBlock
protected Block genesisBlock
lazy-initialized by the first call toNetworkParameters.getGenesisBlock()
-
-
Method Detail
-
isRewardHalvingPoint
public final boolean isRewardHalvingPoint(int previousHeight)
Checks if we are at a reward halving point.- Parameters:
previousHeight
- The height of the previous stored block- Returns:
- If this is a reward halving point
-
getBlockInflation
public Coin getBlockInflation(int height)
A utility method that calculates how much new Bitcoin would be created by the block at the given height. The inflation of Bitcoin is predictable and drops roughly every 4 years (210,000 blocks). At the dawn of the system it was 50 coins per block, in late 2012 it went to 25 coins per block, and so on. The size of a coinbase transaction is inflation plus fees.
The half-life is controlled by
NetworkParameters.getSubsidyDecreaseBlockCount()
.- Parameters:
height
- the height of the block to calculate inflation for
-
isDifficultyTransitionPoint
public final boolean isDifficultyTransitionPoint(int previousHeight)
Checks if we are at a difficulty transition point.- Parameters:
previousHeight
- The height of the previous stored block- Returns:
- If this is a difficulty transition point
-
checkDifficultyTransitions
public void checkDifficultyTransitions(StoredBlock storedPrev, Block nextBlock, BlockStore blockStore) throws VerificationException, BlockStoreException
Description copied from class:NetworkParameters
Throws an exception if the block's difficulty is not correct.- Specified by:
checkDifficultyTransitions
in classNetworkParameters
- Throws:
VerificationException
- if the block's difficulty is not correct.BlockStoreException
-
getMaxMoney
public Coin getMaxMoney()
Description copied from class:NetworkParameters
Returns the number of coins that will be produced in total, on this network. Where not applicable, a very large number of coins is returned instead (i.e. the main coin issue for Dogecoin).- Specified by:
getMaxMoney
in classNetworkParameters
-
getMinNonDustOutput
@Deprecated public Coin getMinNonDustOutput()
Deprecated.- Specified by:
getMinNonDustOutput
in classNetworkParameters
-
getMonetaryFormat
public MonetaryFormat getMonetaryFormat()
Description copied from class:NetworkParameters
The monetary object for this currency.- Specified by:
getMonetaryFormat
in classNetworkParameters
-
getProtocolVersionNum
public int getProtocolVersionNum(NetworkParameters.ProtocolVersion version)
- Specified by:
getProtocolVersionNum
in classNetworkParameters
-
getSerializer
public BitcoinSerializer getSerializer(boolean parseRetain)
Description copied from class:NetworkParameters
Construct and return a custom serializer.- Specified by:
getSerializer
in classNetworkParameters
-
getUriScheme
public java.lang.String getUriScheme()
Description copied from class:NetworkParameters
Scheme part for URIs, for example "bitcoin".- Specified by:
getUriScheme
in classNetworkParameters
-
hasMaxMoney
public boolean hasMaxMoney()
Description copied from class:NetworkParameters
Returns whether this network has a maximum number of coins (finite supply) or not. Always returns true for Bitcoin, but exists to be overridden for other networks.- Specified by:
hasMaxMoney
in classNetworkParameters
-
-