¿Cómo puedo usar truffle para implementar mi contrato en una red de prueba local (no en testrpc)?

Seguí los pasos del siguiente enlace para crear una red de prueba de Ethereum local, pero ahora quiero implementar un contrato en "MyTestNetNode":

https://medium.com/@WWWillems/how-to-set-up-a-private-ethereum-testnet-blockchain-using-geth-and-homebrew-1106a27e8e1e

testrpc no era una buena opción porque test rpc no guarda el estado cuando detiene el demonio. Necesito crear una red de prueba con geth que ya he hecho y me gustaría implementar un contrato usando Truffle sin obtener errores. ¿Alguien puede ayudarme?

Puede configurar ganache-cli/testrpc para crear una base de datos que persista entre sesiones ethereum.stackexchange.com/questions/26759/… .

Respuestas (2)

Todo lo que necesita es cambiar el archivo de configuración de truffle de acuerdo con su configuración local:

module.exports = {
  networks: {
    development: {
      host: 'localhost',
      port: 8545, //the port of your local testnet
      network_id: '*' //any network ID
    }
  }
}

además de eso, también puede usar ganache-cli como cliente testrpc y agregar el parámetro --dbpara guardar la base de datos. De esta manera, puede volver a ejecutar el nodo de prueba utilizando los datos guardados en lugar de comenzar desde uno nuevo en cualquier momento.

En mi experiencia, es más fácil usar redes de prueba, como Rinkeby o Ropsten. Su estado se guardaría para su uso posterior. Solo necesita tener ether para esas redes. Simplemente busque faucet para Rinkeby, por ejemplo, y encontrará un sitio web que le brinda un éter falso para usar en esta red.

Luego configure la configuración de trufa de esta manera:

rinkeby: {<
    provider: () => new HDWalletProvider(mnemonic, `https://rinkeby.infura.io/v3/${INFURA_KEY}`),
    network_id: 4,       // Rinkeby's id
    gas: 5500000,        // Rinkeby has a lower block limit than mainnet
    confirmations: 1,    // # of confs to wait between deployments. (default: 0)<
    timeoutBlocks: 200,  // # of blocks before a deployment times out  (minimum/default: 50)
    skipDryRun: true     // Skip dry run before migrations? (default: false for public nets )
  }

y luego corretruffle deploy --network rinkeby

Nota: aquí también puede definir su propia red privada. Simplemente defina un nombre para su red y asigne la ip, el puerto y otras cosas. Aquí uso Infra para acceder a Rinkeby, que es, nuevamente, más fácil para fines de desarrollo.