Wie stelle ich einen Vertrag bereit, der Solc erfüllt?

Ich versuche, einen Vertrag bereitzustellen, den ich mit kompiliert solchabe solc --bin mycontract.sol.

Früher konnte ich das Ergebnis in Ethereum-Wallet einfügen und den Vertrag auf diese Weise bereitstellen. Dies funktioniert jedoch nicht für diesen Vertrag (ich vermute, dass der Binärcode zu groß ist).

Ich habe es jetzt ein paar Stunden versucht, aber ich kann einfach keine Anleitung finden, die zeigt, wie man einen Vertrag auf andere Weise bereitstellt. Aber ich vermute, ich sollte es irgendwie mit dem gethBefehlszeilentool tun können.

Ich könnte möglicherweise einfach den Solidity-Code in Ethereum-Wallet einfügen und den Code kompilieren lassen. Der Vertrag verwendet jedoch Importe, bei denen ich nicht sicher bin, wie ich in Ethereum-Wallet gelangen soll.

Antworten (1)

Sie können dies tun, indem Sie den Online-Compiler und die Geth-Befehlszeile verwenden.

Schritt 1: Kopieren Sie zuerst Ihren Vertrag in https://ethereum.github.io/browser-solidity/ , auf der rechten Seite Ihrer Seite würden Sie die Textfelder Bytecode, Interface, Web3 deploy und uDApp sehen. Was Sie hier interessieren sollte, ist das web3 deployTextfeld.

Schritt 2: Kopieren Sie den Text in Ihre Geth-Befehlszeile, fügen Sie ihn einfach ein und Sie würden sehen, so etwas wieContract mined! address: 0x.... transactionHash: 0x.....

Jetzt können Sie die Vertragsadresse verwenden.

Ich habe das versucht, aber ich sehe nie die Meldung "Vertrag abgebaut!...". Ich mache das aber im Testnet. Ich denke, das Testnetz könnte einige Probleme haben. Zumindest werden Blöcke sehr selten generiert.
Bist du mit dem Netzwerk (Haupt- oder Testnetz) verbunden? oder laufen Sie in einem privaten Netzwerk, wenn ja, schürfen Sie? @GuutBoy
Ich laufe auf dem Testnet (morden).
Auch dies beantwortet die Frage nicht wirklich. Ich möchte ausdrücklich nicht den Browser-Compiler verwenden, nur solc.
Was sind die Geth-Argumente, die Sie übergeben? Sehen Sie, ob Sie --verbosity 6 haben, dies würde Ihnen helfen zu testen, ob Sie genug Ether haben, um veröffentlichen zu können, und Ihr Konto durch eth.defaultAccount und eth.coinbase usw. einzurichten.
Der Browser-Compiler gibt nur ein paar zusätzliche Wrapper um den Bytecode herum, die Sie problemlos auf der Geth-Konsole bereitstellen können. Der in beiden Fällen erzeugte binäre Daten/Byte-Code wäre derselbe.