public abstract class NetworkParameters extends Object implements Serializable
NetworkParameters contains the data needed for working with an instantiation of a Bitcoin chain.
This is an abstract class, concrete instantiations can be found in the params package. There are four:
one for the main network (MainNetParams
), one for the public test network, and two others that are
intended for unit testing and local app development purposes. Although this class contains some aliases for
them, you are encouraged to call the static get() methods on each specific params class directly.
Modifier and Type | Field and Description |
---|---|
protected int[] |
acceptableAddressCodes |
protected int |
addressHeader |
protected byte[] |
alertSigningKey |
static int |
BIP16_ENFORCE_TIME
Blocks with a timestamp after this should enforce BIP 16, aka "Pay to script hash".
|
protected Map<Integer,Sha256Hash> |
checkpoints |
protected String[] |
dnsSeeds |
protected int |
dumpedPrivateKeyHeader |
protected Block |
genesisBlock |
protected String |
id
See getId().
|
static String |
ID_MAINNET
The string returned by getId() for the main, production network where people trade things.
|
static String |
ID_REGTEST
The string returned by getId() for regtest mode.
|
static String |
ID_TESTNET
The string returned by getId() for the testnet.
|
static String |
ID_UNITTESTNET
Unit test network.
|
protected int |
interval |
static int |
INTERVAL |
static long |
MAX_COINS
The maximum number of coins to be generated
|
static Coin |
MAX_MONEY
The maximum money to be generated
|
protected BigInteger |
maxTarget |
protected int |
p2shHeader |
protected long |
packetMagic |
static String |
PAYMENT_PROTOCOL_ID_MAINNET
The string used by the payment protocol to represent the main net.
|
static String |
PAYMENT_PROTOCOL_ID_TESTNET
The string used by the payment protocol to represent the test net.
|
protected int |
port |
static int |
PROTOCOL_VERSION
The protocol version this library implements.
|
static byte[] |
SATOSHI_KEY
The alert signing key originally owned by Satoshi, and now passed on to Gavin along with a few others.
|
protected int |
spendableCoinbaseDepth
The depth of blocks required for a coinbase transaction to be spendable.
|
protected int |
subsidyDecreaseBlockCount |
static int |
TARGET_SPACING |
static int |
TARGET_TIMESPAN |
protected int |
targetTimespan |
Modifier | Constructor and Description |
---|---|
protected |
NetworkParameters() |
Modifier and Type | Method and Description |
---|---|
boolean |
allowEmptyPeerChain()
If we are running in testnet-in-a-box mode, we allow connections to nodes with 0 non-genesis blocks.
|
boolean |
equals(Object o) |
static NetworkParameters |
fromID(String id)
Returns the network parameters for the given string ID or NULL if not recognized.
|
static NetworkParameters |
fromPmtProtocolID(String pmtProtocolId)
Returns the network parameters for the given string paymentProtocolID or NULL if not recognized.
|
int[] |
getAcceptableAddressCodes()
The version codes that prefix addresses which are acceptable on this network.
|
int |
getAddressHeader()
First byte of a base58 encoded address.
|
byte[] |
getAlertSigningKey()
The key used to sign
AlertMessage s. |
String[] |
getDnsSeeds()
Returns DNS names that when resolved, give IP addresses of active peers.
|
int |
getDumpedPrivateKeyHeader()
First byte of a base58 encoded dumped private key.
|
Block |
getGenesisBlock()
Genesis block for this chain.
|
String |
getId()
A Java package style string acting as unique ID for these parameters
|
int |
getInterval()
How many blocks pass between difficulty adjustment periods.
|
BigInteger |
getMaxTarget()
Maximum target represents the easiest allowable proof of work.
|
int |
getP2SHHeader()
First byte of a base58 encoded P2SH address.
|
long |
getPacketMagic()
The header bytes that identify the start of a packet on this network.
|
abstract String |
getPaymentProtocolId() |
int |
getPort()
Default TCP port on which to connect to nodes.
|
int |
getSpendableCoinbaseDepth() |
int |
getSubsidyDecreaseBlockCount() |
int |
getTargetTimespan()
How much time in seconds is supposed to pass between "interval" blocks.
|
int |
hashCode() |
boolean |
isCheckpoint(int height)
Returns true if the given height has a recorded checkpoint.
|
boolean |
passesCheckpoint(int height,
Sha256Hash hash)
Returns true if the block height is either not a checkpoint, or is a checkpoint and the hash matches.
|
static NetworkParameters |
prodNet()
Deprecated.
|
static NetworkParameters |
regTests()
Deprecated.
|
static NetworkParameters |
testNet()
Deprecated.
|
static NetworkParameters |
testNet2()
Deprecated.
|
static NetworkParameters |
testNet3()
Deprecated.
|
static NetworkParameters |
unitTests()
Deprecated.
|
public static final int PROTOCOL_VERSION
public static final byte[] SATOSHI_KEY
public static final String ID_MAINNET
public static final String ID_TESTNET
public static final String ID_REGTEST
public static final String ID_UNITTESTNET
public static final String PAYMENT_PROTOCOL_ID_MAINNET
public static final String PAYMENT_PROTOCOL_ID_TESTNET
protected Block genesisBlock
protected BigInteger maxTarget
protected int port
protected long packetMagic
protected int addressHeader
protected int p2shHeader
protected int dumpedPrivateKeyHeader
protected int interval
protected int targetTimespan
protected byte[] alertSigningKey
protected String id
protected int spendableCoinbaseDepth
protected int subsidyDecreaseBlockCount
protected int[] acceptableAddressCodes
protected String[] dnsSeeds
protected Map<Integer,Sha256Hash> checkpoints
public static final int TARGET_TIMESPAN
public static final int TARGET_SPACING
public static final int INTERVAL
public static final int BIP16_ENFORCE_TIME
public static final long MAX_COINS
public static final Coin MAX_MONEY
@Deprecated public static NetworkParameters testNet()
@Deprecated public static NetworkParameters testNet2()
@Deprecated public static NetworkParameters testNet3()
@Deprecated public static NetworkParameters prodNet()
@Deprecated public static NetworkParameters unitTests()
@Deprecated public static NetworkParameters regTests()
public String getId()
public abstract String getPaymentProtocolId()
@Nullable public static NetworkParameters fromID(String id)
@Nullable public static NetworkParameters fromPmtProtocolID(String pmtProtocolId)
public int getSpendableCoinbaseDepth()
public boolean passesCheckpoint(int height, Sha256Hash hash)
public boolean isCheckpoint(int height)
public int getSubsidyDecreaseBlockCount()
public String[] getDnsSeeds()
public Block getGenesisBlock()
Genesis block for this chain.
The first block in every chain is a well known constant shared between all Bitcoin implemenetations. For a block to be valid, it must be eventually possible to work backwards to the genesis block by following the prevBlockHash pointers in the block headers.
The genesis blocks for both test and prod networks contain the timestamp of when they were created, and a message in the coinbase transaction. It says, "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks".
public int getPort()
public long getPacketMagic()
public int getAddressHeader()
Address
. This is the same as acceptableAddressCodes[0] and
is the one used for "normal" addresses. Other types of address may be encountered with version codes found in
the acceptableAddressCodes array.public int getP2SHHeader()
public int getDumpedPrivateKeyHeader()
DumpedPrivateKey
.public int getTargetTimespan()
public int[] getAcceptableAddressCodes()
public boolean allowEmptyPeerChain()
public int getInterval()
public BigInteger getMaxTarget()
public byte[] getAlertSigningKey()
AlertMessage
s. You can use ECKey.verify(byte[], byte[], byte[])
to verify
signatures using it.Copyright © 2014. All rights reserved.