풀 노드
메인넷용 Story 노드 설정 가이드
이 섹션에서는 메인넷용 Story 노드를 설정하는 방법을 안내합니다. Story는 실행 클라이언트와 합의 클라이언트를 분리하는 ETH PoS에서 영감을 받았습니다. 실행 클라이언트인 story-geth
storyexec는 Engine API를 통해 EVM 블록을 story
storyconsensus 합의 클라이언트로 전달하며, ABCI++ 어댑터를 사용하여 EVM 상태를 CometBFT와 호환되게 만듭니다. 이러한 아키텍처로 인해 합의 효율성은 더 이상 실행 트랜잭션 처리량에 의해 병목 현상이 발생하지 않습니다.
Story 노드 실행에 필요한 클라이언트를 구성하는 story
storyexecgeth
storyconsensus 바이너리는 최신 릴리스에서 사용할 수 있습니다.release
pages:
story-geth
실행 클라이언트:story
합의 클라이언트:
Story 노드 설치 가이드
설치 전 체크리스트
- 시스템이 하드웨어 요구 사항을 충족하는지 확인
- 운영 체제: Ubuntu 22.04 LTS
- 필요한 포트가 사용 가능한지 확인
- 충분한 디스크 공간 확보
- 루트 또는 sudo 접근 권한
빠른 참조
- 설치 시간: 약 30분
- Network: Story Mainnet or Story Aeneid Testnet
- 필요한 버전:
- 최신 릴리스 확인
1. 시스템 준비
1.1 시스템 요구 사항
최적의 성능과 안정성을 위해 다음 중 하나에서 노드를 실행하는 것을 권장합니다:
- 가상 사설 서버(VPS)
- 전용 리눅스 기반 머신
시스템 사양
하드웨어 | 최소 요구 사항 |
---|---|
CPU | 전용 8 코어 |
RAM | 32 GB |
디스크 | 500 GB NVMe 드라이브 |
대역폭 | 25 MBit/s |
1.2 필요한 포트
노드 기능에 필요한 모든 포트가 아래 설명된 대로 필요한지 확인하세요
story-geth
- 8545
- 노드가 HTTP를 통해 JSON-RPC API로 인터페이스하려면 필요
- 8546
- 웹소켓 상호 작용에 필요
- 30303 (TCP + API)
- p2p 통신을 위해 반드시 열어야 함
- 8545
story
- 26656
- 합의 p2p 통신을 위해 반드시 열어야 함
- 26657
- 노드가 Tendermint RPC로 인터페이스하려면 필요
- 26660
- 프로메테우스 메트릭을 노출하려면 필요
- 26656
1.3 의존성 설치
1.4 Go 설치
Odyssey를 위해 Go 1.22.0을 설치해야 합니다
2. Story 노드 설치
2.1 Story-Geth 설치
- 바이너리 다운로드 및 설정
geth 바이너리의 버전이 표시됩니다.
(Mac OS X 전용) OS X 바이너리는 아직 빌드 프로세스에서 서명되지 않았으므로 수동으로 격리 해제해야 할 수 있습니다:
- 서비스 구성 및 시작
2.2 Story 합의 클라이언트 설치
Cosmovisor 설치
story 클라이언트 업데이트를 위해 Cosmovisor 사용을 권장합니다.
- Cosmovisor 설치
- Cosmovisor 구성
Story 클라이언트 설치
버전 1.0.0-stable이 표시되어야 합니다
(Mac OS X 전용) OS X 바이너리는 아직 빌드 프로세스에서 서명되지 않았으므로 수동으로 격리 해제해야 할 수 있습니다:
Cosmovisor로 Story 초기화
사용자 정의 구성
자신의 노드 설정을 재정의하려면 다음과 같이 할 수 있습니다:
${STORY_DATA_ROOT}/config/config.toml
네트워크 및 합의 설정을 변경하기 위해 수정할 수 있습니다${STORY_DATA_ROOT}/config/story.toml
다양한 클라이언트 구성을 업데이트하기 위해${STORY_DATA_ROOT}/priv_validator_key.json
는 검증자 키를 포함하는 민감한 파일이지만 자신의 것으로 대체할 수 있습니다
사용자 정의 자동화
아래에 Linux에서 사용할 수 있는 샘플 Systemd
구성을 나열합니다
서비스 시작
디버깅
실행 중인 story
의 상태를 확인하려면 내부 JSONRPC/HTTP 엔드포인트를 쿼리하는 것이 도움이 됩니다. 다음은 몇 가지 유용한 명령어입니다:
curl localhost:26657/net_info | jq '.result.peers[].node_info.moniker'
- 이는 노드가 동기화된 합의 피어 목록을 모니커별로 제공합니다
curl localhost:26657/health
- 이는 노드가 정상인지 알려줍니다 -
{}
는 정상임을 나타냅니다
- 이는 노드가 정상인지 알려줍니다 -
3. 설치 확인
3.1 Geth 상태 확인
3.2 합의 클라이언트 확인
정상 상태
문제가 발생하여 초기화된 상태에서 네트워크에 다시 참여하고 싶다면 다음을 실행하세요:
Geth
Mac OS X: rm -rf ~/Library/Story/geth/* && ./geth --story --syncmode full
Linux: rm -rf ~/.story/geth/* && ./geth --story --syncmode full
Mac OS X: rm -rf ~/Library/Story/geth/* && ./geth --story --syncmode full
Linux: rm -rf ~/.story/geth/* && ./geth --story --syncmode full
Mac OS X: rm -rf ~/Library/Story/geth/* && ./geth --aeneid --syncmode full
Linux: rm -rf ~/.story/geth/* && ./geth --aeneid --syncmode full
Story
Mac OS X: rm -rf ~/Library/Story/story/* && ./story init --network story && ./story run
Linux: rm -rf ~/.story/story/* && ./story init --network story && ./story run
Mac OS X: rm -rf ~/Library/Story/story/* && ./story init --network story && ./story run
Linux: rm -rf ~/.story/story/* && ./story init --network story && ./story run
Mac OS X: rm -rf ~/Library/Story/story/* && ./story init --network aeneid && ./story run
Linux: rm -rf ~/.story/story/* && ./story init --network aeneid && ./story run