Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make batch message more clever #9041

Open
5 of 15 tasks
jennijuju opened this issue Jul 15, 2022 · 3 comments
Open
5 of 15 tasks

Make batch message more clever #9041

jennijuju opened this issue Jul 15, 2022 · 3 comments
Assignees
Labels
kind/enhancement Kind: Enhancement P3 P3: Might get resolved

Comments

@jennijuju
Copy link
Member

Checklist

  • This is not a new feature or an enhancement to the Filecoin protocol. If it is, please open an FIP issue.
  • This is not a new feature request. If it is, please file a feature request instead.
  • This is not brainstorming ideas. If you have an idea you'd like to discuss, please open a new discussion on the lotus forum and select the category as Ideas.
  • I have a specific, actionable, and well motivated improvement to propose.

Lotus component

  • lotus daemon - chain sync
  • lotus miner - mining and block production
  • lotus miner/worker - sealing
  • lotus miner - proving(WindowPoSt)
  • lotus miner/market - storage deal
  • lotus miner/market - retrieval deal
  • lotus miner/market - data transfer
  • lotus client
  • lotus JSON-RPC API
  • lotus message management (mpool)
  • Other

Improvement Suggestion

as stated in PRs like #8986

batch messages may hit block limit - lotus should be clever enough know when to chunk them and how.

@jennijuju jennijuju added P2 P2: Should be resolved kind/enhancement Kind: Enhancement labels Jul 15, 2022
@jennijuju jennijuju added this to the Network v17 milestone Sep 22, 2022
@jennijuju jennijuju reopened this Sep 22, 2022
@jennijuju jennijuju moved this to Incoming in Network nv17 Sep 22, 2022
@jennijuju jennijuju moved this from Incoming to Todo / In Scope in Network nv17 Sep 22, 2022
@jennijuju jennijuju moved this from Todo / In Scope to In Progress in Network nv17 Sep 22, 2022
@jennijuju
Copy link
Member Author

if message runs out of the gas (which the error returned is ErrOutOfGas), lotus should handle the message more intelligently, i.e: do less batching and split things into multiple messages. Message we wanna handle:

  • P1: SubmitWindowedPost
  • P3: Sector Compaction

current state of art & related previous work: https://github.com/filecoin-project/lotus/releases/tag/v1.16.1

@shrenujbansal
Copy link
Contributor

Splitting the batch for WindowedPost is considerably high effort for the below reasons:

  • Construction and submission of PoSTs happen in completely different pipelines so a simple error check on failure and repacking of batches is not feasible
  • An option is to use the FVM to simulate the PoST submissions and check if they satisfy the gas requirements. However, this requires a way to mock proofs while preserving gas usage which would need work on the FVM

In addition, filecoin-project/builtin-actors#677 in NV17 significantly reduces the underlying problem this is trying to solve with improving gas usage for expiring sectors

Instead, we will implement a simpler change to have a user config which makes partitions with recovery sectors, the only partition in a single PoST message. This should further reduce the occurrence of the problem and is a significantly simpler change

@arajasek
Copy link
Contributor

arajasek commented Oct 5, 2022

Descoping from nv17 milestone now that 9413 has landed -- it needs to be backported into release/v1.18.0 though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement Kind: Enhancement P3 P3: Might get resolved
Projects
No open projects
Status: Done
Development

No branches or pull requests

3 participants