본문 바로가기
Blockchain/Node

Taiko 노드 구축하기 2편 with intel_SGX

by GrayChoi 2024. 3. 3.
반응형

전 편에서 이더리움 Holesky 아카이브 노드를 잘 구축하고 왔다면

 

이제 Taiko 노드를 돌릴 차례이다.

 

1. Run a Taiko node

2. SGX 컴퓨터 준비하기

 

1번인 타이코 노드 실행은 얼마 안 걸리는 작업이니

위의 목차대로 진행하도록 하겠다.

 

이전글 : Taiko 노드 준비하기 1편

 

 


 

 

1. Run a Taiko Node

타이코 노드를 구동하는 방법에는

두 가지가 있는데 모두 설명해 보도록 하겠다.

자유롭게 선택하여 설치하면 된다.

 

타이코 노드를 구축해도 현재 블록 동기화가 잘 되지 않으므로

팀에서 공지가 나온 후에 구축하는 것을 추천한다!

 

개인적으로는 아래 stn 방식이 아닌,

with simple-taiko-node 방식을 추천한다.

 

- With stn

a. 타이코 노드 설치

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/d1onys1us/stn/releases/latest/download/stn-installer.sh | sh

stn install

 

b. Config the Taiko node as a full node

stn config full

/* VPSIP에는 Holesky 노드를 돌리고 있는 주소를 입력하면 된다.
   ✔ Do you have an HTTP and WS endpoint for a Holesky L1 archive node? · yes
   ✔ Please enter your L1_ENDPOINT_HTTP · http://VPSIP:8545
   ✔ Please enter your L1_ENDPOINT_WS · ws://VPSIP:8546
 */

http에서 주소 끝에 :8545,

ws에서는 주소 끝에가 :8546인것을 잘 확인하기 바란다.

 

c. Start the Taiko node

stn up

// 상태 확인
stn status

이것으로 타이코 노드 설치가 간편하게 끝나지만

나는 다음 방식을 좀 더 선호한다.

 

- with simple-taiko-node

a. Clone simple-taiko-node

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

 

b. Copy the sample .env files

cp .env.sample .env

 

 

c. Set the L1 archive node endpoint

nano .env

L1_ENDPOINT_HTTP에는 http://VPSIP주소:8545 을 입력하고

L1_ENDPOINT_WS에는 ws://VPSIP주소:8546 을 입력한다.

 

L1_PROPOSER_PRIVATE_KEY=에는 이더리움 지갑의 프라이빗 키를 입력하면된다

(본 지갑 사용 금지)

 

또한 BLOCK_PROPOSAL_FEE=를 30으로 고쳐주면 된다.

 

PROVER_ENDPOINTS도 고치는 곳이 있는 것 같은데 여기는 안고쳐도 되는 것 같다.

 

d. Start the node

docker compose up -d

 

e. 로그 및 대시보드 확인

docker compose logs -f

위 명령어를 통해 로그를 확인할 수 있다.

 

http://localhost:3001/d/L2ExecutionEngine/l2-execution-engine-overview

또한 위의 localhost 부분만 VPS IP주소로 치환하여 크롬창에서 띄우면

이더리움 holesky에서 봤던 대시보드와 동일한 구조로 확인할 수 있다.

저기서 Blockchain 쪽의 Latest block이

Taiko Explorer의 최신 블록 높이와 맞아야 블록동기화가 완료된 것이다.

 

또한 dojo 대시보드를 이용할 수 있는데

nano docker-compose.yml

// 아래 내용 volumes: 위에 붙여넣기
  taiko-node-dashboard:
     image: wolfderechter/taiko-node-dashboard:latest
     ports:
       - "7744:80"
  taiko-node-systeminfo:
     image: wolfderechter/taiko-node-systeminfo:latest
     ports:
       - "3009:3009"

붙여넣기 한 후 Ctrl + x, Y, 엔터

 

docker compose down && docker compose up -d

위 명령어를 통해 다시 재시작 해주면 된다.

 

다시 크롬창에 VPS IP주소:7744 를 입력해 주게되면

아래와 같은 화면에서 좀 더 좋은  UI로 확인할 수 있다.

여기까지가 타이코 노드 구축에 관한 이야기 였으며

여기까지 proposer 트랜잭션을 찍는데는 문제가 없을 것 이다.

(지금까지는 찍기가 힘들다고 함)

다음으로 앞으로 나올 Prover에 필요한 Intel의 SGX에 관한 이야기를 해보겠다.

 


 

 

2. Intel SGX 준비하기

본인은 타이코에 필요한 Intel SGX를 리눅스에서 활성화 시키기 위해

