Blockchain/Testnet

Taiko Alpha-1 테스트넷 가이드

lowsec 2022. 12. 28. 22:53

이번 포스팅의 주제는 최근 텔레그램 채널 “유트로의 크립토 서바이벌” 에서 리서치하여 공유해주신 Taiko 프로젝트에 대한 테스트넷 가이드입니다. https://taiko.xyz/docs/category/alpha-1-testnet-guide 을 참고하여 제작하였으며 컨트랙트 배포 및 노드 실행은 리눅스 기반의 환경 (ubuntu 20.04)에서 구동하였습니다.

 

What is Taiko?

 

<사진. Taiko 메인>

 

Taiko 프로젝트는 이더리움의 EVM 호환 zkRollup인 zk-EVM을 이용한 레이어2 프로젝트입니다. ZK-EVM을 사용하면 기존의 이더리움 기반 프로젝트를 빌딩하는 개발자 및 프로젝트 팀이 컨트랙트를 수정하지 않고 레이어2로 쉽게 마이그레이션할 수 있습니다.

 

Taiko는 ZK-EVM 중 Type 1을 기반으로 개발되었습니다. Type 1은 이더리움과 같은 구조를 지향하는 ZK-EVM으로, Type 1 ZK-EVM에 대한 자세한 설명은 여기를 참고해주세요. 2022년 1분기에 시작된 프로젝트로 레이어2 기반 프로젝트인 Loopring의 개발자들이 참여했다고 합니다. 올해 12월 10일에 백서를 발표했습니다.

 

신생 프로젝트임에도 불구하고 Taiko의 공식 트위터 계정을 살펴보니 Loopring, OT, Espresso Systems, Galxe 등이 팔로잉 중이고 2022년 11월 5일에 Vitalik이 직접 샤라웃한 프로젝트로 최근 많은 관심을 얻고 있습니다.

 

오늘 Taiko에서 첫 번째 퍼블릭 테스트넷 (Alpha-1)을 발표했습니다. Taiko는 2023년 메인넷 런칭을 목표로 하고 있고 1월 31일까지 테스트넷을 통해 1. 브릿지 사용, 2. 계정 간 ETH 전송, 3. 컨트랙트와 상호작용 (dapp or 컨트랙트 배포) 중 2개 이상 완료한 사용자에게 2023년 2월 중 POAP 민팅 권한을 주겠다고 합니다.

 

본 포스팅에서는 테스트넷 가이드 내용 중 브릿지 사용, 컨트랙트 배포, 노드 실행 방법에 대해 알아보겠습니다.

 

Taiko 프로젝트에 대해 더 알고 싶으시면 아래 링크를 참고해주세요.

 

Alpha-1 Testnet Guide

 

Alpha-1 테스트넷에서는 두 개의 네트워크를 사용합니다.

  • Taiko A1: ZK-EVM 기반의 레이어 2 네트워크
  • Ethereum A1: 이더리움 역할을 하는 프라이빗 레이어 1 네트워크

 

피드백 작성: 링크

  • Github Discussion을 통해 피드백을 받고 있어 Github 계정이 필요합니다.

 

faucet: make tweet를 눌러 트윗을 작성합니다. 0x0000…000 부분에 자신의 metamask 주소를 넣고 작성한 트윗 주소를 faucet 페이지에 입력 후 받을 수량을 선택합니다.

 

block explorer

 

Use the bridge

 

Taiko의 bridge 어플리케이션에 접속하여 네트워크를 추가합니다. 브릿지 어플리케이션을 많이 사용해보셨던 분들이라면 익숙하게 넘어가실 것이라고 생각합니다.

 

<사진. add to wallet>

 

Ethereum A1 → Taiko A1으로 브릿지 트랜잭션을 요청합니다. Amount에 적절한 수량을 입력하고 아래와 같이 Processing Fee를 선택합니다.

  • Recommended: 최적의 수수료를 어플리케이션이 자동으로 추천해줍니다.
  • Custom: 네트워크 간 릴레이의 우선순위를 조정하기 위해 사용자가 희망하는 수수료를 입력하여 사용할 수 있습니다. 수수료를 높게 입력할 수록 릴레이 우선 순위가 높습니다.
  • None: Recommended와 현재 차이 없습니다.

 

