¿Cuánto cuesta cargar un contrato inteligente?

Estoy usando una red de prueba local de Ethereum y me parece que el precio de cargar un contrato inteligente es demasiado alto.

Este es el código del contrato inteligente:

contract Transfer {
    address owner;

    function Transfer () {
        owner = msg.sender;
    }

    modifier isOwner ()
    {
        if (owner == msg.sender) {
            _;
        }
        else
        {
            revert();
        }
    }

    function sendEther (address dst) isOwner payable {
        if(msg.value<=0) revert();
        dst.transfer(msg.value);
    }

    function getBalance () constant isOwner returns (uint) {
        return msg.sender.balance;
    }

    function () payable  
    {
        if(msg.value<=0) revert();
        owner.transfer(msg.value);
    }

}

Después de implementarlo con trufa, he visto que el saldo de la cuenta desde la que se implementó ese contrato se ha reducido en 0.045 Ether, lo que sería algo alrededor de $ 15 al tipo de cambio de hoy.

No sé si esto es normal, pero a mí me parece demasiado caro.

El precio de la gasolina en mi red de prueba es 20000000000 y el precio actual de la gasolina (visto en https://ethstats.net/ ) es aún más alto (35500000000). Entonces, si no me equivoco, implementarlo en la red principal sería aún más costoso.

Entonces, en resumen, mi pregunta es: ¿Este precio es normal o me estoy perdiendo algo?

EDITAR: el navegador Solidity dice que para este mismo contrato, "Creación: 20435 + 126600", lo que se traduce en menos de $ 1... ¡¿La trufa me está robando Ether de alguna manera?!

¡Muchas gracias por adelantado! :)

Respuestas (2)

Te estás perdiendo algo.

La cantidad de gas que debe enviar una transacción depende de la cantidad de procesamiento que los mineros tengan que hacer. Un indicador razonable de esto es la cantidad de datos de entrada asociados con una transacción.

Al enviar un contrato, envía el código de bytes codificado del contrato. El costo en el que incurrió es significativamente más de lo que debería incurrir en un contrato tan simple. Sin detalles de cómo envió exactamente el contrato, nadie puede saber si hizo algo mal.

35,5 Gwei es el precio medio actual de la gasolina. Puede especificar el precio del gas que desee. Ejemplos de precios de gasolina se describen aquí . Simplemente discierne qué tan rápido se extraerá su transacción.

Oh, está bien... Así que esto podría ser que truffle me está cobrando una tarifa increíblemente alta para publicar el contrato al instante. Esa sería una explicación muy lógica. ¡Muchas gracias, Tomás! :)

Puede establecer el límite de gas y el precio del gas para cada red en truffle.jsAquí hay una muestra de truffle.js,

module.exports = {
  // See <http://truffleframework.com/docs/advanced/configuration>
  // to customize your Truffle configuration!
    migrations_directory: "./migrations",
    networks: {
        development: {
        host: "127.0.0.1",
        network_id: "*", // Match any network id
        gas: 13245300
    },
    ropsten: {
      host: "localhost",
      network_id: "3",
      gas: 4600624,
      gasPrice: 22000000000,
      from: "address to own the contract"
    },
    mainnet: {
      host: "localhost",
      network_id: "1",
      gas: 4324530, 
      gasPrice: 2000000000, 
      from: "address to own the contract"    
    }   
}      
};

cuando intente implementar, haga algo como truffle migrate --network ropsten --reset.