github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/params/protocol_params.go (about)

     1  
     2  //<developer>
     3  //    <name>linapex 曹一峰</name>
     4  //    <email>linapex@163.com</email>
     5  //    <wx>superexc</wx>
     6  //    <qqgroup>128148617</qqgroup>
     7  //    <url>https://jsq.ink</url>
     8  //    <role>pku engineer</role>
     9  //    <date>2019-03-16 19:16:42</date>
    10  //</624450107802128384>
    11  
    12  
    13  package params
    14  
    15  import "math/big"
    16  
    17  const (
    18  GasLimitBoundDivisor uint64 = 1024    //气体极限的界限除数,用于更新计算。
    19  MinGasLimit          uint64 = 5000    //气体极限可能是最小值。
    20  GenesisGasLimit      uint64 = 4712388 //成因区块气限。
    21  
    22  MaximumExtraDataSize  uint64 = 32    //最大尺寸的额外数据可能在Genesis之后。
    23  ExpByteGas            uint64 = 10    //乘以exp指令的CEIL(log256(指数))。
    24  SloadGas              uint64 = 50    //乘以为任何*复制操作复制(舍入)并添加的32字节字数。
    25  CallValueTransferGas  uint64 = 9000  //当价值转移为非零时支付呼叫费用。
    26  CallNewAccountGas     uint64 = 25000 //当目标地址以前不存在时支付呼叫费用。
    27  TxGas                 uint64 = 21000 //未创建合同的每笔交易。注:交易之间的通话数据不支付。
    28  TxGasContractCreation uint64 = 53000 //创建合同的每个事务。注:交易之间的通话数据不支付。
    29  TxDataZeroGas         uint64 = 4     //附加到等于零的事务的每字节数据。注:交易之间的通话数据不支付。
    30  QuadCoeffDiv          uint64 = 512   //内存成本方程二次粒子的除数。
    31  LogDataGas            uint64 = 8     //日志*操作数据中的每个字节。
    32  CallStipend           uint64 = 2300  //呼叫开始时提供的游离气体。
    33  
    34  Sha3Gas     uint64 = 30 //每运行一次。
    35  Sha3WordGas uint64 = 6  //sha3操作数据的每个字一次。
    36  
    37  SstoreSetGas    uint64 = 20000 //每个sload操作一次。
    38  SstoreResetGas  uint64 = 5000  //如果零度从零变为零,则每个SStore操作一次。
    39  SstoreClearGas  uint64 = 5000  //如果零度不变,则每个sstore操作一次。
    40  SstoreRefundGas uint64 = 15000 //如果零度更改为零,则每个SStore操作一次。
    41  
    42  NetSstoreNoopGas  uint64 = 200   //如果值不变,则每个sstore操作一次。
    43  NetSstoreInitGas  uint64 = 20000 //从清除零开始,每个SStore操作一次。
    44  NetSstoreCleanGas uint64 = 5000  //每个SStore操作一次,从clean non-zero开始。
    45  NetSstoreDirtyGas uint64 = 200   //每个SStore操作一次。
    46  
    47  NetSstoreClearRefund      uint64 = 15000 //每个SStore操作一次,用于清除原来存在的存储槽
    48  NetSstoreResetRefund      uint64 = 4800  //每次存储操作一次,用于重置为原始非零值
    49  NetSstoreResetClearRefund uint64 = 19800 //每次存储操作一次,以重置为原始零值
    50  
    51  JumpdestGas      uint64 = 1     //如果零度变为零,则每次存储操作一次,返回气体。
    52  EpochDuration    uint64 = 30000 //工作证明阶段之间的持续时间。
    53  CallGas          uint64 = 40    //每次呼叫操作和消息呼叫事务一次。
    54  CreateDataGas    uint64 = 200   //
    55  CallCreateDepth  uint64 = 1024  //调用/创建堆栈的最大深度。
    56  ExpGas           uint64 = 10    //每exp指令一次
    57  LogGas           uint64 = 375   //每个日志*操作。
    58  CopyGas          uint64 = 3     //
    59  StackLimit       uint64 = 1024  //允许的VM堆栈的最大大小。
    60  TierStepGas      uint64 = 0     //每个操作一次,供选择。
    61  LogTopicGas      uint64 = 375   //乘以每个日志事务的日志*。例如,log0招致0*c_txlogtopicgas,log4招致4*c_txlogtopicgas。
    62  CreateGas        uint64 = 32000 //每次创建操作和合同创建交易一次。
    63  Create2Gas       uint64 = 32000 //每个create2操作一次
    64  SuicideRefundGas uint64 = 24000 //自杀手术后退款。
    65  MemoryGas        uint64 = 3     //乘以(内存中引用的最高字节数+1)的地址。注意:引用发生在读、写以及返回和调用等指令中。
    66  TxDataNonZeroGas uint64 = 68    //附加到不等于零的事务的每字节数据。注:交易之间的通话数据不支付。
    67  
    68  MaxCodeSize = 24576 //合同允许的最大字节码
    69  
    70  //预编译合同天然气价格
    71  
    72  EcrecoverGas            uint64 = 3000   //椭圆曲线发送器回收气价格
    73  Sha256BaseGas           uint64 = 60     //sha256操作的基价
    74  Sha256PerWordGas        uint64 = 12     //sha256操作的每字价格
    75  Ripemd160BaseGas        uint64 = 600    //ripemd160操作的基价
    76  Ripemd160PerWordGas     uint64 = 120    //ripemd160操作的每字价格
    77  IdentityBaseGas         uint64 = 15     //数据复制操作的基价
    78  IdentityPerWordGas      uint64 = 3      //数据复制操作的每个工作价格
    79  ModExpQuadCoeffDiv      uint64 = 20     //大整数模幂的二次粒子的除数
    80  Bn256AddGas             uint64 = 500    //椭圆曲线加法所需的气体
    81  Bn256ScalarMulGas       uint64 = 40000  //椭圆曲线标量乘法所需的气体
    82  Bn256PairingBaseGas     uint64 = 100000 //椭圆曲线配对检验的基价
    83  Bn256PairingPerPointGas uint64 = 80000  //椭圆曲线配对检查的每点价格
    84  )
    85  
    86  var (
    87  DifficultyBoundDivisor = big.NewInt(2048)   //难度的界限除数,用于更新计算。
    88  GenesisDifficulty      = big.NewInt(131072) //创世纪板块的难度。
    89  MinimumDifficulty      = big.NewInt(131072) //难度可能是最小的。
    90  DurationLimit          = big.NewInt(13)     //用于确定难度是否应增加的块时间持续时间的决策边界。
    91  )
    92