Ritual 노드 돌려보자! 아니 그냥 돌리세요. AI입니다.(Renewal 완료)

250x250
반응형
728x90

순서를 좀 조정해서 쉽게 순차적으로 따라할 수 있게 개편했습니다!

Ritual이라고 하는 인공지능 프로젝트가 있습니다.

일단 위에 보이는대로 시리즈 A에서 $25M 규모의 투자를 유치했을 정도로 태생부터 자금력 빵빵한 녀석이라고 보시면 되겠구요.

특히 Angles 보세요. 엔젤투자자 목록이 미쳤습니다. 전 코베 CTO, 월드코인(그 홍채팔이), 에이건레이어, 모나드, 플래시봇 등등 어후.. 말로는 입아픕니다.
 

이런 녀석들이투자를 한 인공지능 프로젝트니까 노드 돌리면 일단 좋을거 같다~~ 라는게 제 생각입니다.

★ ★ 3월 22일 이전 노드 생성자는 이거만 추가해주세요. Ritual Node 업데이트하는 방법은 여기를 클릭하시면 자동으로 넘어가집니다!


일단 어떤 녀석인지 살펴자면

이렇게 나오듯이 개방형 AI 인프라인데요.

이런 구조로 나뉘어져서 분산형으로 인공지능을 학습하고 굴리는데, 머신러닝기술을 사용하고 또 그렇게 학습된 인공지능 모델을 통해서 간단한 코드로 손쉽게 AI를 생성할 수도 있고...
 
뭐 이런저런 내용과 구성도가 이렇게 있는데

자세한 내용은 홈페이지에서 확인하시면 될 것 같습니다.
https://ritual.net/

 

Ritual

Ritual is the network for open AI infrastructure. We build groundbreaking, new architecture on a crowdsourced governance layer aimed to handle safety, funding, alignment, and model maintenance.

ritual.net

그리고 또 다른 소식이 뭐냐면

Io.Net과도 파트너를 맺었구요.
2024.02.22 - [크립토 에어드랍 작업/노드 운용하기] - 곧 토큰 출시하니까 해봅시다! Io.net 노드 돌리기

 

곧 토큰 출시하니까 해봅시다! Io.net 노드 돌리기

이번엔 Io.Net이라고 하는 노드를 돌려보려고 합니다. io.net은 솔라나기반의 DePIN인데요. 이미 분산네트워크의 길로 파일코인, 렌더 네트워크, 솔라나와 함께 돌아가는 녀석이기도 합니다. 특히 요

metaboo.tistory.com

 
EigenLayer와도 파트너를 맺었습니다.

2024.01.29 - [크립토 에어드랍 작업/에어드랍 작업 정리] - 이더리움이 남으시나요? 꼭 해보세요! EigenLayer + LSD

 

이더리움이 남으시나요? 꼭 해보세요! EigenLayer + LSD

이더리움이 남으신가요? 그렇다면 예치한 번 해보시는 건 어떨까요? EigenLayer라고 예치를 도와주는 곳이 있습니다. EigenLayer(에이건레이어)는 이더리움을 예치한 토큰을 재예치할 수 있도록 도와

metaboo.tistory.com

 
그리고 제일 웃긴건....

코인하면 대부분이 아는 우리 흑형, 아서헤이즈가 어드바이저입니다.

아무튼 Ritual에 대한 숭배는 여기서 그만두고, 

Ritual 노드를 돌리기 위한 사양은 이러하니까 적당한 사양으로 서버 구성해주면 됩니다.

 
하지만, 기본적으로 도커설치로 인해 RAM을 4GB이상 권장하니까 되도록이면 RAM 4GB이상으로 서버를 골라주시는게 좋습니다.
그리고 BASE체인 기반의 ETH 5달러 이상을 들고있으면 됩니다!! 

대충 0.01ETH정도...?

https://www.orbiter.finance/?source=Ethereum&dest=Base&token=ETH

 

Orbiter-Finance

Orbiter Finance is a ZK-tech Based Ethereum Acceleration Engine, boosting L2s performance and decreasing gas consumption.

www.orbiter.finance

위 링크에서 브릿지하시면 됩니다!
 
이제 그럼 노드 돌려볼게요!
 

