Skip to content

Commit d972283

Browse files
diwufeiwenta0li
andauthored
maxfee can be configured (#4441)
Co-authored-by: 一页素书 <[email protected]>
1 parent 73b20c2 commit d972283

File tree

9 files changed

+30
-21
lines changed

9 files changed

+30
-21
lines changed

app/submodule/mpool/mpool_submodule.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ func NewMpoolSubmodule(cfg messagepoolConfig,
8686
if err != nil {
8787
return nil, err
8888
}
89-
mp, err := messagepool.New(mpp, cfg.Repo().MetaDatastore(), cfg.Repo().Config().NetworkParams.ForkUpgradeParam, network.NetworkName, syncer.Consensus, chain.ChainReader, j)
89+
mp, err := messagepool.New(mpp, cfg.Repo().MetaDatastore(), cfg.Repo().Config().NetworkParams.ForkUpgradeParam, cfg.Repo().Config().Mpool,
90+
network.NetworkName, syncer.Consensus, chain.ChainReader, j)
9091
if err != nil {
9192
return nil, xerrors.Errorf("constructing mpool: %s", err)
9293
}

cmd/mpool.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
stdbig "math/big"
1717

1818
"github.com/filecoin-project/venus/app/node"
19+
"github.com/filecoin-project/venus/pkg/config"
1920
"github.com/filecoin-project/venus/pkg/constants"
2021
"github.com/filecoin-project/venus/pkg/messagepool"
2122
"github.com/filecoin-project/venus/pkg/types"
@@ -326,7 +327,7 @@ var mpoolReplaceCmd = &cmds.Command{
326327
msg.GasFeeCap = big.Max(retm.GasFeeCap, msg.GasPremium)
327328

328329
mff := func() (abi.TokenAmount, error) {
329-
return abi.TokenAmount{Int: types.DefaultDefaultMaxFee.Int}, nil
330+
return abi.TokenAmount{Int: config.DefaultDefaultMaxFee.Int}, nil
330331
}
331332

332333
messagepool.CapGasFee(mff, &msg, mss)

go.mod

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ require (
4141
github.com/filecoin-project/specs-actors/v4 v4.0.0
4242
github.com/filecoin-project/specs-storage v0.1.1-0.20201105051918-5188d9774506
4343
github.com/filecoin-project/test-vectors/schema v0.0.5
44-
github.com/filecoin-project/venus-auth v1.0.2-0.20210507023017-76ce8b64e6db // indirect
45-
github.com/filecoin-project/venus-wallet v1.0.1-0.20210507023531-5dfabaf5606d // indirect
44+
github.com/filecoin-project/venus-auth v1.0.2-0.20210507023017-76ce8b64e6db
45+
github.com/filecoin-project/venus-wallet v1.0.1-0.20210507023531-5dfabaf5606d
4646
github.com/gbrlsnchs/jwt/v3 v3.0.0
4747
github.com/go-errors/errors v1.0.1
4848
github.com/go-kit/kit v0.10.0

pkg/config/config.go

+11-3
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,16 @@ import (
1515
"github.com/pkg/errors"
1616

1717
"github.com/filecoin-project/venus/pkg/constants"
18+
"github.com/filecoin-project/venus/pkg/types"
1819
)
1920

2021
const (
2122
scryptN = 1 << 15
2223
scryptP = 1
2324
)
2425

26+
var DefaultDefaultMaxFee = types.MustParseFIL("0.007")
27+
2528
// Config is an in memory representation of the filecoin configuration file
2629
type Config struct {
2730
API *APIConfig `json:"api"`
@@ -208,16 +211,21 @@ func newDefaultTraceConfig() *TraceConfig {
208211

209212
// MessagePoolConfig holds all configuration options related to nodes message pool (mpool).
210213
type MessagePoolConfig struct {
211-
// MaxPoolSize is the maximum number of pending messages will will allow in the message pool at any time
212-
MaxPoolSize uint `json:"maxPoolSize"`
213214
// MaxNonceGap is the maximum nonce of a message past the last received on chain
214215
MaxNonceGap uint64 `json:"maxNonceGap"`
216+
// MaxFee
217+
MaxFee types.FIL `json:"maxFee"`
218+
}
219+
220+
var DefaultMessagePoolParam = &MessagePoolConfig{
221+
MaxNonceGap: 100,
222+
MaxFee: DefaultDefaultMaxFee,
215223
}
216224

217225
func newDefaultMessagePoolConfig() *MessagePoolConfig {
218226
return &MessagePoolConfig{
219-
MaxPoolSize: 1000000,
220227
MaxNonceGap: 100,
228+
MaxFee: DefaultDefaultMaxFee,
221229
}
222230
}
223231

pkg/messagepool/messagepool.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -195,9 +195,9 @@ type MessagePool struct {
195195
GetMaxFee DefaultMaxFeeFunc
196196
}
197197

198-
func newDefaultMaxFeeFunc() DefaultMaxFeeFunc {
198+
func newDefaultMaxFeeFunc(maxFee types.FIL) DefaultMaxFeeFunc {
199199
return func() (out abi.TokenAmount, err error) {
200-
out = abi.TokenAmount{Int: types.DefaultDefaultMaxFee.Int}
200+
out = abi.TokenAmount{Int: maxFee.Int}
201201
return
202202
}
203203
}
@@ -384,6 +384,7 @@ func (ms *msgSet) getRequiredFunds(nonce uint64) tbig.Int {
384384
func New(api Provider,
385385
ds repo.Datastore,
386386
forkParams *config.ForkUpgradeConfig,
387+
mpoolCfg *config.MessagePoolConfig,
387388
netName string,
388389
gp gasPredictor,
389390
ap actorProvider,
@@ -429,7 +430,7 @@ func New(api Provider,
429430
journal: j,
430431
forkParams: forkParams,
431432
gasPriceSchedule: gas.NewPricesSchedule(forkParams),
432-
GetMaxFee: newDefaultMaxFeeFunc(),
433+
GetMaxFee: newDefaultMaxFeeFunc(mpoolCfg.MaxFee),
433434
}
434435

435436
// enable initial prunes

pkg/messagepool/messagepool_test.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ func mustAdd(t *testing.T, mp *MessagePool, msg *types.SignedMessage) {
321321
func newWalletAndMpool(t *testing.T, tma *testMpoolAPI) (*wallet.Wallet, *MessagePool) {
322322
ds := datastore.NewMapDatastore()
323323

324-
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, "mptest", nil, nil, nil)
324+
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, config.DefaultMessagePoolParam, "mptest", nil, nil, nil)
325325
if err != nil {
326326
t.Fatal(err)
327327
}
@@ -518,7 +518,7 @@ func TestLoadLocal(t *testing.T) {
518518
tma := newTestMpoolAPI()
519519
ds := datastore.NewMapDatastore()
520520

521-
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, "mptest", nil, nil, nil)
521+
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, config.DefaultMessagePoolParam, "mptest", nil, nil, nil)
522522
if err != nil {
523523
t.Fatal(err)
524524
}
@@ -554,7 +554,7 @@ func TestLoadLocal(t *testing.T) {
554554
t.Fatal(err)
555555
}
556556

557-
mp, err = New(tma, ds, config.DefaultForkUpgradeParam, "mptest", nil, nil, nil)
557+
mp, err = New(tma, ds, config.DefaultForkUpgradeParam, config.DefaultMessagePoolParam, "mptest", nil, nil, nil)
558558
if err != nil {
559559
t.Fatal(err)
560560
}
@@ -585,7 +585,7 @@ func TestClearAll(t *testing.T) {
585585
tma := newTestMpoolAPI()
586586
ds := datastore.NewMapDatastore()
587587

588-
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, "mptest", nil, nil, nil)
588+
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, config.DefaultMessagePoolParam, "mptest", nil, nil, nil)
589589
if err != nil {
590590
t.Fatal(err)
591591
}
@@ -633,7 +633,7 @@ func TestClearNonLocal(t *testing.T) {
633633
tma := newTestMpoolAPI()
634634
ds := datastore.NewMapDatastore()
635635

636-
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, "mptest", nil, nil, nil)
636+
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, config.DefaultMessagePoolParam, "mptest", nil, nil, nil)
637637
if err != nil {
638638
t.Fatal(err)
639639
}
@@ -688,7 +688,7 @@ func TestUpdates(t *testing.T) {
688688
tma := newTestMpoolAPI()
689689
ds := datastore.NewMapDatastore()
690690

691-
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, "mptest", nil, nil, nil)
691+
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, config.DefaultMessagePoolParam, "mptest", nil, nil, nil)
692692
if err != nil {
693693
t.Fatal(err)
694694
}

pkg/messagepool/repub_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func TestRepubMessages(t *testing.T) {
2525
tma := newTestMpoolAPI()
2626
ds := datastore.NewMapDatastore()
2727

28-
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, "mptest", nil, nil, nil)
28+
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, config.DefaultMessagePoolParam, "mptest", nil, nil, nil)
2929
if err != nil {
3030
t.Fatal(err)
3131
}

pkg/messagepool/selection_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ func makeTestMessage(w *wallet.Wallet, from, to address.Address, nonce uint64, g
6666
func makeTestMpool() (*MessagePool, *testMpoolAPI) {
6767
tma := newTestMpoolAPI()
6868
ds := datastore.NewMapDatastore()
69-
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, "test", nil, nil, nil)
69+
mp, err := New(tma, ds, config.DefaultForkUpgradeParam, config.DefaultMessagePoolParam, "test", nil, nil, nil)
7070
if err != nil {
7171
panic(err)
7272
}

pkg/types/message.go

+1-3
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import (
44
"bytes"
55
"encoding/json"
66
"fmt"
7-
specsbig "github.com/filecoin-project/go-state-types/big"
87
"math/big"
98

109
"github.com/filecoin-project/go-address"
1110
"github.com/filecoin-project/go-state-types/abi"
11+
specsbig "github.com/filecoin-project/go-state-types/big"
1212
cbor2 "github.com/filecoin-project/go-state-types/cbor"
1313
"github.com/filecoin-project/go-state-types/exitcode"
1414
"github.com/filecoin-project/go-state-types/network"
@@ -23,8 +23,6 @@ import (
2323
"github.com/filecoin-project/venus/pkg/crypto"
2424
)
2525

26-
var DefaultDefaultMaxFee = MustParseFIL("1") // 0.007
27-
2826
type MessageSendSpec struct {
2927
MaxFee abi.TokenAmount
3028
}

0 commit comments

Comments
 (0)