Stellar는 빠른 국경 간 금융 거래를 위한 오픈 소스 블록체인 네트워크입니다. 당신이 JavaScript 개발자이고 뛰어난 네트워크에 dApp을 구축하고 싶다면 이것이 당신을 위한 것입니다. 이 튜토리얼에서는 환경 설정부터 첫 번째 거래 수행까지 Stellar와 JavaScript를 통합하는 방법을 알아봅니다.
자, 시작해 보겠습니다.
아, 시작하기 전에 JavaScript에 대한 기본 지식이 필요하고 컴퓨터에 npm과 Node.js가 설치되어 있어야 합니다.
먼저 터미널이나 명령 프롬프트를 열고 프로젝트에 대한 새 디렉터리를 만듭니다.
mkdir stellar-js cd stellar-js npm init -y
이 명령은 새 Node.js 프로젝트를 초기화합니다.
이제 JavaScript용 Stellar SDK를 설치하세요.
npm install stellar-sdk
하지만 잠깐만요 Stellar-SDK가 무엇인가요?
Stellar SDK는 JavaScript를 사용하여 Stellar 네트워크와 상호 작용하는 강력한 라이브러리입니다.
이제 환경이 설정되었으므로 Stellar 네트워크에 연결하겠습니다. Stellar SDK가 필요하며 테스트넷에 연결합니다.
테스트넷이란 무엇인가요?
Testnet은 개발자가 실제 돈에 연결하지 않고도 애플리케이션을 테스트할 수 있는 무료 네트워크입니다. 실제 돈에 연결되고 거래 수수료 등을 충당하기 위해 XLM이 필요한 메인넷이 있는 경우 테스트넷은 메인넷과 유사하며 Friendbot이라는 무료 테스트 루멘(XLM)이 있습니다.
const StellarSdk = require("stellar-sdk"); const server = new StellarSdk.Server("https://horizon-testnet.stellar.org");
이렇게 하면 SDK가 초기화되고 서버가 테스트넷에 연결되도록 설정됩니다.
Stellar 네트워크와 상호 작용하려면 Stellar 계정이 필요합니다. 키-값 쌍을 생성하면 SDK를 사용하여 새 계정을 쉽게 만들 수 있습니다. 값 쌍은 공개 키와 개인 키로 구성됩니다.
const pair = StellarSdk.Keypair.random(); console.log('Public Key:', pair.publicKey()); console.log('Secret Key:', pair.secret());
publicKey()는 계정의 식별자이고, secret()은 안전하게 유지되어야 하는 개인 키입니다.
테스트넷에서는 Stellar의 Friendbot 서비스를 사용하여 계정에 자금을 조달할 수 있습니다.
const fetch = require("node-fetch"); const fundAccount = async (publicKey) => { try { const response = await fetch( `https://friendbot.stellar.org?addr=${publicKey}` ); const data = await response.json(); console.log("Account funded:", data); } catch (error) { console.error("Error funding account:", error); } }; fundAccount(pair.publicKey());
fundAccount 함수는 Friendbot에 요청을 보내 귀하의 계정에 10,000개의 테스트 루멘을 입금하도록 합니다. 이에 따라 거래 상태에 따라 메시지를 기록하게 됩니다.
이제 귀하의 계정이 설립되었으므로 스텔라 네트워크에서 첫 번째 거래를 할 수 있습니다. 우리는 거래를 구축하고, 서명하고, 스텔라 네트워크에 제출할 것입니다. 우리 계정에서 다른 계정으로 10 XLM을 보내드립니다.
const sendPayment = async (publicKey) => { try { const account = await server.loadAccount(pair.publicKey()); const transaction = new StellarSdk.TransactionBuilder(account, { fee: StellarSdk.BASE_FEE, networkPassphrase: StellarSdk.Networks.TESTNET, }) .addOperation( StellarSdk.Operation.payment({ destination: publicKey, asset: StellarSdk.Asset.native(), amount: "10", }) ) .setTimeout(30) .build(); transaction.sign(pair); const result = await server.submitTransaction(transaction); console.log("Transaction successful:", result); } catch (error) { console.error("Error sending payment:", error); } }; sendPayment("Another_Account's_Public_Key");
쉼표( , ) 하나만 있어도 코드가 손상될 수 있습니다. 코드를 예상한 대로 유지하려면 오류를 처리하는 것이 매우 중요합니다.
try { const result = await server.submitTransaction(transaction); console.log("Success:", result); } catch (error) { console.error("Error:", error.response.data.extras.result_codes); }
트랜잭션 중 오류를 포착하고 코드 디버깅에 도움이 되는 특정 오류를 기록합니다.
우리는 방금 Stellar를 JavaScript와 통합하고 Stellar 테스트넷에서 첫 번째 거래를 성사시켰습니다. JavaScript는 개발자들 사이에서 널리 채택되므로 Stellar를 통해 블록체인으로 전환하는 것이 더 편리합니다.
새로운 기술을 배우는 가장 좋은 방법은 더 많은 프로젝트를 연습하는 것입니다. 소규모 프로젝트를 구축하고 개념을 실험해 보세요.
이 게시물이 도움이 된다면 저에게 계속 사랑을 보여주시는 것을 잊지 마세요. 다음 번에 좋아요를 누르고, 공유하고, 배워보세요.
또한 여기와 X, GitHub, LinkedIn에서 저를 팔로우하여 저와 계속 연락하실 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3