





smart contract(7)
-
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 -
Golang을 이용하여 Solidity smart contract 다루기
보통 Solidity 스마트 컨트랙트를 다룰때는 JS로 되어있는 web3.js나 ethers.js를 사용하여 interaction 하고, 배포시에는 hardhat, truffle을 사용한다. 이들은 모두 javascript 기반이다. 다른 언어를 사용하여 프로그램을 개발한다면 언어 호환에 대한 고민이 있을 수 있다. Go-ethereum에서는 Golang을 기반으로 하는 서버 등의 프로그램에서 다른 언어로 이루어진 라이브러리를 사용하지 않고도 쉽고 편리하게 Solidity 컨트랙트를 다룰 수 있게 하는 기능을 제공하기 때문에 이번 페이지에서는 해당 기능을 소개하고 사용하는 방법에 대해 작성하여 한다.Bind packageGeth는 "bind" package가 존재한다. 해당 패키지의 directory는 ..
2024.11.13 -
CosmWasm 컨트랙트 개발 시 전략과 신경 쓰면 좋은 점
필자도 다양한 컨트랙트를 개발해 봤고, 서비스에도 적용해 봤지만 아직 많이 부족하다는 것을 안다. 그래서 항상 개발 중간중간에 제대로 개발했는지 확인하고, 나름대로 정한 전략에 맞는 개발을 하는지 확인 하는 습관을 가지려고 노력한다. 아래 글은 어느정도 개발 수준의 레벨에서는 당연한 말들이지만, 컨트랙트 개발 입문 단계의 레벨에서 지속적으로 신경 써서 개발하면 좋을 것 같은 항목들을 정리한 내용이다. 개인적인 생각이기 때문에 다른 사람들과 맞지 않을 수 있지만 공유해보면 좋을거 같아서 글을 작성한다. 1. 실행 주체가 누군지 명확히 컨트랙트를 execute하는 행위는 가장 기본적인 행위이다. 이 때 execute 트랜잭션 메시지를 보내는 행위자가 누군지 명확히 생각하며 개발하는 것이 가장 중요하다. 실행..
2023.11.01 -
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 -
CosmWasm Contract Migration
※ 원글 작성 : 22년 11월 24일Migration?Contract를 통한 서비스를 운영하다 보면 버그가 발견거나, 기능이 업데이트 되야 하거나 하는 이슈로 인해 contract를 수정해야만 하는 상황이 발생할 수도 있다. 이때 기존 contract의 state는 유지하면서 contract 코드만 수정하는 방법이 "migration"이다. CosmWasm은 이런 migration이 굉장히 편하고 쉽게 되어 있다. Wasm 모듈이 포함되어 있는 cosmos sdk 기반 블록체인에서 이 migrate를 지원하니, contract 운영이 쉬워질 것이라 생각한다.Migration codeMigration을 하기 위해서는 우선 CW contract 내에 contract version이 관리되고 있어야 한다. ..
2023.06.15 -
Smart contract 보안 전략
※ 원글 작성 : 22년 5월 31일 Manuel Araoz의 Onward with Ethereum Smart Contract Security에서 smart contract 보안을 위한 개발 시 여러 전략들에 대해 정리해 놓은 자료를 확인해 본다. 해당 글에서는 contract 보안 개선을 위한 전략과 샘플을 함께 보여주어 연상하기 쉽도록 설명이 되어있다. Fail as early and loudly as possible 간단하지만 강력한 프로그래밍 전략은 "Fail early, Fail loudly"이다. // UNSAFE , DO NOT USE! contract BadFailEarly { uint constant DEFAULT_SALARY = 50000; mapping(string => uint) n..
2023.06.14