মূল কন্টেন্টে যান

ট্রানজ্যাকশন — ETH.BUILD

ETH.BUILD শিক্ষামূলক টুল ব্যবহার করে ইথেরিয়াম ট্রানজ্যাকশন কীভাবে কাজ করে তার একটি ডেমো। ইথেরিয়াম নেটওয়ার্কে কীভাবে ট্রানজ্যাকশন তৈরি, স্বাক্ষরকরণ এবং পাঠানো হয় তা দেখুন।

Date published: 14 জানুয়ারী, 2021

অস্টিন গ্রিফিথ-এর একটি টিউটোরিয়াল যেখানে ETH.BUILD ভিজ্যুয়াল প্রোগ্রামিং টুল ব্যবহার করে ইথেরিয়াম ট্রানজ্যাকশন কীভাবে কাজ করে তা দেখানো হয়েছে — এতে ট্রানজ্যাকশন কাঠামো, গ্যাস প্রাইস, স্বাক্ষরকরণ, সম্প্রচার এবং লেনদেন পুল কভার করা হয়েছে।

এই ট্রান্সক্রিপ্টটি অস্টিন গ্রিফিথ দ্বারা প্রকাশিত মূল ভিডিও ট্রান্সক্রিপ্ট (opens in a new tab)-এর একটি অ্যাক্সেসযোগ্য কপি। পড়ার সুবিধার জন্য এটি সামান্য সম্পাদনা করা হয়েছে।

ট্রানজ্যাকশন ফি এবং মাইনার ইনসেনটিভ (0:00)

আজ ETH.BUILD-এ আমরা ট্রানজ্যাকশন নিয়ে কথা বলব। এতক্ষণ পর্যন্ত, আমরা দেখেছি যে এই ট্রানজ্যাকশনগুলো ব্লকে মাইন করা হচ্ছে, ব্লকে প্যাকেজ করা হচ্ছে এবং একটি চেইনে মাইন করা হচ্ছে। আমরা কথা বলতে চাই যে ব্লক পুরস্কার ছাড়াও আর কী মাইনারকে উৎসাহিত করে — পুলের অন্যান্য মানুষের তুলনায় আমাদের ট্রানজ্যাকশনটি পুল থেকে বের করে একটি ব্লকে রাখতে এবং চেইনে মাইন করতে। পুলে হাজার হাজার মানুষ থাকতে পারে যারা সবাই এক ধরনের বিড করছে, এবং সেই বিডটি এই ফি দিয়ে করা হয়।

আমার ট্রানজ্যাকশনে একটি ফি থাকতে পারে যা বলে "আমি অ্যালিস এবং আমি ববকে 5 পাঠাচ্ছি, এবং রিপ্লে সুরক্ষার জন্য আমার নন্স হলো 1।" এছাড়াও, যে এটি মাইন করবে সে নিজের জন্য ফি নিতে পারবে। মূলত, অ্যালিস ববকে 5 পাঠাচ্ছে কিন্তু এটি চেইনে রাখার জন্য মাইনারকেও একটি নিকেল (অতিরিক্ত ফি) দিচ্ছে।

একটি ইথেরিয়াম ট্রানজ্যাকশনের অ্যানাটমি (1:10)

ইথেরিয়ামে একটি ট্রানজ্যাকশন দেখতে কেমন হয়? আমাদের আর "বব" এবং "অ্যালিস" থাকবে না — আমাদের ঠিকানা থাকবে। মানটি Wei-তে হবে, ETH-এ নয়। এবং ফি-ও Wei-তে হবে।

চলুন শুরু করি এবং এই ট্রানজ্যাকশনটি দেখি। আমার কাছে একটি নেমোনিক (mnemonic) দেওয়া অ্যাকাউন্ট আছে, এবং আমি ইথেরিয়াম মেইননেট-এর সাথে যুক্ত আছি। আমি CoinMarketCap থেকে প্রাইস ডেটা পাওয়ার জন্য একটি মডিউলও চালাচ্ছি, যাতে আমি দেখতে পারি যে 0.1-এর মতো কিছু ETH প্রায় 23 ডলারে রূপান্তরিত হয়।

ট্রানজ্যাকশন সেট আপ করা (2:25)

