본문 바로가기

전체 글

(290)
klaytn node 띄워보기 (with smart contract) 1탄 (to blockscout 도커 컨테이너 생성) 난생처음 블록체인 노드를 띄워보았다. 사실 백엔드 입장에서는 웹개발 말고는 노드는 띄워볼 일이 거의 없었는데 클레이튼 dev ambassador을 통해 클레이튼 노드를 띄워볼 수 있었다. 사실 지금도 엄청 이해가 되진 않지만.. 그래도 일단 해보는게 중요한 것 같아서 노드를 띄워본 과정을 적고 나중에 더 보충해나가려고 한다! 사용환경 : macOS(맥북) 터미널 + docker 진행한 순서 1) 프로젝트 클론받기 klaytn의 contract-demo-pull을 git clone 받는다. git clone http://github.com/klaytn/contract-demo-poll 2) 의존성 설치 install dependencies -> ./install.sh 설치 (sh는 shell 파일의 줄임말..
There is no matching event handler defined in the remote service. Event pattern: agenda-raised - { stack: [ null ] } 이벤트 handler에서 rabbitMQ에 메시지를 쏘고 > 이벤트 handler에서 이를 작업하려고 하니 There is no matching event handler defined in the remote service. Event pattern: event payload 이름 - { stack: [ null ] }과 같은 에러가 발생하였다. 해결방법은 다음과 같았다. 1) rabbitMQ에서 Purge Messages를 한다. (큐를 비워준다) 2) Docker에서 Event listener,handler,db 등을 재실행한다. -> 그러면 handler에서 정상적으로 handler에서 블록체인 이벤트가 수신되는 것을 확인할 수 있다. OR 그냥 도커에서 listener,handler 등 재시작으로..
role이 단수개가 아닌 복수개 처리 role이 원래 단수개였다가 roles로 복수개 처리해야 하는 상황이 왔다. roles를 그냥 string[]으로 받으면 될 줄 알았는데, 이미 있는 메서드에서 role:string으로 처리하고 있었기 때문에 따로 이벤트를 수신할때 처리가 필요했다. const roles = []; for (const role of event.returnValues.roles) { roles.push(this._parseHexToUtf8(role)); }  const payload: ~ payload(constants) = { roles: roles, ... }; 위에서 따로 foreach처럼 하나씩 꺼내와서 리스트에 저장하는 로직을 작성해주고, payload 부분에서는 갖다쓰기만 하면 된다.