অ্যাঙ্কর ব্যবহার করে কীভাবে সোলানায় অফলাইন লেনদেন করবেন

এই নিবন্ধটি ব্যাখ্যা করে যে কীভাবে অ্যাঙ্কর ফ্রেমওয়ার্ক ব্যবহার করে আপনার লেনদেনগুলিকে আলাদাভাবে স্বাক্ষর করতে হয় এবং সম্পাদন করতে হয়৷

কিছু সিকিউরিটি মডেলের জন্য সাইনিং কী রাখা প্রয়োজন, এবং এইভাবে সাইনিং প্রক্রিয়াকে লেনদেন তৈরি এবং নেটওয়ার্ক ট্রান্সমিশন থেকে আলাদা করে। উদাহরণস্বরূপ, কল্পনা করুন যে আপনি সোলানায় একটি DAPP তৈরি করেছেন যেখানে ব্যাকএন্ডে লেনদেন করা উচিত। যেহেতু সাইনিং কীগুলি ব্যাকএন্ডে স্থানান্তর করা সম্ভব নয় (নিরাপত্তা সমস্যার কারণে), অনুসরণ করার উপায় হল আপনার ব্যবহারকারীদের ফ্রন্টএন্ডে প্রতিটি লেনদেনে স্বাক্ষর করা এবং এটি চালানোর জন্য ব্যাকএন্ডে প্রেরণ করা।

এখন আসুন ধাপে ধাপে দেখি কিভাবে এটি করতে হয়।

VScode – কোড সম্পাদক
অ্যাঙ্কর সংস্করণ – 0.24.2
প্রতিক্রিয়া

অ্যাঙ্কর ফ্রেমওয়ার্কের পূর্ববর্তী জ্ঞান

আপনি অ্যাঙ্কর ইনস্টল করার পরে একটি নতুন অ্যাঙ্কর প্রকল্প তৈরি করুন anchor init<project_name>

এই টিউটোরিয়ালের জন্য আমি এই কোডটি লিখেছি যা SOL স্থানান্তর করবে to অ্যাকাউন্ট from হিসাব

আপনি এখানে দেখতে পাচ্ছেন আমি নামের একটি ফাংশন তৈরি করেছি transfer_sol যা নামক কাঠামোর দিকে নিয়ে যায় TransferSOL, এই কাঠামোতে 3টি অ্যাকাউন্ট বলা হয় from,to, & system_program, from অ্যাকাউন্টটি এই লেনদেনের স্বাক্ষরকারী হিসাবে কাজ করে।

তাই এই অনুশীলনের উদ্দেশ্য হবে স্বাক্ষর করা transfer_sol লেনদেন ফ্রন্টএন্ডে এবং একটি API অনুরোধ ব্যবহার করে ব্যাকএন্ডে স্বাক্ষরিত লেনদেন পাস করুন।

সম্পূর্ণ অ্যাঙ্কর কোড দেখুন এখানে

তাহলে এখন দেখা যাক ফ্রন্টএন্ড কোডটি এর জন্য কেমন দেখাচ্ছে,

এর জন্য আমি একটি প্রতিক্রিয়া প্রকল্প তৈরি করেছি।

এটি সেই অংশ যেখানে আমরা স্মার্ট চুক্তি বলি যা আমরা আগে ফ্রন্টএন্ড ব্যবহার করে তৈরি করেছি। এর আগে আমাদের স্মার্ট চুক্তি স্থাপন এবং আমদানি করা উচিত ছিল idl.json থেকে উদ্ভূত

উপরে দেখানো হিসাবে আমরা একটি লেনদেন তৈরি করেছি যা কল করে transferSOL উদযাপন। সবচেয়ে সাধারণের বিপরীতে program.methods.transferSol().rps() ফাংশন যা অবিলম্বে অ্যাঙ্কর ফাংশন চালায় program.transfer.transferSol() লেনদেনের ধরন web3.Transaction তা বাস্তবায়ন না করেই।

এখন আমাদের তৈরি করা লেনদেনটিতে স্বাক্ষর করতে হবে। এটি করার আগে, আমাদের এটি কনফিগার করতে হবে blockhash এবং feepayer লেনদেন নিম্নরূপ,

মনে রাখা একটি গুরুত্বপূর্ণ বিষয় হল যে সাম্প্রতিক ব্লকহ্যাশটি লেনদেনে যোগ করার সময় থেকে প্রায় 1 মিনিটের জন্য বৈধ। সুনির্দিষ্টভাবে বলতে গেলে সোলানা ডকুমেন্টেশন অনুযায়ী আরও 150টি ব্লক যাচাই বা মোটামুটি 1 মিনিট 19 সেকেন্ড না হওয়া পর্যন্ত এটি বৈধ।
সুতরাং, তার আগে লেনদেন সম্পাদন করতে হবে।

এবার আসি সাইনিং অংশে।

আপনি মনে করতে পারেন হিসাবে transfersol ফাংশন শুধুমাত্র একজন স্বাক্ষরকারী প্রয়োজন যে from হিসাব। সুতরাং, আমরা লেনদেন স্বাক্ষর provider.wallet এটা কে from হিসাব।

আপনার লেনদেনের জন্য আপনার সংযুক্ত ওয়ালেট ছাড়া অন্য কোনো স্বাক্ষরকারীর প্রয়োজন হলে, আপনি ব্যবহার করতে পারেন
let signed = await tx.sign(); or
let signed = await tx.setSigners(); for a list of signers.

এখন আমরা স্বাক্ষরিত লেনদেন সম্পাদন করতে প্রস্তুত। আপনি সবসময় ভেরিয়েবল পাঠাতে পারেন signed আপনার ব্যাকএন্ডে একটি API অনুরোধে বা আপনি এটির সাথে যা চান তা করুন এবং লেনদেন চালান। তবে মনে রাখবেন আপনাকে এটি 1 মিনিটের মধ্যে করতে হবে 😉

আমার ক্ষেত্রে আমি এটিকে আমার ব্যাকএন্ডে পাঠাব যেখানে লেনদেন সম্পাদিত হবে। কোড নীচে প্রদর্শিত হয়,

আপনি যদি আপনার ব্যাকএন্ডে API অনুরোধে আপনার স্বাক্ষরিত লেনদেন পাঠান তবে মনে রাখবেন যে আপনাকে পাঠাতে হবে blockhash পাশাপাশি ভেরিয়েবলের সাথে signed. (এটি একটি প্রয়োজনীয়তা নয়, কিন্তু সবসময় ভাল)

এবং সেখানে আমাদের আছে 😌। আমরা যখন ফ্রন্টএন্ড থেকে ফাংশন কল করি তখন আমাদের লেনদেন চালানোর দরকার নেই। আমরা লেনদেন স্বাক্ষর করতে পারি এবং এটি পাস করতে পারি!!

ফ্রন্টএন্ডের জন্য সম্পূর্ণ কোড হল এখানে

  1. অ্যাঙ্কর কোড https://github.com/SenudaJayalath/offline-signing-anchor
  2. ফ্রন্টএন্ড কোড – https://github.com/SenudaJayalath/offline-signing-frontend

ব্যবসায় নতুন? প্রচেষ্টা ক্রিপ্টো ট্রেডিং বট বা কপি ট্রেডিং কিন্তু সেরা ক্রিপ্টো এক্সচেঞ্জ

CoinMonks এ যোগ দিন টেলিগ্রাম চ্যানেল এবং ইউটিউব চ্যানেল প্রতিদিন গ্রহণ করুন ক্রিপ্টো খবর

Source link

Leave a Comment