Wie viel kostet es, einen Smart Contract hochzuladen?

Ich verwende ein lokales Ethereum-Testnet und es scheint mir, dass der Preis für das Hochladen eines Smart Contracts etwas zu hoch ist.

Dies ist der Code für den Smart Contract:

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);
    }

}

Nachdem ich es mit Trüffel bereitgestellt habe, habe ich gesehen, dass der Saldo des Kontos, von dem aus dieser Vertrag bereitgestellt wurde, um 0,045 Ether reduziert wurde, was beim heutigen Wechselkurs etwa 15 US-Dollar entsprechen würde.

Ich weiß nicht, ob das normal ist, aber mir erscheint es viel zu teuer.

Der Gaspreis in meinem Testnetz beträgt 20000000000 und der aktuelle Gaspreis (auf https://ethstats.net/ zu sehen ) ist sogar noch höher (35500000000). Also, wenn ich mich nicht irre, wäre es noch teurer, es im Mainnet bereitzustellen!

Meine Frage ist also kurz gesagt: Ist dieser Preis normal oder übersehe ich etwas?

BEARBEITEN: Der Solidity-Browser sagt, dass für genau diesen Vertrag "Erstellung: 20435 + 126600", was weniger als 1 $ bedeutet ... stiehlt Trüffel irgendwie meinen Äther?!

Vielen Dank im Voraus! :)

Antworten (2)

Ihnen fehlt etwas.

Die Menge an Gas, die für die Übermittlung einer Transaktion erforderlich ist, hängt von der Verarbeitungsmenge ab, die die Bergleute durchführen müssen. Ein angemessener Anhaltspunkt hierfür ist die Menge der mit einer Transaktion verbundenen Eingabedaten.

Beim Absenden eines Vertrages übermitteln Sie den verschlüsselten Bytecode des Vertrages. Die Kosten, die Ihnen entstanden sind, sind deutlich höher, als ein so einfacher Vertrag verursachen sollte. Ohne Angaben dazu, wie genau Sie den Vertrag eingereicht haben, kann niemand wissen, ob Sie etwas falsch gemacht haben.

35,5 Gwei ist der aktuelle durchschnittliche Gaspreis. Sie können einen beliebigen Gaspreis angeben. Beispiele für Gaspreise finden Sie hier . Es erkennt nur, wie schnell Ihre Transaktion abgebaut wird.

Oh, ok... Das könnte also sein, dass Truffle mir eine wahnsinnig hohe Gebühr berechnet, um den Vertrag sofort zu veröffentlichen. Das wäre eine sehr logische Erklärung. Vielen Dank, Thomas! :)

Sie können das Gaslimit und den Gaspreis für jedes Netzwerk in festlegen. truffle.jsHier ist ein Beispiel für 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"    
    }   
}      
};

Wenn Sie versuchen, bereitzustellen, tun Sie so etwas wie truffle migrate --network ropsten --reset.