Comments (8)
Where signature by Validators means signature of BlockHeader
Yes
Does frozen UTXO check the UTXO of the enrollment K (UTXO key) ?
That's a different issue
from agora.
This issue #205 only deals with the validation part of a block.
So if we have a block header which is signed, in order to validate the block then the signature must be checked. We need to make sure:
- The signature is actually valid.
- The key it was signed with belongs to a node that has frozen 40,000 Boa. If the node hasn't frozen 40,000 Boa then it has no right to sign the block, therefore the block is invalid.
- The height of the block that contains the signature of a node, it must be at least N blocks after the block height where the node staked 40,000 Boa. The "N" is defined in the Yellow paper. So, a node first freezes UTXO, then after N blocks it can start signing blocks.
- If the UTXOs for that node are actually melting, the signature is considered invalid.
I suggest implementing this issue #205 in several steps, depending on what kind of approach you want to take:
- At first, assume the block header can only contain one validator signature. This makes it easy to implement the checks for the frozen UTXO. You could just store a
PublicKey validator; Signature signature;
in the block header, and changeisInvalidReason
for blocks so that it tests the conditions that I listed in the previous paragraph (see also the Definition of Done). - Then, if that works, try to extend your function so it works with multiple signatures. For example, you could write
struct ValidatorSigs { PublicKey key; Signature sig; }
and add that to the block headerstruct BlockHeader { ValidatorSigs[] validator_sigs; }
. For example, all the signatures in the block header must be valid. As soon as one is invalid, the block is rejected.
Then later, once #365 and #406 are implemented, we can adapt your solution and change the block header so it works with the Schnorr signature scheme and with the Enrollment process.
If that doesn't help, I can only suggest waiting for input from @Geod24.
from agora.
Depends on #204
from agora.
Unblocked
from agora.
I need to make sure that signatures by validators are done using a frozen UTXO in order to make sure the validator has stake in the system.
Where signature by Validators means signature of BlockHeader or enrollment.S
?
Does frozen UTXO check the UTXO of the enrollment K (UTXO key) ?
from agora.
When a block is received or signed
Validators signed BitField...
The frozen UTXO shall be found and verified in utxo_db?
from agora.
A melting UTXO cannot sign blocks
a melting UTXO cannot sign blocks" The requirements should be deleted.
Frozen UTXO can sign the block as a validator up to the "freezing period / 2" block during the transaction occurring and melting period.
from agora.
ping @Geod24
from agora.
Related Issues (20)
- Signature catchup is very inefficient
- Implement the endpoints for Web Admin Interface HOT 2
- Extend TestNet to other hosting providers
- Deployment of CoinNet in multiple hosting providers in multiple regions
- Engine: Add SHA256 support
- BanManager timestamp shows wrong time while running Tests HOT 1
- CoinNet initial reset and release v1.0.0
- Review and modify default parameters in config file for production
- Ensure validator scalability
- Ensure CoinNet behaves correctly in each adversarial scenario
- Prepare for exchange transition
- Root log is not propagated to console HOT 4
- Validator shouldn't be able to sign when it is slashed at the current height HOT 3
- Network unit tests should advance network time half way through timeout
- Logging with origin as function name not module
- Assertion sometimes thrown in unit test for `popFront on empty map`
- Agora client doesn't support RPC interface
- Configure Faucet in TestNet to generate more transactions HOT 2
- Faucet no longer works in single Agora test node setup HOT 1
- Ledger reports number of active validators incorrectly HOT 3
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 agora.