Pasos para implementar un contrato usando MetaMask y Truffle [cerrado]

soy novato, quiero implementar mi contrato en la red Ropsten con MetaMask & Truffle, por favor explícame los pasos para implementarlo.

Hola. Creo que su pregunta será marcada como demasiado amplia, me temo. Puede preguntar en algún lugar como Reddit, y luego, si tiene problemas específicos, pregúntelos aquí. www.reddit.com/r/ethereum

Respuestas (1)

Solución 1: Con tu propio nodo

Puede implementar fácilmente en la red ropsten si posee un nodo completo que se ejecuta en su máquina.

i. correr geth

$ geth --fast --cache=1048 --testnet --unlock "0xmyaddress" --rpc --rpcapi "eth,net,web3" --rpccorsdomain '*' --rpcaddr localhost --rpcport 8545

ii. En truffle.js, agregue la siguiente configuración para la red ropsten

module.exports = {
  networks: {
    localhost: {
      host: "localhost", 
      port: 8546,
      network_id: "*" 
    },  
    ropsten: {
      host: "localhost",
      port: 8545,
      network_id: "3"
    }
  }
};

iii. Implementar en la red ropsten

$ truffle migrate --network ropsten

Solución 2: Con un nodo público como Infura

i. Instale las bibliotecas necesarias

Navegue a la carpeta del proyecto y ejecute el siguiente comando:

npm init

npm install truffle-hdwallet-provider --save

ii. En truffle.js , agregue el siguiente código para desbloquear su cuenta Metamask y configure el nodo Infura Ropsten como punto de entrada al proporcionar la frase mnemotécnica (Metamask / Configuración / Revelar palabras semilla)

var HDWalletProvider = require("truffle-hdwallet-provider");

var infura_apikey = "XXXXXX";
var mnemonic = "twelve words you can find in metamask/settings/reveal seed words blabla";

module.exports = {
  networks: {
    development: {
      host: "localhost",
      port: 8545,
      network_id: "*" // Match any network id
    },
    ropsten: {
      provider: new HDWalletProvider(mnemonic, "https://ropsten.infura.io/"+infura_apikey),
      network_id: 3
    }
  }
};

iii. Implementar en la red ropsten

$ truffle migrate --network ropsten

EDITAR: Reemplace la solución por truffle-hdwallet-provider.Una solución mucho más simple queethereumjs-wallet bip39 web3-provider-engine web3

¿Necesito descargar todos los bloques?
Con la primera solución, necesita un nodo completo sincronizado local (todos los bloques). La segunda solución se basa en un tercero con un nodo completamente sincronizado, no necesita un nodo en absoluto
tengo un error cuando ejecuto la segunda solución Error: no se puede encontrar el módulo 'ethereumjs-wallet/hdkey'
Hola, lo siento, olvidé un punto en la segunda solución. Primero debe ejecutar este comando: npm install ethereumjs-wallet bip39 web3-provider-engine web3 --save(Edité la respuesta con los detalles)
El problema no se resolvió, Error: No se puede encontrar el módulo 'ethereumjs-wallet/hdkey'
Empujé mi código en github para darle un ejemplo: github.com/gjeanmart/stackexchange/tree/master/…
me faltan muchos paquetes como Error: no se puede encontrar el módulo 'babel-register'. ¿Puede agregar alguna información para contactarlo a través de su cuenta de perfil?
¿Alguna razón por la que esto no debería funcionar geth --light?
Para la segunda solución, obtengo AssertionError [ERR_ASSERTION]: The field nonce must not have more 32 bytes. Usando truffle-hdwallet-provider 0.0.5.
Estoy muy cerca, pero recibo el error: Error encontrado, rescate. Estado de la red desconocido. Revise las transacciones exitosas manualmente. fondos insuficientes para gas * precio + valor. Estoy tratando de enviar mil millones de tokens con el siguiente gas ropsten: { proveedor: nuevo HDWalletProvider(mnemotécnico, " ropsten.infura.io/MYAPIADRESS" ), network_id: 3, host: "127.0.0.1", puerto: 8545, gas : 2900000 ¿Cómo obtengo la dirección de la billetera para poder financiarla con ETH? ¿O los precios de la gasolina que he fijado son incorrectos?