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

API support for libp2p protection #8015

Closed
5 of 14 tasks
willscott opened this issue Feb 1, 2022 · 0 comments
Closed
5 of 14 tasks

API support for libp2p protection #8015

willscott opened this issue Feb 1, 2022 · 0 comments
Labels
area/libp2p kind/feature Kind: Feature P2 P2: Should be resolved

Comments

@willscott
Copy link
Contributor

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 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 feature request 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

What is the motivation behind this feature request? Is your feature request related to a problem? Please describe.

The lotus markets subsystem has a libp2p host as it's primary interface to the outside world.
While this libp2p host may be connected with transient clients making storage and retrieval operations, it is not expected to have long-lived connections to a well-connected network mesh in the same way that the lotus daemon libp2p host will.

The mechanism by which network indexing signals to the network that new content is available on a provider for indexing is through the transmission of a gossipsub announcement.

That code currently operates in the markets process, and is not currently reliable.

To make it reliable, we would like the markets libp2p host to maintain a connection with the lotus daemon libp2p host. This can be accomplished by manually adding the markets host identity to the ProtectedPeers in the lotus config.
There is no API mechanism by which markets can ask for this protection of it's host automatically, forcing manual configuration by the operator.

Describe the solution you'd like

In the same way that one can block a peer using lotus net block add, it would be great to be able to protect a peer using lotus net pin add or similar.
The primary use imagined is not through the cli command, but rather using the json-rpc API path to the node such that markets and the index provider component can automatically set up their libp2p host to remain connected to the primary lotus host and use that connection for relaying gossipsub announcements.

Describe alternatives you've considered

  • proposing a json-rpc api for sending the new gossip-sub announcement by the lotus daemon. this seems to special case.
  • having the markets host form it's own gossip mesh. This seems like re-creation of a libp2p mesh an a huge lift to re-standup a parallel network that already exists.

Additional context

No response

@jennijuju jennijuju added area/libp2p team/ignite Issues and PRs being tracked by Team Ignite at Protocol Labs P2 P2: Should be resolved and removed need/triage team/ignite Issues and PRs being tracked by Team Ignite at Protocol Labs labels Feb 2, 2022
@magik6k magik6k closed this as completed in 7247f8e Mar 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/libp2p kind/feature Kind: Feature P2 P2: Should be resolved
Projects
None yet
Development

No branches or pull requests

2 participants