Comments (4)
Also, like we discussed during launch, we should have a "Proof of Bad Chain" that proofs that a validator extended an invalid chain. This proof would contain the block header from the block in question to the the view changed one. Then we can slash validators that try to extend invalid chains.
Edit: Didn't see there is already an issue about this: #32
from core-rs-albatross.
If we block the whole validator after a view change, wouldn't that just incentivize having a lot of validator keys? At least one per stake?
With slashing: Here this wouldn't be too much of a problem, since blocking a validator for this epoch, would function as a protection for them. They can't get slashed more than once per epoch. But they would still miss out on all the reward, so slash per block must be higher than the reward they would receive per slot.
Without slashing: The validator would not get any reward and is thus incentivized to have as many BLS keys as possible.
from core-rs-albatross.
Ignoring blocks from the same validator after an invalid block could result in stuck validators.
If a validator sends an invalid block to 1/3+1 of its peers and a valid one to the rest, the 1/3+1 would not accept the valid one anymore, but they also cannot view change.
from core-rs-albatross.
Additional argument against this is: Since blocks are gossiped anyway, invalid ones won't propagate far through the network.
from core-rs-albatross.
Related Issues (20)
- Removing peer contact because of old age seems bogus (contact are added right back in)
- Streamline gossipsub topic names
- TODO: check block.network somewhere!
- FIXME Check if the peer is still connected
- FIXME: Ban peer if it sends an invalid epoch_number instead of panicking.
- DOS vector Unbounded nested map.
- Add min number of tries sync queue
- For reward inherents, converting historic transaction to executed transaction produces invalid transaction hash
- Make sure the hash function is propper for its use case
- Duplicate functions between light blockchain and full blockchain
- Review mempool filters
- 1mb max message size is too small for macroblocks
- DHT records don't expire HOT 1
- DNS vector on network
- Panic: Inconsistent state after reverting block HOT 2
- Set `state_chunks_max_size`
- Figure out TODO in `IncrementalMerkleProof::compute_root`
- Handle failing creation of reactivation transaction
- Panic in validator-network: cache state must exist HOT 3
- Audit early returns in `Future::poll` functions in the codebase
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 core-rs-albatross.