7일이 넘게 잠도 못자고 밤을 새가며 활성화 시킨 기억이 있다.

어렵게 획득한 정보를 쉽게 알 수 있다는 것에 대해 고마워 해주길 바란다.

 

Intel의 SGX라는 것이 무엇인지는 직접 찾아보도록 하고

SGX는 6~10세대 인텔 CPU에서 활성화 할 수 있지만 각각 버전이 다르다.

 

타이코에 필요한 버전은 최소 8세대 이상으로 구해야한다.

(본인은 6세대로 시도해보고 안된다는걸 깨달았다. 만들어지는 파일 자체가 다르다.)

 

개인적으로 추천하는 모델은

8, 9, 10세대의 i5, i7 이며,

i9도 본인이 여유만 된다면 구매해도 좋다.

 

본인은 i5 8500을 사용하고 있다.

 

메인보드는 asrock 모델만이 BIOS에서 "활성화" 시킬 수 있다고 한다.

그 외 모델은 거의 "Software controlled"로 알고 있으며

본인의 i5 8500의 메인보드도 ASUS 모델로 Software controlled로 선택하여 사용하고 있다.

 

또한 우분투 리눅스 22.04 LTS 버전을 사용중이라면 필히 커널을 업그레이드 하여

6.0 이상으로 버전을 맞춰놔야한다.

커널을 업그레이드하기 귀찮으면 우분투 버전을 23.04 버전으로 설치하는 방법도 있다.

 

리눅스에서 sgx가 활성화 되어있는지 확인하는 방법

cpuid | grep -i sgx

// 만약 cpuid가 설치되어있지 않다면
sudo apt install cpuid

위 사진처럼

SGX: Software Guard Extensions supported = true

SGX_LC: SGX launch config supported = true

SGX1 supported = true

라고 나오면 성공이며

 

grep sgx /proc/cpuinfo

위 명령어를 입력하였을 때, 밑의 사진처럼 뭐라도 떠야하며 안뜨면 활성화가 안된 것 이다.

 

여기까지 전부 통과했다면 마지막으로

ls /dev | grep sgx

위 명령어를 입력한 후

위 사진과 같이 sgx_enclave와 sgx_provision 파일이 있어야 정상이다.

 

그럼 taiko의 prover를 수행할 준비가 완료되어 있다는 것이다.

 

만약 아무것도 안뜨고 활성화가 안되어있다면 다음 단계를 따르도록 하자.

 

a. 메인보드에서 SGX 활성화

BIOS 모드에 접속하는 방법은 생략하도록하고,

보통 Advanced 설정에서 CPU 설정에 있다.

아래서 네번째 줄에 SW Guard Extensions (SGX) = Software Controlled로 되어있는 것을 확인 할 수 있다.

이처럼 Software Controlled 또는 Enabled로 선택된 상태여야한다.

 

b. sgx-software-enable

git clone https://github.com/intel/sgx-software-enable

cd sgx-software-enable

make

sudo ./sgx_enable

위 명령어들을 차례로 입력 후

 

재부팅하여 cpuid | grep -i sgx 를 입력하여 잘 활성화 되었는지 확인하고,

ls /dev | grep sgx 명령어를 통해 sgx_enclave 파일이 생성되었는지 확인한다.

 

만약 이렇게 해도 안된다면 텔레그램 채널로 문의하길 바란다.

 

또한 위 방법 말고 VPS로 구매할 수 있는 방법이 있는데
SGX를 사용할 수 있는지 확실하지도 않고 꽤 비싸기 때문에
중고로라도 구매해서 사용하는 것을 추천한다.

 

VPS는 금액을 지불하고 나면 남는 것이 없지만 중고로 구매해서

노드를 구동했을 때, 테스트넷 노드 작업이 끝난 후에도 다른 노드를 돌릴 수 있기 때문에

구매하는 방법을 추천한다.

 

자, 이제 모든 준비를 끝마쳤다.

가까운 시일 내 Taiko Prover가 나오기를 바란다.

 

 

퍼가실 땐 출처 명시 부탁드립니다.


 

 

노드 대행 및 기타 문의

graychoi0920@gmail.com

 

 

노드그레이

그레이의 50가지 노드 그림자

t.me

반응형

'Blockchain > Node' 카테고리의 다른 글

[SOON] Allora 노드 구축  (1) 2024.03.04
Babylon 근황 및 unjail  (69) 2024.03.03
Taiko 노드 준비하기 - 1편  (2) 2024.03.03
[기초] VPS 구매, 접속하기  (75) 2024.03.02
Dusk Nocturne 테스트넷 노드 구동  (73) 2024.02.29

댓글