En un archivo de especificaciones de cadena de paridad, ¿cómo puedo incluir EIP100?
No lo veo en el archivo predeterminado aquí para copiar: https://github.com/paritytech/parity/blob/master/ethcore/res/ethereum/foundation.json
Creo que simplemente agrego:
"eip100Transición":
¿O es eip100dTransition? con una "d"?
¿Alguien puede confirmar?
Parece ser eip100bTransition in Parity. Vea aquí dónde se implementa el cálculo en el código.
parity/ethcore/src/ethereum/ethash.rs línea 369:
let (increment_divisor, threshold) = if header.number() < self.ethash_params.eip100b_transition {
(self.ethash_params.difficulty_increment_divisor, 1)
} else if parent_has_uncles {
(self.ethash_params.metropolis_difficulty_increment_divisor, 2)
} else {
(self.ethash_params.metropolis_difficulty_increment_divisor, 1)
};
Para redes públicas, las eipxxx
declaraciones son de la forma (por ejemplo):
"eip140Transition": 4370000,
"eip211Transition": 4370000,
"eip214Transition": 4370000,
"eip658Transition": 4370000,
Es decir, declara la transición y el bloque en el que se produjo la transición. (El bloque 4370000 equivale a la bifurcación dura de Byzantium).
En el código, puede usar eipxxx
condicionales para ejecutar rutas de código que cambiarán después de las transiciones (comparando con el número de bloque actual).
Volver a eip100Transition
. En primer lugar, no me queda claro si el código para EIP-100 se ha completado/comprometido. eip100Transition
no se usa en ninguna parte del código base de Parity o Geth.
En segundo lugar, en una red privada, que no tendrá las bifurcaciones duras que tenía la red pública, no es necesario incluir las transiciones EIP. Simplemente puede definir el código para que se comporte como quiere que se comporte. Además, creo que configurar las eipxxx
entradas 0
hará que su cadena funcione como si la transición ya hubiera ocurrido. (es decir, la transición "ocurrió" en el bloque 0, por lo que todos los bloques posteriores se consideran después de la transición).
piedra.212