아 참고로 전 이번에 헤츠너 서버 10개 초과로 인해 더 이상 생성이 불가능해서 콘타보로 작업하니 화면이 약간 달라도 이해해주시기 바랍니다.

기본적인 명령어는 똑같아요.
 

한 4일동안 Ritual의 Deploy부분에서 계속 헤매다 포기했었는데
다른 대고수님의 가이드가 올라와서 보고 해결했네요.

 

♥ 감사합니다. ilaNihas(외국인 횽아)님.

출처: https://medium.com/@ilaNihas/ritual-setting-up-your-validator-node-97ec2d86963d


0. Contabo 셋팅하기

https://contabo.com/en/vps/

 

VPS with the Best Price-to-Performance Ratio | Contabo

VPS with a lot of computing power for less. All instances have truckloads of RAM (starts from 8 GB), disk space, and 32 TB of traffic. Spin up your VPS now!

contabo.com

일단 위 사이트를 통해 Contabo 접속해주시구요.
 
가입해주신 뒤에

이 두번째껄 Select해줍니다.
 

기간은 대충 6개월정도, 지역은 무료인 독일로 설정하고
 

 
저장공간도 무료인 400기가 선택하고, 이미지는 우분투 22.04를 선택해줍니다.(중요!!)
 

Root의 비밀번호 설정한 뒤 우측의 Next를 눌러줍니다. 60유로네요.
 
결제까지 완료되셨다면, 시간이 좀 지나면

이런 메일이 오니까 거기에 있는 IP주소를 이용해서 cmd를 통해 로그인해줍시다.

☞cmd로 접속하는 방법은 아래 명령어대로 입력하신다음 비밀번호 입력하시면 됩니다.

ssh root@서버IP주소

그리고 비밀번호 입력하시면 되는데, 입력해도 아무것도 안나오는건 먹통된게 아니라 비밀번호는 원래 안보입니다. 

제대로 입력하시고 엔터누르시면 아래 화면처럼 접속될거에요!

콘타보 접속 완료


1. 도커 설치하기

일단 먼저 도커를 설치해주셔야 됩니다.

sudo apt update && sudo apt upgrade -y

위 명령어 입력해서 설치준비해주시구요.

sudo apt -qy install curl git jq lz4 build-essential screen

위 명령어로 build 준비도해주시면 도커 설치준비는 끝입니다.

둘 다 엔터눌러주시면 됨

 
자 그럼 Docker Compose 설치할건데요. Docker부터 설치해줘야됩니다.

curl -fsSL https://get.docker.com -o get-docker.sh

위 명령어를 입력해주셔서 도커를 다운로드 해주시구요. (아무것도 안뜨는게 맞음)

sudo sh get-docker.sh

위 명령어로 설치를 해줍니다.

이게 뜨면 설치 완료

docker version

위 명령어로 제대로 설치됐나 한 번 확인해주시고

도커 버전 확인 - 25.0.3

잘 설치된 것 확인했으니까 이제

sudo apt-get update

위 명령어를 통해 apt-get을 업데이트해주시고

이렇게 뜨면 끝

완료되셨다면 

sudo apt install jq

이제 docker compose설치해주기 위해 jq를 먼저 설치해주시구요.

Y눌러주시고

두 화면 모두 엔터눌러주시면

이렇게 나오면 끝

이렇게 설치완료가 됩니다.

sudo curl -L https://github.com/docker/compose/releases/download/$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)/docker-compose-$(uname -s)-$(uname -m) -o /usr/bin/docker-compose

이제 docker-compose 최신버전으로 설치해주기 위한 명령어 입력해줍시다.

이렇게 뜨면 끝

sudo chmod 755 /usr/bin/docker-compose

위 명령어 입력해서 권한 높여주시고
 
이제 설치가 잘 됐나 확인 한 번 해줍니다.

docker-compose version

위 명령어 입력하면

잘 설치됐습니다. v.2.24.6

그리고 도커를 가입해주셔야 되는데요.
https://www.docker.com/

 

Docker: Accelerated Container Application Development

Docker is a platform designed to help developers build, share, and run container applications. We handle the tedious setup, so you can focus on the code.

www.docker.com

위 사이트에 접속하신 뒤 가입을 해주시면 됩니다.(이미 가입하신 분들은 패스)

우측 상단의 Sign in을 통해 가입하시면됩니다.

