상세 컨텐츠

본문 제목

Running a Chainlink Node

Blockchain

by Yongari 2023. 4. 5. 09:47

본문

Running a Chainlink Node

이 가이드는 도커를 사용하여 로컬에서 체인링크 노드를 실행하는 방법을 알려드립니다. 체인링크 노드는 이더리움 세폴리아 또는 고얼리 테스트넷에 연결하도록 구성됩니다. 

 

 

소스에서 실행

소스에서 체인링크 노드를 실행하려면 다음 지침을 따르세요. 하지만, 체인링크 노드는 Docker로 실행하는 것이 좋습니다. 이는 저희는 Github의 리포지토리에서 지속적으로 코드를 빌드하고 배포하기 때문에 노드를 실행하기 위해 완전한 개발 환경이 필요하지 않기 때문입니다.


기타 지원 네트워크

체인링크는 블록체인에 구애받지 않는 기술입니다. 링크 토큰 컨트랙트 페이지에서 링크 토큰을 지원하는 네트워크를 자세히 확인할 수 있습니다. 이러한 블록체인에 데이터를 제공하도록 노드를 설정할 수 있습니다.


가나슈에서 체인링크 노드 실행하기

가나슈는 모의 테스트넷입니다. 가나슈에서 노드를 실행할 수는 있지만 공식적으로 지원되지는 않습니다. 대부분의 노드 운영자는 개발 및 테스트를 위해 지원되는 테스트넷 중 하나를 사용해야 합니다.

 

 

Requirements

 

요구사항 페이지에 설명된 대로, 체인링크 노드와 PostgreSQL 데이터베이스를 실행할 수 있는 충분한 리소스가 있는지 확인하세요.
도커 데스크톱을 설치합니다. 도커 컨테이너에서 체인링크 노드와 PostgreSQL을 실행하게 됩니다.
체인링크 노드는 활성 웹소켓 연결로 이더리움 클라이언트에 연결할 수 있어야 합니다. 자세한 내용은 이더리움 클라이언트 실행하기를 참조하세요. 이 튜토리얼에서는 외부 서비스를 클라이언트로 사용할 수 있습니다.

 

요구사항 페이지

더보기

체인링크 노드 요구 사항
LINK
0개의 링크로 체인링크 노드를 운영할 수 있지만, 해당 노드는 먼저 일정량의 링크를 획득할 때까지 예치금이 필요한 요청에 참여할 수 없습니다.

요청자는 노드가 요청을 이행하지 않을 경우 모든 노드가 위약금으로 예치해야 하는 LINK의 양을 지정할 수 있습니다. 그러나 페널티 수수료는 선택 사항이므로 모든 요청에 필요한 것은 아닙니다.

체인링크 노드
CPU 및 메모리 요구 사항:

최소: 체인링크 노드 실행을 시작하려면 최소 2개의 코어와 4GB의 RAM이 있는 컴퓨터가 필요합니다.
권장: 체인링크 노드를 실행하기 위한 요구사항은 노드가 서비스하는 작업의 수에 따라 확장됩니다. 100개 이상의 작업이 있는 노드의 경우, 최소 4개의 코어와 8GB의 RAM이 필요합니다.


PostgreSQL 데이터베이스
버전: 11 이상
최소: 코어 2개 이상, RAM 4GB, 스토리지 100GB.
권장: 100개 이상의 작업을 지원하려면 데이터베이스 서버에 최소 4개의 코어, 16GB의 RAM 및 100GB의 스토리지가 필요합니다.
DB 호스트가 로그에 대한 액세스 권한을 제공하는지 확인하세요.

AWS에서 노드를 실행하는 경우 전용 코어 시간이 있는 인스턴스 유형을 사용하세요. 버스터블 성능 인스턴스는 CPU 크레딧 수가 제한되어 있으므로 일관된 성능이 필요한 체인링크 노드를 실행하는 데 사용해서는 안 됩니다.

이더리움 클라이언트
블록체인과의 통신을 위해서는 이더리움 클라이언트에 대한 연결도 필요합니다. 자체 이더리움 클라이언트를 실행하기로 결정했다면 별도의 컴퓨터에서 실행하는 것이 좋습니다. 이더리움 클라이언트의 하드웨어 요구 사항은 시간이 지남에 따라 변경될 수 있습니다. 자세한 내용은 이더리움 클라이언트 실행하기를 참조하세요.

Using Docker

Run PostgreSQL

Docker 컨테이너에서 PostgreSQL을 실행합니다. 내 비밀 비밀번호를 사용자 비밀번호로 바꿀 수 있습니다.

 

docker run --name cl-postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres

 

컨테이너가 실행 중인지 확인합니다(상태 업). 5432 포트는 0.0.0.0:5432->5432/tcp로 게시되어 있으므로 Docker 외부에서 액세스할 수 있다는 점에 유의하세요.

 

