check-API.js
코드에는 URL에 공백이 포함된 오타가 있어 수정이 필요하며, API 연결 방식도 올바르지 않을 수 있습니다.run-local-node.js
와check-sdk-version.js
는 현재 Lisk SDK 버전에 적합해 보입니다.- 연결된 API는 코드 수정 후에야 제대로 확인 가능하며, 주로 JSON-RPC POST 요청이 필요할 수 있습니다.
코드 분석
check-API.js
파일의 엔드포인트 URL에 공백이 포함되어 있어(https://mainnet.lisk.io API/v2
등), 이는 유효하지 않습니다. 공백을 제거한 후(https://mainnet.lisk.io/v2
등) API가 응답하는지 확인해야 합니다. 또한, 현재 코드는 GET 요청을 사용하지만, Lisk API는 JSON-RPC POST 요청을 기대할 수 있어 수정이 필요할 수 있습니다.
run-local-node.js
는 Lisk SDK의 Application.defaultApplication
메서드를 사용하며, 현재 버전(6.0.2)에서 적합해 보입니다. check-sdk-version.js
는 설치된 SDK 버전을 확인하는 데 유용하며, 문제없습니다.
API 연결 확인
연결된 API의 유효성은 코드 수정 후에야 확인 가능하며, 공식 문서(Lisk Documentation)를 참고해 올바른 엔드포인트와 요청 방식을 확인하세요. 예를 들어, https://rpc.lisk.com
같은 엔드포인트는 JSON-RPC를 지원할 수 있습니다.
예상치 못한 세부 사항
Lisk API가 RESTful GET 요청을 지원하지 않을 가능성이 높아, JSON-RPC POST 요청으로 변경해야 할 수도 있습니다. 이는 일반적인 블록체인 API와 다를 수 있어 주의가 필요합니다.
보고서
이 보고서는 사용자가 제공한 코드 파일(check-API.js
, run-local-node.js
, check-sdk-version.js
)의 정확성과 연결된 Lisk API의 적합성을 검증하는 데 초점을 맞췄습니다. 아래에서 각 파일을 상세히 분석하고, API 연결의 유효성을 평가하며, 필요한 수정 사항을 제안합니다. 현재 시간은 2025년 3월 25일 오후 3시 2분 PDT입니다.
1. 코드 파일 분석
1.1 check-API.js
check-API.js
는 여러 Lisk API 엔드포인트의 가용성을 확인하는 스크립트로, node-fetch
를 사용하여 비동기적으로 엔드포인트를 테스트합니다. 코드의 주요 부분은 다음과 같습니다:
- 엔드포인트 목록:
제공된 엔드포인트는 다음과 같습니다: - ‘https://mainnet.lisk.io API/v2’
- ‘https://testnet.lisk.io API/v2’
- ‘https://api.lisk.com API/v2’
- ‘https://service.lisk.io API/v2’ 그러나 이 URL들에는 ‘io’와 ‘API/v2’ 사이에 공백이 포함되어 있어 유효하지 않습니다. 올바른 형식은 공백을 제거한
https://mainnet.lisk.io/v2
와 같은 형태여야 합니다. - API 요청 방식:
코드에서fetch
를 사용하여 GET 요청을 보냅니다(예:${baseUrl}/blocks?limit=1
). 그러나 Lisk API는 주로 JSON-RPC를 지원하며, 이는 POST 요청과 특정 JSON 형식({"jsonrpc": "2.0", "id": "1", "method": "chain_getBlocks", "params": {"limit": 1}}
)을 요구할 수 있습니다. 따라서 현재 GET 요청 방식은 적합하지 않을 가능성이 높습니다. - 추가 테스트:
성공적인 엔드포인트에서 블록 100을 가져오는 추가 시도가 포함되어 있습니다(/blocks?height=100
). 이는 유효한 엔드포인트에서만 작동하며, API 문서에 따라 올바른 쿼리 매개변수인지 확인해야 합니다. - 결론:
이 파일은 URL 오타와 잘못된 요청 방식으로 인해 수정이 필요합니다. 공백을 제거하고, API가 JSON-RPC를 지원한다면 POST 요청으로 변경해야 합니다.
1.2 run-local-node.js
이 파일은 Lisk SDK를 사용하여 로컬 노드를 실행하는 스크립트입니다. 주요 내용은 다음과 같습니다:
- Lisk SDK 사용:
const { Application } = require('lisk-sdk');
를 통해 Lisk SDK를 임포트하고,Application.defaultApplication
메서드를 사용하여 로컬 노드를 설정합니다. - 구성 설정:
구성은 다음과 같습니다: label
: ‘lisk-local-node’logger
:{ level: 'info' }
network
:{ version: '1.0', port: 5000, seedPeers: [] }
genesisConfig
:{ communityIdentifier: 'lisk-local', blockTime: 10 }
- 실행 및 오류 처리:
app.run()
으로 노드를 시작하고, 오류 발생 시 상세한 검증 오류를 출력합니다. 이는 SDK 문서에 따라 적합한 방식으로 보입니다. - 버전 호환성:
현재 Lisk SDK의 최신 버전은 6.0.2로, 이 코드가 해당 버전에 적합한지 확인하기 위해check-sdk-version.js
를 사용할 수 있습니다. 문서(Lisk SDK Documentation)에 따르면,Application.defaultApplication
은 최신 버전에서 지원됩니다. - 결론:
이 파일은 현재 Lisk SDK 버전에 적합해 보이며, 추가 수정 없이 사용할 수 있습니다.
1.3 check-sdk-version.js
이 파일은 설치된 Lisk SDK 버전을 확인하고, Application
클래스의 가용성을 점검하는 헬퍼 스크립트입니다. 주요 내용은 다음과 같습니다:
- 버전 확인:
liskSdk.version
을 출력하여 설치된 패키지 버전을 확인합니다. - SDK 내보내기 점검:
Object.keys(liskSdk)
를 사용하여 SDK의 모든 내보내기를 나열하고, 타입을 표시합니다. - Application 클래스 확인:
liskSdk.Application
이 존재하면, 해당 클래스의 메서드를 나열하고,defaultApplication
이 정적 메서드인지 확인합니다. - 결론:
이 스크립트는 디버깅에 유용하며, 코드가 정확하고 목적에 부합합니다.
2. 연결된 API의 적합성
Lisk API의 적합성을 확인하기 위해 제공된 엔드포인트를 검토했습니다. 주요 발견 사항은 다음과 같습니다:
- 공식 엔드포인트:
Lisk 문서(API Providers | Lisk Documentation)에 따르면, 공용 RPC 엔드포인트는 다음과 같습니다: Provider Network HTTP RPC WS RPC Lisk RPC Lisk Sepolia Testnet https://rpc.sepolia.lisk.com wss://ws.sepolia.lisk.com Lisk RPC Lisk https://rpc.lisk.com wss://ws.lisk.com dRPC Lisk Sepolia Testnet https://lisk-sepolia.drpc.org wss://lisk-sepolia.drpc.org dRPC Lisk https://lisk.drpc.org wss://lisk.drpc.org 그러나 제공된 엔드포인트(https://mainnet.lisk.io/v2
등)는 이 목록과 일치하지 않으며, RESTful 엔드포인트로 보입니다. - REST vs. RPC:
Lisk는 주로 JSON-RPC를 지원하며, HTTP API 플러그인(HTTP API plugin :: Lisk documentation)에 따르면 REST 엔드포인트도 제공될 수 있습니다. 그러나 테스트 결과, 제공된 URL로 GET 요청을 보내면 응답이 없었습니다. 이는 API가 JSON-RPC POST 요청을 기대할 가능성을 시사합니다. - 추천 수정:
check-API.js
에서 GET 요청 대신 JSON-RPC POST 요청을 사용하도록 수정해야 합니다. 예를 들어,https://rpc.lisk.com/rpc
로 POST 요청을 보내고, 페이로드에{"jsonrpc": "2.0", "id": "1", "method": "chain_getBlocks", "params": {"limit": 1}}
를 포함해야 합니다.
3. 종합 평가
- 코드 정확성:
check-API.js
: URL 오타와 잘못된 요청 방식으로 인해 수정 필요.run-local-node.js
: 현재 Lisk SDK 버전에 적합해 보임.check-sdk-version.js
: 정확하고 유용함.- 연결된 API 적합성:
현재 코드로 연결된 API는 적합하지 않으며, JSON-RPC POST 요청으로 변경해야 올바르게 작동할 가능성이 높습니다. 공식 문서를 참고해 엔드포인트를 확인하세요. - 추가 고려 사항:
Lisk API는 RESTful 엔드포인트를 지원하지 않을 수 있으므로, RPC 방식을 사용하는 것이 안전합니다. 또한, API 키나 인증이 필요할 수 있으니 문서를 확인하세요.
4. 권장 조치
check-API.js
의 URL 오타를 수정하고, JSON-RPC POST 요청으로 변경하세요.run-local-node.js
와check-sdk-version.js
는 현재 상태로 사용 가능하며, SDK 버전 호환성을 확인하세요.- 공식 문서(Lisk Documentation)를 참고해 API 엔드포인트와 요청 방식을 확인하세요.
답글 남기기