아이디와 비밀번호를 잘 기억하세요!\


2. 환경파일 설정하기

이제 환경파일을 설정해줘야 됩니다.

git clone https://github.com/ritual-net/infernet-container-starter

위 명령어를 입력해서 일단 파일을 다운로드 해줍니다.

이렇게 되면 완료

이제 현재의 경로를 이동해줍시다.

cd infernet-container-starter

입력해주시고
 
도커 컨테이너 실행을 위해

screen -S ritual_node

라고 입력해주시고

그럼 이제 Filezilla로 가줍시다.

설치방법은
2024.02.25 - [크립토 에어드랍 작업/노드 운용하기] - 바빌론 테스트넷 업데이트하기! 안하면 보상 안받아집니다~

 

바빌론 테스트넷 업데이트하기! 안하면 보상 안받아집니다~

지난 번에 바빌론 테스트넷을 설치해서 노드를 운용하는 방법에 대해 설명드렸었죠? 이번엔 그 바빌론 테스트넷의 마이그레이션 작업 즉, 업데이트를 해줘야됩니다. 바빌론은 설치가 되어있어

metaboo.tistory.com

여기 1번에 설명되어있으니 참고하시구요.
 
FileZilla까지 연결됐으면 

위에 보이는 infernet-container-start를 선택해주신 뒤

/root/infernet-container-starter/projects/hello-world/container

에 들어가시면

밑줄친 config.json 파일을 마우스 오른쪽을 눌러서 "보기/편집"을 눌러주세요.

그럼 이런 내용의 메모장이 뜰텐데 내용을 수정할겁니다.
아주아주 중요하니까 꼭 하나하나 다 확인하셔야 합니다.

스크롤을 쭈우욱 아래로 내리면 완성된 방식의 양식이 보입니다.

{
  "log_path": "infernet_node.log",
  "server": {
    "port": 4000
  },
  "chain": {
    "enabled": true,
    "trail_head_blocks": 0,
    "rpc_url": "바꿀 개인 rpc주소",
    "coordinator_address": "0x8D871Ef2826ac9001fB2e33fDD6379b6aaBF449c",
    "wallet": {
      "max_gas_limit": 4000000,
      "private_key": "본인의 base 메인넷 지갑 프라이빗 키"
    }
  },
  "docker": {
    "username": "도커hub의 유저네임",
    "password": "도커hub의 개인 액세스 토큰(PAT)"
  },
  "redis": {
    "host": "redis",
    "port": 6379
  },
  "forward_stats": true,
  "startup_wait": 1.0,
  "containers": [
    {
      "id": "원하는 ID 입력하면 됩니다.(노드의 이름설정이라고 보면 됨)",
      "image": "도커 Hub의 이미지 이름 (ex. org1/image1:tag1)",
      "description": "설명 적는 칸이니 대충 적으세요",
      "external": true,
      "port": "4999",
      "allowed_ips": [],
      "allowed_addresses": [],     -> 이곳은 4번 항목에서 추가하는 방법 나옴
      "allowed_delegate_addresses": [],
      "command": "--bind=0.0.0.0:3000 --workers=2",
      "env": {
        "KEY1": "VALUE1", -> 없어도 됨.
        "KEY2": "VALUE2"  -> 없어도 됨.
      },
    },
    { 컨테이너는 하나만 있어도 됩니다. 두개이상은 아래처럼 하면 된다는 뜻이에요!
      "id": "service-2",
      "image": "org2/image2:tag2",
      "description": "Container 2 description",
      "external": false,
      "port": "4998",
      "allowed_ips": [],
      "allowed_addresses": [],
      "allowed_delegate_addresses": [],
      "command": "--bind=0.0.0.0:3000 --workers=2",
      "env": {
        "KEY3": "VALUE3",
        "KEY4": "VALUE4"
      }
    }
  ]
}

 
이렇게 하면 되는데..... 

일단 Allowed_addresses는 아래 4번 항목에서 다루니 거기서 추가해주는 것으로 하구요.

아래 보시면 알겠지만 어차피 대부분 복붙하고 우리가 수정해줄 부분은

  • RPC_url
  • coordinator_address
  • 프라이빗키
  • docker hub 아이디
  • docker hub 비밀번호

이렇게 5개가 끝입니다.

 

