Change Notary request senders and try to deduplicate main transactions in auto-deploy procedure #2416
Labels
enhancement
Improving existing functionality
I4
No visible changes
neofs-ir
Inner Ring node application issues
S3
Minimally significant
U4
Nothing urgent
Overview
according to introduced changes, all committee members do all committee actions (such as updating the NNS contract) on their own and independently of each other. This approach was chosen to comply with the overall decentralization of the network (no one knows what state the other participant is in). In particular, this approach will be useful when committee nodes are run non-simultaneously.
if we consider (approximately) synchronous execution of a procedure on all nodes, N nodes will send N requests in total. Lets consider all transactions are semantically correct. Then only first "lucky" one will enter the blockchain while N-1 others will fail.
@AnnaShaleva mentioned pretty important disadvantage of this approach: all nodes will pay for their transaction regardless of success.
Possible solution
We can make Proxy contract to pay for such transactions. Since these will be similar main transactions, only one request will be proceeded by the Notary service.
Pros:
Cons:
P.S. we can share dynamic transaction's parts in NNS like is done for Notary role designation, but this seems pretty complex and fragile.
The text was updated successfully, but these errors were encountered: