Tyojong
Foundry 본문
Foundry란?
Foundry는 Foundry organization에 의해 개발된 스마트 컨트랙트 개발 툴체인이다.
- Rust로 작성되었으며 안정적이고 빠른 성능을 가진다.
- 툴체인 내에 여러 툴을 통해 테스트넷 실행부터 패키지 매니저, 배포 및 디버깅까지 다양한 기능을 제공한다.
Foundry Tools
- Forge : 작성한 스마트 컨트랙트를 빌드, 테스트, 배포하는 기능을 가진다. git의 submodules 기능을 바탕으로 종속성을 관리하는 기능을 제공해 git 서버 위에 올라가 있는 스마트 컨트랙트들을 쉽게 추가하고 관리할 수 있다.
- Cast : 이더리움 RPC (Remote procedure call) 요청을 직접 보낼 수 있는 툴이다. 자신이 배포한 스마트 컨트랙트를 호출해보거나 트랜잭션을 보내는 등의 동작을 수행할 수 있다.
- Anvil : 로컬 환경에서 테스트넷을 실행할 수 있는 툴이다.
- Chisel : Solidity REPL (Read-eval-print loop) 툴로 Python의 인터랙티브 모드와 같은 기능을 제공한다.빠르게 실행해볼 Solidity 코드가 있을 때 사용하거나 디버깅 관련 기능을 제공한다.
Foundry 설치 방법
WSL 환경
curl -L https://foundry.paradigm.xyz | bash
위 명령어 입력 후 wsl을 재시작 한다.
foundryup
이후 foundryup 명령어를 입력하면 Forge, Cast, Anvil, Chisel 툴이 설치된다.
Foundry 실습
mkdir FoundryTest
cd FoundryTest
프로젝트를 생성할 디렉토리를 만들고 들어간다.
forge init helloWorld
forge 명령어를 이용해 프로젝트를 생성한다.
cd helloWorld
forge build
프로젝트를 빌드한다.
forge test
테스트를 실행한다.
로컬 테스트넷 실행
anvil
anvil명령어를 실행하면 10000 이더가 들어있는 계정 10개가 생성되고 지갑의 Mnemonic과 Derivation path가 제공된다.
※외부의 테스트넷이나 메인넷에서 실제로 사용하면 안 된다.
Mnemonic (니모닉) : 암호화폐 지갑을 복구하거나 불러올 때 사용되는 단어 조합. 보통 12개 또는 24개의 단어로 구성되며 지갑의 비밀번호 역할을 한다.
Derivation path (파생 경로) : 블록체인 주소가 생성되는 방식을 정의하는 규칙
Chain ID : 한 번 보낸 트랜잭션이 두 번 이상 실행되지 않게 하기 위해 노드마다 가지는 값
Base Fee : 트랜잭션을 보낼 때 내야하는 기본 수수료
Gas Limit : 최대 사용 가능한 Gas 값
Genesis Timestamp : 제네시스 블록(Genesis block)의 유닉스 타임스탬프를 의미
Genesis block : 네트워크 첫 번째 블록
컨트랙트 배포
forge init --template https://github.com/foundry-rs/forge-template first_contract
'web3 > basic knowledge' 카테고리의 다른 글
WEB3 기본 개념 (0) | 2025.07.06 |
---|