본문 바로가기

분류 전체보기

(290)
klaytn 노드 띄워보기 2탄 (CN노드,blockscout로 블록 생성 확인하기) 지난 1탄에서는 굉장히 버벅거리는 모습을 보였었는데, 이번에는 2탄으로 klaytn 노드가 띄워지고 + docker에 Klaytn container 생성 + blockscout로 블록 생성되는거 보는 것에 대해 포스팅하려고 한다. 1) 터미널에서 klaytn node 띄우기 hh klaytn-node 클레이튼 노드에 대한 정보가 좌라락~나온다. 여기서 눈에 띄는건 "kip71":null인데, 항상 Null값이 뜨는 것은 신경이 쓰인다. kip71이 뭐인고 하니 동적 가스비 메커니즘이라고 한다. 일단은 이정도만 알고 넘어가려고 한다. https://kips.klaytn.foundation/KIPs/kip-71 KIP 71: Dynamic Gas Fee Pricing Mechanism Details on K..
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 부분에서는 갖다쓰기만 하면 된다.
Module not found: Can't resolve 'uuid' 프론트엔드에서 localhost:4100으로 접속하니 제목과 같은 에러가 발생하였다. 시도해본 방법은 다음과 같다. 1) yarn install 2) yarn install uuid -> 이건 안먹는듯 하다.. 3) yarn add uuid 4) dev 서버 껐다가 다시 켜기 위와 같은 방식으로 시도해보니 localhost:4100에서 서버가 잘 작동하였다.
Tried to save uncommitted changes in shelf before update ~ Git에서 update를 하려고 보니 Tried to save uncommitted changes in shelf before update ~ 와 같은 에러가 발생하였다. 알고보니 현재 브랜치에 아직 커밋되지 않은 변경 사항이 있는 상태에서 브랜치 전환 또는 작업 디렉토리 업데이트와 같은 Git 작업을 수행할 때 나타난다고 한다. 커밋이랑 푸쉬 다 했다고 생각했는데 왜 이런 에러가 발생했는지는 의문,,ㅠㅠ 해결방법은 다음과 같다. 1) Terminal에서 git commit -m "커밋 메시지" 2) 커밋한 내용 push 하면 업데이트 내역을 잘 받아올 수 있다.
event listener와 handler에서 이벤트 수신하기 위한 Dev 환경 셋팅 모노레포인데, 모듈로 쪼개졌기 때문에 evenet listener와 handler repo를 각각 clone받아 작업해야 하는 상황이다. 그래서 event listener와 handler 레포를 각각 다운받고 Dev 환경 셋팅을 하였다. 1. 제일 기본이 되는(.development.env가 먼저 쓰여진) 파일을 listener 레포의 최상위 env 파일 하위에 .development.env 파일을 만들고 똑같이 복사해온다. 2. postgresConfig 파일도 복사해온 환경과 같이 맞춰준다. 특히 ssl 부분을 잘 봐야한다. 3. 복사해온 곳으로부터 가져온 dev db 연결정보를 똑같이 입력해주어 Dev DB를 연결해준다. 그런데, 아래와 같은 문제가 발생하였다. [Nest] 88887 - 08/31..
전화번호 조회시 010-0000-0000 또는 01000000000 둘다 조회 가능하도록 하는 코드 (feat. /-/g) 전화번호를 조회하는 코드에서 010-0000-0000 또는 01000000000 으로도 조회가 가능하도록 코드를 작성했다. // 사용자가 전화번호 입력시 - (하이픈)도 포함해서 검색할 경우에도 검색 가능하도록 처리 if (keyword) { const formattedKeyword = keyword.replace(/-/g, ''); // 하이픈 제거 daoMemberListQuery.andWhere( "(LOWER(wa.name) LIKE LOWER(:keyword) OR REPLACE(wa.phoneNumber, '-', '') LIKE :formattedKeyword)", { keyword: `%${keyword}%`, formattedKeyword: `%${formattedKeyword}%`, }..
SQL 쿼리문이 Run 실행환경에서 안나올때 쿼리빌더를 작성했는데 쿼리문이 (select,where절 등) Run 실행환경에 찍혀나오지 않는 현상이 있었다. 이럴 경우 postgres.config.ts 파일에서 logging 부분을 true로 바꿔주면 SQL 쿼리문이 잘 실행된다.
clearInterval, setInterval (with RabbitMQ) RabbitMQ 관련 설정 파일을 보다가 clearInterval, setInterval을 보게 되었다. 이 두 가지가 무엇인지 알아보자. setInterval(콜백함수,시간) -> 시간(ms)을 간격으로 콜백함수를 반복 호출 여기서 intervalID를 갖는데, 고유하게 interval을 식별하는 값이라고 생각하면 된다. clearInterval()은 고유 intervalID를 제거해서 반복 호출을 중단한다. setInterval 중단/재시작 방법 1. setInterval() 함수의 반환값을 변수에 할당하여 반복 시작 let(or const) 변수 = setInterval(콜백함수,시간); 2. clearInterval(변수)로 반복 중단 clearInterval(변수); 3. setInterval(..