diff --git a/CHANGELOG.md b/CHANGELOG.md index a9dcd7bf9f..3b9d0b9cfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ - Fix issue where F3 wouldn't start participating again if Lotus restarted without restarting the Miner ([filecoin-project/lotus#12640](https://github.com/filecoin-project/lotus/pull/12640)). - Change the F3 HeadLookback parameter to 4 ([filecoin-project/lotus#12648](https://github.com/filecoin-project/lotus/pull/12648)). - Upgrade go-f3 to 0.7.1 to resolve Tipset not found errors when trying to establish instance start time ([filecoin-project/lotus#12651](https://github.com/filecoin-project/lotus/pull/12651)). +- Try harder in the F3 participation loop to participate using the same lotus node ([filecoin-project/lotus#12664](https://github.com/filecoin-project/lotus/pull/12664)). ## Deps diff --git a/chain/lf3/participation.go b/chain/lf3/participation.go index 280b44b945..0c36a2cc9c 100644 --- a/chain/lf3/participation.go +++ b/chain/lf3/participation.go @@ -14,6 +14,7 @@ import ( "github.com/filecoin-project/go-f3/manifest" "github.com/filecoin-project/lotus/api" + cliutil "github.com/filecoin-project/lotus/cli/util" "github.com/filecoin-project/lotus/node/modules/dtypes" ) @@ -89,6 +90,11 @@ func (p *Participant) run(ctx context.Context) (_err error) { } }() + // Try to make send all requests to the same node. If a request fails, we'll switch nodes. + // This interacts with the FullNodeProxy, which is how we support multi-node setups by + // default. + ctx = cliutil.OnSingleNode(ctx) + var ticket api.F3ParticipationTicket for ctx.Err() == nil { var err error