Avail 노드를 돌리세요! Madara | Karnot 앱체인 구축하기 - 2편

250x250
반응형
728x90

Avail 노드라고 Infrastructure 기반의 노드가 있습니다.

최근 인프라기반의 블록체인 프로토콜들이 강세를 보이고 있고, 그만큼 투자나 활용성 측면에서도 눈에 띄는 성과를 보이고 있기 때문에, 놓치면 안되는데요. 이 Avail 노드도 그러한 녀석이기 때문에 놓치시지 마시기 바랍니다.

지난 번에 1편을 소개해드렸으니 이번엔 2편차례입니다.

퀘스트가 종료됐습니다.

조만간 새로운 작업이 다시 나온다고 하니 그걸로 봐주시면 될 것 같아요.

2편은 안보셔도 됩니다!

 

이번 2편은 지난번에 구축완료한 Avail 노드를 기반으로 Clash of Node 챌린지의 일환인 Dymension Rollup과 Madara | Karnot Appchain 작업 중 앱체인을 다룬다고 보시면 되는데요.

일단 Madara | Karnot 앱체인은 카르노라는 노드를 Avail을 이용해 구현하는 말 그대로 Application Chain의 줄임말인 앱체인이라고 보시면 되겠습니다.

 

Madara는 클라우드 컴퓨팅의 솔루션 프레임워크라고 보시면 되는데.. 암튼 복잡한건 넘어가고 기술입니다. 기술...

이 Karnot의 노드를 Madara라는 솔루션을 이용해서 작동시키는데, 거기에 Avail의 모듈러 기술을 활용한다~~~

정도로 이해하시면 되겠습니다.

 

그건 그거고 우리는 에드 노릴려고 하는건데 뭐 이런거까지 딥하게 알 필요는 없잖아요?

앱체인 구동하러 가겠습니다.

 

1편을 보실 분들은 아래의 링크로 들어가시면 됩니다!

2024.02.15 - [크립토 에어드랍 작업/노드 운용하기] - Avail 노드를 돌리세요! 지금이 마지막기회입니다.

 

그럼 이제 2편 가시죠!


1. Madara | Karnot Appchain(앱체인) 설정하기

일단 이 마다라 | 카르노 앱체인을 설정하려면 다음과 단계가 필요한데요.

  1. Madara | Karnot Appchain 설정하기
  2. Avail Goldberg와 테스트넷 통합하기
  3. Faucet 받은 토큰으로 활성화시키기
  4. Appchain 리퀘스트 제출하기

라고 보시면 되겠습니다.

 

참고로 3번의 Faucet은 1편에 받는 방법 설명했으니 참고하시면 되겠습니다.

 

그럼 Madara | Karnot Appchain 설정하러 가볼까요? 이제 편의상 마다라 앱체인이라 부르겠습니다.


● 마다라 앱체인 설정하기

 

기본적으로 노드는 지난 1편에서 Avail을 구동시키는 서버에서 그대로 설치할 것이기 때문에

같은 서버를 이용해주셔야 됩니다.

해당 서버에 일단 도커를 설치해야됩니다.

sudo apt install git

위 명령어를 입력해서 git을 설치해주시고

아래의 명령어를 하나하나 입력해서 도커를 설치해줍시다.

sudo apt install apt-transport-https ca-certificates curl software-properties-common

중간에 Y 한 번 눌러주시고

이렇게 뜨면 완료

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

이렇게 뜨면 완료

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

중간에 엔터 한 번 쳐주시고

이렇게 뜨면 완료

여기까지 완료되셨으면 도커 설치해주시고

sudo apt install docker-ce

중간에 Y 한 번 눌러주시고

이렇게 나오면 완료

sudo systemctl start docker

도커 실행시켜 주신 다음

sudo systemctl enable docker

도커 활성화해주시면 끝납니다.

이렇게 나오면 끝

 

혹시 모르니 한 번씩 패키지들 업데이트 해주면 좋은데요.

sudo apt-get update -y && sudo apt-get upgrade -y

sudo apt install build-essential

sudo apt install pkg-config

sudo apt install libssl-dev

sudo apt install clang

sudo apt install protobuf-compiler

위 명령어를 한 줄씩 복사 붙여넣기해서 업데이트해주세요.

한 번에 모두 복사해서 붙여넣으면 에러납니다.(다시 밀고 설치하고 싶지 않으시다면 이게 제일 중요)

여기까지 완료되셨다면 이제 마다라를 설치하러 가겠습니다.

git clone https://github.com/karnotxyz/madara-cli

위 명령어 입력해서 설치해줍시다.

이렇게 뜨면 완료

cd madara-cli

그 다음 현재 위치를 마다라 폴더로 옮기고

cargo build --release

위 명령어 입력해서 마다라를 빌드해주세요. 한 5분정도 기다리시면 됩니다.

마지막 Finished 뜨면 끝.

여기까지 되셨나요? 그럼 이제 아래 명령어를 입력해서

./target/release/madara init

설정을 초기화해주면 되는데

아래의 Flow를 따라하시면 됩니다.

(madara)뒤에 원하는 앱체인 이름을 입력하면된다. 나는 metaboo로 입력
그 다음 이렇게 나오면 Sovererign이 맞으니까 바로 엔터 눌러준다.
Avail이 맞으니까 바로 엔터 눌러준다.

위 3개가 완료되면 아래와 같이 나타나게 됩니다.

 

여기 중간의 Avail address는 Faucet을 넣어서 구동시켜줘야되는 아주아주 중요한 부분인데, 우리는 저 지갑을 안쓸겁니다. 

1편에서 Avail 지갑 하나 새로 만들었잖아요? 그걸 넣어줘야되는거죠!

지갑주소 변경해줍시다.


2. 마다라체인 Avail 지갑주소 변경해주기

보시면 위 내용처럼 지갑을 변경하려면 config file을 열어서 수정하라고 합니다.

/root부터 .json까지를 복사해주시면 되는데 

vi /root/.madara/app-chains/설정한 앱체인이름/da-config.json

위 명령어를 복사해서 "설정한 앱체인이름"만 본인이 수정한 이름으로 변경한 뒤 붙여넣어서 실행해주세요.

이런식으로 입력해주시면 됩니다.

그러면

이렇게 나오는데 흰색으로 네모친 부분인 "seed"와 "address"부분을 수정해주시면 됩니다.

 

중요한 점!!

해당 지갑은 1편의 Avail Faucet을 받은 지갑에 대한 Seed와 Address입니다.

다른 지갑 넣으시면 안돼요!!

  • "Seed"에는 지갑의 시드구문을 복사해서 붙여넣어 주시면 됩니다.
  • "Address"에는 지갑주소를 복사해서 붙여넣어 주시면 됩니다.

혹시 시드구문과 지갑주소를 모르신다면

2024.02.14 - [크립토 에어드랍 작업/에어드랍 작업 정리] - [크립토 지갑안내] 아직도 메타마스크 쓰시나요? 이 지갑은 어떠세요?

 

[크립토 지갑안내] 아직도 메타마스크 쓰시나요? 이 지갑은 어떠세요?

아직도 메타마스크만 쓰고 계시진 않으신가요? 혹시 다른 지갑으로 이용하기엔 꺼려지시나요? 그러한 마음은 잠시 접어두고 위 두 지갑을 한 번 이용해보시는건 어떨까 싶습니다! 두 지갑 모두

metaboo.tistory.com

위 게시글을 참조바랍니다.

 

수정하는 방법은 키보드의 i를 입력하시고, 방향키로 커서를 옮기실 수 있습니다.

i를 누른 뒤 커서를 옮겨 지울 부분을 지운 모습

그 다음 지울 부분으로 커서를 옮긴 뒤 del 키나 백스페이스를 눌러주시면 지워집니다.

시드는 띄어쓰기 포함하여 마우스 오른쪽을 클릭해 붙여넣으면 된다.

