Stellar هي شبكة blockchain مفتوحة المصدر للمعاملات المالية السريعة والعابرة للحدود. إذا كنت مطور JavaScript وترغب في إنشاء تطبيق dApp على شبكة ممتازة، فهذا هو الشيء المناسب لك. في هذا البرنامج التعليمي، سنتعلم كيفية دمج Stellar مع JavaScript، بدءًا من إعداد البيئة وحتى إجراء معاملتك الأولى.
لذلك، دعونا نبدأ.
أوه، قبل أن نبدأ، نحتاج إلى معرفة أساسية بجافا سكريبت وتثبيت npm وNode.js على جهازك.
أولاً، افتح المحطة الطرفية أو موجه الأوامر وقم بإنشاء دليل جديد للمشروع:
mkdir stellar-js cd stellar-js npm init -y
سيعمل هذا الأمر على تهيئة مشروع Node.js جديد.
الآن، قم بتثبيت Stellar SDK لجافا سكريبت.
npm install stellar-sdk
ولكن، انتظر ما هو Stellar-SDK؟
تعد Stellar SDK مكتبة قوية للتفاعل مع شبكة Stellar باستخدام JavaScript.
الآن، بعد أن تم إعداد البيئة، سنتواصل مع شبكة Stellar. نحن بحاجة إلى Stellar SDK ونتصل بشبكة الاختبار.
ما هو Testnet؟
Testnet عبارة عن شبكة مجانية الاستخدام للمطورين لاختبار تطبيقاتهم دون الاتصال بأموال حقيقية. عندما تكون هناك شبكة رئيسية تتصل بأموال حقيقية وتتطلب XLM لتغطية رسوم المعاملات، وما إلى ذلك. تشبه شبكة الاختبار الشبكة الرئيسية، فهي تحتوي على وحدات Lumens (XLM) مجانية للاختبار تسمى Friendbot.
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());
المفتاح العام () هو معرف حسابك، في حين أن السر () هو مفتاحك الخاص، والذي يجب أن يظل آمنًا.
في شبكة الاختبار، يمكنك تمويل حسابك باستخدام خدمة Friendbot من Stellar.
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 آلاف لومن اختبار في حسابك. وبناءً على ذلك، سيتم تسجيل الرسالة وفقًا لحالة المعاملة.
الآن، بعد إنشاء حسابك، يمكنك إجراء أول معاملة لك على الشبكة النجمية. سنقوم ببناء المعاملة وتوقيعها وإرسالها إلى الشبكة النجمية. سنرسل 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. نظرًا لاعتماد جافا سكريبت على نطاق واسع بين المطورين، فإن الانتقال إلى blockchain باستخدام Stellar يعد أكثر ملاءمة.
أفضل طريقة لتعلم أي مهارة جديدة هي ممارسة المزيد من المشاريع. بناء مشاريع صغيرة وتجربة المفاهيم.
إذا وجدت هذا المنشور مفيدًا، فلا تنسَ أن تستمر في إظهار حبك لي. حتى المرة القادمة، قم بالإعجاب والمشاركة والتعلم.
يمكنك أيضًا البقاء على اتصال معي من خلال متابعتي هنا وعلى X وGitHub وLinkedIn.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3