¿Cómo rastrea CryptoKitties el tiempo?

estoy mirando KittyBreeding.soly veo

 /// @dev Set the cooldownEndTime for the given Kitty, based on its current cooldownIndex.
    ///  Also increments the cooldownIndex (unless it has hit the cap).
    /// @param _kitten A reference to the Kitty in storage which needs its timer started.
    function _triggerCooldown(Kitty storage _kitten) internal {
        // Compute the end of the cooldown time (based on current cooldownIndex)
        _kitten.cooldownEndTime = uint64(now + cooldowns[_kitten.cooldownIndex]);

pero no veo dónde se define "ahora", excepto en sukitty-core.test.js

¿Cómo rastrea el tiempo este DAPP, que permite que el sitio web muestre los temporizadores?

¿De dónde sacaste el archivo .sol?

Respuestas (2)

nowes una variable especial de Solidity , que equivale al tiempo actual desde la época, en segundos .

De la documentación (vinculada arriba):

now (uint): marca de tiempo del bloque actual (alias para block.timestamp)

Vale la pena señalar que los mineros pueden manipular now, por lo que no se debe confiar en ellos para nada sensible, como sembrar generadores de números pseudoaleatorios.

Entonces, ¿el seguimiento delta de ID de bloque es una mejor manera de realizar un seguimiento de las unidades de tiempo?
De acuerdo con la revisión de Ismael, pero los moderadores deben tener cuidado de no afectar la reputación, por lo que incluso convertir esto en un comentario podría interferir demasiado. Dejará como está.
@quantumpotato Es más seguro, ya que es más difícil jugar. Por cierto, aquí hay un escenario del mundo real donde se implementó un generador de números pseudoaleatorios en cadena. Habilitó una trampilla determinista.