From 444e75ef77ee5ae447ed69a2645bd0810bf41ab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Tue, 29 Nov 2022 11:25:41 +0100 Subject: [PATCH 1/4] feat: mpool/wdpost: Maximize feecap config --- api/types.go | 10 +++++++++- chain/messagepool/messagepool.go | 17 +++++++++++------ documentation/en/api-v0-methods.md | 9 ++++++--- documentation/en/api-v1-unstable-methods.md | 9 ++++++--- .../en/default-lotus-miner-config.toml | 4 ++++ node/config/doc_gen.go | 6 ++++++ node/config/types.go | 2 ++ storage/wdpost/wdpost_run.go | 2 +- storage/wdpost/wdpost_run_faults.go | 4 ++-- 9 files changed, 47 insertions(+), 16 deletions(-) diff --git a/api/types.go b/api/types.go index 96f9fa63d8a..fd7ce01875f 100644 --- a/api/types.go +++ b/api/types.go @@ -56,9 +56,17 @@ type PubsubScore struct { Score *pubsub.PeerScoreSnapshot } +// MessageSendSpec contains optional fields which modify message sending behavior type MessageSendSpec struct { - MaxFee abi.TokenAmount + // MaxFee specifies a cap on network fees related to this message + MaxFee abi.TokenAmount + + // MsgUuid specifies a unique message identifier which can be used on node (or node cluster) + // level to prevent double-sends of messages even when nonce generation is not handled by sender MsgUuid uuid.UUID + + // MaximizeFeeCap makes message FeeCap be based entirely on MaxFee + MaximizeFeeCap bool } type MpoolMessageWhole struct { diff --git a/chain/messagepool/messagepool.go b/chain/messagepool/messagepool.go index 6dc3f223988..14db88f9187 100644 --- a/chain/messagepool/messagepool.go +++ b/chain/messagepool/messagepool.go @@ -210,8 +210,10 @@ func ComputeRBF(curPrem abi.TokenAmount, replaceByFeeRatio types.Percent) abi.To func CapGasFee(mff dtypes.DefaultMaxFeeFunc, msg *types.Message, sendSpec *api.MessageSendSpec) { var maxFee abi.TokenAmount + var maximizeFeeCap bool if sendSpec != nil { maxFee = sendSpec.MaxFee + maximizeFeeCap = sendSpec.MaximizeFeeCap } if maxFee.Int == nil || maxFee.Equals(big.Zero()) { mf, err := mff() @@ -222,15 +224,18 @@ func CapGasFee(mff dtypes.DefaultMaxFeeFunc, msg *types.Message, sendSpec *api.M maxFee = mf } - gl := types.NewInt(uint64(msg.GasLimit)) - totalFee := types.BigMul(msg.GasFeeCap, gl) + gaslimit := types.NewInt(uint64(msg.GasLimit)) - if totalFee.LessThanEqual(maxFee) { - msg.GasPremium = big.Min(msg.GasFeeCap, msg.GasPremium) // cap premium at FeeCap - return + if !maximizeFeeCap { + totalFee := types.BigMul(msg.GasFeeCap, gaslimit) + + if totalFee.LessThanEqual(maxFee) { + msg.GasPremium = big.Min(msg.GasFeeCap, msg.GasPremium) // cap premium at FeeCap + return + } } - msg.GasFeeCap = big.Div(maxFee, gl) + msg.GasFeeCap = big.Div(maxFee, gaslimit) msg.GasPremium = big.Min(msg.GasFeeCap, msg.GasPremium) // cap premium at FeeCap } diff --git a/documentation/en/api-v0-methods.md b/documentation/en/api-v0-methods.md index 742f3de8e0c..9110c1c3bd2 100644 --- a/documentation/en/api-v0-methods.md +++ b/documentation/en/api-v0-methods.md @@ -2289,7 +2289,8 @@ Inputs: }, { "MaxFee": "0", - "MsgUuid": "07070707-0707-0707-0707-070707070707" + "MsgUuid": "07070707-0707-0707-0707-070707070707", + "MaximizeFeeCap": true }, [ { @@ -2766,7 +2767,8 @@ Inputs: ], { "MaxFee": "0", - "MsgUuid": "07070707-0707-0707-0707-070707070707" + "MsgUuid": "07070707-0707-0707-0707-070707070707", + "MaximizeFeeCap": true } ] ``` @@ -3025,7 +3027,8 @@ Inputs: }, { "MaxFee": "0", - "MsgUuid": "07070707-0707-0707-0707-070707070707" + "MsgUuid": "07070707-0707-0707-0707-070707070707", + "MaximizeFeeCap": true } ] ``` diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index e2c2493956d..1dae121018c 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -3357,7 +3357,8 @@ Inputs: }, { "MaxFee": "0", - "MsgUuid": "07070707-0707-0707-0707-070707070707" + "MsgUuid": "07070707-0707-0707-0707-070707070707", + "MaximizeFeeCap": true }, [ { @@ -3834,7 +3835,8 @@ Inputs: ], { "MaxFee": "0", - "MsgUuid": "07070707-0707-0707-0707-070707070707" + "MsgUuid": "07070707-0707-0707-0707-070707070707", + "MaximizeFeeCap": true } ] ``` @@ -4226,7 +4228,8 @@ Inputs: }, { "MaxFee": "0", - "MsgUuid": "07070707-0707-0707-0707-070707070707" + "MsgUuid": "07070707-0707-0707-0707-070707070707", + "MaximizeFeeCap": true } ] ``` diff --git a/documentation/en/default-lotus-miner-config.toml b/documentation/en/default-lotus-miner-config.toml index f887ee942a0..5f58bbb32e2 100644 --- a/documentation/en/default-lotus-miner-config.toml +++ b/documentation/en/default-lotus-miner-config.toml @@ -775,6 +775,10 @@ # env var: LOTUS_FEES_MAXMARKETBALANCEADDFEE #MaxMarketBalanceAddFee = "0.007 FIL" + # type: bool + # env var: LOTUS_FEES_MAXIMIZEWINDOWPOSTFEECAP + #MaximizeWindowPoStFeeCap = false + [Fees.MaxPreCommitBatchGasFee] # type: types.FIL # env var: LOTUS_FEES_MAXPRECOMMITBATCHGASFEE_BASE diff --git a/node/config/doc_gen.go b/node/config/doc_gen.go index 4ea235704de..26bcdd07372 100644 --- a/node/config/doc_gen.go +++ b/node/config/doc_gen.go @@ -721,6 +721,12 @@ over the worker address if this flag is set.`, Name: "MaxMarketBalanceAddFee", Type: "types.FIL", + Comment: ``, + }, + { + Name: "MaximizeWindowPoStFeeCap", + Type: "bool", + Comment: ``, }, }, diff --git a/node/config/types.go b/node/config/types.go index 95721a5798e..bec3a0bc9ff 100644 --- a/node/config/types.go +++ b/node/config/types.go @@ -490,6 +490,8 @@ type MinerFeeConfig struct { MaxWindowPoStGasFee types.FIL MaxPublishDealsFee types.FIL MaxMarketBalanceAddFee types.FIL + + MaximizeWindowPoStFeeCap bool } type MinerAddressConfig struct { diff --git a/storage/wdpost/wdpost_run.go b/storage/wdpost/wdpost_run.go index 0168bc706cf..8871d832dbf 100644 --- a/storage/wdpost/wdpost_run.go +++ b/storage/wdpost/wdpost_run.go @@ -650,7 +650,7 @@ func (s *WindowPoStScheduler) submitPoStMessage(ctx context.Context, proof *mine Params: enc, Value: types.NewInt(0), } - spec := &api.MessageSendSpec{MaxFee: abi.TokenAmount(s.feeCfg.MaxWindowPoStGasFee)} + spec := &api.MessageSendSpec{MaxFee: abi.TokenAmount(s.feeCfg.MaxWindowPoStGasFee), MaximizeFeeCap: s.feeCfg.MaximizeWindowPoStFeeCap} if err := s.prepareMessage(ctx, msg, spec); err != nil { return nil, err } diff --git a/storage/wdpost/wdpost_run_faults.go b/storage/wdpost/wdpost_run_faults.go index f36b30d35e4..582e61f9db2 100644 --- a/storage/wdpost/wdpost_run_faults.go +++ b/storage/wdpost/wdpost_run_faults.go @@ -168,11 +168,11 @@ func (s *WindowPoStScheduler) declareRecoveries(ctx context.Context, dlIdx uint6 Params: enc, Value: types.NewInt(0), } - spec := &api.MessageSendSpec{MaxFee: abi.TokenAmount(s.feeCfg.MaxWindowPoStGasFee)} + spec := &api.MessageSendSpec{MaxFee: abi.TokenAmount(s.feeCfg.MaxWindowPoStGasFee), MaximizeFeeCap: s.feeCfg.MaximizeWindowPoStFeeCap} if err := s.prepareMessage(ctx, msg, spec); err != nil { return nil, nil, err } - sm, err := s.api.MpoolPushMessage(ctx, msg, &api.MessageSendSpec{MaxFee: abi.TokenAmount(s.feeCfg.MaxWindowPoStGasFee)}) + sm, err := s.api.MpoolPushMessage(ctx, msg, spec) if err != nil { return nil, nil, xerrors.Errorf("pushing message to mpool: %w", err) } From 1927b26abfc51895847474bd92948092f3b2f203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Tue, 3 Oct 2023 11:34:57 +0200 Subject: [PATCH 2/4] fee config: Default MaximizeWindowPoStFeeCap to true --- build/openrpc/full.json.gz | Bin 34825 -> 34833 bytes build/openrpc/gateway.json.gz | Bin 11869 -> 11882 bytes .../en/default-lotus-miner-config.toml | 2 +- node/config/def.go | 2 ++ 4 files changed, 3 insertions(+), 1 deletion(-) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index d0d6cc1ceb44e59c7926a048ac5a222d3ce9fcdd..b4c139b97d1222fcce66afbb5f236e8d686a8447 100644 GIT binary patch delta 33981 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 z

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�m9WIum5 za>%@dh%kiC%^#FEcZ&tD_^(k_8M9c%^K#brh}glJ2BMx2otT1KI&qR zE%PHp;|W&FDvJ7wxkMB#LhkEoWwOBLOwddwTp_{8S6yPd)2k{mP4fcIAXY96n1Ub^ z-WJL#+L?-*vWteN$b~*@`G-rSn^1qwacW|9YPRY1>T8GVP${#>urbx;P~SNG)UkXe z1f5sA${UI(VJUP9m7p6)7UqpuNkQO1yVl~`wAedWmz^X&r3>^G)a(npePMbAIdtW# z`=(x;y9guTTshDl!=$_*v@o6$j|vX+eMq2}1#P-T@42+_=uLkX8g2PI zT-Lf_Hz@pEf4*0*-@@;((A|^KC*sa01sI6HL1E^&kNnnhfDlwNq zQ2FD99QLV#;80tvWOd9NM4QLVLo)I*HyJ?EXicUm}_|5Cqnfq0Rw3EW) z2)a0YG*`QcvSr2BClx{v=I3E z?N@bwU}v|gkSC*be|>i7KPe;hH^c&c&HOa;)6DPLGQYj5Dve(N!m1$vtZx~+OAh}f$nA0Jm54-%L(8)n zdmN-er`I{?w_E0s<5_nn&;d#n5;=e(^v(|^cvof&yoC5)2;m)+)JFUQ9H;#L{1xPv z>MZD(dTYF)eu^VBK6h^`i+QBLR}d%7kiZ~0u`z0=^_@(xrWa;v- zq^jc=IPB5WAw|)c15hj^DZi_v!YrU-O8jPiGo@&+V17*yluQ6*cRPM8fWj%M_`=GN ZcH8^rCm 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 Zx4myZK7N1ve*pjh|Nm0-^){xD0szZszMTL7 diff --git a/documentation/en/default-lotus-miner-config.toml b/documentation/en/default-lotus-miner-config.toml index 5f58bbb32e2..68bb76f1a9d 100644 --- a/documentation/en/default-lotus-miner-config.toml +++ b/documentation/en/default-lotus-miner-config.toml @@ -777,7 +777,7 @@ # type: bool # env var: LOTUS_FEES_MAXIMIZEWINDOWPOSTFEECAP - #MaximizeWindowPoStFeeCap = false + #MaximizeWindowPoStFeeCap = true [Fees.MaxPreCommitBatchGasFee] # type: types.FIL diff --git a/node/config/def.go b/node/config/def.go index 6df19665d72..d85b44f6948 100644 --- a/node/config/def.go +++ b/node/config/def.go @@ -253,6 +253,8 @@ func DefaultStorageMiner() *StorageMiner { MaxWindowPoStGasFee: types.MustParseFIL("5"), MaxPublishDealsFee: types.MustParseFIL("0.05"), MaxMarketBalanceAddFee: types.MustParseFIL("0.007"), + + MaximizeWindowPoStFeeCap: true, }, Addresses: MinerAddressConfig{ From 00aad34194ea266bb34682d931ffadc619ad58cb Mon Sep 17 00:00:00 2001 From: Aayush Date: Tue, 10 Oct 2023 11:20:26 -0400 Subject: [PATCH 3/4] messagepool: refactor CapGasFee logic to be cleaner --- chain/messagepool/messagepool.go | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/chain/messagepool/messagepool.go b/chain/messagepool/messagepool.go index 14db88f9187..f0037de0912 100644 --- a/chain/messagepool/messagepool.go +++ b/chain/messagepool/messagepool.go @@ -225,17 +225,11 @@ func CapGasFee(mff dtypes.DefaultMaxFeeFunc, msg *types.Message, sendSpec *api.M } gaslimit := types.NewInt(uint64(msg.GasLimit)) - - if !maximizeFeeCap { - totalFee := types.BigMul(msg.GasFeeCap, gaslimit) - - if totalFee.LessThanEqual(maxFee) { - msg.GasPremium = big.Min(msg.GasFeeCap, msg.GasPremium) // cap premium at FeeCap - return - } + totalFee := types.BigMul(msg.GasFeeCap, gaslimit) + if !maximizeFeeCap && totalFee.GreaterThan(maxFee) { + msg.GasFeeCap = big.Div(maxFee, gaslimit) } - msg.GasFeeCap = big.Div(maxFee, gaslimit) msg.GasPremium = big.Min(msg.GasFeeCap, msg.GasPremium) // cap premium at FeeCap } From 861134d9231ccc9e450cb2ceb4c084335131f796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Wed, 11 Oct 2023 16:49:00 +0200 Subject: [PATCH 4/4] mpool: Fix CapGasFee maxFee handling Co-authored-by: Aayush Rajasekaran --- chain/messagepool/messagepool.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chain/messagepool/messagepool.go b/chain/messagepool/messagepool.go index f0037de0912..d1496ceb920 100644 --- a/chain/messagepool/messagepool.go +++ b/chain/messagepool/messagepool.go @@ -226,7 +226,7 @@ func CapGasFee(mff dtypes.DefaultMaxFeeFunc, msg *types.Message, sendSpec *api.M gaslimit := types.NewInt(uint64(msg.GasLimit)) totalFee := types.BigMul(msg.GasFeeCap, gaslimit) - if !maximizeFeeCap && totalFee.GreaterThan(maxFee) { + if maximizeFeeCap || totalFee.GreaterThan(maxFee) { msg.GasFeeCap = big.Div(maxFee, gaslimit) }