Comments (3)
To clarify things a bit, this issue is mostly related to the currently implemented update procedure.
N nodes will send N requests in total
It's not exactly true. In simultaneous setup scenario current code works in the following way: N nodes will send N*N notary requests in total with N unique main transactions. This happens because we use single signature account (alphabet's one) as the first signer to construct main transaction.
I've firstly suggested to use Proxy contract instead of a single alphabet account as the first signer to reduce the number of unique main transactions (up to one unique main transaction per contract update), but as Leo mentioned, we have a problem with the rest hashable fields synchronisation between the nodes.
From the other side, if we choose some single node to start the update procedure and send initial notary request with update
call (the rest of the nodes will track the incoming notary requests and sign them), then the following problem occurs: we don't know how to definitely and reliably choose this single node who will send the first request so that we're 100% sure that exactly one node will init the update process for the subsequent contract.
from neofs-node.
Another problem that occurs within the scope of this issue is that the usage of Proxy contract as the first signer isn't possible for deployment procedure, because there's no Proxy contract at this stage.
from neofs-node.
how to make main transactions exactly the same (vub/nonce)?
VUB = last_epoch_update_block + something (likely it'll fit into MVUBI)
nonce = epoch
from neofs-node.
Related Issues (20)
- Endless deletion of the same object
- Dropping object via control service leaves traces in the metabase
- GC stops on metabase errors
- Run neofs-testcases for linux-arm64 HOT 5
- Contract deployment with custom zone failed in tests
- Fetching strategy if object is not found locally
- Policer error for REP 1 CBF 1 container HOT 1
- Replicator can't fetch local object HOT 1
- Evaluate tree service performance HOT 7
- Handle server-side crypto failures gracefully
- Range test failure for complex objects HOT 2
- Deleted object is displayed in the list of container object HOT 2
- List objects via control service
- FS chain deployment stucks on error in forming a role assignment transaction
- GC has not collected an expired object HOT 2
- Evacuate tests fail HOT 2
- remove neogo_version metric HOT 2
- Ersatz-chain for object headers HOT 6
- Improve GC routine HOT 1
- Do not skip shards that are busy
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from neofs-node.