20181119

C++로 만들어진 파일을 컴파일 해 wasm파일로 변환하여 EOS 블록체인에 올려보려 한다.

EOS doc에 C++로 파일 만드는 방법과 eosio-cpp로 컴파일해 wasm 과 abi파일을 만드는 것 까지는 수월하게 해결했는데 set contract를 사용하여 블록체인에 deploy하는 것에 꽤 시간이 걸렸다. 그 이유인 즉슨, 애초에 docker image를 이용하여 node를 돌리고 cleos에 alias를 걸어 docker exec를 수행해 왔는데 그걸 깜박하고 cleos로 local file (wasm파일)에 접근을 하려고 했기 때문이다.

해결방법은

1. 아래의 명령으로를 compile 된 wasm된 파일 혹은 wasm이 포함된 폴더를 docker 컨테이너로 copy 한 후

docker cp <local_file_dir> <imagename>:<docker_dir>

2. 아래 명령으로 docker container에 접속 하고

docker exec -it <imagename> bash

3. docker container bash에서 cleos  set contract 명령어를 수행한다.

cleos -u https://api.eosnewyork.io:443 set contract <account_name> <docker container dir> -p <account_name>@active

docker_container_dir 안에 wasm 파일과 abi파일을 넣어주면 그냥 폴더 위치까지만 입력하면 wasm과 abi를 모두 deploy해준다.

다만 한가지 더 명심할 점은 contract를 deploy할 때 램과 cpu network 가 필요하므로 깡통 account에 올리려 하면 에러가 난다.

+ Recent posts