stacks-network / stacks-core

The Stacks blockchain implementation
https://docs.stacks.co
GNU General Public License v3.0
3.01k stars 667 forks source link

E2E Testing Nakamoto Checklist #5133

Open ASuciuX opened 4 weeks ago

ASuciuX commented 4 weeks ago
Questions - Does follower validate state/blocks? YES - When do tenure extends happen? Do they have coinbase (or only fee promise)? - Current: Only when sorition is missed (burn block with no stacks block commit op) - Future: Long period / or miner failed to propose - What are chunks? (What do they contain? Does miner remember what they proposed (for a chunk to be created)?) - If the majority of miners are acting maliciously while a minority follow the correct procedures, once the mining winner is selected, will the correct block still be validated on-chain even if the winner belongs to the minority? Or could the malicious majority manipulate the data and falsely claim they’ve won the block? - If Nakamoto forks (malicious majority)? Which forks is followed by others? - Are miners ever penalized? - What happens if miner only submits nakamoto coinbase (and no next fast blocks)? - Are signers ever penalized? - Field in block header, which signers are behaved. If signers’ bit is zero, stacking slots will be burned instead. (punish slow signers?) - Can you stack using bitcoin transactions? This should be possible, otherwise total failure if no Stacks blocks in prepare phase or the current 30%+1 signer is malicious and doesn’t sign any transactions - Is this the typical process? Yes. The miner writes data to the stackerdb, signers read from it, then communicate with their nodes (mostly followers) to validate the data, and finally send back chunks through the stackerdb to the miner. - Does a miner node always need a signer? No - When the bitcoin transaction for miners have to be sent in the flow btc. | 1000 stx. 300. | 301 302 miner (that is not the winner of this tenure) submits after seeing 301 for 1001 miner that is the winner of this tenure can submit it before 301 is anchored as it knows it (will not influence the overall flow with anything) 301 tenure change tx so i commit to that in my bitcoin transaction

Chaos Testing

Anything that can go down will go down

Forks

Stories

Miners

Less important? They’ll figure out how to restart. Someone else will take over.

Stories

Signers

Stories

Tenures

Stories