LISK개발_99

  • check-API.js 코드에는 URL에 공백이 포함된 오타가 있어 수정이 필요하며, API 연결 방식도 올바르지 않을 수 있습니다.
  • run-local-node.jscheck-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.jscheck-sdk-version.js는 현재 상태로 사용 가능하며, SDK 버전 호환성을 확인하세요.
  • 공식 문서(Lisk Documentation)를 참고해 API 엔드포인트와 요청 방식을 확인하세요.

주요 인용

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다