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

Improve mining loop to reduce coupling in operations between miner and daemon #9444

Open
4 of 15 tasks
shrenujbansal opened this issue Oct 6, 2022 · 0 comments
Open
4 of 15 tasks

Comments

@shrenujbansal
Copy link
Contributor

shrenujbansal commented Oct 6, 2022

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

The current mining loop causes a lot of coupling between the miner node and the chain node.
Specifically, it selection of messages, block creation and block submission are all different APIs from miner to daemon which are required to hit the same daemon node
Such coupling results in a lot of back and forth requests between processes and poses several challenges in scaling both miner and daemon nodes, not to mention that we got here due to historic reasons

We need to investigate how to properly decouple/consolidate these APIs

@shrenujbansal shrenujbansal added need/triage kind/enhancement Kind: Enhancement kind/refactor and removed kind/enhancement Kind: Enhancement labels Oct 6, 2022
@TippyFlitsUK TippyFlitsUK added need/team-input Hint: Needs Team Input area/api and removed need/triage labels Oct 21, 2022
@rjan90 rjan90 added this to the LM-Tech-Debt milestone Mar 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

3 participants