증상
가나슈를 작동해서 노드를 가동하고 truffle로 붙어서 스마트컨트랙트의 함수를 실행하거나 컴파일을 하면 아래와 같이 오류가 뜨면서 작동하지 않는다.
Saving migration to chain.
Error: Returned error: VM Exception while processing transaction: invalid opcode
at Migration._deploy (************************\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\Migration.js:99:1)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at Migration._load (************************\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\Migration.js:56:1)
at Migration.run (************************\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\Migration.js:217:1)
at Object.runMigrations (************************\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\index.js:150:1)
at Object.runFrom (************************\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\index.js:110:1)
at Object.runAll (************************\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\index.js:114:1)
at Object.run (************************\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\index.js:79:1)
at runMigrations (************************\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\core\lib\commands\migrate.js:258:1)
at Object.run (************************\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\core\lib\commands\migrate.js:223:1)
at Command.run (************************\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\core\lib\command.js:183:1)
Truffle v5.4.24 (core: 5.4.24)
Node v16.13.1
PS ************************\Desktop\project\blockchain\realestate>
원인
본인은 가나슈 gui 버전을 돌리는데 cli 버전으로 돌리면 괜찮다는 글을 봤다.
gui 가나슈의 버그라고 한다.
해결방법
가나슈 gui가 아닌 cli를 설치해서 가동한다.
npm install ganache-cli
위 명령어로 가나슈 cli를 설치한다.
ganache-cli -a
cmd를 켜서 가나슈 노드를 작동하고 이전에 했던것처럼 명령어를 가동한다.
잘된다.
아래 링크 참고