EIP와 ERC Ethereum 생태계는 탈중앙화되어 있지만 여전히 규칙을 설정할 주체와 업그레이드가 필요하다. 또 블록체인 상에서 무엇이 가능한지 정의하는 기준을 설정해야 한다. 이를 달성하기 위해 이더리움 사용자는 EIP(Ethereum Improvement Proposal, 이더리움 개선 제안)을 만들고 세부 사항을 논의한다. 또 제안을 거부하거나 실제 구현을 시작하기 위해 투표를 진행한다. 개선 및 추가된 사항에 따라, 현재 상이한 카테고리에 속하는 여러 유형의 EIP가 존재한다. 이러한 유형 중 하나는 이더리움 상에 토큰, 스마트 컨트랙트, 애플리케이션, 지갑 형식 등을 생성하기 위한 다양한 기술 표준을 제안, 토론, 구현하기 위한 용도로 핵심 이더리움 개발자들이 정의한 것이다. 이러한 EIP의..
Truffle Suite(트러플 스위트) 정의 Truffle Suite는 Ethereum 스마트 컨트랙트와 분산형 애플리케이션(dApp) 개발을 위한 일련의 도구를 제공하는 프레임워크 패키지이다. 이 스위트는 Truffle, Ganache, Drizzle 등 여러 서브 프로젝트로 구성된다. 주요 구성 요소 Truffle: 스마트 컨트랙트의 컴파일, 테스팅, 배포 등을 지원한다. Ganache: 개발자가 로컬 환경에서 Ethereum 블록체인을 모방할 수 있도록 해준다. Drizzle: dApp의 프론트엔드 개발을 지원하는 라이브러리이다. 특징 컴프리헨시브: Truffle Suite는 스마트 컨트랙트의 개발부터 프론트엔드까지 전반적인 개발 사이클을 지원한다. 사용자 친화적: Truffle Suite의 도구..
ERC-20 Ethereum Request for Comments 20 스마트 컨트랙트가 구현해야 할 메서드와 이벤트를 명세한다. ERC-20 토큰은 이더리움 블록체인 위에서 작동하며, 이더리움과 호환되는 다양한 애플리케이션과 서비스에서 널리 사용된다. ERC-20 토큰은 이더리움과 교환 가능하며 이더리움 지갑으로 전송이 가능하다. 주요 메서드 totalSupply(): 전체 토큰의 공급량을 반환한다. balanceOf(address _owner): 특정 주소의 토큰 잔액을 반환한다. transfer(address _to, uint256 _value): 토큰을 다른 주소로 전송한다. approve(address _spender, uint256 _value): 다른 주소가 일정량의 토큰을 전송할 수 있도록..
modifier 제어자(Modifier): 함수의 동작을 변경하거나 확장하기 위해 사용된다. modifier는 함수가 호출되기 전이나 후에 실행될 추가적인 로직을 담고 있다. 주로 스마트 컨트랙트의 함수가 특정 조건을 충족해야 실행될 수 있게 하거나, 상태 변경 등의 추가적인 작업을 수행하는 데 사용된다. 코드 pragma solidity ^0.8.0; contract Ownable { address public owner; constructor() { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner, "You are not the owner"); _; } } contract MyContract is Ownable { ui..
mapping mapping은 Solidity에서 키(key)-값(value) 쌍을 저장하는 자료 구조이다. 이는 JavaScript의 객체(Object)/해시 테이블과 유사하며, 특정 키를 사용하여 값을 빠르게 검색할 수 있다. 기본 문법 mapping(keyType => valueType) public/external/internal/private mapName; keyType: 키의 데이터 유형을 지정한다. 이는 uint, int, address 등과 같은 Solidity의 기본 타입일 수 있습니다. mapping 및 dynamic arrays는 키로 사용될 수 없다. valueType: 저장할 값의 데이터 유형을 지정한다. 모든 데이터 타입이 가능하며, 다른 mapping 및 dynamic arr..