Come funziona NOW?
3 risposta
- voti
-
- 2019-03-11
Sipresume chetuttii nodi Tezos siano sincronizzati,altrimentiil consenso con slot da 1minutononfunzionerebbe.Certo,unpo 'di ritardo vabene,mapiù di qualche secondopotrebbeimpedire a unfornaio di cuocere.
ORA èilmomentoin cuiilblocco,contenente latransazione,dovrebbeessere cotto.Quindi,ilpanettiere conosce l'ora dell'ultimoblocco,conosceil suo slot,quindipuò calcolare l'orain cui dovrebbe cuocereilblocco.Quindi utilizza queltempopereseguire letransazioni.
There is an assumption that all Tezos nodes are synchronized, otherwise the consensus with 1-minute slots would not work. Of course, some delay is ok, but more than a few seconds might prevent a baker from baking.
NOW is the time at which the block, containing the transaction, should be baked. So, the baker knows the last block time, he knows his slot, so he can compute the time at which he should bake the block. It then uses that time to execute the transactions.
-
- 2019-03-11
Ilpanettiere sceglieil valore di NOW.Sono consapevole di questi due vincoli:
Ilprotocolloimpone cheiltimestamp sia almenoiltimestampminimoin cuiilpanettiere avrebbe dovuto cuocere (un certo ritardo dopoiltimestamp delbloccoprecedente): baking.ml .
La shellignorerà anche unbloccoil cuitimestamp ètroppo lontanonelfuturo (più di 15 secondi) rispetto all'orologio di sistema: distributed_db.ml .
The baker chooses the value of NOW. I am aware of these two constraints:
The protocol enforces that the timestamp is at least the minimal timestamp at which the baker was supposed to bake (some delay after the previous block's timestamp): baking.ml.
The shell will also ignore a block whose timestamp is too far in the future (more than 15s) relative to the system clock: distributed_db.ml.
-
- 2019-03-11
Iltempo di sincronizzazione deinodi è solo unaparte dell'immagine:i panettieripossonoessere sempre offlineperi loromotivi,la retepuòesserebloccata,molte altretransazionipotrebbero competereperessere selezionate daifornai,ecc. quindi lepersone devonoesseremoltoprudentee concedituttoiltemponecessario affinché si verifichi unevento.
Direi chepochiminuti o addirittura orenon sono sufficienti oggi. Basta ungiorno?Tenderei apensarlomanonne sononemmeno certo.
Nodes time being synchronized is only part of the picture: bakers can always be offline for their own reasons, the network can be stalled, many other transactions could be competing to get selected by bakers, etc. so people need to be very cautious and give plenty of time for an event to occur.
I would say that a few minutes or even hours is not enough today. Is one day enough ? I would tend to think so but I'm not even certain.
-
Se sto sperimentando la costruzione di qualcosa chepossa raggiungeretraguardi duranteintervallipiùpiccoli.Unpo 'curioso di quantopossanoessere vicine questepietremiliari.If I'm experimenting with building something that can hit milestones during smaller ranges. Kind of curious how close those milestones can be.
- 0
- 2019-03-11
- Rob
-
Capito,ma ricordiamotutti Fomo3d https://medium.com/coinmonks/how-the-winner-got-fomo3d-prize-a-detailed-explanation-b30a69b7813f su Ethereumprima di richiederepietremiliaritroppo velocemente.Understood but let's all remember Fomo3d https://medium.com/coinmonks/how-the-winner-got-fomo3d-prize-a-detailed-explanation-b30a69b7813f on Ethereum before requiring milestones too fast.
- 2
- 2019-03-11
- FFF
Supponiamo che un contratto abbia una condizionebasata sulfatto che
NOW
sia scaduto.NOW
è UTCed è convalidato da ciascunnodoprima diessere aggiunto alla catena?Supponiamo chetu voglia assicurarti che unafunzione venga chiamata durante unperiodo di 1 ora,saràpossibile applicarla?Adesempio:
Questo dovrebbe verificare che siamaggiore di NOW - 15minutie meno di NOW + 45minuti,che sonoentrambi veriin modo chepossaeseguire latransazione.
Potrebbe ancheessereimportante capire come la rete ottieneil consenso su untempo diblocco attraverso la rete?