Skip to content

docs: Add submit_participant_info details#1062

Merged
barakeinav1 merged 6 commits intomainfrom
barak/docs/submit_participant_into
Sep 11, 2025
Merged

docs: Add submit_participant_info details#1062
barakeinav1 merged 6 commits intomainfrom
barak/docs/submit_participant_into

Conversation

@barakeinav1
Copy link
Copy Markdown
Contributor

fixes #904

This command can’t be called unless the key was added to the account, otherwise the call will fail due to lack of funds associated with the key.
### Automatic Submission by the MPC Node

Once the MPC node is fully synced, it will check if the operator has added the node’s account keys to the operator's NEAR account. If so, the MPC node will send its attestation information to the contract using the `submit_participant_info` method.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure how accurate it is that the node will check if the account key is linked to the near account of the operator.

I believe the node will try to submit the transaction regardless, but of course this transaction will be rejected if the key generated inside the node is not associated with any near account.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

correct. we talked about this, but didn't create the issue.
here is now #1069

Copy link
Copy Markdown
Contributor Author

@barakeinav1 barakeinav1 Sep 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Once the MPC node is fully synced, it will check if the operator has added the node’s account keys to the operator's NEAR account. If so, the MPC node will send its attestation information to the contract using the `submit_participant_info` method.
Once the MPC node is fully synced, it will check if the operator has added the node’s account keys to the operator's NEAR account. If so, the MPC node will send its attestation information to the contract using the `submit_participant_info` method.
Will be implemented in https://github.com/near/mpc/issues/1069

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe just:

Suggested change
Once the MPC node is fully synced, it will check if the operator has added the node’s account keys to the operator's NEAR account. If so, the MPC node will send its attestation information to the contract using the `submit_participant_info` method.
Once the MPC node is fully synced and the operator has has added the node’s account keys to the operator's NEAR account, the MPC node will send its attestation information to the contract using the `submit_participant_info` method.

?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

section will be re-writed as we discussed


(TBD [#903](https://github.com/near/mpc/issues/903) – confirm exact cost)

### Manual Submission by the Operator
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we want the node operator to submit attestations manually instead of the node? To get the attestation it already requires that the node is started which will automatically submit the attestation to the contract.

Copy link
Copy Markdown
Contributor Author

@barakeinav1 barakeinav1 Sep 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a fallback mechanism. Only in case the nodes submission failed for some reason.
If #1069 is implemented we probably will never need it.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we can assume that the node's submission of the attestation can faik.

If the node is incapable of submitting transactions, then probably no other transaction will succeed when it tries to join the network. The node's indexer must work for a key resharing to work, as the nodes use the contract for coordinating the key resharing, which it submits messages to with transactions.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we instead add a retry mechanism such that the node retries submitting the attestation submission transaction indefinitely until it succeeds as proposed in #1069 (comment)

Can we then remove the need for manual submissions?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given what I wrote above, I wonder if we need any documentation on the implementation detail of TEE attestation submissions in this external guide.

Node operators should only be concerned with fetching the public key from the node and use NEAR CLI to give delegate it as a permissioned access key.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll update according to our discussion

Comment thread docs/running_an_mpc_node_in_tdx_external_guide.md Outdated
Copy link
Copy Markdown
Contributor

@kevindeforth kevindeforth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, just a few nits / suggestions. Thank you!

Comment thread docs/running_an_mpc_node_in_tdx_external_guide.md Outdated
Comment thread docs/running_an_mpc_node_in_tdx_external_guide.md Outdated
During the [transition phase](#transition-phase), this step is optional. If no attestation is submitted, the contract will use a mock attestation instead.

After the MPC node is fully synced, the node will check if the operator has added the node’s account keys to the operator's near contract. If so, the MPC node will send to the contract its attestation information via the submit\_participant\_info contract method.
The MPC node submits this information by default. If it does not, the operator can perform the action on its behalf by retrieving the required data from the node.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit

Suggested change
The MPC node submits this information by default. If it does not, the operator can perform the action on its behalf by retrieving the required data from the node.
The MPC node submits this information by default. But the operator can also perform the action on its behalf by retrieving the required data from the node.

As a reader, I am questioning why the doc tells me that the node does something, but ten also tells me that it might not do that thing. Just gives me the impression that we don't really know the behavior of our own node.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll remove this section altogether.
operator will not need to do anything manually.

This command can’t be called unless the key was added to the account, otherwise the call will fail due to lack of funds associated with the key.
### Automatic Submission by the MPC Node

Once the MPC node is fully synced, it will check if the operator has added the node’s account keys to the operator's NEAR account. If so, the MPC node will send its attestation information to the contract using the `submit_participant_info` method.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe just:

Suggested change
Once the MPC node is fully synced, it will check if the operator has added the node’s account keys to the operator's NEAR account. If so, the MPC node will send its attestation information to the contract using the `submit_participant_info` method.
Once the MPC node is fully synced and the operator has has added the node’s account keys to the operator's NEAR account, the MPC node will send its attestation information to the contract using the `submit_participant_info` method.

?

Copy link
Copy Markdown
Contributor

@DSharifi DSharifi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the changes! @barakeinav1

Comment thread docs/running_an_mpc_node_in_tdx_external_guide.md
Comment thread docs/running_an_mpc_node_in_tdx_external_guide.md
Comment thread docs/running_an_mpc_node_in_tdx_external_guide.md Outdated
Comment thread docs/running_an_mpc_node_in_tdx_external_guide.md Outdated
barakeinav1 and others added 2 commits September 11, 2025 16:10
Co-authored-by: Daniel Sharifi <40335219+DSharifi@users.noreply.github.com>
Co-authored-by: Daniel Sharifi <40335219+DSharifi@users.noreply.github.com>
@barakeinav1 barakeinav1 added this pull request to the merge queue Sep 11, 2025
Merged via the queue into main with commit 2d0a7f6 Sep 11, 2025
12 checks passed
@barakeinav1 barakeinav1 deleted the barak/docs/submit_participant_into branch September 11, 2025 14:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Docs-Missing] Add details or script for manually submitting participant info to the contract

3 participants