Docker Hub의 유저네임과 비밀번호는

Docker사이트 접속하셔서 로그인하시면 우측 상단을 누르셨을 때

이렇게 나오는데요. 1번에 해당하는데 유저네임이고, password는 2번을 눌러주세요.

그 다음 Security를 누르시고

여기 New Access Token 누르셔서

대충 작성하셔서 Generate를 누르시면 됩니다.

그리고 저 Copy부분을 누르시면 됩니다.
 
그리고 rpc_url의 IP주소를 기본적인 rpc_url로 해도 되는데요. 만약 본인이 더 좋은 rpc를 보유하고 있다면 그걸 활용하시면 됩니다.
 
아! RPC_URL이 뭔지 모르신다구요?
RPC_URL은 지갑에 네트워크 추가하실 때 입력하는 부분 중 

동그라미 친 부분에 들어가는게 RPC_URL입니다.

 
기본적으로는 BASE의 RPC_URL을 따르고 있는데요.
메타마스크 내의 BASE RPC_URL은

이렇게 나오니 참고하시면 될 것 같습니다.

혹시 사설RPC를 사용하고 있다면 그게 속도도 더 빠를테니 좋겠죠?

 

그치만, 기본적으로 RPC는 alchemy라는 곳에서 생성하시는게 제일 좋습니다.

https://dashboard.alchemy.com/apps
위 링크로 접속하신 다음 로그인하셔서

Create new app을 누르신다음

이렇게 BASE 메인넷 기준으로 만드시고

우측의 API Key를 누르시면

HTTPS라고 보인 부분이 RPC_URL입니다.

참고하시구요.


아무튼 다시 돌아와서 RPC도 작성해주셨다면 전체 내용을 복사해주시면 되는데, 
혹시 어려우실 수 있으니 제꺼 참고하시라고 보여드립니다.

암튼 이렇게 작성하셔서 수정해주시면 됩니다.

참고로 말씀드리자면 Private Key앞에는 "0x"가 붙어있어야 하구요.
안붙어있음 직접 추가해주세요.

Coordinator_address는 "0x8D871Ef2826ac9001fB2e33fDD6379b6aaBF449c"로 수정해주세요.

그리고

cd ~/infernet-container-starter

위 경로로 이동하신 뒤

project=hello-world make deploy-container

입력해주세요.

이렇게 RPC, WALLET이 제대로 본인꺼로 변경됐는지 확인하기! 몇 초 ~ 몇 분 기다리면 나옵니다.

여기까지 되셨다면 이제 Ctrl+Z로 빠져나와주세요.

 

그리고 다시 한 번

docker ps

위 명령어 입력해주시고

위 화면처럼 CREATED와 STATUS의 시간이 minutes로 표현되면 기동 완료된겁니다.

☞위와 같이 restarting이 뜨면 안돼요.

 

그리고 본인의 Alchemy 사이트가서

이렇게라도 한 번 솟구쳤다면 상관없습니다.

이렇게 나왔는지 확인되었으면 이제 다음 챕터로 넘어가줍시다.


3. 추가적인 설정하기(트랜잭션 및 Call-Contract)

이제 새로 cmd창을 하나 켜서 똑같은 서버에 접속해주시고

mkdir foundry

위 명령어로 foundry 폴더 생성하고

cd foundry

해당 폴더로 이동하고

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

위 명령어로 설치해줍니다.

source ~/.bashrc

그리고 위 명령어로 업데이트해주고

foundryup

위 명령어 입력해서 실행해주세요.

이렇게 완료가 될겁니다.
 
이번엔 SDK를 설치해야되는데

cd ~/infernet-container-starter/projects/hello-world/contracts

위 명령어를 통해 해당 폴더로 이동해주시고

forge install --no-commit foundry-rs/forge-std

라이브러리 강제설치해주고

이렇게 뜨면 끝

forge install --no-commit ritual-net/infernet-sdk

sdk 강제설치해주시고 

이렇게 뜨면 끝

cd ../../../

위 명령어로 infernet-container-starter 폴더로 다시 이동해줍니다.
 
이제 새로운 cmd창을 하나 더 띄워서 접속해주시구요.

docker logs -f anvil-node

위 명령어를 입력해주시면

