chainparams

package
v0.0.0-...-e2b9c72 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2018 License: BSD-2-Clause Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const AntiReplayCommitment = "Bitcoin: A Peer-to-Peer Electronic Cash System"

Variables

View Source
var (
	RegisteredNets          = make(map[wire.BitcoinNet]struct{})
	PubKeyHashAddressIDs    = make(map[byte]struct{})
	ScriptHashAddressIDs    = make(map[byte]struct{})
	HDPrivateToPublicKeyIDs = make(map[[4]byte][]byte)
)
View Source
var ActiveNetParams = &TestNetParams
View Source
var GenesisBlock = block.NewGenesisBlock()
View Source
var GenesisBlockHash = GenesisBlock.GetHash()
View Source
var MainNetParams = BitcoinParams{
	Param: consensus.Param{
		GenesisHash:            &GenesisBlockHash,
		SubsidyHalvingInterval: 210000,
		BIP34Height:            227931,

		BIP34Hash: *util.HashFromString("000000000000024b89b42a942fe0d9fea3bb44ab7bd1b19115dd6a759c0808b8"),

		BIP65Height: 388381,

		BIP66Height: 363725,

		CSVHeight:                     419328,
		PowLimit:                      mainPowLimit,
		TargetTimespan:                60 * 60 * 24 * 14,
		TargetTimePerBlock:            60 * 10,
		FPowAllowMinDifficultyBlocks:  false,
		FPowNoRetargeting:             false,
		RuleChangeActivationThreshold: 1916,
		MinerConfirmationWindow:       2016,
		Deployments: [consensus.MaxVersionBitsDeployments]consensus.BIP9Deployment{
			consensus.DeploymentTestDummy: {Bit: 28, StartTime: 1199145601, Timeout: 1230767999},
			consensus.DeploymentCSV:       {Bit: 0, StartTime: 1462060800, Timeout: 1493596800},
		},

		MinimumChainWork: *util.HashFromString("000000000000000000000000000000000000000000b8702680bcb0fec8548e05"),

		DefaultAssumeValid: *util.HashFromString("0000000000000000007e11995a8969e2d8838e72da271cdd1903ae4c6753064a"),

		UAHFHeight: 478559,

		DAAHeight: 504031,

		MonolithActivationTime: 1526400000,

		MagneticAnomalyActivationTime: 1542300000,

		GreatWallActivationTime: 1557921600,
	},

	Name:        "main",
	BitcoinNet:  wire.MainNet,
	DefaultPort: "8333",
	DNSSeeds: []DNSSeed{
		{Host: "seed.bitcoinabc.org", HasFiltering: true},
		{Host: "seed-abc.bitcoinforks.org", HasFiltering: true},
		{Host: "btccash-seeder.bitcoinunlimited.info", HasFiltering: true},
		{Host: "seed.bitprim.org", HasFiltering: true},
		{Host: "seed.deadalnix.me", HasFiltering: true},
		{Host: "seeder.criptolayer.net", HasFiltering: false},
	},
	GenesisBlock: GenesisBlock,

	PowLimitBits:             GenesisBlock.Header.Bits,
	CoinbaseMaturity:         100,
	SubsidyReductionInterval: 210000,

	RetargetAdjustmentFactor: 4,
	ReduceMinDifficulty:      false,
	MinDiffReductionTime:     0,
	GenerateSupported:        false,
	Checkpoints: []*model.Checkpoint{
		{11111, util.HashFromString("0000000069e244f73d78e8fd29ba2fd2ed618bd6fa2ee92559f542fdb26e7c1d")},
		{33333, util.HashFromString("000000002dd5588a74784eaa7ab0507a18ad16a236e7b1ce69f00d7ddfb5d0a6")},
		{74000, util.HashFromString("0000000000573993a3c9e41ce34471c079dcf5f52a0e824a81e7f953b8661a20")},
		{105000, util.HashFromString("00000000000291ce28027faea320c8d2b054b2e0fe44a773f3eefb151d6bdc97")},
		{134444, util.HashFromString("00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe")},
		{168000, util.HashFromString("000000000000099e61ea72015e79632f216fe6cb33d7899acb35b75c8303b763")},
		{193000, util.HashFromString("000000000000059f452a5f7340de6682a977387c17010ff6e6c3bd83ca8b1317")},
		{210000, util.HashFromString("000000000000048b95347e83192f69cf0366076336c639f9b7228e9ba171342e")},
		{216116, util.HashFromString("00000000000001b4f4b433e81ee46494af945cf96014816a4e2370f11b23df4e")},
		{225430, util.HashFromString("00000000000001c108384350f74090433e7fcf79a606b8e797f065b130575932")},
		{250000, util.HashFromString("000000000000003887df1f29024b06fc2200b55f8af8f35453d7be294df2d214")},
		{267300, util.HashFromString("000000000000000a83fbd660e918f218bf37edd92b748ad940483c7c116179ac")},
		{279000, util.HashFromString("0000000000000001ae8c72a0b0c301f67e3afca10e819efa9041e458e9bd7e40")},
		{300255, util.HashFromString("0000000000000000162804527c6e9b9f0563a280525f9d08c12041def0a0f3b2")},
		{319400, util.HashFromString("000000000000000021c6052e9becade189495d1c539aa37c58917305fd15f13b")},
		{343185, util.HashFromString("0000000000000000072b8bf361d01a6ba7d445dd024203fafc78768ed4368554")},
		{352940, util.HashFromString("000000000000000010755df42dba556bb72be6a32f3ce0b6941ce4430152c9ff")},
		{382320, util.HashFromString("00000000000000000a8dc6ed5b133d0eb2fd6af56203e4159789b092defd8ab2")},
	},
	MineBlocksOnDemands: false,

	BlockEnforceNumRequired: 750,
	BlockRejectNumRequired:  950,
	BlockUpgradeNumToCheck:  1000,

	RequireStandard:     true,
	RelayNonStdTxs:      false,
	PubKeyHashAddressID: 0x00,
	ScriptHashAddressID: 0x05,
	PrivatekeyID:        0x80,

	HDPrivateKeyID: [4]byte{0x04, 0x88, 0xad, 0xe4},
	HDPublicKeyID:  [4]byte{0x04, 0x88, 0xb2, 0x1e},

	HDCoinType: 0,
}
View Source
var RegTestGenesisBlock = block.NewRegTestGenesisBlock()
View Source
var RegTestGenesisHash = RegTestGenesisBlock.GetHash()
View Source
var RegressionNetParams = BitcoinParams{
	Param: consensus.Param{
		GenesisHash:                   &RegTestGenesisHash,
		SubsidyHalvingInterval:        150,
		BIP34Height:                   100000000,
		BIP34Hash:                     util.Hash{},
		BIP65Height:                   1351,
		BIP66Height:                   1251,
		CSVHeight:                     576,
		PowLimit:                      regressingPowLimit,
		TargetTimespan:                60 * 60 * 24 * 14,
		TargetTimePerBlock:            60 * 10,
		FPowAllowMinDifficultyBlocks:  true,
		FPowNoRetargeting:             true,
		RuleChangeActivationThreshold: 108,
		MinerConfirmationWindow:       144,
		Deployments: [consensus.MaxVersionBitsDeployments]consensus.BIP9Deployment{
			consensus.DeploymentTestDummy: {
				Bit:       28,
				StartTime: 0,
				Timeout:   999999999999,
			},
		},
		MinimumChainWork:   *util.HashFromString("00"),
		DefaultAssumeValid: *util.HashFromString("00"),
		UAHFHeight:         0,
		DAAHeight:          0,

		MonolithActivationTime: 1526400000,

		MagneticAnomalyActivationTime: 1542300000,

		GreatWallActivationTime: 1557921600,
	},

	Name:         "regtest",
	BitcoinNet:   wire.RegTestNet,
	DefaultPort:  "18444",
	DNSSeeds:     []DNSSeed{},
	GenesisBlock: RegTestGenesisBlock,

	PowLimitBits:             RegTestGenesisBlock.Header.Bits,
	CoinbaseMaturity:         100,
	SubsidyReductionInterval: 150,

	RetargetAdjustmentFactor: 4,
	ReduceMinDifficulty:      true,
	MinDiffReductionTime:     time.Minute * 20,
	GenerateSupported:        true,
	Checkpoints:              nil,
	MineBlocksOnDemands:      false,

	BlockEnforceNumRequired: 750,
	BlockRejectNumRequired:  950,
	BlockUpgradeNumToCheck:  1000,

	RelayNonStdTxs:      true,
	PubKeyHashAddressID: 0x6f,
	ScriptHashAddressID: 0xc4,
	PrivatekeyID:        0xef,

	HDPrivateKeyID: [4]byte{0x04, 0x35, 0x83, 0x94},
	HDPublicKeyID:  [4]byte{0x04, 0x35, 0x87, 0xcf},

	HDCoinType: 1,
}
View Source
var TestNetGenesisBlock = block.NewTestNetGenesisBlock()
View Source
var TestNetGenesisHash = TestNetGenesisBlock.GetHash()
View Source
var TestNetParams = BitcoinParams{
	Param: consensus.Param{
		SubsidyHalvingInterval:         210000,
		BIP34Height:                    21111,
		BIP34Hash:                      *util.HashFromString("0000000023b3a96d3484e5abb3755c413e7d41500f8e2a5c3f0dd01299cd8ef8"),
		BIP65Height:                    581885,
		BIP66Height:                    330776,
		CSVHeight:                      770112,
		AntiReplayOpReturnSunsetHeight: 1250000,
		AntiReplayOpReturnCommitment:   []byte("Bitcoin: A Peer-to-Peer Electronic Cash System"),
		PowLimit:                       testNetPowLimit,
		TargetTimespan:                 60 * 60 * 24 * 14,
		TargetTimePerBlock:             60 * 10,
		FPowAllowMinDifficultyBlocks:   true,
		FPowNoRetargeting:              false,
		RuleChangeActivationThreshold:  1512,
		MinerConfirmationWindow:        2016,
		Deployments: [consensus.MaxVersionBitsDeployments]consensus.BIP9Deployment{
			consensus.DeploymentTestDummy: {
				Bit:       28,
				StartTime: 1199145601,
				Timeout:   1230767999,
			},
			consensus.DeploymentCSV: {
				Bit:       0,
				StartTime: 1456790400,
				Timeout:   1493596800,
			},
		},
		MinimumChainWork:   *util.HashFromString("000000000000000000000000000000000000000000000030015a07e503af3227"),
		DefaultAssumeValid: *util.HashFromString("00000000000000ba5624709777f8df34b911c16a33a474562aec7360580218cc"),
		UAHFHeight:         1155875,
		DAAHeight:          1188697,

		MonolithActivationTime: 1526400000,

		MagneticAnomalyActivationTime: 1542300000,

		GreatWallActivationTime: 1557921600,

		GenesisHash: &TestNetGenesisHash,
	},

	Name:        "test",
	BitcoinNet:  wire.TestNet3,
	DiskMagic:   wire.TestDiskMagic,
	DefaultPort: "18333",
	DNSSeeds: []DNSSeed{
		{Host: "testnet-seed.bitcoinabc.org", HasFiltering: true},
		{Host: "testnet-seed-abc.bitcoinforks.org", HasFiltering: true},
		{Host: "testnet-seed.deadalnix.me", HasFiltering: true},
		{Host: "testnet-seed.bitprim.org", HasFiltering: true},
		{Host: "testnet-seeder.criptolayer.net", HasFiltering: true},
	},
	GenesisBlock:             TestNetGenesisBlock,
	PowLimitBits:             GenesisBlock.Header.Bits,
	CoinbaseMaturity:         100,
	SubsidyReductionInterval: 210000,
	RetargetAdjustmentFactor: 4,
	ReduceMinDifficulty:      true,
	MinDiffReductionTime:     time.Minute * 20,
	GenerateSupported:        false,
	Checkpoints: []*model.Checkpoint{

		{1200000, util.HashFromString("00000000d91bdbb5394bcf457c0f0b7a7e43eb978e2d881b6c2a4c2756abc558")},
	},
	MineBlocksOnDemands: false,

	BlockEnforceNumRequired: 51,
	BlockRejectNumRequired:  75,
	BlockUpgradeNumToCheck:  100,

	RelayNonStdTxs:      true,
	PubKeyHashAddressID: 0x6f,
	ScriptHashAddressID: 0xc4,
	PrivatekeyID:        0xef,

	HDPrivateKeyID: [4]byte{0x04, 0x35, 0x83, 0x94},
	HDPublicKeyID:  [4]byte{0x04, 0x35, 0x87, 0xcf},

	HDCoinType:          1,
	MiningRequiresPeers: true,
	// contains filtered or unexported fields
}

