6 "github.com/bytom/protocol/bc"
11 // Max gas that one block contains
12 MaxBlockGas = uint64(100000000)
14 //config parameter for coinbase reward
15 CoinbasePendingBlockNumber = uint64(6)
16 subsidyReductionInterval = uint64(560640)
17 baseSubsidy = uint64(41250000000)
18 InitialBlockSubsidy = uint64(1470000000000000000)
20 // config for pow mining
21 PowMinBits = uint64(2305843009213861724)
22 BlocksPerRetarget = uint64(128)
23 TargetSecondsPerBlock = uint64(60)
24 SeedPerRetarget = uint64(128)
26 // MaxTimeOffsetSeconds is the maximum number of seconds a block time is allowed to be ahead of the current time
27 MaxTimeOffsetSeconds = uint64(60 * 60)
30 PayToWitnessPubKeyHashDataSize = 20
31 PayToWitnessScriptHashDataSize = 32
33 CoinbaseArbitrarySizeLimit = 128
35 VMGasRate = int64(1000)
36 StorageGasRate = int64(5)
37 MaxGasAmount = int64(100000)
38 DefaultGasCredit = int64(80000)
39 NeuBtmRate = float64(100000)
44 BTMDescription = `Bytom Official Issue`
47 // BTMAssetID is BTM's asset id, the soul asset of Bytom
48 var BTMAssetID = &bc.AssetID{
49 V0: uint64(18446744073709551615),
50 V1: uint64(18446744073709551615),
51 V2: uint64(18446744073709551615),
52 V3: uint64(18446744073709551615),
55 // InitialSeed is SHA3-256 of Byte[0^32]
56 var InitialSeed = &bc.Hash{
57 V0: uint64(11412844483649490393),
58 V1: uint64(4614157290180302959),
59 V2: uint64(1780246333311066183),
60 V3: uint64(9357197556716379726),
63 // BTMDefinitionMap is the ....
64 var BTMDefinitionMap = map[string]interface{}{
67 "decimals": BTMDecimals,
68 "description": BTMDescription,
71 // BlockSubsidy calculate the coinbase rewards on given block height
72 func BlockSubsidy(height uint64) uint64 {
74 return InitialBlockSubsidy
76 return baseSubsidy >> uint(height/subsidyReductionInterval)
79 // IsBech32SegwitPrefix returns whether the prefix is a known prefix for segwit
80 // addresses on any default or registered network. This is used when decoding
81 // an address string into a specific address type.
82 func IsBech32SegwitPrefix(prefix string, params *Params) bool {
83 prefix = strings.ToLower(prefix)
84 return prefix == params.Bech32HRPSegwit+"1"
87 // Params store the config for different network
89 // Name defines a human-readable identifier for the network.
91 Bech32HRPSegwit string
94 var ActiveNetParams = MainNetParams
96 // NetParams is the correspondence between chain_id and Params
97 var NetParams = map[string]Params{
98 "mainnet": MainNetParams,
99 "testnet": TestNetParams,
102 // MainNetParams is the config for production
103 var MainNetParams = Params{
105 Bech32HRPSegwit: "bm",
108 // TestNetParams is the config for test-net
109 var TestNetParams = Params{
111 Bech32HRPSegwit: "tm",