Blockchain/Smart contract(6)
-
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 -
Remix로 contract 만들고 배포하기
EVM 계열 블록체인에 smart contract를 배포하기 위해 로직을 작성하는 IDE는 아마 web IDE인 Remix를 가장 많이 사용할 것이다. 이번 포스팅에는 Remix를 사용해서 solidity contract의 compile 및 deploy 하는 방법을 공유하려 한다. Solidity sample code Remix에서 기본적으로 제공하는 1_Storage.sol 코드를 사용하여 진행해 볼것이다. remix에 처음 접속하면 "File explorer" 탭에 default_workspace 안에 해당 컨트랙트 예제가 존재한다. 간단하게 코드 구성만 확인해보고 넘어간다. // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.2 =0.8.2
2023.07.11 -
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 code Migration을 하기 위해서는 우선 CW contract 내에 contract version이 관리되고 있어야 ..
2023.06.15 -
CosmWasm smart contract 배포하기
※ 원글 작성 : 22년 5월 10일 Terra에 CW smart contract를 배포해보려 한다. NFT contract는 CosmWasm NFT를 참고로 작성할 것이다. Store NFT images IPFS를 설치하여 ipfs add IMAGE_NAME.jpg로 등록을 할 수 있지만 편의를 위해 NFT를 위한 file 등록 사이트를 사용하여 NFT image를 저장한다. Image를 등록하면 위 그림과 같이 CID가 생성되고, CID를 통해 IPFS 내의 이미지 or 파일을 확인할 수 있다. https://ipfs.io/ipfs/[your_image_CID]로 파일 확인이 가능하다. NFT 등록을 위해서는 JSON 형식의 Metadata도 필요하다. Metadata 형식은 표준화 되어 있으며 Op..
2023.06.14