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

worker/common/p2p: Use gossipsub to publish commitments #3010

Closed
kostko opened this issue Jun 14, 2020 · 0 comments · Fixed by #3025
Closed

worker/common/p2p: Use gossipsub to publish commitments #3010

kostko opened this issue Jun 14, 2020 · 0 comments · Fixed by #3025
Assignees
Labels
c:common Category: common libraries c:runtime/compute Category: runtime compute worker

Comments

@kostko
Copy link
Member

kostko commented Jun 14, 2020

In order to make the system more robust to commitment withholding attacks (see #1804), we should change our libp2p layer to use gossipsub for the publish/subscribe operation. Instead of submitting commitments to specific nodes, they should be broadcast to specific topics.

The topics should likely be something as follows:

  • Prefixed by runtime identifier so each runtime has its own set of topics.
  • Currently two kinds of topics:
    • TxnSchedulerBatchDispatch, published by txn scheduler nodes, subscribed to by executor nodes; and
    • ExecutorCommit, published by executor nodes, subscribed to by executor nodes and merge nodes.

Peer authorization will need to be changed slightly to allow any committee peer to participate in gossipsub. Topic validators should be configured for the topics to discard any invalid messages (verification should include checking signatures against current committee membership).

@kostko kostko added c:runtime/compute Category: runtime compute worker c:common Category: common libraries c:worker-merge labels Jun 14, 2020
@Yawning Yawning self-assigned this Jun 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c:common Category: common libraries c:runtime/compute Category: runtime compute worker
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants