Chainlink 노드를 시작하는 방법에 대한 빠른 가이드

Nov 28 2022
블록체인에서 오라클이란?
오라클은 블록체인(오프체인) 데이터 소스에서 데이터를 가져와 스마트 계약에서 사용할 수 있도록 블록체인(온체인)에 저장하는 데이터 피드입니다. 이는 Ethereum에서 실행되는 스마트 계약이 블록체인 네트워크 외부에 저장된 정보에 액세스할 수 없기 때문에 필요합니다.
Shubham Dhage의 원본 이미지

오라클은 블록체인(오프체인) 데이터 소스에서 데이터를 가져와 스마트 계약에서 사용할 수 있도록 블록체인(온체인)에 저장하는 데이터 피드입니다. 이는 Ethereum에서 실행되는 스마트 계약이 블록체인 네트워크 외부에 저장된 정보에 액세스할 수 없기 때문에 필요합니다.

좋아요, 어떤 종류의 오라클이 있나요?

Oracle은 중앙 집중화 및 분산화될 수 있습니다. 중앙 집중식 오라클은 한 사람이 제어하며 대부분 단일 서버에 위치할 수 있습니다. 분산형 오라클은 서로 다른 조직에서 제어하는 ​​여러 서버로 구성되며, 차례로 합의를 기반으로 일반적인 오라클 결정을 내립니다.

가장 인기 있는 오라클 네트워크는 Chainlink 입니다. 오라클을 배포하는 방법을 알려드리겠습니다. 이 기사에서 노드를 설치하여 시작하겠습니다.

Chainlink 분산 오라클 네트워크는 모든 블록체인에서 고급 스마트 계약을 지원하기 위해 변조 방지 입력, 출력 및 계산을 제공합니다.

노드를 실행하려면 로컬 테스트를 위해 컴퓨터에서 사용하거나 클라우드 서버에서 프로덕션 버전을 실행할 수 있습니다. 이 가이드에서는 VPS에서 노드를 실행하는 옵션을 고려할 것입니다.

PostgreSQL용 DigitalOcean 드롭릿 및 데이터베이스 클러스터에서 생성했습니다 .

DigitalOcean 대시보드

노드의 경우 Chainlink는 다음 시스템 요구 사항을 권장합니다.

  • 최소: Chainlink 노드 실행을 시작하려면 최소 2개의 코어와 4GB의 RAM이 있는 머신이 필요합니다.
  • 권장 사항: Chainlink 노드를 실행하기 위한 요구 사항은 노드 서비스가 확장하는 작업의 수에 따라 확장됩니다. 100개 이상의 작업이 있는 노드의 경우 최소 4개의 코어와 8GB의 RAM이 필요합니다.
  • 최소: 최소 2개의 코어, 4GB의 RAM 및 100GB의 스토리지.
  • 권장 사항: 100개 이상의 작업을 지원하려면 데이터베이스 서버에 최소 4개의 코어, 16GB RAM 및 100GB 스토리지가 필요합니다.

curl -sSL https://get.docker.com/ | sh
sudo systemctl start docker
sudo usermod -aG docker $USER
exit
# log in again

mkdir ~/.chainlink

저는 이더리움 메인넷용 노드를 실행할 것입니다. 따라서 ETH_CHAIN_ID=1 매개변수를 지정하겠습니다 . 귀하의 케이스에 누구의 ID가 있는지 확인하려면 웹사이트 chainlist.org 에서 ID를 찾아야 합니다.

이더리움 메인넷의 예

환경 파일을 만들고 필요한 모든 변수를 지정해 보겠습니다.

echo "ROOT=/chainlink
LOG_LEVEL=debug
ETH_CHAIN_ID=1
CHAINLINK_TLS_PORT=0
SECURE_COOKIES=false
ALLOW_ORIGINS=*" > ~/.chainlink/.env

또한 Ethereum 클라이언트가 필요하며 로컬에서 실행하거나 Alchemy , Infura , QuikNode , Chainstack , Moralis 와 같은 타사 서비스를 사용할 수 있습니다 .

높은 한도, 노드의 빠른 응답성, 유익한 대시 보드로 편리한 관세 수수료를 위해 Alchemy를 사용하는 것을 선호합니다.

연금술 가격

Alchemy를 사용하려면 체인과 네트워크를 선택하여 새 응용 프로그램을 만들어야 합니다.

Alchemy의 애플리케이션 생성 창

애플리케이션이 생성되면 대시보드에서 분석을 사용할 수 있습니다. 노드와 상호 작용하려면 WebSocket을 통해 연결할 링크를 내보내야 합니다.

연금술 대시보드

설정에서 wss://<URL> 링크를 찾아야 합니다.

Chainlink 구성에 Ethereum 노드에 대한 연결을 추가해 보겠습니다.

echo "ETH_URL=wss://<URL>" >> ~/.chainlink/.env

테스트 중이라면 ?sslmode=disableURL 끝에 추가할 수 있습니다. 그러나 프로덕션 노드에서 이 작업을 수행 해서는 안 됩니다.

연결 문자열 템플릿:

postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE

echo "DATABASE_URL=postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE" >> ~/.chainlink/.env

작성 시점의 현재 버전은 1.10.0입니다. 최신 버전은 링크 에서 볼 수 있습니다 .

노드가 루트 사용자 아래에서 시작된 경우 이미지의 루트 버전만 선택해야 합니다.

버전을 변경하려면 매개변수를 원하는 버전으로 바꾸십시오.

스마트 계약/체인링크:<버전>

예를 들어 내 경우에는 루트 버전을 실행합니다. 이를 위해 다음 명령을 사용합니다.

cd ~/.chainlink && docker run -p 6688:6688 -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink:1.10.0-root local n

      
                

다음으로 노드는 운영자의 이메일과 비밀번호를 입력하도록 요청합니다. 모든 것이 성공적이면 노드가 시작되고 터미널에 많은 메시지가 표시됩니다.

나중에 노드를 시작하려면 키를 저장해야 합니다. 이를 위해 노드를 중지하고 다음 작업을 수행합니다.

교환원 이메일 저장:

echo "[email protected]" > ~/.chainlink/.api

echo "password" >> ~/.chainlink/.api

echo "my_wallet_password" > ~/.chainlink/.password

cd ~/.chainlink && docker run --restart=always  -p 6688:6688 -d --name chainlink -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink:1.10.0-root local n -p /chainlink/.password

좋습니다. 노드가 실행 중이므로 이제 로컬 장치에서 노드에 연결하려고 합니다. 이렇게 하려면 노드가 있는 서버에 대한 SSH 터널을 만들어야 합니다.

ssh <USERNAME>@<IP> -L 6688:localhost:6688 -N

터미널 탭을 열어두고 브라우저에서 링크를 클릭합니다.http://localhost:6688/

위에서 지정한 운영자의 이메일과 비밀번호를 입력하십시오.

Chainlink 운영자 로그인 UI

좋습니다. 모든 것이 성공적으로 설정되었습니다!

체인링크 오퍼레이터 UI

이제 오라클과 작업을 생성할 수 있습니다.

다음 글에서는 오라클을 배포하고 노드에 연결하는 가이드를 작성했습니다.

운영자 인터페이스에 대한 보안 액세스 및 Oracle 작업 성능을 포함하는 보다 구체적인 설정에 대해서는 다음 링크를 읽는 것이 좋습니다.