완료되셨다면 복사한 것을 붙여넣는 방법은 붙일 곳에 키보드커서를 옮겨놓은 뒤, 마우스 오른쪽을 누르시면 되구요.

esc를 누른 뒤 입력하면  좌측 하단에 나타난다.

다 붙여넣으셨다면 esc를 한 번 눌러주신 뒤, :(콜론 - shift + ;)을 누른 뒤 wq!를 입력한 뒤 엔터를 눌러주시면 됩니다.

그럼 위 화면처럼 정상적으로 빠져나와지면서 설정값이 저장됩니다.


3. 서버 기동하기

screen -S madara

위 명령어를 입력해주시고

 

./target/release/madara run

위 명령어를 실행시켜주세요.

그럼 위 화면처럼 아까 설정했던 이름의 app chain이 나오는데 엔터눌러주세요.

그럼 이렇게 나오는데 패키지 1500개 이상 배포되는 상황이라 꽤 기다려주시면 됩니다...

Finished라고 나오면 성공이다.

그리고 끝에 faucet 받았는지 묻는 내용이 나오면 Y를 눌러줍시다.

 

그럼 이런식으로 나오면 끝입니다.

 

이제 CTRL + A + D로 세션을 종료해주세요. 그래도 노드는 돌아갑니다.

참고로, Avail 노드가 잘 작동되지 않을 수도 있으니까 몇 일 뒤에 다시 한 번 노드가 잘 돌아가는지 확인해주세요.
만약 실행 중이지 않다면 아래의 다시 명령어를 입력해주셔야 됩니다. 

./target/release/madara run


노드가 정상적으로 실행 중인지 확인하는 방법은

screen -ls


위 명령어를 입력해주시면 다음과 같이 뜨는데요.

이 화면에선 32173이 그 숫자다.


.madara 앞에 있는 숫자를 복사해서

screen -x 숫자


를 입력하시면 실행 중인지 다시 확인하실 수 있습니다.

누르면 잘 나온다.

※참고사항
노드가 실행 중인 상태에서 화면 빠져나오기: Ctrl + A + D
노드 종료하며 화면 빠져나오기: Ctrl + D
안되면
screen -X -S 스크린숫자(ex.32173) kill

4. 마다라 탐색기 실행하기

이제 탐색기를 통해 리퀘스트를 제출해야되는데요.

 

저와 똑같이만 하셨다면 다음의 경로로 이동하는 명령어가 먹힐거에요.

cd ~
cd avail-node/madara-cli

위 명령어를 통해 경로로 와주시고

./target/release/madara explorer --host=XX.XX.XX.XX

위의 XX.XX.XX.XX를 본인의 서버 IP주소로 바꿔서 명령어를 입력해주세요.

이렇게 나오면 끝

 

자 그럼 이제 인터넷 주소창에

http://XX.XX.XX.XX:4000/testnet/

위 주소를 입력해주세요. XX.XX.XX.XX는 본인이 방금 바꾼 IP주소입니다.

 

그 다음 이렇게 나오는 창의 오른쪽의 Mainnet을 Testnet으로 변경해주세요.

 

근데 만약

위 화면처럼 0으로 나와도 어쩔 수 없습니다.

지금 Avail 테스트넷 RPC 상태가 맛이 갔거든요. 간헐적으로 들어와서 HOXY 숫자가 잘 올라가는지만 종종 확인해줍시다.


5. Avail 리더보드에 Appchain 표시하기 - json파일 생성하기

이제 메모장을 실행하셔서 아래의 내용을 일단 복사해서 붙여넣어 주세요.

{
  "name": "내 앱체인 이름",
  "logo": "400x400 로고 링크",
  "rpc_url": "http://XX.XX.XX.XX:9944",
  "explorer_url": "http://XX.XX.XX.XX:4000",
  "metrics_endpoint": "http://XX.XX.XX.XX:9615/metrics",
  "id": "uuid 따온 것"
}

