github.com/yinchengtsinghua/golang-Eos-dpos-Ethereum@v0.0.0-20190121132951-92cc4225ed8e/params/protocol_params.go (about) 1 2 //此源码被清华学神尹成大魔王专业翻译分析并修改 3 //尹成QQ77025077 4 //尹成微信18510341407 5 //尹成所在QQ群721929980 6 //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 //版权所有2015 Go Ethereum作者 10 //此文件是Go以太坊库的一部分。 11 // 12 //Go-Ethereum库是免费软件:您可以重新分发它和/或修改 13 //根据GNU发布的较低通用公共许可证的条款 14 //自由软件基金会,或者许可证的第3版,或者 15 //(由您选择)任何更高版本。 16 // 17 //Go以太坊图书馆的发行目的是希望它会有用, 18 //但没有任何保证;甚至没有 19 //适销性或特定用途的适用性。见 20 //GNU较低的通用公共许可证,了解更多详细信息。 21 // 22 //你应该收到一份GNU较低级别的公共许可证副本 23 //以及Go以太坊图书馆。如果没有,请参见<http://www.gnu.org/licenses/>。 24 25 package params 26 27 import "math/big" 28 29 var ( 30 TargetGasLimit = GenesisGasLimit //人工目标 31 ) 32 33 const ( 34 GasLimitBoundDivisor uint64 = 1024 //气体极限的界限除数,用于更新计算。 35 MinGasLimit uint64 = 5000 //气体极限可能是最小值。 36 GenesisGasLimit uint64 = 4712388 //成因区块气限。 37 38 MaximumExtraDataSize uint64 = 32 //最大尺寸的额外数据可能在Genesis之后。 39 ExpByteGas uint64 = 10 //乘以exp指令的CEIL(log256(指数))。 40 SloadGas uint64 = 50 //乘以为任何*复制操作复制(舍入)并添加的32字节字数。 41 CallValueTransferGas uint64 = 9000 //当价值转移为非零时支付呼叫费用。 42 CallNewAccountGas uint64 = 25000 //当目标地址以前不存在时支付呼叫费用。 43 TxGas uint64 = 21000 //未创建合同的每笔交易。注:交易之间的通话数据不支付。 44 TxGasContractCreation uint64 = 53000 //创建合同的每个事务。注:交易之间的通话数据不支付。 45 TxDataZeroGas uint64 = 4 //附加到等于零的事务的每字节数据。注:交易之间的通话数据不支付。 46 QuadCoeffDiv uint64 = 512 //内存成本方程二次粒子的除数。 47 SstoreSetGas uint64 = 20000 //每个sload操作一次。 48 LogDataGas uint64 = 8 //日志*操作数据中的每个字节。 49 CallStipend uint64 = 2300 //呼叫开始时提供的游离气体。 50 51 Sha3Gas uint64 = 30 //每运行一次。 52 Sha3WordGas uint64 = 6 //sha3操作数据的每个字一次。 53 SstoreResetGas uint64 = 5000 //如果零度从零变为零,则每个SStore操作一次。 54 SstoreClearGas uint64 = 5000 //如果零度不变,则每个sstore操作一次。 55 SstoreRefundGas uint64 = 15000 //如果零度更改为零,则每个SStore操作一次。 56 JumpdestGas uint64 = 1 //如果零度变为零,则每次存储操作一次,返回气体。 57 EpochDuration uint64 = 30000 //工作证明阶段之间的持续时间。 58 CallGas uint64 = 40 //每次呼叫操作和消息呼叫事务一次。 59 CreateDataGas uint64 = 200 // 60 CallCreateDepth uint64 = 1024 //调用/创建堆栈的最大深度。 61 ExpGas uint64 = 10 //每exp指令一次 62 LogGas uint64 = 375 //每个日志*操作。 63 CopyGas uint64 = 3 // 64 StackLimit uint64 = 1024 //允许的VM堆栈的最大大小。 65 TierStepGas uint64 = 0 //每个操作一次,供选择。 66 LogTopicGas uint64 = 375 //乘以每个日志事务的日志*。例如,log0招致0*c_txlogtopicgas,log4招致4*c_txlogtopicgas。 67 CreateGas uint64 = 32000 //每次创建操作和合同创建交易一次。 68 Create2Gas uint64 = 32000 //每个create2操作一次 69 SuicideRefundGas uint64 = 24000 //自杀手术后退款。 70 MemoryGas uint64 = 3 //乘以(内存中引用的最高字节数+1)的地址。注意:引用发生在读、写以及返回和调用等指令中。 71 TxDataNonZeroGas uint64 = 68 //附加到不等于零的事务的每字节数据。注:交易之间的通话数据不支付。 72 73 MaxCodeSize = 24576 //合同允许的最大字节码 74 75 //预编译合同天然气价格 76 77 EcrecoverGas uint64 = 3000 //椭圆曲线发送器回收气价格 78 Sha256BaseGas uint64 = 60 //sha256操作的基价 79 Sha256PerWordGas uint64 = 12 //sha256操作的每字价格 80 Ripemd160BaseGas uint64 = 600 //ripemd160操作的基价 81 Ripemd160PerWordGas uint64 = 120 //ripemd160操作的每字价格 82 IdentityBaseGas uint64 = 15 //数据复制操作的基价 83 IdentityPerWordGas uint64 = 3 //数据复制操作的每个工作价格 84 ModExpQuadCoeffDiv uint64 = 20 //大整数模幂的二次粒子的除数 85 Bn256AddGas uint64 = 500 //椭圆曲线加法所需的气体 86 Bn256ScalarMulGas uint64 = 40000 //椭圆曲线标量乘法所需的气体 87 Bn256PairingBaseGas uint64 = 100000 //椭圆曲线配对检验的基价 88 Bn256PairingPerPointGas uint64 = 80000 //椭圆曲线配对检查的每点价格 89 ) 90 91 var ( 92 DifficultyBoundDivisor = big.NewInt(2048) //难度的界限除数,用于更新计算。 93 GenesisDifficulty = big.NewInt(131072) //创世纪板块的难度。 94 MinimumDifficulty = big.NewInt(131072) //难度可能是最小的。 95 DurationLimit = big.NewInt(13) //用于确定难度是否应增加的块时间持续时间的决策边界。 96 )