docker ps -a -f name=cl-postgres

CONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS                    NAMES
dc08cfad2a16   postgres   "docker-entrypoint.s…"   3 minutes ago   Up 3 minutes   0.0.0.0:5432->5432/tcp   cl-postgres

 

Configure your node

체인링크 데이터를 저장할 로컬 디렉터리를 만듭니다: (세폴리아)

mkdir ~/.chainlink-sepolia

 

다음 명령을 실행하여 환경 파일을 생성하고 실행 중인 네트워크에 맞는 변수로 채우세요. 사용 가능한 구성 변수의 전체 목록을 보려면 여기를 클릭하세요. 변경값을 외부 이더리움 공급자가 제공한 값으로 업데이트해야 합니다. 내 비밀 비밀번호의 값을 PostgreSQL 실행에서 선택한 비밀번호로 업데이트합니다.

echo "LOG_LEVEL=debug
ETH_CHAIN_ID=11155111
CHAINLINK_TLS_PORT=0
SECURE_COOKIES=false
ALLOW_ORIGINS=*
ETH_URL=CHANGEME
DATABASE_URL=postgresql://postgres:mysecretpassword@host.docker.internal:5432/postgres?sslmode=disable" > ~/.chainlink-sepolia/.env

IMPORTANT
로컬에서 테스트하는 것이므로 DATABASE_URL 끝에 ?sslmode=disable을 추가합니다. 그러나 프로덕션 노드에서는 절대로 이 작업을 수행해서는 안 됩니다.

 

 

체인링크 노드를 시작합니다. 이제 도커 이미지를 실행할 수 있습니다. <버전>을 원하는 버전으로 바꿉니다. 태그 버전은 체인링크 도커 허브에서 확인할 수 있습니다. 최신 버전은 작동하지 않습니다.

cd ~/.chainlink-sepolia && docker run --platform linux/x86_64/v8 --name chainlink  -v ~/.chainlink-sepolia:/chainlink -it --env-file=.env -p 6688:6688 --add-host=host.docker.internal:host-gateway smartcontract/chainlink:<version> local n

이미지를 처음 실행하면 비밀번호와 확인을 요청하는 메시지가 표시됩니다. 이 비밀번호는 생성된 키스토어 파일의 잠금을 해제하는 데 사용할 수 있는 지갑 비밀번호입니다. 그런 다음 API 이메일과 비밀번호를 입력하라는 메시지가 표시됩니다. 이 이메일과 비밀번호는 GUI 인터페이스용 API를 노출하는 데 사용되며, 노드에 로그인할 때마다 사용됩니다. 노드를 다시 실행할 때 -p 옵션에 지갑 키 비밀번호가 포함된 텍스트 파일 경로를, -a 옵션에 API 이메일과 비밀번호가 포함된 텍스트 파일을 가리키는 경로를 지정할 수 있습니다. 방법은 여기를 참조하세요.

 

컨테이너가 실행 중인지 확인합니다(상태 업). 6688 포트는 0.0.0.0:6688->6688/tcp로 게시되어 있으므로 Docker 외부에서 액세스할 수 있다는 점에 유의하세요.

docker ps -a -f name=chainlink

CONTAINER ID   IMAGE                            COMMAND               CREATED         STATUS                   PORTS                    NAMES
feff39f340d6   smartcontract/chainlink:1.12.0   "chainlink local n"   4 minutes ago   Up 4 minutes (healthy)   0.0.0.0:6688->6688/tcp   chainlink

 

이제 http://localhost:6688 로 이동하여 체인링크 노드의 UI 인터페이스에 연결할 수 있습니다. VPS를 사용하는 경우, 6688:localhost:6688에 대한 노드에 SSH 터널을 생성하여 GUI에 연결할 수 있습니다. 일반적으로 ssh -i $KEY $USER@$REMOTE-IP -L 6688:localhost:6688 -N으로 이 작업을 수행합니다. 체인링크 노드 전용 포트를 공개적으로 개방하는 것보다 SSH 터널을 사용하는 것이 좋습니다. 노드를 보호하는 방법에 대한 자세한 내용은 보안 및 운영 모범 사례 페이지를 참조하세요.

 

출처 : https://docs.chain.link/chainlink-nodes/v1/running-a-chainlink-node

 

Running a Chainlink Node | Chainlink Documentation

Chainlink is the most widely used oracle network for powering universally connected smart contracts, enabling any blockchain to access real-world data & APIs.

docs.chain.link

 

'Blockchain' 카테고리의 다른 글

What is Truflation ? 트루플레이션이란?  (0) 2023.05.05
Chainlink Node Fulfilling Requests  (0) 2023.04.06
Random Numbers: Using Chainlink VRF  (0) 2023.04.04
Chainlink Single Word Response  (0) 2023.04.04
Obol Key concepts  (0) 2023.03.30

관련글 더보기