저는 0.1 ETH를 입력하고 Processing Fee는 Recommended를 선택, Memo에는 “test”를 입력하겠습니다.

 

<사진. L1 &rarr; L2>

 

트랜잭션 상태가 Pending으로 변경되며 Transaction 탭에서 더 자세한 내용을 확인할 수 있습니다.

 

이번에는 반대로 Taiko A1 → Ethereum A1으로 브릿지 트랜잭션을 요청해보겠습니다. 브릿지 메인 화면의 화살표를 클릭하여 네트워크를 Taiko A1으로 변경합니다.

3 ETH를 입력하고 Processing Fee는 Recommended를 선택, Memo에는 “test-l2”를 입력하겠습니다. 전송 수량은 잔액에 따라 자유롭게 선택하시면 됩니다.

 

<사진. L2 &rarr; L1>

 

릴레이가 준비되면 Transaction 탭에서 Status가 Pending → Claim으로 변경됩니다. Claim을 눌러 트랜잭션을 한 번 더 전송합니다. 요청한 트랜잭션이 완료되었는지 지갑에서 변경된 잔액을 확인하고 Details를 눌러 블록 익스플로러에서 트랜잭션을 체크할 수 있습니다.

 

Deploy a contract

 

Solidity 개발 도구인 foundry를 설치합니다.

  • username에는 linux user 이름을 입력합니다.

 

curl -L https://foundry.paradigm.xyz | bash

source ~/<username>/.bashrc

foundryup

 

metamask에서 계정의 개인키를 내보냅니다. 개인키 내보내기는 https://spec.tistory.com/472 를 참고해주시길 부탁드립니다. 명령줄에 직접 개인키를 입력하기 때문에 보안 상 버너 지갑을 사용하시길 추천드립니다. foundry가 정상적으로 설치되었다면 아래와 같이 프로젝트를 초기화합니다.

 

cd ~

mkdir taiko

forge init hello_foundry
Initializing /Users/theo/workspace_onther/taiko/hello_foundry...
Installing forge-std in "/Users/theo/workspace_onther/taiko/hello_foundry/lib/forge-std" (url: Some("<https://github.com/foundry-rs/forge-std>"), tag: None)
    Installed forge-std
    Initialized forge project.

cd hello_foundry

 

hello_foundry는 foundry에서 샘플로 제공하는 프로젝트입니다. src 디렉토리에 Counter.sol 샘플 컨트랙트가 있는데, 이 컨트랙트를 Taiko A1 네트워크에 배포합니다. Taiko A1 네트워크에 배포된 컨트랙트의 주소와 트랜잭션 해시가 뜬다면 배포 성공입니다.

  • userPrivateKey에는 metamask에서 내보내기하여 얻은 개인키를 입력합니다.

 

forge create --legacy --rpc-url https://l2rpc.a1.taiko.xyz --private-key <userPrivateKey> src/Counter.sol:Counter

[⠢] Compiling...
[⠢] Compiling 18 files with 0.8.17
[⠃] Solc 0.8.17 finished in 7.97s
Compiler run successful
...
Deployed to: 0x49BeBF680a4aEf44cD67B4772f3347D738252e71
Transaction hash: 0x3b0bbe5f1c68f9b080fe95ae5fe35728689a33b2bc32ac7f6a4ac00e70d9eb05

 

Run a node

 

guide: https://github.com/taikoxyz/simple-taiko-node/blob/main/README.md

 

노드를 설치하기 위해 taiko github 레포지토리에 접속합니다. docker-compose로 노드를 실행하기 때문에 docker와 docker-compose가 사전에 설치되어 있어야 합니다. 설치 방법은 https://velog.io/@dailylifecoding/ubuntu-20.04-docker-and-dockercompose-install 를 참고해주시기 바랍니다.

 

 

아래와 같이 레포지토리 내 소스코드를 다운로드 받고 노드를 실행합니다.

 

git clone https://github.com/taikoxyz/simple-taiko-node.git

cd simple-taiko-node

# configure
cp .env.example .env

# start
docker-compose up -d

# 실행된 노드 확인
docker ps

# log 확인
docker-compose logs -f

# stop
docker-compose down

 

따라해보시고 안되는 부분이 있다면 언제든 https://t.me/getmoneywithbrother 에 오셔서 질문 부탁드리겠습니다. 감사합니다.