이런게 뜨는데 현재의 로그상황을 실시간으로 보여준다고 보시면 됩니다.
켜놓은 상태에서 아까 두번째 쉘로 다시 돌아와서

project=hello-world make deploy-contracts

위 명령어를 입력해주세요.

이렇게 뜰겁니다. 그 아래는 로그니 무시해주세요.

두 번째 창은 위 화면 같은 내용과 함께 아래에 또 어떤 내용이 뜰텐데, 마우스 스크롤 조금 올려서 successfully만 뜬거 확인하시면 됩니다.
 
그리고 세 번째 창은

이런 내용이 나오면 됩니다.

project=hello-world make call-contract

그 다음 다시 두번째 창으로 들어와서 위 명령어 입력해주시고요.

☞이때 해당 지갑에 최소 10달러 이상의 BASE ETH가 있어야됩니다.

두번째 창에는 빨간색 네모친 부분에 COMPLETE & SUCCESSFUL이 뜨면 되고

세번째 창에는 위와같은 트랜잭션 발생 성공하면 끝!

그리고 조금 기다리면

대충 요런게 뜨면 완전 성공!! <-- 굳이 안떠도 되는 부분이긴 합니다.

이제 세번째 창은 닫으셔도 됩니다.


4. Allowed_Addresses 추가하는 방법

일단

Filezilla를 통해 

위 경로로 와주세요.

/root/infernet-container-starter/projects/hello-world/contracts

 입니다.

그리고 그 안의 Makefile이라는 부분이 있는데요.

이걸 마우스 오른쪽을 눌러 보기/편집을 통해 메모장으로 연결해줍니다.

☞메모장으로 연결하는 방법은 조금만 아래로 내리시면 나옵니다.

그럼 이렇게 나올텐데요.

여기 네모친 부분들이 모두 아래와 같이 수정되어야 합니다.

  • sender -> config.json에 입력(수정)한 0x를 포함한 본인 메타마스크 지갑의 private key(개인키)
  • RPC_URL -> config.json에 입력(수정)한 Alchemy에서 받아온 base 메인넷의 HTTPS 주소.

수정하시고 저장하신 다음

로컬 파일 편집 완료 후 삭제에는 체크표시해주세요.

Filezilla로 다시 가시면 위와 같은 팝업창이 뜨는데 예 버튼을 클릭해주시면 됩니다.

 
이후 마우스 오른쪽을 클릭해서 새로고침을 클릭한 뒤 현재 시간으로 Makefile의 최종 수정이 변경됐나 확인해줍시다.

현재시간으로 바뀌면 잘 수정된거다.

그 다음 아래의 경로로 이동해주시면

/root/infernet-container-starter/projects/hello-world/contracts/script

Deploy.s.sol 이라는 파일이 있습니다. 
 
마찬가지로 마우스 오른쪽클릭해서 보기/편집을 눌러주시고

위와 같이 선택해야 메모장으로 열린다.

이런 창이 뜨면 가운데 "텍스트파일의 기본 편집기 사용"을 선택해주고 확인을 눌러주세요.

위 밑줄친 부분의 주소를 바꿔줘야 되는데요.

0x8D871Ef2826ac9001fB2e33fDD6379b6aaBF449c

위 주소로 입력해주면 됩니다. 대소문자 유의하세요!

이렇게 바꾸셨으면 마찬가지로 저장해주셔서

새로고침으로 바뀐거 확인해주시구요.

여기까지 확인되셨다면 이제 cmd창 하나 새로 띄워서 가상서버(ex.콘타보) 접속하신 후

project=hello-world make deploy-contracts

위 명령어를 입력해주신 다음

이렇게 나오는데요.

Deployed SaysHello에 표시된 지갑주소를 복사하세요.

그 다음 아까의 Filezilla의 경로에서 이번엔 

Deploy.s.sol이 아닌 CallContract.s.sol 파일을 마우스 오른쪽 눌러 보기/편집을 눌러줍니다.

그럼 위와 같은 메모장이 뜨는데요. 

밑줄친 지갑주소부분을 아까 복사한 Deployed SaysHello에 표시된 지갑주소로 바꿔주고 저장합니다.

마찬가지로 예 눌러주시고

새로고침해서 시간 변경됐는지 확인해줍니다.

그럼 BaseScan에서 이렇게 Contract Creation이라는 트랜잭션이 찍힌게 보일거에요!
 
