cosmos(16)
-
Cosmos-SDK transaction의 형식 및 데이터
Cosmos 체인은 모듈 형식으로 구성되어 있으며, 각 모듈 별로 트랜잭션을 구성할 수 있다. 이러한 트랜잭션들은 모듈의 keeper 내에 구현되어 있는 msg-server에서 비즈니스 로직을 처리하기 위한 input 값 전달 매개체의 역할을 하며, 정상적인 트랜잭션일 시 (e.g. 정상적인 signature 등) 검증과정을 거쳐 최종적으로 state DB에 기록되어 진다.EVM의 경우 일반적인 transaction 형식으로 코인 전송, 컨트랙트 배포/실행을 수행하지만 Cosmos는 다양한 형식의 트랜잭션(정확히는 트랜잭션 안의 메시지)을 구현할 수 있어 보다 dynamic한 로직을 구축할 수 있다. 해당 글은 Cosmos SDK 기반 체인들이 사용하는 트랜잭션에 대한 전반적인 기능과 형식들을 알아본다...
2024.06.24 -
Evmos의 Ethereum Tx 처리
Ethermint로 잘 알려져 있는 Evmos는 Cosmos 기반의 체인에서 ethereum tx 처리를 할 수 있도록 지원한다. 8545 EVM JSONRPC를 지원하여, 기존의 ethereum 개발자는 다른 부가적인 처리 없이 API를 똑같이 사용할 수 있다. 모든 ethereum API를 지원하지는 않지만, 개발자들이 자주 사용하는 API는 대부분 지원한다. (Evmos에서 지원하는 EVM API는 여기서 확인 할 수 있다.) 많은 수의 dApp 및 서비스가 ethereum 기반으로 이루어져 있다는 것을 생각해보면, 많은 서비스가 Cosmos 진영으로의 매끄러운 온보딩이 가능하도록 만들 수 있기 때문에 Evmos의 evm 모듈은 Cosmos 생태계 확장에 큰 기여를 할 수 있는 기술이라 생각된다. ..
2024.01.23 -
Cosmos에서의 gRPC
Cosmos SDK로 구현 가능한 app chain은 여러 통신 방식이 있는데, 그 중 gRPC가 가장 중요하다. gRPC의 개념이나 동작 방식에 대한 좋은 글들은 굉장히 많으니 여기서는 잠깐 개념만 언급하고, Cosmos-SDK에서 gRPC는 어떻게 정의되어 있고 구현되어 있는지에 대한 글을 작성하려 한다. gRPC gRPC(google Remote Procedure Call)는 이름에서 확인할 수 있는 것처럼 구글이 개발한 통신 프레임워크이다. 통신 프로토콜로 TCP/IP, HTTP/2를 사용하고 IDL(Interface Definition Language)로 protobuf(protocol buffer)를 사용한다. 전송하는 데이터 크기가 작고 빠르게 처리할 수 있기 때문에 MSA의 componen..
2023.09.15 -
Inter-Blockchain Communication 구조와 Relayer
Inter-Blockchain Communication은 줄여서 IBC로 불린다. 이 IBC는 Cosmos-SDK 기반 체인 간의 자산 이동 및 데이터 전송을 처리하는 프로토콜이다. Cosmos 진영이 추구하는 블록체인 인터넷은 결국 체인 간 연결이며, 체인의 연결은 이 IBC를 통해 이루어진다. 그만큼 IBC는 Cosmos 블록체인에서의 핵심이라고 볼 수 있다. IBC를 제대로 알아야 Cosmos의 "Interchain"을 제대로 이해할 수 있기에 이번에는 IBC를 구현하기 위한 시스템 아키텍쳐와 IBC relayer를 통한 실제 IBC token 전송을 확인하는 시간을 가지려고 한다. IBC IBC는 Cosmos-SDK 기반 체인의 연결을 위하여 ICS(Inter Chain Standard)를 만족하..
2023.07.07 -
CosmWasm 기본 개념 및 구조
CosmWasm은 Cosmos 기반 블록체인에서 사용하는 web assembly 기반 smart contract이다. Cosmos-SDK 기반 체인에서 CosmWasm contract를 운용하기 위해서는 wasmvm 사용이 필요하여 wasm module이 포함되어야 한다. 따라서 app chain에 wasm module이 없는 chain의 경우에는 cosmwasm contract가 동작할 수 없다. 이번 글에서는 CosmWasm 대한 기초적인 분석을 진행할 것이며, 이 컨트랙트를 처음 접하는 사람도 기본적인 내용은 얻을 수 있도록 해볼것이다. Features 가장 먼저 ComsWasm의 창시자 Ethan Frey가 게시한 CosmWasm과 Cosmos-SDK, solidity의 비교표를 확인하면 좋을것 ..
2023.07.06 -
Cosmos state query 방법
Cosmos SDK 기반 체인은 query를 위한 여러가지 방식을 제공한다. HTTP REST(LCD: Light Client Daemon), gRPC, Tendermint RPC로 제공된다. Account의 balance 확인하는 방법을 예로 들어 query하는 방식을 정리한다. HTTP REST Cosmos SDK 기반 체인에서 home directory의 app.toml에서 API configuration에서 설정이 정의되며, 기본적으로 1317 port를 사용한다. Cosmos의 module들은 gRPC gateway를 통해 HTTP request도 수신하여 gRPC로 요청한 결과값과 동일한 결과를 return하는 방식으로 HTTP query를 지원한다. /cosmos/[module명]/[vers..
2023.06.22