Functions

func HDPrivateKeyToPublicKeyID

func HDPrivateKeyToPublicKeyID(id []byte) ([]byte, error)

func IsPublicKeyHashAddressID

func IsPublicKeyHashAddressID(id byte) bool

func IsScriptHashAddressid

func IsScriptHashAddressid(id byte) bool

func IsUAHFEnabled

func IsUAHFEnabled(height int32) bool

IsUAHFEnabled Check is UAHF has activated.

func Register

func Register(bitcoinParams *BitcoinParams) error

Types

type BitcoinParams

type BitcoinParams struct {
	consensus.Param
	Name                     string
	BitcoinNet               wire.BitcoinNet
	DiskMagic                wire.BitcoinNet
	DefaultPort              string
	DNSSeeds                 []DNSSeed
	GenesisBlock             *block.Block
	PowLimitBits             uint32
	CoinbaseMaturity         uint16
	SubsidyReductionInterval int32
	RetargetAdjustmentFactor int64
	ReduceMinDifficulty      bool
	MinDiffReductionTime     time.Duration
	GenerateSupported        bool
	Checkpoints              []*model.Checkpoint
	MineBlocksOnDemands      bool

	// Enforce current block version once network has
	// upgraded.  This is part of BIP0034.
	BlockEnforceNumRequired uint64

	// Reject previous block versions once network has
	// upgraded.  This is part of BIP0034.
	BlockRejectNumRequired uint64

	// The number of nodes to check.  This is part of BIP0034.
	BlockUpgradeNumToCheck uint64

	RequireStandard     bool
	RelayNonStdTxs      bool
	PubKeyHashAddressID byte
	ScriptHashAddressID byte
	PrivatekeyID        byte
	HDPrivateKeyID      [4]byte
	HDPublicKeyID       [4]byte
	HDCoinType          uint32

	PruneAfterHeight int

	MiningRequiresPeers      bool
	DefaultConsistencyChecks bool
	// contains filtered or unexported fields
}

func (*BitcoinParams) TxData

func (param *BitcoinParams) TxData() *ChainTxData

type ChainTxData

type ChainTxData struct {
	Time    time.Time
	TxCount int64
	TxRate  float64
}

type DNSSeed

type DNSSeed struct {
	// Host defines the hostname of the seed.
	Host string

	// HasFiltering defines whether the seed supports filtering
	// by service flags (wire.ServiceFlag).
	HasFiltering bool
}

DNSSeed identifies a DNS seed.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL