story-geth는 Engine API를 통해 EVM 블록을 story 합의 클라이언트로 전달하며, ABCI++ 어댑터를 사용하여 EVM 상태를 CometBFT의 상태와 호환되도록 합니다. 이 아키텍처를 통해 합의 효율성은 더 이상 실행 트랜잭션 처리량에 의해 병목이 발생하지 않습니다.
DATA Foundation 노드를 운영하는 데 필요한 클라이언트인 story와 geth 바이너리는 최신 release 페이지에서 사용할 수 있습니다:
story-geth실행 클라이언트:story-geth실행 클라이언트: (Aeneid 테스트넷용)story합의 클라이언트:story합의 클라이언트: (Aeneid 테스트넷용)
DATA Foundation 노드 설치 가이드
설치 전 체크리스트
- 시스템이 하드웨어 요구사항을 충족하는지 확인
- 운영 체제: Ubuntu 22.04 LTS
- 필요한 포트가 사용 가능한지 확인
- 충분한 디스크 공간 확보
- Root 또는 sudo 액세스
빠른 참조
- 설치 시간: 약 30분
- 네트워크: DATA Foundation Mainnet 또는 DATA Foundation Aeneid Testnet
- 필수 버전:
- 최신 릴리스 확인
1. 시스템 준비
1.1 시스템 요구사항
최적의 성능과 안정성을 위해, 다음 중 하나에서 노드를 실행하는 것을 권장합니다:- Virtual Private Server (VPS)
- 전용 Linux 기반 머신
시스템 사양
1.2 필요한 포트
노드 기능에 필요한 모든 포트가 아래에 설명된 대로 필요한지 확인하세요story-geth- 8545
- 노드가 HTTP를 통해 JSON-RPC API로 인터페이스하기를 원하는 경우 필요
- 8546
- WebSocket 상호 작용에 필요
- 30303 (TCP + API)
- p2p 통신을 위해 반드시 열려 있어야 함
- 8545
story- 26656
- 합의 p2p 통신을 위해 반드시 열려 있어야 함
- 26657
- 노드가 Tendermint RPC에 인터페이스하기를 원하는 경우 필요
- 26660
- prometheus 메트릭을 노출하려는 경우 필요
- 26656
1.3 의존성 설치
1.4 Go 설치
Odyssey의 경우 Go 1.22.0을 설치해야 합니다2. DATA Foundation 노드 설치
2.1 Story-Geth 설치
- 바이너리 다운로드 및 설정
- 서비스 구성 및 시작
- Mainnet
- Aeneid testnet
2.2 DATA Foundation 합의 클라이언트 설치
Cosmovisor 설치
story 클라이언트 업데이트를 위해 Cosmovisor 사용을 권장합니다.- Cosmovisor 설치
- Cosmovisor 구성
Story 클라이언트 설치
버전 1.4.2-stable이 표시되어야 합니다(Mac OS X 전용) OS X 바이너리는 아직 빌드 프로세스에서 서명되지 않았으므로, 수동으로 격리 해제해야 할 수 있습니다:
Cosmovisor로 DATA Foundation 초기화
- Mainnet
- Aeneid testnet
사용자 정의 구성
자신의 노드 설정을 재정의하려면 다음과 같이 할 수 있습니다:${DATAFDN_DATA_ROOT}/config/config.toml을 수정하여 네트워크 및 합의 설정 변경${DATAFDN_DATA_ROOT}/config/story.toml로 다양한 클라이언트 구성 업데이트${DATAFDN_DATA_ROOT}/priv_validator_key.json은 Validator 키를 포함하는 민감한 파일이지만, 자신의 것으로 교체 가능
사용자 정의 자동화
아래에 Linux에서 사용할 수 있는 샘플Systemd 구성을 나열합니다
DATA Foundation API 엔드포인트(
--api-address)는 환경 또는 사용 사례에 따라 필요에 따라 수정할 수 있습니다.- Cosmovisor 사용
- Cosmovisor 미사용
서비스 시작
디버깅
story가 실행 중인 동안 상태를 확인하려면 내부 JSONRPC/HTTP 엔드포인트를 쿼리하는 것이 유용합니다. 실행할 수 있는 몇 가지 유용한 명령은 다음과 같습니다:
curl localhost:26657/net_info | jq '.result.peers[].node_info.moniker'- 노드와 동기화된 합의 피어 목록을 moniker별로 제공합니다
curl localhost:26657/health- 노드가 정상인지 알려줍니다 -
{}는 정상임을 의미합니다
- 노드가 정상인지 알려줍니다 -
3. 설치 검증
3.1 Geth 상태 확인
3.2 합의 클라이언트 확인
상태 초기화
문제가 발생하여 초기화된 상태에서 네트워크에 다시 참여하려면 다음을 실행하세요:Geth
- Mainnet
- Aeneid Testnet
rm -rf ~/Library/Story/geth/* && ./geth --story --syncmode fullLinux: rm -rf ~/.story/geth/* && ./geth --story --syncmode fullDATA Foundation
- Mainnet
- Aeneid Testnet
rm -rf ~/Library/Story/story/* && ./story init --network story && ./story runLinux: rm -rf ~/.story/story/* && ./story init --network story && ./story run