그리고 만약 무분별하게 트랜잭션이 발생해서 가스비 뜯기는게 싫으시다면,
config.json 파일안의 allowed_addresses에 특정 지갑주소 - Deployed SaysHello에 표시된 지갑주소만(여러개일 경우엔 ','와 함께) ""와 함께 추가하면 해당 지갑에서 발생하는 트랜잭션만 success되도록 작업할 수 있다고 하니 참고하시기 바랍니다.

 

config.json은

/root/infernet-container-starter/projects/hello-world/container

위 경로에 존재하는 config.json 파일이구요.


예시는 아래처럼

allowed_addresses = ["지갑주소1", "지갑주소2", ...]

해주시면 됩니다.

빨간색 네모박스가 최종적으로 Config.json의 수정된 모습

여기까지 되셨으면 이제 5번으로!


5. 온체인 등록 및 테스트 확인하기

이제 마지막입니다.
https://basescan.org/address/0x8d871ef2826ac9001fb2e33fdd6379b6aabf449c#writeContract

 

EIP712Coordinator | Address 0x8d871ef2826ac9001fb2e33fdd6379b6aabf449c | BaseScan

The Contract Address 0x8d871ef2826ac9001fb2e33fdd6379b6aabf449c page allows users to view the source code, transactions, balances, and analytics for the contract address. Users can also interact and make transactions to the contract directly on BaseScan.

basescan.org

위 사이트 접속해서
 

위 Connect to Web3버튼 눌러서 BASE 지갑과 연결해주시구요.

이렇게 연결하신 뒤에 registerNode를 눌러서, node(address)에 본인 BASE 지갑주소 입력하신 뒤 Write를 눌러주세요.

한 1시간 걸린대요. (왜 1시간인진 모르겠음..)

그 다음 위에 보이는대로 activateNode 눌러서 Write 해줍시다.

 

그리고 basescan에서 https://basescan.org/ 본인 지갑주소 넣어서

 

Base Explorer

BaseScan allows you to explore and search the Base blockchain for transactions, addresses, tokens, prices and other activities taking place on Base (ETH)

basescan.org

이렇게 Register Node와 Activate Node 둘 다 뜨는거 확인하셨으면 이제 마지막 6번으로!


※6. Ritual Node 업데이트하기 - 신규진입자도 이거 진행해주세요

아마 3월 22일 이전에 Ritual 노드를 생성하신 분들은 버전이 0.1.0일텐데요.

이번에 이렇게 0.2.0으로 업데이트가 되었다고 합니다. 그래서 업데이트를 해줘야되는데

앞으로 나올 Ritual노드의 업데이트도 아래의 방법대로 진행될 가능성이 매우 높으니 이 방식을 따라한다고 보시면 되겠습니다.

신규진입자들도 이 작업은 노드를 바꿔줘야되기 때문에 아래의 작업을 따라서 진행하시면 됩니다.

 

일단 Filezilla에 먼저 본인 서버를 연결해서 접속해주시구요.

아래의 두 가지 루트 중 한 곳이라도 본인의 config.json 변경된 파일과 동일한지 확인해줍시다.


1) Container 경로

/root/infernet-container-starter/projects/hello-world/container

위 경로로 접속해서

이렇게 config.json을 확인하고

"마우스 오른쪽- 보기/편집"을 눌러서 rpc_url, private_key 등이 본인의 변경사항과 동일한지 확인해줍니다.


확인이 되었다면 Filezilla 좌측의 "로컬 사이트"라는 부분에 본인이 config.json을 다운받을 경로로 가주시구요.

해당 위치에서 Filezilla 우측의 "리모트 사이트"에서 아까 본인이 수정했던 내역으로 확인했던 config.json을 더블클릭해서 다운로드 해줍시다.

이따가 써야하거든요. 이걸 "원래의 config.json" 이라고 칭하겠습니다.

여기까지 되셨으면

project=hello-world make deploy-container

입력해주세요.

위 화면이 나오면 Ctrl+C를 눌러서 강제종료해주세요.

기존 이용자용과 신규이용자 용 따로따로 진행하시다가 3)모두 함께에서 같이 따라하시면 됩니다.


1) 기존 이용자 용

가상서버를 접속해주시구요.

