Estoy tratando de crear una especie de cadena privada en testrpc, así que uso testrpc -u 0 -d --db /path/to/db
para iniciar testrpc cada vez. El caso es que si reinicio testrpc (lo mato y lo vuelvo a iniciar) truffle migrate
reinicia el proceso de migración desde el principio (1_*) aunque testrpc usa una base de datos de cadena antigua. ¿Hay alguna forma de evitar esto o es un problema?
Cuando implementa un contrato en su cadena privada. Truffle almacena la identificación de red de su cadena para saber en qué cadena se implementó. (con la dirección en la cadena actual)
en build/contract/yourContract.json hay un campo
"networks": {
"1": { //live network
"events": {},
"links": {},
"address": "0xd77d2a7a728dc7c7c58ac1bcfdfb35934b3ed066"
},
"15": { // network id I manually set
"events": {},
"links": {},
"address": "0x1c10cbe2e883567eea5de1017f3d21b5b2600abb"
},
"1507630284099": { // timestamp generated by testrpc
"events": {},
"links": {},
"address": "0xcdc26c0a2e7f43f4ad571373fc68c1a58ed8a25a"
}
},
El problema que tiene es que no configura su ID de red con testrpc.
usar
-i
o--network-id
: Especifique la identificación de la red que TestRPC usará para identificarse (el valor predeterminado es la hora actual o la identificación de la red de la cadena de bloques bifurcada, si está configurada) doc
testrpc -u 0 -d --db /path/to/db --network-id=15
para establecer una identificación, de modo que cuando reinicie su testrpc mantendrá su base de datos y cuando vuelva a ejecutarlo truffle migrate
le diráNetwork up to date.