순서대로 설명을 드리자면

name에는 본인이 쓸 앱체인의 이름을 넣어주시구요.

logo는 이 사이트에 접속하셔서 400x400기반의 이미지파일을 올려주시면 되는데

위 업로드하기를 누르시고

업로드버튼 누르시고

위 주소를 복사해서 인터넷에 검색하신 다음

이미지를 마우스 오른쪽을 눌러 링크복사를 하시면 됩니다. 참고로 png기반으로 복사가 되어야 하니,

확장자가 png인 이미지를 사용해서 올려주시면 되겠습니다.

 

rpc_url은 본인 서버의 IP주소와 포트 9944(바꾸면 안됨)

explorer_url은 4번의 대시보드 접속했던 IP주소와 포트 4000 그대로

metrics_endpoint는 본인 서버의 IP주소와 rpc_url과 겹치지 않는 포트 9615(바꾸면 안됨)

id는 이 사이트에 접속해서 

상단의 Copy를 눌러서 붙여넣어 주시면 됩니다.

 

완성된 예시

그리고 이 메모장을 저장해주시면 되는데,

위 id에 해당되는 uuid를 이름으로 한 json파일로 저장해주세요.

저장예시. 파일의 이름은 본인이 획득한 uuid,           확장자는 json이다.


6. Avail 리더보드에 Appchain 표시하기 - Github Fork하기

이제 깃헙으로 포크해야되는데요. 깃헙계정은 있다는 전제하에 진행하겠습니다.

GitHub - karnotxyz/avail-campaign-listing

 

GitHub - karnotxyz/avail-campaign-listing

Contribute to karnotxyz/avail-campaign-listing development by creating an account on GitHub.

github.com

위 사이트에 일단 접속해주시고

 

우측 상단을 통해 로그인해주신 뒤에

동그라미 친 Fork를 눌러주세요.

 

뭐 안하시고 바로 우측 하단의 Create Fork를 눌러주세요.

 

그럼 본인이 Fork한 Git의 이런 화면이 나오는데 동그라미친 app_chains를 눌러주시구요.

 

우측의 Add File을 눌러서 upload files를 누르신 다음

여기에 아까 저장한 json 파일을 선택해서 올려주세요.

 

그 다음 스크롤 아래로 내리셔서 Commit Changes를 눌러주시고

바로 나오는 화면에서

Contribute를 눌러서 Open Pull request를 눌러주세요.

그 다음 Create Pull Request를 눌러주시고

대충 제목은 "Add AppChain 내 앱체인 이름”, 설명엔 “This is my first Avail AppChain” 이런식으로 작성해주시고 하단의 Create pull request를 눌러주시면 됩니다.

 

근데 이렇게 해도 만약 저처럼

이런 에러가 뜬다면 

 

3번째는 1번째가 안되었기 때문에 안된거라 1번째만 수정해주면 되는데요.

https://velog.io/@eastshine94/vscode-%EC%A0%80%EC%9E%A5-%EC%8B%9C-prettier-%EB%8F%99%EC%9E%91

 

velog

 

velog.io

위 링크 들어가서 따라하셔서 해당 프로그램으로 json파일을 다시 생성/저장해주시면 됩니다.


2월 12일 기준, 

위와 같은 공지가 나왔습니다.

 

요약하자면 Karnot의 마다라가 새로운 앱 체인을 병합하는 것을 잠시 중단되서 열릴 때까지는 prettier관련된 에러가 계속 발생한다는 뜻입니다. 다시 열리면 그 때 바로 진행하시면 됩니다!!


이 이후로는 몇 개 안남았는데요.(진짜 정말 간단함!!)

다시 열리게 되면 그 때 추가적으로 작성하겠습니다. (저도 못해서요...)

종료됐답니다;;

 

새로운 퀘스트로 다시 찾아온다네요.....


이제 Rollup Infra만 남았네요!

 

해당 부분역시 3편으로 뵙겠습니다!

 

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

 

Designed by JB FACTORY