제 가이드를 따라오셨다면

screen -ls

를 입력하면

스크린이 이렇게 생성되어있단걸 아실 수 있습니다.

screen -r 스크린넘버

이렇게 입력해주시면 스크린으로 접속이 됩니다.

ex) 위를 예시로 들면 "screen -r 18675"입력

 

그 다음 일단 도커를 중지해줘야 합니다. (이미 중지되어있다면 패스)

docker stop hello-world
docker stop anvil-node
docker stop deploy-node-1
docker stop deploy-fluentbit-1
docker stop deploy-redis-1

위 명령어를 한 줄씩 입력해서 중지해주고요.

docker ps

를 입력해서 위 캡쳐처럼 아무것도 안나오면 됩니다.

 

이제 그럼

cd ~

해주시고

rm -rf infernet-container-starter​

를 입력해서 폴더를 삭제해줍시다.

ls

 

를 입력하면 폴더가 사라졌을 겁니다.

 

Ctrl + A + D 를 눌러서 screen 을 빠져나와 주신 뒤

screen -X -S ritual_node kill

를 입력해서 screen을 삭제해주세요.


2) 신규 진입자용

신규진입자 분들은 일단 도커를 중지해줘야 합니다. 

docker stop hello-world
docker stop anvil-node
docker stop deploy-node-1
docker stop deploy-fluentbit-1
docker stop deploy-redis-1

위 명령어를 한 줄씩 입력해서 중지해주고요.

docker ps

를 입력해서 위 캡쳐처럼 아무것도 안나오면 됩니다.

 

이제 그럼

cd ~

해주시고

rm -rf infernet-container-starter

를 입력해서 폴더를 삭제해줍시다.

☞삭제가 안된다면 직접 타이핑하시면 됩니다.

ls

를 입력하면 폴더가 사라졌을 겁니다.

 

Ctrl + A + D 를 눌러서 screen 을 빠져나와 주신 뒤

screen -X -S ritual_node kill

를 입력해서 screen을 삭제해주세요.

 

 


3) 기존/신규 모두 함께 다시시작

이제 새로운 버전의 폴더를 다운받아줘야합니다.

git clone https://github.com/ritual-net/infernet-node.git

위 명령어를 입력해주세요.

이렇게 설치가 되면 끝

ls

ls를 다시 입력하면 이번엔 "infernet-node"라는 폴더가 생성됐을 겁니다.

 

확인되었다면

screen -S ritual

이라고 스크린을 다시 생성해주고

cd infernet-node

경로 이동해주시구요.

 

다시 Filezilla로 가줍니다.

이번엔 "리모트 사이트"에

/root/infernet-node

를 입력해서 root/infernet-node 경로로 가주시구요.

요 config.sample.json이라는 파일을 열어주세요.(마우스 오른쪽 - 보기/편집)

그럼 이런 메모장이 열리는데요.

다음과 같이 동그라미 친 부분만 수정해주시면 됩니다.

아래는 직접해야되는 변경사항입니다. 
본인 폴더에 다운로드 받았던 "원래의 config.json"의 내용으로 변경하세요!
"chain": {
    "enabled": true,
    "trail_head_blocks": 5,
    "rpc_url": "http://127.0.0.1:8545",   <--- alchemy에서 획득한 rpc_url
    "coordinator_address": "0x...",       <--- 변경했던 coordinator_address
    "wallet": {
      "max_gas_limit": 5000000,
      "private_key": "0x..."              <---- 본인 노드용 프라이빗키(0x포함)
    }
  },
  "snapshot_sync": {
    "sleep": 1.5,                         <---- 5로 변경해야됩니다.(호출횟수 줄이는 용도)
    "batch_size": 200                     <---- 100으로 변경하세요(호출횟수 줄이는 용도)
  },
  "docker": {
    "username": "username",               <---- 본인의 도커 username
    "password": "password"                <---- 본인의 도커 PAT
  },
  
  
    "containers": [
    {
      "id": "hello-world",
      "image": "ritualnetwork/hello-world-infernet:latest",
      "external": true,
      "port": "3000",
      "allowed_delegate_addresses": [],
      "allowed_addresses": [],            <---- 이전에 deliver compute 조치를 위해 넣었던 주소
      "allowed_ips": [],
      "command": "--bind=0.0.0.0:3000 --workers=2",
      "env": {}
    }
  ]
}