আমি যা করতে যাচ্ছি তা হলো একটি ট্রানজ্যাকশন তৈরি করা এবং মাইনারকে এটি তুলে নিয়ে অনচেইন-এ রাখার জন্য উৎসাহিত করা। আমার কাছে দুটি চরিত্র আছে — অ্যালিস এবং বব। অ্যালিস তার প্রাইভেট কী দিয়ে ববকে কিছু মান পাঠাবে। এখানে কোনো "from" ঠিকানা ফিল্ড নেই কারণ — মনে রাখবেন — আমরা আমাদের কী পেয়ার দিয়ে স্বাক্ষরকরণ এবং রিকভার করছি। ট্রানজ্যাকশনটি প্যাকেজ করা হয়, স্বাক্ষর করা হয় এবং তারপর নেটওয়ার্ক জুড়ে পাঠানো হয়। কেউ এটি টেম্পার করতে পারবে না, এবং অন্য প্রান্তে কেউ এটি রিকভার করে দেখতে পারবে যে সত্যিই আমরাই এটি স্বাক্ষর করেছি। "from" ঠিকানাটি ডিরাইভ করা হয়।

গ্যাস প্রাইস কৌশল (4:20)

ডিফল্টভাবে গ্যাস প্রাইস প্রায় 4.1 Gwei-তে সেট করা আছে — যা 4.1 বিলিয়ন Wei। কিন্তু আমরা এটি নিয়ে আরও কৌশলগত হতে চাই এবং দেখতে চাই যে এই মুহূর্তে অনচেইন-এ কী ঘটছে। আমরা দেখতে পাচ্ছি যে শেষ ব্লকে 78টি ট্রানজ্যাকশন ছিল, এবং গ্যাস প্রাইস প্রায় 5 থেকে কিছু ন্যূনতম মান পর্যন্ত ছিল। মূলত, সেই ব্লকে মাইন হওয়ার জন্য আমাদের 5-এর উপরে থাকতে হবে। তাই চলুন গ্যাস প্রাইস 5.001-এ সেট করি — যা একটু বেশি।

Wei-তে রূপান্তর করা (5:20)

আমাদের Wei-তে রূপান্তর করতে হবে। ইথেরিয়ামে, আপনি প্রধানত দুটি ডিনোমিনেশন নিয়ে কাজ করেন: ETH, যা নিয়ে মানুষ সাধারণত কথা বলে, এবং তারপর Wei, যা ETH-এর একটি খুব ক্ষুদ্র ভগ্নাংশের মতো। একটি Gwei — যা আমরা গ্যাস প্রাইস-এর জন্য ব্যবহার করি — তা এর মাঝামাঝি। এর কারণটি অনেকটা এমন যে কেন আমরা পেনি-র ভগ্নাংশ নিয়ে কথা বলি না।

অ্যালিসের কাছে 0.18 ETH আছে, এবং আমরা ববকে 0.05 ETH পাঠাতে যাচ্ছি। আমরা 5 Gwei-এর একটি গ্যাস প্রাইস দিয়েছি।

স্বাক্ষরকরণ এবং সম্প্রচার (7:02)

যখন অ্যালিস ট্রানজ্যাকশনটি স্বাক্ষর করার সিদ্ধান্ত নেয়, তখন এটি একটি স্বাক্ষরিত ট্রানজ্যাকশন হিসেবে বেরিয়ে আসে যা নেটওয়ার্ক জুড়ে যেতে পারে। কেউ এটি নিয়ে কারসাজি করতে পারবে না — অন্য প্রান্তে, কেউ ডিরাইভ করতে পারবে যে অ্যালিসই এটি স্বাক্ষর করেছে, এবং এতে আমরা কাকে পাঠাতে চাই এবং মাইনারের কাছে যে গ্যাস যাবে তার সমস্ত তথ্য থাকে।

আমরা সেই স্বাক্ষরিত ট্রানজ্যাকশনটি নিই এবং এটিকে ব্লকচেইন মডিউলের সেন্ড ফাংশনে প্লাগ করি। যখন আমি সেন্ড-এ ক্লিক করি, এটি আমাদের একটি হ্যাশ দেয় — ট্রানজ্যাকশন হ্যাশ। মূলত, আমি এটি ডিস্ট্রিবিউটেড নেটওয়ার্কে পাঠিয়েছি এবং তারা আমাকে একটি ট্রানজ্যাকশন হ্যাশ ফেরত দিয়েছে। এটি নেটওয়ার্কে চলে যায়, এবং তারপর ট্রানজ্যাকশনের এই পুলটি থাকে — যেখানে সবাই তাদের ট্রানজ্যাকশন পার করার জন্য বিড করছে।

ব্লক চেক করা (8:41)

আমরা আমাদের ট্রানজ্যাকশনের জন্য ব্লকচেইন-এ কোয়েরি করতে পারি। নিশ্চিতভাবেই, এটি ইতিমধ্যে মাইন করা হয়েছে। আমরা ব্লকটি দেখতে পারি, গ্যাস প্রাইস অনুযায়ী সাজাতে পারি এবং নিজেদের খুঁজে পেতে পারি। সেখানে 5.001 গ্যাস প্রাইস-এ আমাদের ট্রানজ্যাকশনটি আছে — অ্যালিস ববকে পাঠাচ্ছে, কোনো অতিরিক্ত ডেটা ছাড়াই। আমরা সেখানে আছি, নিচ থেকে প্রায় চার বা পাঁচ নম্বর অবস্থানে।

ট্রানজ্যাকশনের সাথে ডেটা পাঠানো (9:54)

আমরা মান পাঠাতে এবং আমাদের ট্রানজ্যাকশনটি অনচেইন-এ স্বীকৃতি পাওয়ার জন্য বিড করতে সক্ষম। কিন্তু চলুন আরও একটি জিনিস দেখি — ডেটা ফিল্ড। আমরা আমাদের ট্রানজ্যাকশনের সাথে জিনিসপত্র পাঠাতে পারি। এটি হেক্সাডেসিমাল-এ হবে। অ্যালিস ববকে আরও 6 ডলার পাঠাবে, এবং আমরা একটি বার্তা যুক্ত করব: "hey Bob।" আমরা দেখতে পাচ্ছি "hey Bob" হেক্স-এ রূপান্তরিত হয়েছে।

আমরা সেই ট্রানজ্যাকশনটি স্বাক্ষর করি, এটি একজন মাইনারের কাছে পাঠাই, এটি নেটওয়ার্কে যায় এবং আমরা একটি হ্যাশ ফেরত পাই। আমরা এটি মাইন হওয়ার জন্য অপেক্ষা করি, এবং এটি হয়। যখন আমরা সেই ব্লকটি চেক করি, তখন আমরা সংযুক্ত ডেটাসহ আমাদের ট্রানজ্যাকশনটি দেখতে পারি।

লেনদেন পুল এবং গ্যাস বাম্পিং (12:43)

শেষ একটি ডেমোর জন্য, আমি খুব কম গ্যাস প্রাইস — প্রায় 1.001 Gwei দিয়ে পুলে একটি ট্রানজ্যাকশন রেখেছি। এটি সেখানে আনমাইনড অবস্থায় বসে আছে কারণ আমরা মাইনারদের যথেষ্ট উৎসাহিত করছি না। আমরা দেখতে পাচ্ছি ট্রানজ্যাকশনটি লেনদেন পুল-এ পেন্ডিং আছে। পুলে 100 থেকে 300-এর মধ্যে ট্রানজ্যাকশন আছে, কিন্তু মাইন হওয়া সর্বশেষ ব্লকগুলো দেখাচ্ছে যে সবচেয়ে ছোট গ্যাস প্রাইস প্রায় 5।

তাই আমাদের এই ট্রানজ্যাকশনটি পুনরায় সাবমিট করতে হবে — চলুন এটিকে 10-এ বাড়িয়ে দিই। এটি প্রয়োজনের চেয়ে অনেক বেশি, তবে আমরা একই নন্স কিন্তু উচ্চতর গ্যাস প্রাইস দিয়ে একই ট্রানজ্যাকশন পুনরায় সাবমিট করব। নেটওয়ার্ক বলে "একই ব্যক্তি, একই ট্রানজ্যাকশন, বেশি দিতে ইচ্ছুক।" এটি তুলে নেওয়া হয় এবং পরবর্তী ব্লকে মাইন করা হয়।

সারসংক্ষেপ (14:52)

আমরা একটি ট্রানজ্যাকশন পাঠিয়েছি, আমরা মাইনারকে এটি ব্লকের চেইনে রাখার জন্য উৎসাহিত করতে কিছু গ্যাস দিয়েছি। আমরা একটি ট্রানজ্যাকশনের সাথে ডেটাও পাঠিয়েছি — এখন যেহেতু আমাদের কাছে এই কল ডেটা আসছে, আমরা সব ধরনের দারুণ জিনিস করতে পারি, এবং আমরা পরে স্মার্ট কন্ট্রাক্ট এবং অনেক মজার বিষয়ে আলোচনা করব।

এই পৃষ্ঠাটি কি সহায়ক ছিল?