¿Cómo implementar un archivo de contrato compilado usando geth cli?

Así que he seguido el tutorial del contrato de bienvenida desde aquí para implementar un contrato en mi nube privada. Funciona bien y todo, pero es bastante difícil que necesite crear una cadena a partir de mi contrato y luego implementarla. Sería más fácil si pudiera crear un contract.solarchivo y compilarlo.

Así que puse el código de bienvenida en un archivo:

contract mortal {
    address owner;

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

    function kill() {
        if (msg.sender == owner) selfdestruct(owner);
    }
}

contract greeter is mortal {
    string greeting;

    function greeter(string _greeting) public {
        greeting = _greeting;
    }

    function greet() constant returns(string) {
        return greeting;
    }
}

y ejecutó el siguiente comando:

solc --optimize --bin contract.sol

Esto crea dos nuevos archivos:

greeter.bin
mortal.bin

Pero a partir de aquí estoy un poco perdido. ¿Alguien sabe cómo puedo implementar este contrato de bienvenida usando gethestos dos archivos bin? ¡Todos los consejos son bienvenidos!

@niksmac: la pregunta a la que se vincula no es un duplicado. Eso trata con la implementación desde dentro de la consola geth usando el contrato como una cadena. Lo que quiero hacer es implementar un contrato desde un archivo fuente de solidez.
Supongo que la única forma de implementar contratos inteligentes es enviar un código de bytes a la cadena de bloques a través de una transacción. No puede implementar el archivo de origen. El código debe compilarse y ser determinista, ya que se ejecuta en el EVM.
@ kramer65 entonces esto podría ayudar ethereum.stackexchange.com/q/2609/259

Respuestas (2)

La consola geth Javascript está más adaptada al uso interactivo, al compilar directamente con solc, RPC suele ser una mejor opción. Para implementar contratos, consulte:

https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendtransaction

Puede escribir un script bash simple para componer el parámetro json y pasar los datos correctos.

Gracias por el enlace. Tuve una lectura a través de él. Ahora entiendo cómo puedo enviar ether usando la interfaz RPC, pero no estoy familiarizado con el comando para implementar un contrato. ¿Podría tener un ejemplo de cómo hacerlo usando la interfaz RPC?
Puede ser que esto pueda ayudar: github.com/ethereum/wiki/wiki/…

Pruebe la herramienta web3 CLI , simplemente puede ejecutar:

web3 contract deploy greeter.bin

Eso desplegará y devolverá la dirección del contrato.

También se puede construir con:web3 contract build greeter.sol