전체 글(74)
-
블록체인 백엔드 설계: Websocket
EVM 계열 체인의 노드들은 블록체인에 쓰기/읽기를 위한 JSON-RPC API를 제공한다. 일반적인 tx 전송 및 데이터 조회는 HTTP를 통한 JSON-RPC를 사용한다. EVM 체인에서는 HTTP 외에도 Websocket을 이용해서 노드와 직접 통신할 수 있는데, 블록체인 백엔드 내 Websocket을 사용시 고려해야 할 점에 대해서 정리하려 한다.HTTP Vs. WebsocketEVM 체인 노드의 JSON-RPC는 세가지 전송 계층으로 나뉜다. HTTP, Websocket, IPC이다.IPC(Inter Process Communication)의 경우 프로세스 간 데이터를 주고 받는 동일 로컬 환경 내에서 데이터를 주고 받는 기능이므로 일반적인 블록체인 백엔드 서버는 EVM 노드와 별개인 상황이 많..
2026.08.25 -
블록체인 백엔드 설계: Reorg
블록체인에서 자산 전송은 transaction 데이터에 담기고, 이 tx들이 담긴 블록이 생성되어 체인에 연결이 되어야 자산 전송이 완료된다. 결국 블록이 생성되는 시점이 자산 전송이 완료되는 시점이다.블록체인에서는 분산 네트워크 환경에서 모든 노드 참여자가 동일한 블록 상태에 합의를 하여 동일한 데이터를 들고 있어야 하며, 이를 위해 합의 알고리즘(Consensus algorithm)을 사용한다. 블록체인 별로 특성에 따라 다른 합의 알고리즘을 사용하며 비트코인 PoW(Proof-of-Work, 작업증명), 이더리움 PoS(Proof-of-Stake, 지분증명), PBFT(Practical Byzantine Fault Tolerance)등이 대표적이다. 합의 알고리즘을 통해 모든 노드가 동일한 블록을 ..
2026.08.07 -
Cross-chain 기술과 Axelar
이사와 출산, 육아로 퇴근 후 개인 시간이 별로 없었던 만큼 근 1년만에 블로그 글을 다시 작성한다. 이 글을 뒤로 또 언제 글을 작성할지는 모르겠지만 시간이 날 때 마다 하나씩 해보려고 한다. 1년 사이에 ChatGPT, Claude 같은 서비스들이 너무 잘되어 있어서 찾아오는 사람이 더욱 줄어들겠지만 스쳐 지나가는 한명이라도 이 글을 볼 수도 있으니..이번 글은 블록체인 네트워크들을 서로 연결하여 자산과 데이터를 전송시켜 주는 크로스체인 개념과 그 서비스 중 하나인 Axelar에 대해 확인해본다.Cross-chain먼저 크로스체인이란, 서로 다른 블록체인 간 자산 및 데이터 교환 기술을 의미한다. Multi-chain, Inter-chain 등 다양한 언어로 불리지만 이 글에서는 Cross-chain..
2026.08.05 -
ERC20의 기본 동작
ERC20은 Ethereum 스마트 컨트랙트의 기본이라 할 수 있을 정도로 많은 서비스에서 사용되고, ERC20에서 파생된 다양한 표준의 컨트랙트들이 존재한다. ERC20의 동작을 확인해보려 한다.TokenERC20을 설명하기 위해서는 먼저 Token의 개념부터 이해하면 좋을듯 하다. 가상자산 시장에서는 Coin과 Token이 혼용되서 사용되고 있는데, 일반인들은 그 구분을 굳이 하지 않아도 된다. 블록체인을 다루는 사람으로써는 그 두개를 구분하여 사용하는게 좋다.Coin은 해당 블록체인 메인넷에서 자체적으로 발행한 자산(Native coin)이라고 생각하면된다. 예를 들어 Ethereum의 ETH, Solana의 SOL, Ripple의 XRP가 그것이다. 즉, Coin은 해당 메인넷이 생겨났을 때 부터..
2025.08.14 -
IBC를 통한 외부 CosmWasm 실행하기
CosmWasm 컨트랙트는 Cosmos의 IBC를 통하여 서로 다른 블록체인 간의 컨트랙트 실행(execution)을 수행할 수 있다. 이번 글에서는 Golang IBC relayer를 사용하여 체인 A의 CosmWasm 컨트랙트를 실행하여서 체인 B의 CosmWasm 컨트랙트를 동작시키는 방식 환경을 구성하고 실행하는 방법을 확인한다.환경 구성테스트로 사용될 블록체인은 Wasm 모듈이 포함되어 있는 Juno와 Wasmd를 사용한다. 두 체인을 로컬에 설치하는데, CometBFT RPC 포트를 동일하게 26657을 사용하여, Wasmd는 docker로 ubuntu를 띄워 동작시킨다.IBC 연결을 위한 CW 컨트랙트는 https://github.com/0xekez/cw-ibc-example에 등록된 예시 ..
2025.04.21 -
CosmWasm 컨트랙트 CLI로 배포/실행/조회하기
이전 글을 오랜만에 확인해보니 CosmWasm 컨트랙트 코드 분석과 배포한 결과만 올려 놓은것을 보았다. Wasmd를 설치하고, 제공되는 CLI를 이용해 CosmWasm을 배포하고 실행하는 과정을 보려한다.준비Rust 및 cargoCosmWasm은 Rust로 구현되니, 가장 먼저 Rust를 설치한다. 설치 방법은 여기에 존재한다.Rust와 Cargo(Rust 패키지 관리자)가 설치된 사람들은 아래 명령으로 Cargo 버전을 최신 stable 버전으로 업데이트 가능하다.$ rustup update stableCosmWasm에서 제공하는 optimizer를 사용하기 위해 cargo-make도 함께 설치한다. Make file을 통해 빌드를 할 수 있도록 되어 있다. 테스트에 사용된 cargo의 버전은 1.8..
2025.04.16