¿Cuál es el uso de HDWalletProvider en la configuración de Truffle?

El código de muestra aquí para implementar en Ropsten se usó HDWalletProvidery mnemonicen la configuración, pero no estoy seguro de entender su propósito.

¿Esto solo le dice la cuenta que se convertirá en el propietario del contrato cuando implemente?

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

// 12-word mnemonic
var mnemonic = process.env.NMEMONIC;

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

Respuestas (3)

El proveedor Truffle HDWallet es una conexión de red conveniente y fácil de configurar a ethereum a través de infura.io (o cualquier otro proveedor compatible).

Por ejemplo, el proveedor de HDWallet agrega algunas funciones requeridas por Truffle que no están disponibles con infura, como el filtrado de eventos y la firma de transacciones.

¿HDWalletProvider es seguro para uso en producción? O solo pruebas?
@MH No tuve ningún problema cuando lo usé, pero no puedo garantizar que esté libre de errores. En mi experiencia, los desarrolladores de Truffle respondieron rápidamente cuando informé otros problemas con ganache/trufa.
Estaba más preguntando por la seguridad. ¿Puedo usar HDWalletProvider con una billetera y asegurarme de que nadie esté viendo mi mnemónico? Entiendo si no lo sabes. Quería saber de todos.
@MH Un mejor lugar para preguntar sobre eso debería ser reddit.com/r/ethdev o reddit.com/r/ethereum

Al implementar un contrato, eventualmente debe firmar una transacción con una cuenta (con una clave privada).

Este proceso de administración de cuentas lo maneja el proveedor, en este caso, @truffle/hdwallet-provider (tenga en cuenta que truffle-hdwallet-provider está obsoleto). Este podría ser otro proveedor como Metamask o un proveedor local de Web3.

El proveedor de HDWallet es utilizado por truffle cuando implementamos el contrato, sin embargo, los proveedores de metamask se utilizan cuando queremos interactuar con el contrato en el navegador.