★ 만약 RPC call이 무수히 요청되어 VPS(가상서버)접속이 불가능하다고 나오면 batch_size를 100에서 50으로 줄이세요.

이전에 config.json에서 수정했던 내용들입니다. 기억하시죠?

수정이 필요한 부분만 아까 다운로드 받은 "원래의 config.json"에서 복사해서 붙여넣어주시면 되고,

추가적으로 snapshot_sync부분만 위의 내용대로 변경해줍시다.

위와 같이 변경되면 됩니다.

이제 그럼 위 내용을 Ctrl+A 누르신 뒤 Ctrl+C(복사)해주세요.

☞config.sample.json 파일은 저장은 하셔도 되고 안하셔도 됩니다.

 

이제 서버창에서

cp config.sample.json config.json

를 입력하시고

ls

를 눌러서

이렇게 나와있는거 확인하시고

nano config.json

을 입력해서

이렇게 뜬거 확인되셨다면 del 키를 통해 전부 삭제해주세요.

이렇게 되었다면 아까 복사했던 메모장 내용을 붙여넣기(마우스 오른쪽클릭) 해주세요.

이렇게 복사가 완료되었다면 Ctrl+X, Y, 엔터를 눌러서 저장해줍시다.

 

그 다음 Filezilla에서 "마우스 오른쪽-새로고침"을 눌러서

config.json의 변경시간이 현재시간으로 변경되었나 확인해주기.

☞혹은 "config.json 선택-마우스 오른쪽-보기/편집"을 눌러서 변경된 내용이 동일한지 확인해주기.

 

확인까지 되었다면

tag="0.2.0"
docker build -t ritualnetwork/infernet-node:$tag .

cd deploy
cp ../config.json config.json

위 4줄을 한 줄씩 입력해주시구요. (복사는 마우스 오른쪽)

이렇게까지 하시면 됩니다.

 

그리고

ls

눌러서

config.json 잘 있군

잘 복사됐는지 확인하신 뒤에

docker compose up -d

위 명령어 입력해서

started 다 잘 뜨고

docker ps

입력해서

1~2분 지나고나서도 restart만 없으면 됩니다.

이렇게 잘 돌아가는지 확인되면 끝!!

Ctrl+A+D눌러서 빠져나온 뒤 창 끄시면 됩니다.

잘돌아가나 확인은 Alchemy 통해서 total request확인하기!

마지막으로 본인의 Alchemy에서

노드가 activate 등록까지 완료가 되어야 이렇게 나타납니다.

이런식으로 Success rate 100%랑 Total request도 잘 뜨는거 확인하면 끝!


※참고사항!

만약 

docker container ls

위 명령어를 입력했을 때

이렇게 나오지만

 

 

알케미에서 이렇게 나오고 진행이 안되는 모습이 보여진다면

docker restart hello-world
docker restart deploy-node-1
docker restart deploy-fluentbit-1
docker restart deploy-redis-1

그래도 안되어서 Config.json 파일을 수정하셨다면

docker compose down

입력 후

docker compose up -d

입력하면 config.json이 적용됩니다.

지갑이 activate node가 되었는지 확인해보신 뒤 위 명령어를 입력해서 다시 실행해보세요!


그래도 안된다면 마지막 방법인데요. 저는 이 방법으로 해결했습니다. 

Alchemy의 call 횟수를 초과해서 나는 에러라

https://base-rpc.publicnode.com

위 RPC를 입력하시거나 사설 RPC를 따로 구매해서 이용하시면 call횟수 제한이 넉넉하게 바뀌어서 에러가 안나고 잘 돌아갑니다.

그래도 안된다면.... 디스코드에 문의보셔야 될 것 같습니다ㅠㅠ


여기가지가 Ritual Node 작업방법이었습니다!

이번 작업을 어렵다고 해야될지... 쉽다고 해야될지...ㅎㅎ
 
아무튼 작업하다 막히거나 모르시는 부분이 발생한다면 댓글이나 텔레그램을 통해 질문주시면 알려드릴게요!
 

소식과 내용을 빠르고 다양하게 접하고 싶으시다면 아래 그림(텔레그램)을 클릭해주세요!!

Designed by JB FACTORY