Отказ от ответственности: это самостоятельный пост вопросов и ответов, чтобы помочь другим решить проблему, с которой я столкнулся. Обратите внимание, что это возможное решение, которое работает для меня, возможно, есть лучший способ решить проблему.
Проблема:
Не могу скомпилировать контракт в консоли geth начиная с версии 1.6.0 ссылка на трекер ошибок
Решение:
Скомпилируйте контракт на своей машине, прежде чем заходить в geth. Переместите свой контракт в каталог данных, который вы используете для сопоставления вашего узла. Загрузите свой контракт из консоли geth
Скомпилируйте контракт на своей машине, прежде чем заходить в консоль
$ коснитесь Contract.sol
$ echo "var contractOutput= solc --optimize --combined-json abi,bin,interface Contract.sol
" > contract.js (обратите внимание на кавычки)
Переместите контракт в каталог данных, который вы используете для запуска узла (кстати, я использую докер для его запуска)
$ cp contract.js ~/Workspace/Ether/datadir/contracts
Запустите свой узел через докер и предоставьте сопоставление с вашим каталогом данных.
docker run -it -p 8545:8545 -p 30303:30303 -v /home/user/Workspace/Ether/datadir:/root/datadir user/my-ether-node /bin/bash
Запустить консоль
geth --datadir /root/datadir/ --networkid 1234 --port 30303 --rpcport 8545 --rpc --rpcapi eth,web3,personal,net --rpcaddr 0.0.0.0 console
Загрузить контракт
loadScript('/root/datadir/contracts/contract.js')
Эван Камински
Гляйхмут