nspcc-dev / nspcc-dev/neofs-node

Add Notary Actor to the morph Client's context

Open
#2,314 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement I4 neofs-ir neofs-storage S2 U4
Dominant language
Go
Stars
38
Forks
51
Avg merge
1d 20h
Merged PRs (30d)
38

Description

Is your feature request related to a problem? Please describe.

Notary actor is used by both storage node and IR node to send notary requests (ref. #2310). However, new actor is created each time the request need to be sent, which is awful.

Describe the solution you'd like

We need to create a single Notary actor once per morph client initialisation like it is done for RPC actor. However, Notary actor always contains committee multisignature account (either dummy or real, depends on IR/SN choice). Thus, we should track committee update events and create new Notary actor each time committee is changing.

Describe alternatives you've considered

https://github.com/neo-project/neo/issues/2763 would be very helpful, if implemented. Another option is to add some callback to Neo contract as we now have CN inside the IR node. And finally, we can always track committee members by polling.

Don't forget to add labels!

  • component label: morph Client
  • issue type: enhancement

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the morph Client and the RPC actor pattern, then follow the notary request flow referenced in #2310. The change is complete when one Notary actor is created per client initialization and a replacement is created whenever the committee changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
blockchain, distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.