¿Cómo compilar el contrato cuando se eliminó eth.getCompilers() desde la versión 1.6?

Descargo de responsabilidad: es una publicación de preguntas y respuestas para ayudar a otros con el problema al que me enfrenté. Tenga en cuenta que esta es una posible solución que funciona para mí, podría haber una mejor manera de resolver el problema.

La cuestión:

No se puede compilar el contrato en la consola geth desde la referencia 1.6.0 al rastreador de problemas

Respuestas (1)

Solución:

Compile el contrato en su máquina antes de entrar en geth. Mueva su contrato al directorio de datos que usa para mapear su nodo. Cargue su contrato desde la consola geth

  1. Compile el contrato en su máquina antes de ir a la consola

    $ toque Contrato.sol

    $ echo "var contractOutput= solc --optimize --combined-json abi,bin,interface Contract.sol" > contract.js (preste atención a las comillas ``)

  2. Mueva el contrato al directorio de datos que usa para ejecutar el nodo (por cierto, uso Docker para ejecutarlo)

    $ cp contract.js ~/Workspace/Ether/datadir/contratos

  3. Ejecute su nodo sobre Docker y proporcione mapeo en su directorio de datos

    docker run -it -p 8545:8545 -p 30303:30303 -v /home/user/Workspace/Ether/datadir:/root/datadir user/my-ether-node /bin/bash

  4. Ejecutar consola

    geth --datadir /root/datadir/ --networkid 1234 --port 30303 --rpcport 8545 --rpc --rpcapi eth,web3,personal,net --rpcaddr 0.0.0.0 consola

  5. Carga el contrato

    loadScript('/raíz/datadir/contratos/contrato.js')

El enlace en la guía que debería ayudarlo con la configuración inicial de ethereum y comenzar con los nodos

¿Cómo llamaría a una función de contract.js dentro de la consola Geth? Mi contract.js se ve así: var contractOutput = {"contratos" : {"contratos/Contrato.sol:TestContract" : {"abi": ..., "bin": ...}, ...}}
Ha pasado casi un año desde mi último proyecto en ethereum. Revisé mis notas, aquí hay un ejemplo a través de Truffle (es la forma preferida): Test.deployed().then(instancia => instancia.vender(cuentas[1], {de: cuentas[0], valor: web3. toWei(1, 'ether') } )) Si desea hacer esto en un nivel bajo, consulte esta publicación de blog medium.com/@gus_tavo_guim/…