개요

docker compose를 사용하여 하나의 부트 노드와 네 개의 검증자 노드로 구성된 자체 로컬 Story 네트워크를 쉽게 설정할 수 있습니다. 이 로컬 네트워크를 통해 Story 네트워크의 합의 계층을 테스트하거나 사전 컴파일된 프리미티브인 IP 그래프를 사용하여 애플리케이션을 배포하여 다양한 테스트를 수행할 수 있습니다. 또한 필요에 따라 언제든지 네트워크를 재설정할 수 있습니다.

로컬 Story 네트워크 실행

Story 로컬 네트워크 실행에 대한 더 자세한 정보는 다음 저장소를 참조하세요: https://github.com/piplabs/story-localnet

전제 조건

로컬 네트워크를 설정하려면 Docker가 필요합니다.

1단계 - Docker 시작

Docker를 실행해주세요.

2단계 - 저장소 복제

세 개의 저장소를 복제해야 합니다: story, story-geth, 그리고 story-localnet.
세 개의 저장소가 모두 동일한 하위 폴더 내에 위치하도록 하세요.

# clone repositories
git clone https://github.com/piplabs/story.git
git clone https://github.com/piplabs/story-geth.git
git clone https://github.com/piplabs/story-localnet.git

3단계 - 노드 시작

story-localnet 프로젝트로 이동하여 로컬 네트워크를 시작합니다.

# move to story-localnet
cd story-localnet

# start story local network
./start.sh

4단계 - 노드 종료

Story 로컬 네트워크를 중지하려면 아래 스크립트를 실행하면 됩니다.

# terminate story local network
./terminate.sh

제네시스에서 계정에 토큰을 할당하는 방법

로컬 네트워크에서 테스트를 위해 계정에 IP 토큰을 할당해야 할 수 있습니다.
제네시스 블록에서 계정에 토큰을 할당하려면 다음 단계를 따르세요:

  1. 다음의 alloc 섹션에 계정 정보를 추가합니다 config/story/genesis-geth.json:
"<hex-encoded-account-address>": {
  "nonce": "0x0",
  "balance": "<hex-encoded-balance>",
  "code": "0x",
  "storage": {}
}
  1. 다음 update-genesis-hash.sh 스크립트를 실행하여 제네시스 블록 해시를 업데이트합니다:
./update-genesis-hash.sh

Story 로컬 네트워크와 상호 작용하는 방법

기본적으로 Story 로컬 네트워크는 상호 작용을 위해 다음 포트가 열려 있습니다.

포트서비스역할
8545story-gethStory 실행 클라이언트의 RPC 서버 엔드포인트
1317story-nodeStory 합의 클라이언트와 상호 작용하기 위한 API 서버 엔드포인트
26657story-nodeStory 합의 클라이언트를 위한 cosmos-sdk RPC 서버의 엔드포인트

모니터링 시스템

이 설정에는 블록체인 네트워크에 대한 중앙 집중식 메트릭스와 로그 시각화를 제공하는 모니터링 스택이 포함되어 있습니다
시각화를 위한 도구에는 다음이 포함됩니다 Prometheus,Loki, Promtail, 그리고 Grafana, 모두 Docker Compose를 통해 통합되어 있습니다.

구성 요소 및 접근 정보

서비스역할기본 포트접근 URL
Prometheus성능 모니터링을 위해 노드와 자체에서 메트릭을 수집9090http://localhost:9090
LokiPromtail을 통해 네트워크 노드의 로그를 집계하고 저장3100http://localhost:3100
PromtailDocker 컨테이너에서 로그를 스크랩하여 Loki로 전송9080 (API), 9095 (메트릭)http://localhost:9080
Grafana메트릭과 로그 시각화를 위한 대시보드 인터페이스 제공3000http://localhost:3000