diff --git a/public/content/translations/bn/developers/docs/data-structures-and-encoding/ssz/index.md b/public/content/translations/bn/developers/docs/data-structures-and-encoding/ssz/index.md new file mode 100644 index 00000000000..d19b441c266 --- /dev/null +++ b/public/content/translations/bn/developers/docs/data-structures-and-encoding/ssz/index.md @@ -0,0 +1,150 @@ +--- +title: "সরল সিরিয়ালাইজ" +description: "ইথেরিয়াম-এর SSZ ফরম্যাটের ব্যাখ্যা।" +lang: bn +sidebarDepth: 2 +--- + +**সরল সিরিয়ালাইজ (SSZ)** হল বিকন চেইন-এ ব্যবহৃত সিরিয়ালাইজেশন পদ্ধতি। এটি এক্সিকিউশন লেয়ার-এ ব্যবহৃত RLP সিরিয়ালাইজেশনকে পিয়ার ডিসকভারি প্রোটোকল ছাড়া কনসেন্সাস লেয়ার-এর সর্বত্র প্রতিস্থাপন করে। RLP সিরিয়ালাইজেশন সম্পর্কে আরও জানতে, দেখুন [রিকার্সিভ-লেংথ প্রিফিক্স (RLP)](/developers/docs/data-structures-and-encoding/rlp/)। SSZ ডিটারমিনিস্টিক হওয়ার জন্য এবং দক্ষতার সাথে Merkleize করার জন্য ডিজাইন করা হয়েছে। SSZ-কে দুটি উপাদান আছে বলে ভাবা যেতে পারে: একটি সিরিয়ালাইজেশন স্কিম এবং একটি Merkleization স্কিম যা সিরিয়ালাইজড ডেটা স্ট্রাকচার-এর সাথে দক্ষতার সাথে কাজ করার জন্য ডিজাইন করা হয়েছে। + +## SSZ কিভাবে কাজ করে? {#how-does-ssz-work} + +### সিরিয়ালাইজেশন {#serialization} + +SSZ একটি সিরিয়ালাইজেশন স্কিম যা স্ব-বর্ণনামূলক নয় - বরং এটি একটি স্কিমার উপর নির্ভর করে যা আগে থেকে জানা আবশ্যক। SSZ সিরিয়ালাইজেশন-এর লক্ষ্য হল নির্বিচারে জটিলতার বস্তুগুলোকে বাইটের স্ট্রিং হিসাবে উপস্থাপন করা। এটি "বেসিক টাইপ"-এর জন্য একটি খুব সহজ প্রক্রিয়া। এলিমেন্টটি কেবল হেক্সাডেসিমেল বাইটে রূপান্তরিত হয়। বেসিক টাইপের মধ্যে রয়েছে: + +- আনসাইন্ড ইন্টিজার +- বুলিয়ান + +জটিল "কম্পোজিট" টাইপের জন্য, সিরিয়ালাইজেশন আরও জটিল কারণ কম্পোজিট টাইপের মধ্যে একাধিক এলিমেন্ট থাকে যার বিভিন্ন টাইপ বা বিভিন্ন আকার বা উভয়ই থাকতে পারে। যেখানে এই সমস্ত অবজেক্টগুলির একটি নির্দিষ্ট দৈর্ঘ্য থাকে (অর্থাৎ, এলিমেন্টগুলির আকার তাদের প্রকৃত মান নির্বিশেষে সর্বদা ধ্রুবক থাকে), সেখানে সিরিয়ালাইজেশন হল কম্পোজিট টাইপের প্রতিটি এলিমেন্টকে ছোট-এন্ডিয়ান বাইটস্ট্রিং-এ রূপান্তরিত করা। এই বাইটস্ট্রিংগুলো একসাথে যুক্ত করা হয়। সিরিয়ালাইজড অবজেক্টটিতে ডিসিরিয়ালাইজড অবজেক্টে যেভাবে নির্দিষ্ট-দৈর্ঘ্যের এলিমেন্টগুলি উপস্থিত থাকে সেই একই ক্রমে তাদের বাইটলিস্ট রিপ্রেজেন্টেশন থাকে। + +পরিবর্তনশীল দৈর্ঘ্যের টাইপের জন্য, আসল ডেটাটি সিরিয়ালাইজড অবজেক্টে সেই এলিমেন্টের অবস্থানে একটি "অফসেট" মান দ্বারা প্রতিস্থাপিত হয়। আসল ডেটা সিরিয়ালাইজড অবজেক্টের শেষে একটি হিপে যুক্ত করা হয়। অফসেট মানটি হল হিপে আসল ডেটার শুরুর জন্য ইনডেক্স, যা প্রাসঙ্গিক বাইটের জন্য একটি পয়েন্টার হিসাবে কাজ করে। + +নীচের উদাহরণটি নির্দিষ্ট এবং পরিবর্তনশীল দৈর্ঘ্যের উভয় এলিমেন্ট সহ একটি কন্টেইনারের জন্য অফসেটিং কীভাবে কাজ করে তা ব্যাখ্যা করে: + +```Rust + + struct Dummy { + + number1: u64, + number2: u64, + vector: Vec, + number3: u64 + } + + dummy = Dummy{ + + number1: 37, + number2: 55, + vector: vec![1,2,3,4], + number3: 22, + } + + serialized = ssz.serialize(dummy) + +``` + +`serialized`-এর নিম্নলিখিত কাঠামো থাকবে (এখানে শুধুমাত্র 4 বিটে প্যাড করা হয়েছে, বাস্তবে 32 বিটে প্যাড করা হয়েছে এবং স্পষ্টতার জন্য `int` উপস্থাপনা রাখা হয়েছে): + +``` +[37, 0, 0, 0, 55, 0, 0, 0, 16, 0, 0, 0, 22, 0, 0, 0, 1, 2, 3, 4] +------------ ----------- ----------- ----------- ---------- + | | | | | + নম্বর1 নম্বর2 ভেক্টরের নম্বর 3 ভেক্টরের + জন্য অফসেট জন্য মান + +``` + +স্বচ্ছতার জন্য লাইনে বিভক্ত করা হয়েছে: + +``` +[ + 37, 0, 0, 0, # `number1`-এর লিটল-এন্ডিয়ান এনকোডিং। + 55, 0, 0, 0, # `number2`-এর লিটল-এন্ডিয়ান এনকোডিং। + 16, 0, 0, 0, # "অফসেট" যা নির্দেশ করে `vector`-এর মান কোথায় শুরু হয় (লিটল-এন্ডিয়ান 16)। + 22, 0, 0, 0, # `number3`-এর লিটল-এন্ডিয়ান এনকোডিং। + 1, 2, 3, 4, # `vector`-এর আসল মান। +] +``` + +এটি এখনও একটি সরলীকরণ - উপরের পরিকল্পিত চিত্রগুলিতে পূর্ণসংখ্যা এবং শূন্যগুলি আসলে বাইটলিস্ট হিসাবে সংরক্ষণ করা হবে, এইভাবে: + +``` +[ + 10100101000000000000000000000000 # `number1`-এর লিটল-এন্ডিয়ান এনকোডিং + 10110111000000000000000000000000 # `number2`-এর লিটল-এন্ডিয়ান এনকোডিং। + 10010000000000000000000000000000 # "অফসেট" যা নির্দেশ করে `vector`-এর মান কোথায় শুরু হয় (লিটল-এন্ডিয়ান 16)। + 10010110000000000000000000000000 # `number3`-এর লিটল-এন্ডিয়ান এনকোডিং। + 10000001100000101000001110000100 # `bytes` ফিল্ডের আসল মান। +] +``` + +সুতরাং পরিবর্তনশীল-দৈর্ঘ্যের টাইপের জন্য আসল মানগুলি সিরিয়ালাইজড অবজেক্টের শেষে একটি হিপ-এ সংরক্ষণ করা হয়, এবং তাদের অফসেটগুলি ফিল্ডের ক্রমবদ্ধ তালিকায় তাদের সঠিক অবস্থানে সংরক্ষণ করা হয়। + +এছাড়াও কিছু বিশেষ ক্ষেত্র রয়েছে যার জন্য নির্দিষ্ট আচরণের প্রয়োজন হয়, যেমন `BitList` টাইপ যার জন্য সিরিয়ালাইজেশনের সময় একটি দৈর্ঘ্যের ক্যাপ যোগ করতে হয় এবং ডিসিরিয়ালাইজেশনের সময় অপসারণ করতে হয়। [SSZ স্পেক](https://github.com/ethereum/consensus-specs/blob/dev/ssz/simple-serialize.md)-এ সম্পূর্ণ বিবরণ উপলব্ধ আছে। + +### ডিসিরিয়ালাইজেশন {#deserialization} + +এই অবজেক্টটিকে ডিসিরিয়ালাইজ করতে স্কিমা প্রয়োজন। স্কিমাটি সিরিয়ালাইজড ডেটার সুনির্দিষ্ট বিন্যাসকে সংজ্ঞায়িত করে যাতে প্রতিটি নির্দিষ্ট এলিমেন্ট বাইটের একটি ব্লব থেকে সঠিক টাইপ, মান, আকার এবং অবস্থান সহ কিছু অর্থপূর্ণ অবজেক্টে ডিসিরিয়ালাইজ করা যায়। স্কিমাটিই ডিসিরিয়ালাইজারকে বলে যে কোন মানগুলি আসল মান এবং কোনটি অফসেট। একটি অবজেক্ট সিরিয়ালাইজ করা হলে সমস্ত ফিল্ডের নাম অদৃশ্য হয়ে যায়, কিন্তু স্কিমা অনুসারে ডিসিরিয়ালাইজেশনের সময় পুনরায় ইনস্ট্যানশিয়েট করা হয়। + +এটির উপর একটি ইন্টারেক্টিভ ব্যাখ্যার জন্য [ssz.dev](https://www.ssz.dev/overview) দেখুন। + +## মার্কেলাইজেশন {#merkleization} + +এই SSZ সিরিয়ালাইজড অবজেক্টটি তারপর মার্কেলাইজ করা যেতে পারে - অর্থাৎ একই ডেটার একটি মার্কল-ট্রি উপস্থাপনায় রূপান্তরিত করা যেতে পারে। প্রথমে, সিরিয়ালাইজড অবজেক্টে 32-বাইট চাঙ্কের সংখ্যা নির্ধারণ করা হয়। এগুলি গাছের "লিফ"। লিফের মোট সংখ্যা অবশ্যই 2-এর ঘাত হতে হবে যাতে লিফগুলিকে একসাথে হ্যাস করে অবশেষে একটি একক হ্যাস-ট্রি-রুট তৈরি হয়। যদি স্বাভাবিকভাবে এটি না হয়, তাহলে শূন্যের 32 বাইট ধারণকারী অতিরিক্ত লিফ যোগ করা হয়। ডায়াগ্রামের মাধ্যমে: + +``` + হ্যাস ট্রি রুট + / \ + / \ + / \ + / \ + লিফ ১ এবং ২ লিফ ৩ এবং ৪ + এর হ্যাস এর হ্যাস + / \ / \ + / \ / \ + / \ / \ + লিফ১ লিফ২ লিফ৩ লিফ৪ +``` + +এমন কিছু ক্ষেত্রও রয়েছে যেখানে গাছের লিফগুলি স্বাভাবিকভাবে উপরের উদাহরণের মতো সমানভাবে বন্টিত হয় না। উদাহরণস্বরূপ, লিফ 4 একাধিক এলিমেন্ট সহ একটি কন্টেইনার হতে পারে যার জন্য মার্কল ট্রিতে অতিরিক্ত "গভীরতা" যোগ করার প্রয়োজন হয়, যা একটি অসম ট্রি তৈরি করে। + +এই ট্রি এলিমেন্টগুলিকে লিফ X, নোড X ইত্যাদি হিসাবে উল্লেখ করার পরিবর্তে, আমরা তাদের সাধারণীকৃত সূচক দিতে পারি, রুট = 1 থেকে শুরু করে এবং প্রতিটি স্তর বরাবর বাম থেকে ডানে গণনা করে। এটি উপরে ব্যাখ্যা করা সাধারণীকৃত সূচক। সিরিয়ালাইজড তালিকার প্রতিটি এলিমেন্টের একটি সাধারণীকৃত সূচক রয়েছে যা `2**depth + idx`-এর সমান, যেখানে idx হল সিরিয়ালাইজড অবজেক্টে এর শূন্য-সূচিত অবস্থান এবং ডেপথ হল মার্কল ট্রিতে স্তরের সংখ্যা, যা এলিমেন্টের সংখ্যার (লিফ) বেস-টু লগারিদম হিসাবে নির্ধারণ করা যেতে পারে। + +## সাধারণীকৃত সূচক {#generalized-indices} + +একটি সাধারণীকৃত সূচক হল একটি পূর্ণসংখ্যা যা একটি বাইনারি মার্কল ট্রিতে একটি নোডকে প্রতিনিধিত্ব করে যেখানে প্রতিটি নোডের একটি সাধারণীকৃত সূচক `2 ** depth + index in row` থাকে। + +``` + 1 --ডেপথ = 0 2**0 + 0 = 1 + 2 3 --ডেপথ = 1 2**1 + 0 = 2, 2**1+1 = 3 + 4 5 6 7 --ডেপথ = 2 2**2 + 0 = 4, 2**2 + 1 = 5... + +``` + +এই উপস্থাপনাটি মার্কল ট্রিতে ডেটার প্রতিটি অংশের জন্য একটি নোড সূচক প্রদান করে। + +## মাল্টিপ্রুফস {#multiproofs} + +একটি নির্দিষ্ট এলিমেন্টকে প্রতিনিধিত্বকারী সাধারণীকৃত সূচকের তালিকা প্রদান করা আমাদেরকে হ্যাস-ট্রি-রুটের বিরুদ্ধে এটি যাচাই করার সুযোগ দেয়। এই রুটটি আমাদের বাস্তবতার স্বীকৃত সংস্করণ। আমাদেরকে প্রদত্ত যেকোনো ডেটা সেই বাস্তবতার বিরুদ্ধে মার্কল ট্রিতে সঠিক স্থানে (তার সাধারণীকৃত সূচক দ্বারা নির্ধারিত) প্রবেশ করিয়ে এবং রুটটি স্থির থাকে তা পর্যবেক্ষণ করে যাচাই করা যেতে পারে। স্পেকে [এখানে](https://github.com/ethereum/consensus-specs/blob/dev/ssz/merkle-proofs.md#merkle-multiproofs) এমন ফাংশন রয়েছে যা একটি নির্দিষ্ট সাধারণীকৃত সূচকের সেটের বিষয়বস্তু যাচাই করার জন্য প্রয়োজনীয় নোডের ন্যূনতম সেট কীভাবে গণনা করা যায় তা দেখায়। + +উদাহরণস্বরূপ, নীচের ট্রিতে ইনডেক্স 9-এ ডেটা যাচাই করতে, আমাদের ইনডেক্স 8, 9, 5, 3, 1-এ ডেটার হ্যাস প্রয়োজন। +(8,9)-এর হ্যাস (4)-এর হ্যাসের সমান হওয়া উচিত, যা 5-এর সাথে হ্যাস করে 2 তৈরি করে, যা 3-এর সাথে হ্যাস করে ট্রি রুট 1 তৈরি করে। যদি 9-এর জন্য ভুল ডেটা সরবরাহ করা হয়, তাহলে রুটটি পরিবর্তিত হবে - আমরা এটি সনাক্ত করব এবং শাখাটি যাচাই করতে ব্যর্থ হব। + +``` +* = প্রমাণ তৈরি করার জন্য প্রয়োজনীয় ডেটা + + 1* + 2 3* + 4 5* 6 7 +8* 9* 10 11 12 13 14 15 + +``` + +## আরও পড়ুন {#further-reading} + +- [ইথেরিয়াম আপগ্রেড করা: SSZ](https://eth2book.info/altair/part2/building_blocks/ssz) +- [ইথেরিয়াম আপগ্রেড করা: মার্কেলাইজেশন](https://eth2book.info/altair/part2/building_blocks/merkleization) +- [SSZ ইমপ্লিমেন্টেশন](https://github.com/ethereum/consensus-specs/issues/2138) +- [SSZ ক্যালকুলেটর](https://simpleserialize.com/) +- [SSZ.dev](https://www.ssz.dev/) diff --git a/public/content/translations/bn/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md b/public/content/translations/bn/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md new file mode 100644 index 00000000000..c9835d030aa --- /dev/null +++ b/public/content/translations/bn/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md @@ -0,0 +1,195 @@ +--- +title: "Web3 গোপন সংগ্রহস্থল সংজ্ঞা" +description: "web3 গোপন সংগ্রহস্থলের জন্য আনুষ্ঠানিক সংজ্ঞা" +lang: bn +sidebarDepth: 2 +--- + +আপনার অ্যাপকে Ethereum-এ কাজ করানোর জন্য, আপনি web3.js লাইব্রেরি দ্বারা সরবরাহ করা web3 অবজেক্টটি ব্যবহার করতে পারেন। নেপথ্যে এটি RPC কলের মাধ্যমে একটি স্থানীয় নোডের সাথে যোগাযোগ করে। [web3](https://github.com/ethereum/web3.js/) যেকোনো Ethereum নোডের সাথে কাজ করে যা একটি RPC লেয়ার উন্মুক্ত করে। + +`web3`-তে `eth` অবজেক্টটি রয়েছে - web3.eth। + +```js +var fs = require("fs") +var recognizer = require("ethereum-keyfile-recognizer") + +fs.readFile("keyfile.json", (err, data) => { + var json = JSON.parse(data) + var result = recognizer(json) +}) + +/** ফলাফল + * [ 'web3', 3 ] web3 (v3) কীফাইল + * [ 'ethersale', undefined ] Ethersale কীফাইল + * null অবৈধ কীফাইল + */ +``` + +এই ডকুমেন্টটি Web3 গোপন সংগ্রহস্থল সংজ্ঞার **সংস্করণ 3** নথিভুক্ত করে। + +## সংজ্ঞা {#definition} + +ফাইলটির আসল এনকোডিং এবং ডিকোডিং সংস্করণ 1 থেকে মূলত অপরিবর্তিত রয়েছে, ব্যতিক্রম হল যে ক্রিপ্টো অ্যালগরিদম আর AES-128-CBC-তে সীমাবদ্ধ নয় (AES-128-CTR এখন ন্যূনতম প্রয়োজনীয়তা)। বেশিরভাগ অর্থ/অ্যালগরিদম সংস্করণ 1-এর মতোই, `mac` ছাড়া, যা ডিরাইভড কী-এর দ্বিতীয়-বামদিকের 16 বাইটের সাথে সম্পূর্ণ `ciphertext`-এর কনক্যাটেনেশনের SHA3 (keccak-256) হিসাবে দেওয়া হয়েছে। + +গোপন কী ফাইলগুলি সরাসরি `~/.web3/keystore` (ইউনিক্স-সদৃশ সিস্টেমের জন্য) এবং `~/AppData/Web3/keystore` (উইন্ডোজের জন্য) এখানে সংরক্ষণ করা হয়। তাদের যেকোনো নাম দেওয়া যেতে পারে, কিন্তু একটি ভাল প্রথা হলো `.json`, যেখানে `` হলো গোপন কী-কে দেওয়া 128-বিট UUID (গোপন কী-এর ঠিকানার জন্য একটি গোপনীয়তা-সংরক্ষণকারী প্রক্সি)। + +এই ধরনের সমস্ত ফাইলের একটি সংশ্লিষ্ট পাসওয়ার্ড থাকে। একটি প্রদত্ত `.json` ফাইলের গোপন কী ডিরাইভ করার জন্য, প্রথমে ফাইলটির এনক্রিপশন কী ডিরাইভ করুন; এটি করা হয় ফাইলটির পাসওয়ার্ড নিয়ে এবং `kdf` কী দ্বারা বর্ণিত একটি কী ডিরাইভেশন ফাংশনের মধ্যে দিয়ে পাস করিয়ে। KDF ফাংশনের জন্য KDF-নির্ভর স্ট্যাটিক এবং ডাইনামিক প্যারামিটারগুলি `kdfparams` কী-তে বর্ণনা করা আছে। + +ন্যূনতম-সম্মত সমস্ত ইমপ্লিমেন্টেশন দ্বারা PBKDF2 অবশ্যই সমর্থিত হতে হবে, যা বোঝানো হয়েছে: + +- `kdf`: `pbkdf2` + +PBKDF2-এর জন্য, kdfparams-এর মধ্যে অন্তর্ভুক্ত: + +- `prf`: অবশ্যই `hmac-sha256` হতে হবে (ভবিষ্যতে প্রসারিত হতে পারে); +- `c`: পুনরাবৃত্তির সংখ্যা; +- `salt`: PBKDF-এ পাস করা সল্ট; +- `dklen`: ডিরাইভড কী-এর জন্য দৈর্ঘ্য। অবশ্যই >= 32 হতে হবে। + +একবার ফাইলটির কী ডিরাইভ করা হয়ে গেলে, MAC-এর ডিরাইভেশনের মাধ্যমে এটি যাচাই করা উচিত। ডিরাইভড কী-এর দ্বিতীয়-বামদিকের 16 বাইটের সাথে `ciphertext` কী-এর বিষয়বস্তুর কনক্যাটেনেশন দ্বারা গঠিত বাইট অ্যারের SHA3 (keccak-256) হ্যাস হিসাবে MAC-কে গণনা করা উচিত, অর্থাৎ: + +```js +KECCAK(DK[16..31] ++ ) +``` + +(যেখানে `++` হল কনক্যাটেনেশন অপারেটর) + +এই মানটি `mac` কী-এর বিষয়বস্তুর সাথে তুলনা করা উচিত; যদি তারা ভিন্ন হয়, একটি বিকল্প পাসওয়ার্ড অনুরোধ করা উচিত (বা অপারেশনটি বাতিল করা উচিত)। + +ফাইলটির কী যাচাই করার পরে, `cipher` কী দ্বারা নির্দিষ্ট করা এবং `cipherparams` কী-এর মাধ্যমে প্যারামিটারাইজ করা সিমেট্রিক এনক্রিপশন অ্যালগরিদম ব্যবহার করে সাইফার টেক্সট (ফাইলে থাকা `ciphertext` কী) ডিক্রিপ্ট করা যেতে পারে। যদি ডিরাইভড কী-এর আকার এবং অ্যালগরিদমের কী-এর আকার মেলানো না যায়, তাহলে ডিরাইভড কী-এর শূন্য প্যাডযুক্ত, ডানদিকের বাইটগুলি অ্যালগরিদমের কী হিসাবে ব্যবহার করা উচিত। + +ন্যূনতম-সম্মত সমস্ত ইমপ্লিমেন্টেশন দ্বারা অবশ্যই AES-128-CTR অ্যালগরিদম সমর্থিত হতে হবে, যা বোঝানো হয়েছে: + +- `cipher: aes-128-ctr` + +এই সাইফারটি নিম্নলিখিত প্যারামিটারগুলি গ্রহণ করে, যা cipherparams কী-এর কী হিসাবে দেওয়া হয়েছে: + +- `iv`: সাইফারের জন্য 128-বিট ইনিশিয়ালাইজেশন ভেক্টর। + +সাইফারের জন্য কী হলো ডিরাইভড কী-এর বামদিকের 16 বাইট, অর্থাৎ `DK[0..15]` + +একটি গোপন কী-এর তৈরি/এনক্রিপশন মূলত এই নির্দেশাবলীর বিপরীত হওয়া উচিত। নিশ্চিত করুন যে `uuid`, `salt` এবং `iv` প্রকৃতপক্ষে র‍্যান্ডম। + +`version` ফিল্ড ছাড়াও, যা সংস্করণের একটি "হার্ড" শনাক্তকারী হিসাবে কাজ করা উচিত, ইমপ্লিমেন্টেশনগুলি ফরম্যাটের ছোটখাটো, নন-ব্রেকিং পরিবর্তনগুলি ট্র্যাক করার জন্য `minorversion`-ও ব্যবহার করতে পারে। + +## টেস্ট ভেক্টর {#test-vectors} + +বিবরণ: + +- `Address`: `008aeeda4d805471df9b2a5b0f38a0c3bcba786b` +- `ICAP`: `XE542A5PZHH8PYIZUBEJEO0MFWRAPPIL67` +- `UUID`: `3198bc9c-6672-5ab3-d9954942343ae5b6` +- `Password`: `testpassword` +- `Secret`: `7a28b5ba57c53603b0b07b56bba752f7784bf506fa95edc395f5cf6c7514fe9d` + +### PBKDF2-SHA-256 {#PBKDF2-SHA-256} + +`AES-128-CTR` এবং `PBKDF2-SHA-256` ব্যবহার করে টেস্ট ভেক্টর: + +`~/.web3/keystore/3198bc9c-6672-5ab3-d9954942343ae5b6.json` ফাইলের বিষয়বস্তু: + +```json +{ + "crypto": { + "cipher": "aes-128-ctr", + "cipherparams": { + "iv": "6087dab2f9fdbbfaddc31a909735c1e6" + }, + "ciphertext": "5318b4d5bcd28de64ee5559e671353e16f075ecae9f99c7a79a38af5f869aa46", + "kdf": "pbkdf2", + "kdfparams": { + "c": 262144, + "dklen": 32, + "prf": "hmac-sha256", + "salt": "ae3cd4e7013836a3df6bd7241b12db061dbe2c6785853cce422d148a624ce0bd" + }, + "mac": "517ead924a9d0dc3124507e3393d175ce3ff7c1e96529c6c555ce9e51205e9b2" + }, + "id": "3198bc9c-6672-5ab3-d995-4942343ae5b6", + "version": 3 +} +``` + +**ইন্টারমিডিয়েট**: + +`ডিরাইভড কী`: `f06d69cdc7da0faffb1008270bca38f5e31891a3a773950e6d0fea48a7188551` +`MAC বডি`: `e31891a3a773950e6d0fea48a71885515318b4d5bcd28de64ee5559e671353e16f075ecae9f99c7a79a38af5f869aa46` +`MAC`: `517ead924a9d0dc3124507e3393d175ce3ff7c1e96529c6c555ce9e51205e9b2` +`সাইফার কী`: `f06d69cdc7da0faffb1008270bca38f5` + +### Scrypt {#scrypt} + +AES-128-CTR এবং Scrypt ব্যবহার করে টেস্ট ভেক্টর: + +```json +{ + "crypto": { + "cipher": "aes-128-ctr", + "cipherparams": { + "iv": "740770fce12ce862af21264dab25f1da" + }, + "ciphertext": "dd8a1132cf57db67c038c6763afe2cbe6ea1949a86abc5843f8ca656ebbb1ea2", + "kdf": "scrypt", + "kdfparams": { + "dklen": 32, + "n": 262144, + "p": 1, + "r": 8, + "salt": "25710c2ccd7c610b24d068af83b959b7a0e5f40641f0c82daeb1345766191034" + }, + "mac": "337aeb86505d2d0bb620effe57f18381377d67d76dac1090626aa5cd20886a7c" + }, + "id": "3198bc9c-6672-5ab3-d995-4942343ae5b6", + "version": 3 +} +``` + +**ইন্টারমিডিয়েট**: + +`ডিরাইভড কী`: `7446f59ecc301d2d79bc3302650d8a5cedc185ccbb4bf3ca1ebd2c163eaa6c2d` +`MAC বডি`: `edc185ccbb4bf3ca1ebd2c163eaa6c2ddd8a1132cf57db67c038c6763afe2cbe6ea1949a86abc5843f8ca656ebbb1ea2` +`MAC`: `337aeb86505d2d0bb620effe57f18381377d67d76dac1090626aa5cd20886a7c` +`সাইফার কী`: `7446f59ecc301d2d79bc3302650d8a5c` + +## সংস্করণ 1 থেকে পরিবর্তন {#alterations-from-v2} + +এই সংস্করণটি [এখানে](https://github.com/ethereum/homestead-guide/blob/master/old-docs-for-reference/go-ethereum-wiki.rst/Passphrase-protected-key-store-spec.rst) প্রকাশিত সংস্করণ 1-এর সাথে থাকা বিভিন্ন অসংগতি সংশোধন করে। সংক্ষেপে এগুলি হল: + +- ক্যাপিটালাইজেশন অযৌক্তিক এবং অসংগতিপূর্ণ (scrypt ছোট হাতের, Kdf মিশ্র-কেস, MAC বড় হাতের)। +- ঠিকানা অপ্রয়োজনীয় এবং গোপনীয়তার সাথে আপোস করে। +- `Salt` মূলত কী ডিরাইভেশন ফাংশনের একটি প্যারামিটার এবং এটি সাধারণভাবে ক্রিপ্টোর সাথে নয়, বরং এটির সাথেই যুক্ত থাকা উচিত। +- _SaltLen_ অপ্রয়োজনীয় (শুধু Salt থেকে এটি ডিরাইভ করুন)। +- কী ডিরাইভেশন ফাংশন দেওয়া আছে, তবুও ক্রিপ্টো অ্যালগরিদমটি কঠোরভাবে নির্দিষ্ট করা আছে। +- `Version` মূলত সংখ্যাসূচক হলেও এটি একটি স্ট্রিং (একটি স্ট্রিং দিয়ে স্ট্রাকচার্ড সংস্করণ সম্ভব, কিন্তু কদাচিৎ পরিবর্তনশীল কনফিগারেশন ফাইল ফরম্যাটের জন্য এটি স্কোপের বাইরে বলে বিবেচনা করা যেতে পারে)। +- `KDF` এবং `cipher` ধারণাগতভাবে সহোদর ধারণা হলেও ভিন্নভাবে সংগঠিত। +- `MAC` একটি হোয়াইটস্পেস অজ্ঞেয় ডেটা খণ্ডের মাধ্যমে গণনা করা হয়(!) + +পূর্বে লিঙ্ক করা পৃষ্ঠায় দেওয়া উদাহরণের সাথে কার্যকরীভাবে সমতুল্য নিম্নলিখিত ফাইলটি দেওয়ার জন্য ফরম্যাটে পরিবর্তন করা হয়েছে: + +```json +{ + "crypto": { + "cipher": "aes-128-cbc", + "ciphertext": "07533e172414bfa50e99dba4a0ce603f654ebfa1ff46277c3e0c577fdc87f6bb4e4fe16c5a94ce6ce14cfa069821ef9b", + "cipherparams": { + "iv": "16d67ba0ce5a339ff2f07951253e6ba8" + }, + "kdf": "scrypt", + "kdfparams": { + "dklen": 32, + "n": 262144, + "p": 1, + "r": 8, + "salt": "06870e5e6a24e183a5c807bd1c43afd86d573f7db303ff4853d135cd0fd3fe91" + }, + "mac": "8ccded24da2e99a11d48cda146f9cc8213eb423e2ea0d8427f41c3be414424dd", + "version": 1 + }, + "id": "0498f19a-59db-4d54-ac95-33901b4f1870", + "version": 2 +} +``` + +## সংস্করণ 2 থেকে পরিবর্তন {#alterations-from-v2} + +সংস্করণ 2 ছিল একটি প্রাথমিক C++ ইমপ্লিমেন্টেশন যাতে বেশ কয়েকটি বাগ ছিল। এর থেকে সমস্ত অপরিহার্য বিষয় অপরিবর্তিত রয়েছে। diff --git a/public/content/translations/bn/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/bn/developers/docs/design-and-ux/dex-design-best-practice/index.md new file mode 100644 index 00000000000..ac71f8ff27c --- /dev/null +++ b/public/content/translations/bn/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -0,0 +1,220 @@ +--- +title: "বিকেন্দ্রীভূত এক্সচেঞ্জ (DEX) ডিজাইনের সেরা অনুশীলন" +description: "টোকেন সোয়াপ করার জন্য UX/UI সিদ্ধান্ত ব্যাখ্যা করার একটি নির্দেশিকা।" +lang: bn +--- + +2018 সালে Uniswap চালু হওয়ার পর থেকে, কয়েক ডজন বিভিন্ন চেইন জুড়ে শত শত বিকেন্দ্রীভূত এক্সচেঞ্জ চালু হয়েছে। +এর মধ্যে অনেকগুলি নতুন উপাদান প্রবর্তন করেছে বা তাদের নিজস্ব টুইস্ট যুক্ত করেছে, কিন্তু ইন্টারফেসটি সাধারণত একই রকম রয়েছে। + +এর একটি কারণ হলো [জ্যাকবের আইন](https://lawsofux.com/jakobs-law/): + +> ব্যবহারকারীরা তাদের বেশিরভাগ সময় অন্যান্য সাইটে ব্যয় করে। এর মানে হল যে ব্যবহারকারীরা আপনার সাইটটিকে তাদের পরিচিত অন্যান্য সমস্ত সাইটের মতো একইভাবে কাজ করতে পছন্দ করে। + +Uniswap, Pancakeswap এবং Sushiswap-এর মতো প্রাথমিক উদ্ভাবকদের ধন্যবাদ, DeFi ব্যবহারকারীদের একটি DEX দেখতে কেমন তার একটি সম্মিলিত ধারণা রয়েছে। +এই কারণে, "সেরা অনুশীলন" এর মতো কিছু এখন উদ্ভূত হচ্ছে। আমরা দেখতে পাই যে সাইট জুড়ে আরও বেশি করে ডিজাইনের সিদ্ধান্তগুলি মানসম্মত করা হচ্ছে। আপনি DEXes-এর বিবর্তনকে লাইভ পরীক্ষা করার একটি বিশাল উদাহরণ হিসেবে দেখতে পারেন। যে জিনিসগুলি কাজ করেছে সেগুলি থেকে গেছে, যেগুলি কাজ করেনি, সেগুলি ফেলে দেওয়া হয়েছে। ব্যক্তিত্বের জন্য এখনও জায়গা আছে, তবে কিছু নির্দিষ্ট মান রয়েছে যা একটি DEX-কে মেনে চলতে হবে। + +এই নিবন্ধটি এর একটি সারসংক্ষেপ: + +- কী অন্তর্ভুক্ত করতে হবে +- কীভাবে এটিকে যথাসম্ভব ব্যবহারযোগ্য করে তোলা যায় +- ডিজাইন কাস্টমাইজ করার প্রধান উপায় + +সমস্ত উদাহরণ ওয়্যারফ্রেমগুলি বিশেষভাবে এই নিবন্ধটির জন্য তৈরি করা হয়েছিল, যদিও সেগুলি সবই বাস্তব প্রকল্পের উপর ভিত্তি করে তৈরি। + +Figma কিটটি নীচে অন্তর্ভুক্ত করা হয়েছে - এটি ব্যবহার করতে এবং আপনার নিজের ওয়্যারফ্রেমগুলির গতি বাড়াতে দ্বিধা বোধ করবেন না! + +## একটি DEX-এর মৌলিক অ্যানাটমি {#basic-anatomy-of-a-dex} + +UI-তে সাধারণত তিনটি উপাদান থাকে: + +1. প্রধান ফর্ম +2. বোতাম +3. বিস্তারিত প্যানেল + +![সাধারণ DEX UI, তিনটি প্রধান উপাদান দেখাচ্ছে](./1.png) + +## ভিন্নতা {#variations} + +এই নিবন্ধে এটি একটি সাধারণ থিম হবে, তবে এই উপাদানগুলি সংগঠিত করার বিভিন্ন উপায় রয়েছে। “বিস্তারিত প্যানেল” হতে পারে: + +- বোতামের উপরে +- বোতামের নীচে +- একটি অ্যাকর্ডিয়ন প্যানেলে লুকানো +- এবং/অথবা একটি “প্রিভিউ” মডালে + +N.B. একটি “প্রিভিউ” মডাল ঐচ্ছিক, তবে আপনি যদি মূল UI-তে খুব কম বিশদ বিবরণ দেখান তবে এটি অপরিহার্য হয়ে ওঠে। + +## প্রধান ফর্মের কাঠামো {#structure-of-the-main-form} + +এটি সেই বক্স যেখানে আপনি আসলে কোন টোকেনটি সোয়াপ করতে চান তা বেছে নেন। কম্পোনেন্টটিতে একটি ইনপুট ফিল্ড এবং একটি সারিতে একটি ছোট বোতাম রয়েছে। + +DEX গুলি সাধারণত উপরে একটি এবং নীচে একটি সারিতে অতিরিক্ত বিবরণ প্রদর্শন করে, যদিও এটি ভিন্নভাবে কনফিগার করা যেতে পারে। + +![ইনপুট সারি, উপরে এবং নীচে একটি বিশদ সারি সহ](./2.png) + +## ভিন্নতা {#variations2} + +এখানে দুটি UI ভিন্নতা দেখানো হয়েছে; একটি কোনো সীমানা ছাড়াই, একটি খুব খোলা ডিজাইন তৈরি করে এবং অন্যটি যেখানে ইনপুট সারিতে একটি সীমানা রয়েছে, যা সেই উপাদানের উপর একটি ফোকাস তৈরি করে। + +![প্রধান ফর্মের দুটি UI ভিন্নতা](./3.png) + +এই মৌলিক কাঠামোটি ডিজাইনে **চারটি মূল তথ্যের অংশ** দেখানোর অনুমতি দেয়: প্রতিটি কোণে একটি। যদি কেবল একটি উপরের/নীচের সারি থাকে, তবে কেবল দুটি জায়গা থাকে। + +DeFi-এর বিবর্তনের সময়, এখানে বিভিন্ন ধরনের জিনিস অন্তর্ভুক্ত করা হয়েছে। + +## অন্তর্ভুক্ত করার জন্য মূল তথ্য {#key-info-to-include} + +- ওয়ালেটের ব্যালেন্স +- সর্বোচ্চ বোতাম +- ফিয়াট সমতুল্য +- “প্রাপ্ত” পরিমাণের উপর মূল্যের প্রভাব + +DeFi-এর প্রথম দিকে, ফিয়াট সমতুল্য প্রায়ই অনুপস্থিত ছিল। আপনি যদি কোনো ধরনের Web3 প্রকল্প তৈরি করেন, তাহলে ফিয়াট সমতুল্য দেখানো অপরিহার্য। ব্যবহারকারীরা এখনও স্থানীয় মুদ্রার পরিপ্রেক্ষিতে চিন্তা করে, তাই বাস্তব বিশ্বের মানসিক মডেলগুলির সাথে মেলানোর জন্য, এটি অন্তর্ভুক্ত করা উচিত। + +দ্বিতীয় ফিল্ডে (যেখানে আপনি যে টোকেনটি সোয়াপ করছেন তা বেছে নেন) আপনি ইনপুট পরিমাণ এবং আনুমানিক আউটপুট পরিমাণের মধ্যে পার্থক্য গণনা করে ফিয়াট মুদ্রার পরিমাণের পাশে মূল্যের প্রভাবও অন্তর্ভুক্ত করতে পারেন। এটি অন্তর্ভুক্ত করার জন্য বেশ একটি দরকারী বিবরণ। + +শতাংশ বোতাম (যেমন, 25%, 50%, 75%) একটি দরকারী বৈশিষ্ট্য হতে পারে, তবে তারা আরও জায়গা নেয়, আরও কল টু অ্যাকশন যোগ করে এবং আরও মানসিক চাপ বাড়ায়। শতাংশ স্লাইডারের ক্ষেত্রেও একই। এই UI সিদ্ধান্তগুলির মধ্যে কিছু আপনার ব্র্যান্ড এবং আপনার ব্যবহারকারীর ধরনের উপর নির্ভর করবে। + +অতিরিক্ত বিবরণ প্রধান ফর্মের নীচে দেখানো যেতে পারে। যেহেতু এই ধরনের তথ্য বেশিরভাগ প্রো ব্যবহারকারীদের জন্য, তাই এর কোনো একটি অর্থপূর্ণ: + +- এটিকে যতটা সম্ভব ন্যূনতম রাখুন, বা; +- এটিকে একটি অ্যাকর্ডিয়ন প্যানেলে লুকান + +![সেই প্রধান ফর্মের কোণে দেখানো বিশদ](./4.png) + +## অন্তর্ভুক্ত করার জন্য অতিরিক্ত তথ্য {#extra-info-to-include} + +- টোকেনের মূল্য +- স্লিপেজ +- ন্যূনতম প্রাপ্ত +- প্রত্যাশিত আউটপুট +- মূল্যের প্রভাব +- গ্যাস খরচ অনুমান +- অন্যান্য ফি +- অর্ডার রাউটিং + +যুক্তিযুক্তভাবে, এই বিবরণগুলির মধ্যে কিছু ঐচ্ছিক হতে পারে। + +অর্ডার রাউটিং আকর্ষণীয়, কিন্তু বেশিরভাগ ব্যবহারকারীর জন্য খুব বেশি পার্থক্য তৈরি করে না। + +কিছু অন্যান্য বিবরণ কেবল একই জিনিসকে ভিন্ন উপায়ে পুনর্ব্যক্ত করছে। উদাহরণস্বরূপ “ন্যূনতম প্রাপ্ত” এবং “স্লিপেজ” একই মুদ্রার দুটি পিঠ। যদি আপনার স্লিপেজ 1% এ সেট করা থাকে, তাহলে আপনি যে সর্বনিম্ন পরিমাণ পাওয়ার আশা করতে পারেন = প্রত্যাশিত আউটপুট-1%। কিছু UI প্রত্যাশিত পরিমাণ, সর্বনিম্ন পরিমাণ এবং স্লিপেজ দেখাবে… যা দরকারী কিন্তু সম্ভবত অতিরিক্ত। + +যাইহোক, বেশিরভাগ ব্যবহারকারী ডিফল্ট স্লিপেজ ছেড়ে দেবে। + +“মূল্যের প্রভাব” প্রায়শই “টু” ফিল্ডে ফিয়াট সমতুল্যের পাশে বন্ধনীতে দেখানো হয়। এটি যোগ করার জন্য একটি দুর্দান্ত ux বিবরণ, কিন্তু যদি এটি এখানে দেখানো হয়, তবে কি এটি সত্যিই নীচে আবার দেখানোর প্রয়োজন আছে? এবং তারপর আবার একটি প্রিভিউ স্ক্রিনে? + +অনেক ব্যবহারকারী (বিশেষ করে যারা অল্প পরিমাণে সোয়াপ করে) এই বিবরণগুলি নিয়ে চিন্তা করবে না; তারা কেবল একটি সংখ্যা প্রবেশ করাবে এবং সোয়াপ চাপবে। + +![কিছু বিবরণ একই জিনিস দেখায়](./5.png) + +ঠিক কোন বিবরণ দেখানো হবে তা আপনার দর্শক এবং অ্যাপটির কেমন অনুভূতি দিতে চান তার উপর নির্ভর করবে। + +আপনি যদি বিশদ প্যানেলে স্লিপেজ টলারেন্স অন্তর্ভুক্ত করেন, তবে আপনার এটিকে সরাসরি এখান থেকে সম্পাদনাযোগ্য করা উচিত। এটি একটি “এক্সিলারেটর”-এর একটি ভাল উদাহরণ; একটি নিট UX কৌশল যা অ্যাপটির সাধারণ ব্যবহারযোগ্যতাকে প্রভাবিত না করে অভিজ্ঞ ব্যবহারকারীদের প্রবাহকে ত্বরান্বিত করতে পারে। + +![স্লিপেজ বিশদ প্যানেল থেকে নিয়ন্ত্রণ করা যেতে পারে](./6.png) + +শুধু একটি স্ক্রিনে একটি নির্দিষ্ট তথ্যের অংশ নিয়ে নয়, বরং সম্পূর্ণ প্রবাহ সম্পর্কে সাবধানে চিন্তা করা একটি ভাল ধারণা: +প্রধান ফর্মে সংখ্যা প্রবেশ করানো → বিশদ স্ক্যান করা → প্রিভিউ স্ক্রিনে ক্লিক করা (যদি আপনার প্রিভিউ স্ক্রিন থাকে)। +বিশদ প্যানেলটি কি সব সময় দৃশ্যমান হওয়া উচিত, নাকি ব্যবহারকারীকে এটি প্রসারিত করতে ক্লিক করতে হবে? +আপনার কি একটি প্রিভিউ স্ক্রিন যোগ করে ঘর্ষণ তৈরি করা উচিত? এটি ব্যবহারকারীকে ধীর হতে এবং তাদের ট্রেড বিবেচনা করতে বাধ্য করে, যা দরকারী হতে পারে। কিন্তু তারা কি আবার একই তথ্য দেখতে চায়? এই মুহূর্তে তাদের জন্য সবচেয়ে দরকারী কী? + +## ডিজাইন বিকল্প {#design-options} + +যেমন উল্লেখ করা হয়েছে, এর বেশিরভাগই আপনার ব্যক্তিগত শৈলীর উপর নির্ভর করে +আপনার ব্যবহারকারী কে? +আপনার ব্র্যান্ড কি? +আপনি কি প্রতিটি বিবরণ দেখানো একটি “প্রো” ইন্টারফেস চান, নাকি আপনি ন্যূনতম হতে চান? +এমনকি যদি আপনি প্রো ব্যবহারকারীদের লক্ষ্য করেন যারা সম্ভাব্য সমস্ত তথ্য চায়, আপনার এখনও অ্যালান কুপারের বিজ্ঞ কথাগুলি মনে রাখা উচিত: + +> আপনার ইন্টারফেস যতই সুন্দর হোক, যতই শীতল হোক না কেন, যদি এর কম থাকত তবে ভাল হত। + +### কাঠামো {#structure} + +- বাম দিকে টোকেন, বা ডান দিকে টোকেন +- ২টি সারি বা ৩টি +- বোতামের উপরে বা নীচে বিশদ +- বিশদ প্রসারিত, ছোট করা, বা দেখানো হয়নি + +### কম্পোনেন্ট শৈলী {#component-style} + +- খালি +- আউটলাইন করা +- ভরা + +একটি বিশুদ্ধ UX দৃষ্টিকোণ থেকে, UI শৈলী আপনার ভাবনার চেয়ে কম গুরুত্বপূর্ণ। ভিজ্যুয়াল ট্রেন্ডগুলি চক্রাকারে আসে এবং যায়, এবং অনেক পছন্দই ব্যক্তিগত। + +এর জন্য একটি অনুভূতি পেতে - এবং বিভিন্ন কনফিগারেশন সম্পর্কে চিন্তা করার - সবচেয়ে সহজ উপায় হল কিছু উদাহরণ দেখা এবং তারপর নিজে কিছু পরীক্ষা করা। + +অন্তর্ভুক্ত Figma কিটটিতে খালি, আউটলাইন করা এবং ভরা কম্পোনেন্ট রয়েছে। + +আপনি কীভাবে এটি সব একসাথে রাখতে পারেন তার বিভিন্ন উপায় দেখতে নীচের উদাহরণগুলি দেখুন: + +![ভরা শৈলীতে ৩টি সারি](./7.png) + +![আউটলাইন করা শৈলীতে ৩টি সারি](./8.png) + +![একটি খালি শৈলীতে ২টি সারি](./9.png) + +![আউটলাইন করা শৈলীতে ৩টি সারি, একটি বিশদ প্যানেল সহ](./10.png) + +![আউটলাইন করা শৈলীতে ইনপুট সারি সহ ৩টি সারি](./11.png) + +![ভরা শৈলীতে ২টি সারি](./12.png) + +## কিন্তু টোকেন কোন দিকে যাওয়া উচিত? {#but-which-side-should-the-token-go-on} + +মূল কথা হল যে এটি সম্ভবত ব্যবহারযোগ্যতার উপর খুব বেশি প্রভাব ফেলে না। তবে, কিছু বিষয় মাথায় রাখতে হবে, যা আপনাকে এক দিকে বা অন্য দিকে প্রভাবিত করতে পারে। + +সময়ের সাথে সাথে ফ্যাশন পরিবর্তন দেখতে কিছুটা আকর্ষণীয় হয়েছে। Uniswap প্রাথমিকভাবে টোকেনটি বাম দিকে রেখেছিল, কিন্তু পরে এটি ডান দিকে সরিয়ে দিয়েছে। Sushiswap-ও একটি ডিজাইন আপগ্রেডের সময় এই পরিবর্তনটি করেছিল। বেশিরভাগ, কিন্তু সব নয়, প্রোটোকলগুলি অনুসরণ করেছে। + +আর্থিক প্রথা ঐতিহ্যগতভাবে সংখ্যার আগে মুদ্রার প্রতীক রাখে, যেমন, $50, €50, £50, কিন্তু আমরা _বলি_ 50 ডলার, 50 ইউরো, 50 পাউন্ড। + +সাধারণ ব্যবহারকারীর জন্য - বিশেষ করে যে বাম থেকে ডানে, উপর থেকে নীচে পড়ে - ডানদিকে টোকেন সম্ভবত আরও স্বাভাবিক মনে হয়। + +![বাম দিকে টোকেন সহ একটি UI](./13.png) + +বাম দিকে টোকেন এবং ডানদিকে সমস্ত সংখ্যা রাখা আনন্দদায়কভাবে প্রতিসম দেখায়, যা একটি প্লাস, তবে এই লেআউটের আরেকটি নেতিবাচক দিক রয়েছে। + +নৈকট্যের আইন বলে যে কাছাকাছি থাকা আইটেমগুলি সম্পর্কিত হিসাবে বিবেচিত হয়। তদনুসারে, আমরা সম্পর্কিত আইটেমগুলি একে অপরের পাশে রাখতে চাই। টোকেন ব্যালেন্স সরাসরি টোকেনের সাথে সম্পর্কিত, এবং যখনই একটি নতুন টোকেন নির্বাচন করা হবে তখন এটি পরিবর্তিত হবে। তাই টোকেন ব্যালেন্স টোকেন নির্বাচন বোতামের পাশে থাকাটা কিছুটা বেশি অর্থপূর্ণ। এটি টোকেনের নীচে সরানো যেতে পারে, তবে এটি লেআউটের প্রতিসাম্য ভেঙে দেয়। + +শেষ পর্যন্ত, উভয় বিকল্পের জন্যই প্লাস এবং মাইনাস রয়েছে, তবে এটি আকর্ষণীয় যে প্রবণতাটি ডানদিকে টোকেনের দিকে বলে মনে হচ্ছে। + +## বোতামের আচরণ {#button-behavior} + +অনুমোদনের জন্য একটি পৃথক বোতাম রাখবেন না। এছাড়াও অনুমোদনের জন্য একটি পৃথক ক্লিক রাখবেন না। ব্যবহারকারী সোয়াপ করতে চায়, তাই শুধু বোতামে “সোয়াপ” বলুন এবং প্রথম পদক্ষেপ হিসাবে অনুমোদন শুরু করুন। একটি মডাল একটি স্টেপারের সাথে অগ্রগতি দেখাতে পারে, বা একটি সাধারণ “tx 1 of 2 - approving” বিজ্ঞপ্তি। + +![অনুমোদন এবং সোয়াপের জন্য পৃথক বোতাম সহ একটি UI](./14.png) + +![একটি বোতাম সহ একটি UI যা অনুমোদন বলে](./15.png) + +### প্রাসঙ্গিক সহায়তা হিসাবে বোতাম {#button-as-contextual-help} + +বোতামটি একটি সতর্কতা হিসাবে দ্বিগুণ দায়িত্ব পালন করতে পারে! + +এটি আসলে Web3-এর বাইরে একটি মোটামুটি অস্বাভাবিক ডিজাইন প্যাটার্ন, কিন্তু এর মধ্যে এটি মানসম্মত হয়ে উঠেছে। এটি একটি ভাল উদ্ভাবন কারণ এটি স্থান বাঁচায় এবং মনোযোগ কেন্দ্রীভূত রাখে। + +যদি প্রধান ক্রিয়া - সোয়াপ - একটি ত্রুটির কারণে অনুপলব্ধ হয়, তবে কারণটি বোতামের সাহায্যে ব্যাখ্যা করা যেতে পারে, যেমন: + +- নেটওয়ার্ক পরিবর্তন করুন +- ওয়ালেট সংযোগ করুন +- বিভিন্ন ত্রুটি + +বোতামটি যে ক্রিয়াটি সম্পাদন করা দরকার তার সাথে **ম্যাপ করা** যেতে পারে। উদাহরণস্বরূপ, যদি ব্যবহারকারী ভুল নেটওয়ার্কে থাকার কারণে সোয়াপ করতে না পারে, বোতামটিতে “ইথেরিয়ামে পরিবর্তন করুন” লেখা উচিত এবং ব্যবহারকারী যখন বোতামে ক্লিক করে, তখন এটি নেটওয়ার্কটিকে ইথেরিয়ামে পরিবর্তন করা উচিত। এটি ব্যবহারকারীর প্রবাহকে উল্লেখযোগ্যভাবে ত্বরান্বিত করে। + +![প্রধান CTA থেকে শুরু করা মূল ক্রিয়া](./16.png) + +![প্রধান CTA-এর মধ্যে দেখানো ত্রুটি বার্তা](./17.png) + +## এই ফিগমা ফাইল দিয়ে আপনার নিজের তৈরি করুন {#build-your-own-with-this-figma-file} + +একাধিক প্রোটোকলের কঠোর পরিশ্রমের জন্য ধন্যবাদ, DEX ডিজাইন অনেক উন্নত হয়েছে। আমরা জানি ব্যবহারকারীর কী তথ্য প্রয়োজন, আমাদের কীভাবে এটি দেখানো উচিত এবং কীভাবে প্রবাহটিকে যতটা সম্ভব মসৃণ করা যায়। +আশা করি এই নিবন্ধটি UX নীতির একটি ভালো ওভারভিউ প্রদান করে। + +আপনি যদি পরীক্ষা করতে চান, তাহলে অনুগ্রহ করে Figma ওয়্যারফ্রেম কিট ব্যবহার করতে দ্বিধা বোধ করবেন না। এটি যতটা সম্ভব সহজ রাখা হয়েছে, তবে বিভিন্ন উপায়ে মৌলিক কাঠামো তৈরি করার জন্য যথেষ্ট নমনীয়তা রয়েছে। + +[Figma ওয়্যারফ্রেম কিট](https://www.figma.com/community/file/1393606680816807382/dex-wireframes-kit) + +DeFi বিকশিত হতে থাকবে, এবং উন্নতির জন্য সর্বদা জায়গা আছে। + +শুভকামনা! diff --git a/public/content/translations/bn/developers/docs/design-and-ux/heuristics-for-web3/index.md b/public/content/translations/bn/developers/docs/design-and-ux/heuristics-for-web3/index.md new file mode 100644 index 00000000000..f850ddfce06 --- /dev/null +++ b/public/content/translations/bn/developers/docs/design-and-ux/heuristics-for-web3/index.md @@ -0,0 +1,138 @@ +--- +title: "Web3 ইন্টারফেস ডিজাইনের জন্য ৭টি হিউরিস্টিকস" +description: "Web3-এর ব্যবহারযোগ্যতা উন্নত করার নীতিমালা" +lang: bn +--- + +ব্যবহারযোগ্যতার হিউরিস্টিকস হল ব্যাপক “সাধারণ নিয়ম” যা আপনি আপনার সাইটের ব্যবহারযোগ্যতা পরিমাপ করতে ব্যবহার করতে পারেন। +এখানকার ৭টি হিউরিস্টিকস বিশেষভাবে Web3-এর জন্য তৈরি করা হয়েছে এবং Jakob Nielsen-এর [ইন্টারঅ্যাকশন ডিজাইনের জন্য ১০টি সাধারণ নীতি](https://www.nngroup.com/articles/ten-usability-heuristics/)-এর পাশাপাশি ব্যবহার করা উচিত। + +## web3-এর জন্য সাতটি ব্যবহারযোগ্যতার হিউরিস্টিকস {#seven-usability-heuristics-for-web3} + +1. কাজের পরে প্রতিক্রিয়া +2. নিরাপত্তা এবং বিশ্বাস +3. সবচেয়ে গুরুত্বপূর্ণ তথ্য স্পষ্ট +4. সহজবোধ্য পরিভাষা +5. কাজগুলো যতটা সম্ভব সংক্ষিপ্ত +6. নেটওয়ার্ক সংযোগ দৃশ্যমান এবং নমনীয় +7. অ্যাপ থেকে নিয়ন্ত্রণ, ওয়ালেট থেকে নয় + +## সংজ্ঞা এবং উদাহরণ {#definitions-and-examples} + +### 1. কাজের পরে প্রতিক্রিয়া {#feedback-follows-action} + +**যখন কিছু ঘটেছে, বা ঘটছে, তখন তা স্পষ্ট হওয়া উচিত।** + +ব্যবহারকারীরা তাদের পূর্ববর্তী পদক্ষেপের ফলাফলের উপর ভিত্তি করে তাদের পরবর্তী পদক্ষেপের বিষয়ে সিদ্ধান্ত নেয়। তাই এটা অপরিহার্য যে তারা সিস্টেমের অবস্থা সম্পর্কে অবগত থাকে। Web3-তে এটি বিশেষভাবে গুরুত্বপূর্ণ কারণ লেনদেনগুলি ব্লকচেইনে জমা হতে কখনও কখনও একটি সংক্ষিপ্ত সময় নিতে পারে। যদি তাদের অপেক্ষা করার জন্য কোনো প্রতিক্রিয়া না থাকে, তাহলে ব্যবহারকারীরা নিশ্চিত হতে পারে না যে কিছু ঘটেছে কিনা। + +**পরামর্শ:** + +- মেসেজিং, নোটিফিকেশন এবং অন্যান্য সতর্কবার্তার মাধ্যমে ব্যবহারকারীকে জানান। +- অপেক্ষার সময় স্পষ্টভাবে জানান। +- যদি কোনো কাজে কয়েক সেকেন্ডের বেশি সময় লাগে, তাহলে একটি টাইমার বা একটি অ্যানিমেশন দিয়ে ব্যবহারকারীকে আশ্বস্ত করুন যাতে তারা অনুভব করে যে কিছু ঘটছে। +- যদি একটি প্রক্রিয়ায় একাধিক ধাপ থাকে, তাহলে প্রতিটি ধাপ দেখান। + +**উদাহরণ:** +একটি লেনদেনের সাথে জড়িত প্রতিটি ধাপ দেখানো ব্যবহারকারীদের জানতে সাহায্য করে যে তারা প্রক্রিয়ার কোথায় আছে। উপযুক্ত আইকন ব্যবহারকারীকে তাদের কাজের স্থিতি জানতে দেয়। + +![টোকেন সোয়াপ করার সময় প্রতিটি ধাপ সম্পর্কে ব্যবহারকারীকে জানানো](./Image1.png) + +### 2. নিরাপত্তা এবং বিশ্বাস অন্তর্নির্মিত {#security-and-trust-are-backed-in} + +নিরাপত্তাকে অগ্রাধিকার দেওয়া উচিত, এবং এটি ব্যবহারকারীর জন্য জোর দেওয়া উচিত। +লোকেরা তাদের ডেটা সম্পর্কে গভীরভাবে যত্ন নেয়। নিরাপত্তা প্রায়শই ব্যবহারকারীদের জন্য একটি প্রাথমিক উদ্বেগের বিষয়, তাই ডিজাইনের সমস্ত স্তরে এটি বিবেচনা করা উচিত। আপনার সর্বদা আপনার ব্যবহারকারীদের বিশ্বাস অর্জনের চেষ্টা করা উচিত, কিন্তু আপনি যেভাবে এটি করেন তা বিভিন্ন অ্যাপে বিভিন্ন অর্থ বোঝাতে পারে। এটি একটি পরবর্তী চিন্তা হওয়া উচিত নয়, বরং এটি সচেতনভাবে সর্বত্র ডিজাইন করা উচিত। সামাজিক চ্যানেল এবং নথিপত্র সহ ব্যবহারকারীর অভিজ্ঞতার সর্বত্র বিশ্বাস তৈরি করুন, এবং চূড়ান্ত UI। বিকেন্দ্রীকরণের স্তর, ট্রেজারি মাল্টি-সিগ স্ট্যাটাস, এবং দলটির পরিচয় প্রকাশ করা হয়েছে কিনা, এই সবই ব্যবহারকারীদের বিশ্বাসকে প্রভাবিত করে + +**পরামর্শ:** + +- আপনার অডিট গর্বের সাথে তালিকাভুক্ত করুন +- একাধিক অডিট করান +- আপনার ডিজাইন করা যেকোনো নিরাপত্তা ফিচারের বিজ্ঞাপন দিন +- অন্তর্নিহিত ইন্টিগ্রেশন সহ সম্ভাব্য ঝুঁকিগুলি তুলে ধরুন +- কৌশলের জটিলতা সম্পর্কে জানান +- নন-UI সমস্যাগুলি বিবেচনা করুন যা আপনার ব্যবহারকারীদের নিরাপত্তার ধারণাকে প্রভাবিত করতে পারে + +**উদাহরণ:** +ফুটারের মধ্যে আপনার অডিট একটি বিশিষ্ট আকারে অন্তর্ভুক্ত করুন। + +![ওয়েবসাইট ফুটারে উল্লেখিত অডিট](./Image2.png) + +### 3. সবচেয়ে গুরুত্বপূর্ণ তথ্য স্পষ্ট {#the-most-important-info-is-obvious} + +জটিল সিস্টেমের জন্য, শুধুমাত্র সবচেয়ে প্রাসঙ্গিক ডেটা দেখান। কোনটি সবচেয়ে গুরুত্বপূর্ণ তা নির্ধারণ করুন, এবং এর প্রদর্শনকে অগ্রাধিকার দিন। +অতিরিক্ত তথ্য বিভ্রান্তিকর হতে পারে এবং ব্যবহারকারীরা সাধারণত সিদ্ধান্ত নেওয়ার সময় একটি তথ্যের উপর নির্ভর করে। DeFi-তে, এটি সম্ভবত ইয়েল্ড অ্যাপে APR এবং লেন্ডিং অ্যাপে LTV হবে। + +**পরামর্শ:** + +- ব্যবহারকারী গবেষণা সবচেয়ে গুরুত্বপূর্ণ মেট্রিক উন্মোচন করবে +- মূল তথ্য বড় করুন, এবং অন্যান্য বিবরণ ছোট এবং অগোচরে রাখুন +- মানুষ পড়ে না, তারা স্ক্যান করে; নিশ্চিত করুন আপনার ডিজাইন স্ক্যানযোগ্য + +**উদাহরণ:** পূর্ণ রঙের বড় টোকেন স্ক্যান করার সময় খুঁজে পাওয়া সহজ। APR বড় এবং একটি অ্যাকসেন্ট রঙে হাইলাইট করা হয়েছে। + +![টোকেন এবং APR খুঁজে পাওয়া সহজ](./Image3.png) + +### ৪. স্পষ্ট পরিভাষা {#clear-terminology} + +পরিভাষা সহজবোধ্য এবং উপযুক্ত হওয়া উচিত। +প্রযুক্তিগত পরিভাষা একটি বিশাল বাধা হতে পারে, কারণ এর জন্য একটি সম্পূর্ণ নতুন মানসিক মডেল তৈরির প্রয়োজন হয়। ব্যবহারকারীরা ডিজাইনটিকে এমন শব্দ, বাক্যাংশ এবং ধারণার সাথে সম্পর্কিত করতে পারে না যা তারা ইতিমধ্যে জানে। সবকিছু বিভ্রান্তিকর এবং অপরিচিত মনে হয়, এবং এমনকি এটি ব্যবহার করার চেষ্টা করার আগেও একটি খাড়া শেখার বক্ররেখা রয়েছে। একজন ব্যবহারকারী কিছু টাকা সঞ্চয় করতে চেয়ে DeFi-তে আসতে পারে, এবং তারা যা খুঁজে পায় তা হল: মাইনিং, ফার্মিং, স্টেকিং, এমিশন, ব্রাইব, ভল্ট, লকার, veTokens, ভেস্টিং, ইপকস, ডিসেন্ট্রালাইজড অ্যালগরিদম, প্রোটোকল-ওনড লিকুইডিটি… +সহজ পরিভাষা ব্যবহার করার চেষ্টা করুন যা সবচেয়ে বিস্তৃত গোষ্ঠীর মানুষ বুঝতে পারবে। শুধুমাত্র আপনার প্রকল্পের জন্য একেবারে নতুন পরিভাষা উদ্ভাবন করবেন না। + +**পরামর্শ:** + +- সহজ এবং সামঞ্জস্যপূর্ণ পরিভাষা ব্যবহার করুন +- যতটা সম্ভব বিদ্যমান ভাষা ব্যবহার করুন +- আপনার নিজস্ব পরিভাষা তৈরি করবেন না +- প্রচলিত নিয়মগুলি অনুসরণ করুন যেমনটি সেগুলি প্রদর্শিত হয় +- যতটা সম্ভব ব্যবহারকারীদের শিক্ষিত করুন + +**উদাহরণ:** +“আপনার পুরস্কার” একটি ব্যাপকভাবে বোঝা, নিরপেক্ষ পরিভাষা; এই প্রকল্পের জন্য তৈরি করা কোনো নতুন শব্দ নয়। বাস্তব বিশ্বের মানসিক মডেলগুলির সাথে মেলানোর জন্য পুরস্কারগুলি USD-তে নির্ধারিত হয়, যদিও পুরস্কারগুলি নিজেরাই অন্য টোকেনে থাকে। + +![টোকেন পুরস্কার, মার্কিন ডলারে প্রদর্শিত](./Image4.png) + +### ৫। কাজগুলো যতটা সম্ভব সংক্ষিপ্ত {#actions-are-as-short-as-possible} + +উপ-কাজগুলিকে গোষ্ঠীবদ্ধ করে ব্যবহারকারীর ইন্টারঅ্যাকশনের গতি বাড়ান। +এটি স্মার্ট কন্ট্র্যাক্ট স্তরে, এবং UI-তেও করা যেতে পারে। একটি সাধারণ কাজ সম্পন্ন করতে ব্যবহারকারীকে সিস্টেমের এক অংশ থেকে অন্য অংশে – অথবা সিস্টেমটি পুরোপুরি ছেড়ে যেতে হবে না। + +**পরামর্শ:** + +- যেখানে সম্ভব অন্যান্য কাজের সাথে "অনুমোদন" একত্রিত করুন +- সাইনিং পদক্ষেপগুলি যতটা সম্ভব কাছাকাছি একত্রিত করুন + +**উদাহরণ:** “তারল্য যোগ করুন” এবং “স্টেক” একত্রিত করা একটি অ্যাক্সিলারেটরের একটি সহজ উদাহরণ যা একজন ব্যবহারকারীর সময় এবং গ্যাস উভয়ই বাঁচায়। + +![ডিপোজিট এবং স্টেক কাজগুলিকে একত্রিত করার জন্য একটি সুইচ দেখানো মোডাল](./Image5.png) + +### ৬. নেটওয়ার্ক সংযোগ দৃশ্যমান এবং নমনীয় {#network-connections-are-visible-and-flexible} + +ব্যবহারকারীকে জানান তারা কোন নেটওয়ার্কে সংযুক্ত আছে, এবং নেটওয়ার্ক পরিবর্তন করার জন্য স্পষ্ট শর্টকাট প্রদান করুন। +এটি মাল্টিচেইন অ্যাপে বিশেষভাবে গুরুত্বপূর্ণ। সংযোগ বিচ্ছিন্ন থাকা অবস্থায় বা একটি অসমর্থিত নেটওয়ার্কে সংযুক্ত থাকা অবস্থায়ও অ্যাপের প্রধান ফাংশনগুলি দৃশ্যমান থাকা উচিত। + +**পরামর্শ:** + +- সংযোগ বিচ্ছিন্ন থাকা অবস্থায় অ্যাপের যতটা সম্ভব দেখান +- ব্যবহারকারী বর্তমানে কোন নেটওয়ার্কে সংযুক্ত আছে তা দেখান +- নেটওয়ার্ক পরিবর্তন করতে ব্যবহারকারীকে ওয়ালেটে যেতে বাধ্য করবেন না +- যদি অ্যাপটি ব্যবহারকারীকে নেটওয়ার্ক পরিবর্তন করতে বলে, তবে প্রধান কল টু অ্যাকশন থেকে কাজটি প্রম্পট করুন +- যদি অ্যাপটিতে একাধিক নেটওয়ার্কের জন্য মার্কেট বা ভল্ট থাকে, তবে স্পষ্টভাবে বলুন ব্যবহারকারী বর্তমানে কোন সেটটি দেখছে + +**উদাহরণ:** ব্যবহারকারীকে দেখান তারা কোন নেটওয়ার্কে সংযুক্ত আছে, এবং অ্যাপবারে তাদের এটি পরিবর্তন করার অনুমতি দিন। + +![সংযুক্ত নেটওয়ার্ক দেখানো ড্রপডাউন বোতাম](./Image6.png) + +### ৭. অ্যাপ থেকে নিয়ন্ত্রণ, ওয়ালেট থেকে নয় {#control-from-the-app-not-the-wallet} + +UI-এর উচিত ব্যবহারকারীকে তার যা কিছু জানা দরকার তা বলা এবং তার যা কিছু করা দরকার তার উপর নিয়ন্ত্রণ দেওয়া। +Web3-তে, এমন কিছু কাজ আছে যা আপনি UI-তে করেন, এবং এমন কিছু কাজ আছে যা আপনি ওয়ালেটে করেন। সাধারণত, আপনি UI-তে একটি কাজ শুরু করেন, এবং তারপর ওয়ালেটে তা নিশ্চিত করেন। যদি এই দুটি ধারা সাবধানে একত্রিত না করা হয় তবে ব্যবহারকারীরা অস্বস্তি বোধ করতে পারে। + +**পরামর্শ:** + +- UI-তে প্রতিক্রিয়ার মাধ্যমে সিস্টেমের স্থিতি জানান +- তাদের ইতিহাসের একটি রেকর্ড রাখুন +- পুরানো লেনদেনের জন্য ব্লক এক্সপ্লোরারের লিঙ্ক প্রদান করুন +- নেটওয়ার্ক পরিবর্তন করার জন্য শর্টকাট প্রদান করুন। + +একটি সূক্ষ্ম কন্টেইনার ব্যবহারকারীকে দেখায় তাদের ওয়ালেটে কোন প্রাসঙ্গিক টোকেন আছে, এবং প্রধান CTA নেটওয়ার্ক পরিবর্তন করার জন্য একটি শর্টকাট প্রদান করে। + +![প্রধান CTA ব্যবহারকারীকে নেটওয়ার্ক পরিবর্তন করতে প্রম্পট করছে](./Image7.png) diff --git a/public/content/translations/bn/developers/docs/design-and-ux/index.md b/public/content/translations/bn/developers/docs/design-and-ux/index.md new file mode 100644 index 00000000000..ad5c5f16890 --- /dev/null +++ b/public/content/translations/bn/developers/docs/design-and-ux/index.md @@ -0,0 +1,86 @@ +--- +title: "Web3 তে ডিজাইন এবং UX" +description: "Web3 স্পেস এবং ইথেরিয়াম-এ UX ডিজাইন এবং গবেষণার ভূমিকা" +lang: bn +--- + +আপনি কি ইথেরিয়াম দিয়ে ডিজাইন করার ক্ষেত্রে নতুন? এটি আপনার জন্য সঠিক জায়গা। Web3 ডিজাইন এবং গবেষণার মূল বিষয়গুলির সাথে আপনাকে পরিচয় করিয়ে দেওয়ার জন্য ইথেরিয়াম কমিউনিটি রিসোর্স লিখেছে। আপনি এমন মূল ধারণাগুলি সম্পর্কে শিখবেন যা আপনার পরিচিত অন্যান্য অ্যাপ ডিজাইন থেকে ভিন্ন হতে পারে। + +প্রথমে Web3 সম্পর্কে আরও প্রাথমিক ধারণা প্রয়োজন? [**লার্ন হাব**](/learn/) দেখুন। + +## ব্যবহারকারী গবেষণা দিয়ে শুরু করুন {#start-with-user-research} + +কার্যকরী ডিজাইন শুধুমাত্র দৃশ্যত আকর্ষণীয় ব্যবহারকারী ইন্টারফেস তৈরি করার মধ্যেই সীমাবদ্ধ নয়। এর মধ্যে ব্যবহারকারীর প্রয়োজন, উদ্দেশ্য এবং চালিকা শক্তি সম্পর্কে গভীর উপলব্ধি অর্জন করা জড়িত। অতএব, আমরা দৃঢ়ভাবে সুপারিশ করি যে সমস্ত ডিজাইনার একটি ডিজাইন প্রক্রিয়া, যেমন [**ডাবল ডায়মন্ড প্রক্রিয়া**](https://en.wikipedia.org/wiki/Double_Diamond_\(design_process_model\)) গ্রহণ করুন, যাতে তাদের কাজ ইচ্ছাকৃত এবং উদ্দেশ্যপ্রণোদিত হয়। + +- [Web3-এর আরও বেশি UX গবেষক এবং ডিজাইনার প্রয়োজন](https://blog.akasha.org/akasha-conversations-9-web3-needs-more-ux-researchers-and-designers) - বর্তমান ডিজাইন পরিপক্কতার একটি সংক্ষিপ্ত বিবরণ +- [web3-এ UX গবেষণার জন্য একটি সহজ নির্দেশিকা](https://uxplanet.org/a-complete-guide-to-ux-research-for-web-3-0-products-d6bead20ebb1) - কিভাবে গবেষণা করতে হয় তার সহজ নির্দেশিকা +- [Web3-তে UX সিদ্ধান্ত গ্রহণের পদ্ধতি](https://archive.devcon.org/archive/watch/6/data-empathy-how-to-approach-ux-decisions-in-web3/) - পরিমাণগত এবং গুণগত গবেষণা এবং দুটির মধ্যে পার্থক্যের একটি সংক্ষিপ্ত বিবরণ (ভিডিও, ৬ মিনিট) +- [web3-এ একজন ux গবেষক হওয়া](https://medium.com/@georgia.rakusen/what-its-like-being-a-user-researcher-in-web3-6a4bcc096849) - web3-এ একজন UX গবেষক হতে কেমন লাগে তার উপর একটি ব্যক্তিগত মতামত + +## web3-তে গবেষণামূলক অধ্যয়ন {#research-in-web3} + +এটি web3-তে করা ব্যবহারকারী গবেষণার একটি সংকলিত তালিকা যা ডিজাইন এবং পণ্য সংক্রান্ত সিদ্ধান্তে সাহায্য করতে পারে অথবা নিজের অধ্যয়ন পরিচালনা করার জন্য অনুপ্রেরণা হিসাবে কাজ করতে পারে। + +| ফোকাসের ক্ষেত্র | নাম | +| :------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ক্রিপ্টো অনবোর্ডিং | [The Reown Pulse 2024: ক্রিপ্টো গ্রাহকের অনুভূতি এবং ব্যবহার](https://reown.com/blog/unveiling-walletconnects-consumer-crypto-report) | +| ক্রিপ্টো অনবোর্ডিং | [CRADL: ক্রিপটোকারেন্সিতে UX](https://docs.google.com/presentation/d/1s2OPSH5sMJzxRYaJSSRTe8W2iIoZx0PseIV-WeZWD1s/edit?usp=sharing) | +| ক্রিপ্টো অনবোর্ডিং | [CRADL: ক্রিপটোকারেন্সিতে অনবোর্ডিং](https://docs.google.com/presentation/d/1R9nFuzA-R6SxaGCKhoMbE4Vxe0JxQSTiHXind3LVq_w/edit?usp=sharing) | +| ক্রিপ্টো অনবোর্ডিং | [Bitcoin UX রিপোর্ট](https://github.com/patestevao/BitcoinUX-report/blob/master/report.md) | +| ক্রিপ্টো অনবোর্ডিং | [ConSensys: বিশ্বজুড়ে Web3 ধারণা বিষয়ক অবস্থা 2023](https://consensys.io/insight-report/web3-and-crypto-global-survey-2023) | +| ক্রিপ্টো অনবোর্ডিং | [NEAR: গ্রহণযোগ্যতার দিকে যাত্রাকে ত্বরান্বিত করা](https://drive.google.com/file/d/1VuaQP4QSaQxR5ddQKTMGI0b0rWdP7uGn/view) | +| স্টেকিং | [OpenUX: Rocket Pool নোড অপারেটর UX](https://storage.googleapis.com/rocketpool/RocketPool-NodeOperator-UX-Report-Jan-2024.pdf) | +| স্টেকিং | [স্টেকিং: মূল প্রবণতা, শিক্ষণীয় বিষয় এবং পূর্বাভাস - Eth স্ট্যাকার](https://lookerstudio.google.com/u/0/reporting/cafcee00-e1af-4148-bae8-442a88ac75fa/page/p_ja2srdhh2c?s=hmbTWDh9hJo) | +| স্টেকিং | [মাল্টি অ্যাপ স্টেকিং](https://github.com/threshold-network/UX-User-Research/blob/main/Multi-App%20Staking%20\(MAS\)/iterative-user-study/MAS%20Iterative%20User%20Study.pdf) | +| DAO | [2022 DAO গবেষণা আপডেট: DAO নির্মাতাদের কী প্রয়োজন?](https://blog.aragon.org/2022-dao-research-update/) | +| DeFi | [কভারেজ পুল](https://github.com/threshold-network/UX-User-Research/tree/main/Keep%20Coverage%20Pool) | +| DeFi | [ConSensys: DeFi ব্যবহারকারী গবেষণা রিপোর্ট 2022](https://cdn2.hubspot.net/hubfs/4795067/ConsenSys%20Codefi-Defi%20User%20ResearchReport.pdf) | +| মেটাভার্স | [মেটাভার্স: ব্যবহারকারী গবেষণা রিপোর্ট](https://www.politico.com/f/?id=00000187-7685-d820-a7e7-7e85d1420000) | +| মেটাভার্স | [সাফারিতে যাওয়া: মেটাভার্সে ব্যবহারকারীদের নিয়ে গবেষণা](https://archive.devcon.org/archive/watch/6/going-on-safari-researching-users-in-the-metaverse/?tab=YouTube) (ভিডিও, 27 মিনিট) | + +## web3-এর জন্য ডিজাইন {#design-for-web3} + +- [Web3 UX ডিজাইন হ্যান্ডবুক](https://web3ux.design/) - Web3 অ্যাপ ডিজাইন করার জন্য ব্যবহারিক নির্দেশিকা +- [Web3 ডিজাইন নীতি](https://medium.com/@lyricalpolymath/web3-design-principles-f21db2f240c1) - ব্লকচেইন ভিত্তিক ডিএ্যাপস-এর জন্য UX নিয়মের একটি কাঠামো +- [ব্লকচেইন ডিজাইন নীতি](https://medium.com/design-ibm/blockchain-design-principles-599c5c067b6e) - IBM-এর ব্লকচেইন ডিজাইন দলের শেখা পাঠ +- [Neueux.com](https://neueux.com/apps) - বিভিন্ন ফিল্টারিং বিকল্প সহ ব্যবহারকারী ফ্লো-এর UI লাইব্রেরি +- [Web3-এর ব্যবহারযোগ্যতার সংকট: আপনার যা জানা দরকার!](https://www.youtube.com/watch?v=oBSXT_6YDzg) - ডেভেলপার কেন্দ্রিক প্রকল্প নির্মাণের সমস্যাগুলির উপর একটি প্যানেল আলোচনা (ভিডিও, 34 মিনিট) + +## শুরু করা {#getting-started} + +- [Web3-এর জন্য হিউরিস্টিকস](/developers/docs/design-and-ux/heuristics-for-web3/) - Web3 ইন্টারফেস ডিজাইনের জন্য 7টি হিউরিস্টিকস +- [DEX ডিজাইন সেরা অভ্যাস](/developers/docs/design-and-ux/dex-design-best-practice/) - ডিসেন্ট্রালাইজড এক্সচেঞ্জ ডিজাইন করার জন্য একটি নির্দেশিকা + +## Web3 ডিজাইন কেস স্টাডি {#design-case-studies} + +- [Deep Work Studio](https://www.deepwork.studio/case-studies) +- [OpenSea-তে একটি NFT বিক্রি করা](https://builtformars.com/case-studies/opensea) +- [ওয়ালেট UX টিয়ারডাউন: কিভাবে ওয়ালেট পরিবর্তন করা প্রয়োজন](https://www.youtube.com/watch?v=oTpuxYj8JWI&ab_channel=ETHDenver) (ভিডিও, 20 মিনিট) + +## ডিজাইন বাউন্টি {#bounties} + +- [Dework](https://app.dework.xyz/bounties) +- [Buildbox হ্যাক্যাথন](https://app.buidlbox.io/) +- [ETHGlobal হ্যাক্যাথন](https://ethglobal.com/) + +## ডিজাইন DAO এবং কমিউনিটি {#design-daos-and-communities} + +পেশাদার কমিউনিটি-চালিত সংস্থাগুলিতে জড়িত হন বা অন্যান্য সদস্যদের সাথে ডিজাইন এবং গবেষণা সম্পর্কিত বিষয় এবং প্রবণতা নিয়ে আলোচনা করার জন্য ডিজাইন গ্রুপে যোগ দিন। + +- [Vectordao.com](https://vectordao.com/) +- [Deepwork.studio](https://www.deepwork.studio/) +- [We3.co](https://we3.co/) +- [Openux.xyz](https://openux.xyz/) + +## ডিজাইন সিস্টেম এবং অন্যান্য ডিজাইন রিসোর্স {#design-systems-and-resources} + +- [Optimism ডিজাইন](https://www.figma.com/@optimism) (Figma) +- [Ethereum.org ডিজাইন সিস্টেম](https://www.figma.com/@ethdotorg) (Figma) +- [Finity, Polygon-এর একটি ডিজাইন সিস্টেম](https://www.figma.com/community/file/1073921725197233598/finity-design-system) (Figma) +- [Kleros ডিজাইন সিস্টেম](https://www.figma.com/community/file/999852250110186964/kleros-design-system) (Figma) +- [Safe ডিজাইন সিস্টেম](https://www.figma.com/community/file/1337417127407098506/safe-design-system) (Figma) +- [ENS ডিজাইন সিস্টেম](https://thorin.ens.domains/) +- [Mirror ডিজাইন সিস্টেম](https://degen-xyz.vercel.app/) + +**এই পৃষ্ঠায় তালিকাভুক্ত নিবন্ধ এবং প্রকল্পগুলি অফিসিয়াল অনুমোদন নয়**, এবং শুধুমাত্র তথ্যের উদ্দেশ্যে প্রদান করা হয়েছে। +আমরা আমাদের [তালিকাভুক্তকরণ নীতি](/contributing/design/adding-design-resources)-এর মানদণ্ডের উপর ভিত্তি করে এই পৃষ্ঠায় লিঙ্ক যুক্ত করি। আপনি যদি চান আমরা কোনো প্রকল্প/নিবন্ধ যোগ করি, তাহলে [GitHub](https://github.com/ethereum/ethereum-org-website/blob/dev/public/content/developers/docs/design-and-ux/index.md)-এ এই পৃষ্ঠাটি সম্পাদনা করুন। diff --git a/public/content/translations/bn/developers/docs/development-networks/index.md b/public/content/translations/bn/developers/docs/development-networks/index.md new file mode 100644 index 00000000000..c48e8c3e96b --- /dev/null +++ b/public/content/translations/bn/developers/docs/development-networks/index.md @@ -0,0 +1,71 @@ +--- +title: "ডেভেলপমেন্ট নেটওয়ার্ক" +description: "ডেভেলপমেন্ট নেটওয়ার্ক এবং ইথেরিয়াম অ্যাপ্লিকেশন তৈরিতে সাহায্য করার জন্য উপলব্ধ টুলগুলির একটি ওভারভিউ।" +lang: bn +--- + +স্মার্ট কন্ট্র্যাক্ট সহ একটি ইথেরিয়াম অ্যাপ্লিকেশন তৈরি করার সময়, আপনি এটিকে ডিপ্লয় করার আগে এটি কীভাবে কাজ করে তা দেখার জন্য একটি স্থানীয় নেটওয়ার্কে চালাতে চাইবেন। + +ওয়েব ডেভেলপমেন্টের জন্য আপনি আপনার কম্পিউটারে যেভাবে একটি স্থানীয় সার্ভার চালাতে পারেন, সেভাবেই আপনার dapp পরীক্ষা করার জন্য একটি স্থানীয় ব্লকচেইন ইনস্ট্যান্স তৈরি করতে আপনি একটি ডেভেলপমেন্ট নেটওয়ার্ক ব্যবহার করতে পারেন। এই ইথেরিয়াম ডেভেলপমেন্ট নেটওয়ার্কগুলি এমন বৈশিষ্ট্য সরবরাহ করে যা একটি পাবলিক টেস্টনেটের চেয়ে অনেক দ্রুত পুনরাবৃত্তির অনুমতি দেয় (উদাহরণস্বরূপ আপনাকে টেস্টনেট ফসেট থেকে ETH অর্জন করার সাথে ডিল করতে হবে না)। + +## পূর্বশর্ত {#prerequisites} + +ডেভেলপমেন্ট নেটওয়ার্কে প্রবেশ করার আগে আপনার [ইথেরিয়াম স্ট্যাকের মূল বিষয়গুলি](/developers/docs/ethereum-stack/) এবং [ইথেরিয়াম নেটওয়ার্কগুলি](/developers/docs/networks/) বোঝা উচিত। + +## একটি ডেভেলপমেন্ট নেটওয়ার্ক কী? {#what-is-a-development-network} + +ডেভেলপমেন্ট নেটওয়ার্কগুলি মূলত ইথেরিয়াম ক্লায়েন্ট (ইথেরিয়ামের বাস্তবায়ন) যা বিশেষত স্থানীয় ডেভেলপমেন্টের জন্য ডিজাইন করা হয়েছে। + +**কেন শুধু স্থানীয়ভাবে একটি স্ট্যান্ডার্ড ইথেরিয়াম নোড চালাবেন না?** + +আপনি _পারেন_ [একটি নোড চালাতে](/developers/docs/nodes-and-clients/#running-your-own-node) কিন্তু যেহেতু ডেভেলপমেন্ট নেটওয়ার্কগুলি ডেভেলপমেন্টের জন্য উদ্দেশ্য-নির্মিত, তাই তারা প্রায়শই সুবিধাজনক বৈশিষ্ট্য সহ আসে যেমন: + +- আপনার স্থানীয় ব্লকচেইনকে ডেটা দিয়ে নির্ণায়কভাবে সীড করা (যেমন, ETH ব্যালেন্স সহ অ্যাকাউন্ট)। +- এটি প্রাপ্ত প্রতিটি ট্রানজ্যাকশনের সাথে সাথে, ক্রমানুসারে এবং কোনো বিলম্ব ছাড়াই ব্লক তৈরি করা +- উন্নত ডিবাগিং এবং লগিং কার্যকারিতা + +## উপলব্ধ টুলস {#available-projects} + +**নোট**: বেশিরভাগ [ডেভেলপমেন্ট ফ্রেমওয়ার্ক](/developers/docs/frameworks/) একটি অন্তর্নির্মিত ডেভেলপমেন্ট নেটওয়ার্ক অন্তর্ভুক্ত করে। আপনার [স্থানীয় ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করতে](/developers/local-environment/) আমরা একটি ফ্রেমওয়ার্ক দিয়ে শুরু করার পরামর্শ দিই। + +### Hardhat নেটওয়ার্ক {#hardhat-network} + +ডেভেলপমেন্টের জন্য ডিজাইন করা একটি স্থানীয় ইথেরিয়াম নেটওয়ার্ক। এটি আপনাকে আপনার কন্ট্র্যাক্ট ডিপ্লয় করতে, আপনার পরীক্ষা চালাতে এবং আপনার কোড ডিবাগ করতে দেয়। + +Hardhat নেটওয়ার্ক Hardhat-এর সাথে বিল্ট-ইন আসে, যা পেশাদারদের জন্য একটি ইথেরিয়াম ডেভেলপমেন্ট এনভায়রনমেন্ট। + +- [ওয়েবসাইট](https://hardhat.org/) +- [GitHub](https://github.com/NomicFoundation/hardhat) + +### স্থানীয় বিকন চেইন {#local-beacon-chains} + +কিছু কনসেন্সাস ক্লায়েন্টের পরীক্ষার উদ্দেশ্যে স্থানীয় বিকন চেইন চালু করার জন্য অন্তর্নির্মিত টুলস রয়েছে। Lighthouse, Nimbus এবং Lodestar-এর জন্য নির্দেশাবলী উপলব্ধ আছে: + +- [Lodestar ব্যবহার করে স্থানীয় টেস্টনেট](https://chainsafe.github.io/lodestar/contribution/advanced-topics/setting-up-a-testnet#post-merge-local-testnet/) +- [Lighthouse ব্যবহার করে স্থানীয় টেস্টনেট](https://lighthouse-book.sigmaprime.io/setup.html#local-testnets) + +### পাবলিক ইথেরিয়াম টেস্ট-চেইন {#public-beacon-testchains} + +ইথেরিয়ামের দুটি রক্ষণাবেক্ষণ করা পাবলিক টেস্ট ইমপ্লিমেন্টেশনও রয়েছে: Sepolia এবং Hoodi। দীর্ঘমেয়াদী সাপোর্ট সহ প্রস্তাবিত টেস্টনেট হলো Hoodi, যেখানে যে কেউ ভ্যালিডেট করতে স্বাধীন। Sepolia একটি অনুমতিপ্রাপ্ত ভ্যালিডেটর সেট ব্যবহার করে, যার অর্থ এই টেস্টনেটে নতুন ভ্যালিডেটরদের জন্য কোনো সাধারণ অ্যাক্সেস নেই। + +- [Hoodi স্টেকিং লঞ্চপ্যাড](https://hoodi.launchpad.ethereum.org/) + +### Kurtosis ইথেরিয়াম প্যাকেজ {#kurtosis} + +Kurtosis হলো মাল্টি-কন্টেইনার টেস্ট এনভায়রনমেন্টের জন্য একটি বিল্ড সিস্টেম যা ডেভেলপারদের স্থানীয়ভাবে ব্লকচেইন নেটওয়ার্কের পুনরুৎপাদনযোগ্য ইনস্ট্যান্স চালু করতে সক্ষম করে। + +ইথেরিয়াম Kurtosis প্যাকেজটি Docker বা Kubernetes-এর উপর একটি প্যারামিটারাইজযোগ্য, অত্যন্ত স্কেলেবল এবং ব্যক্তিগত ইথেরিয়াম টেস্টনেটকে দ্রুত ইনস্ট্যান্টিয়েট করতে ব্যবহার করা যেতে পারে। প্যাকেজটি সমস্ত প্রধান এক্সিকিউশন লেয়ার (EL) এবং কনসেন্সাস লেয়ার (CL) ক্লায়েন্টদের সাপোর্ট করে। Kurtosis সুন্দরভাবে ইথেরিয়াম কোর ইনফ্রাস্ট্রাকচার সম্পর্কিত ভ্যালিডেশন এবং টেস্টিং ওয়ার্কফ্লোতে ব্যবহারের জন্য একটি প্রতিনিধিত্বকারী নেটওয়ার্কের জন্য সমস্ত স্থানীয় পোর্ট ম্যাপিং এবং পরিষেবা সংযোগগুলি পরিচালনা করে। + +- [ইথেরিয়াম নেটওয়ার্ক প্যাকেজ](https://github.com/kurtosis-tech/ethereum-package) +- [ওয়েবসাইট](https://www.kurtosis.com/) +- [GitHub](https://github.com/kurtosis-tech/kurtosis) +- [নথিপত্র](https://docs.kurtosis.com/) + +## আরও পড়ুন {#further-reading} + +_এমন কোনো কমিউনিটি রিসোর্স সম্পর্কে জানেন যা আপনাকে সাহায্য করেছে? এই পৃষ্ঠাটি সম্পাদনা করুন এবং এটি যোগ করুন!_ + +## সম্পর্কিত বিষয় {#related-topics} + +- [ডেভেলপমেন্ট ফ্রেমওয়ার্ক](/developers/docs/frameworks/) +- [একটি স্থানীয় ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করুন](/developers/local-environment/) diff --git a/public/content/translations/bn/developers/docs/ethereum-stack/index.md b/public/content/translations/bn/developers/docs/ethereum-stack/index.md new file mode 100644 index 00000000000..8e68181c133 --- /dev/null +++ b/public/content/translations/bn/developers/docs/ethereum-stack/index.md @@ -0,0 +1,61 @@ +--- +title: "Ethereum স্ট্যাকের ভূমিকা" +description: "Ethereum স্ট্যাকের বিভিন্ন লেয়ার এবং কীভাবে সেগুলি একসাথে ফিট করে তার একটি ওয়াকথ্রু।" +lang: bn +--- + +যেকোনও সফটওয়্যার স্ট্যাকের মতোই, আপনার লক্ষ্যের উপর নির্ভর করে সম্পূর্ণ "Ethereum স্ট্যাক" প্রজেক্ট থেকে প্রজেক্টে ভিন্ন হবে। + +তবে, Ethereum-এর মূল উপাদান রয়েছে যা সফটওয়্যার অ্যাপ্লিকেশনগুলি কীভাবে Ethereum ব্লকচেইনের সাথে ইন্টারঅ্যাক্ট করে তার জন্য একটি মানসিক মডেল প্রদান করতে সহায়তা করে। স্ট্যাকের লেয়ারগুলি বোঝা আপনাকে সেই বিভিন্ন উপায়গুলি বুঝতে সাহায্য করবে যার মাধ্যমে Ethereum সফ্টওয়্যার প্রজেক্টগুলিতে একত্রিত করা যেতে পারে। + +## স্তর 1: Ethereum ভার্চুয়াল মেশিন {#ethereum-virtual-machine} + +[Ethereum ভার্চুয়াল মেশিন (EVM)](/developers/docs/evm/) হলো Ethereum-এ স্মার্ট কন্ট্র্যাক্টের জন্য রানটাইম এনভায়রনমেন্ট। Ethereum ব্লকচেইনের সমস্ত স্মার্ট কন্ট্র্যাক্ট এবং অবস্থার পরিবর্তন [ট্রানজ্যাকশন](/developers/docs/transactions/) দ্বারা নির্বাহ করা হয়। EVM, Ethereum নেটওয়ার্কের সমস্ত ট্রানজ্যাকশন প্রসেসিং পরিচালনা করে। + +যেকোনো ভার্চুয়াল মেশিনের মতোই, EVM এক্সিকিউটিং কোড এবং এক্সিকিউটিং মেশিন (একটি Ethereum নোড) এর মধ্যে একটি অ্যাবস্ট্র্যাকশন লেভেল তৈরি করে। বর্তমানে, EVM বিশ্বজুড়ে বিতরণ করা হাজার হাজার নোডে চলছে। + +ভিতরে ভিতরে, EVM নির্দিষ্ট কাজ সম্পাদন করার জন্য অপকোড নির্দেশাবলীর একটি সেট ব্যবহার করে। এই (140টি অনন্য) অপকোডগুলি EVM-কে [Turing-complete](https://en.wikipedia.org/wiki/Turing_completeness) হতে দেয়, যার মানে হল পর্যাপ্ত রিসোর্স থাকলে EVM প্রায় যেকোনো কিছু গণনা করতে সক্ষম। + +একজন ডিএ্যাপ ডেভেলপার হিসেবে, আপনার EVM সম্পর্কে এর অস্তিত্ব এবং এটি ডাউনটাইম ছাড়াই নির্ভরযোগ্যভাবে Ethereum-এর সমস্ত অ্যাপ্লিকেশনকে শক্তি জোগায়, এর বাইরে খুব বেশি কিছু জানার দরকার নেই। + +## স্তর 2: স্মার্ট কন্ট্র্যাক্ট {#smart-contracts} + +[স্মার্ট কন্ট্র্যাক্ট](/developers/docs/smart-contracts/) হলো এক্সিকিউটেবল প্রোগ্রাম যা Ethereum ব্লকচেইনে চলে। + +স্মার্ট কন্ট্র্যাক্টগুলি নির্দিষ্ট [প্রোগ্রামিং ভাষা](/developers/docs/smart-contracts/languages/) ব্যবহার করে লেখা হয় যা EVM বাইটকোডে (অপকোড নামক নিম্ন-স্তরের মেশিন নির্দেশাবলী) কম্পাইল হয়। + +স্মার্ট কন্ট্র্যাক্টগুলি কেবল ওপেন সোর্স লাইব্রেরি হিসেবেই কাজ করে না, তারা মূলত ওপেন API পরিষেবা যা সর্বদা চালু থাকে এবং বন্ধ করা যায় না। স্মার্ট কন্ট্র্যাক্টগুলি পাবলিক ফাংশন সরবরাহ করে যার সাথে ব্যবহারকারী এবং অ্যাপ্লিকেশনগুলি ([ডিএ্যাপস](/developers/docs/dapps/)) অনুমতি ছাড়াই ইন্টারঅ্যাক্ট করতে পারে। যেকোনো অ্যাপ্লিকেশন ফাংশনালিটি কম্পোজ করার জন্য ডিপ্লয় করা স্মার্ট কন্ট্র্যাক্টের সাথে ইন্টিগ্রেট করতে পারে, যেমন [ডেটা ফিড](/developers/docs/oracles/) যোগ করা বা টোকেন সোয়াপ সমর্থন করা। এছাড়াও, যে কেউ তাদের অ্যাপ্লিকেশনের প্রয়োজন মেটাতে কাস্টম ফাংশনালিটি যোগ করার জন্য Ethereum-এ নতুন স্মার্ট কন্ট্র্যাক্ট ডিপ্লয় করতে পারে। + +একজন ডিএ্যাপ ডেভেলপার হিসেবে, আপনি যদি Ethereum ব্লকচেইনে কাস্টম ফাংশনালিটি যোগ করতে চান তবেই আপনাকে স্মার্ট কন্ট্র্যাক্ট লিখতে হবে। আপনি হয়তো দেখবেন যে আপনি শুধুমাত্র বিদ্যমান স্মার্ট কন্ট্র্যাক্টগুলির সাথে ইন্টিগ্রেট করেই আপনার প্রজেক্টের বেশিরভাগ বা সমস্ত প্রয়োজন পূরণ করতে পারেন, উদাহরণস্বরূপ যদি আপনি স্টেবলকয়েনে পেমেন্ট সমর্থন করতে চান বা টোকেনের ডিসেন্ট্রালাইজড এক্সচেঞ্জ সক্ষম করতে চান। + +## স্তর 3: Ethereum নোড {#ethereum-nodes} + +একটি অ্যাপ্লিকেশনের Ethereum ব্লকচেইনের সাথে ইন্টারঅ্যাক্ট করার জন্য, এটিকে অবশ্যই একটি [Ethereum নোডের](/developers/docs/nodes-and-clients/) সাথে সংযোগ স্থাপন করতে হবে। একটি নোডের সাথে সংযোগ স্থাপন করলে আপনি ব্লকচেইন ডেটা পড়তে এবং/অথবা নেটওয়ার্কে ট্রানজ্যাকশন পাঠাতে পারবেন। + +Ethereum নোড হলো সফটওয়্যার চালিত কম্পিউটার - একটি Ethereum ক্লায়েন্ট। একটি ক্লায়েন্ট হলো Ethereum-এর একটি বাস্তবায়ন যা প্রতিটি ব্লকের সমস্ত ট্রানজ্যাকশন যাচাই করে, নেটওয়ার্ককে সুরক্ষিত এবং ডেটাকে নির্ভুল রাখে। **Ethereum নোডগুলিই হলো Ethereum ব্লকচেইন**। তারা সম্মিলিতভাবে Ethereum ব্লকচেইনের অবস্থা সংরক্ষণ করে এবং ব্লকচেইনের অবস্থা পরিবর্তন করার জন্য ট্রানজ্যাকশনের উপর কনসেন্সাসে পৌঁছায়। + +আপনার অ্যাপ্লিকেশনটিকে একটি Ethereum নোডের সাথে ([JSON-RPC API](/developers/docs/apis/json-rpc/) এর মাধ্যমে) সংযোগ করে, আপনার অ্যাপ্লিকেশনটি ব্লকচেইন থেকে ডেটা পড়তে (যেমন ব্যবহারকারী অ্যাকাউন্টের ব্যালেন্স) এবং নেটওয়ার্কে নতুন ট্রানজ্যাকশন ব্রডকাস্ট করতে (যেমন ব্যবহারকারী অ্যাকাউন্টগুলির মধ্যে ETH স্থানান্তর করা বা স্মার্ট কন্ট্র্যাক্টের ফাংশনগুলি এক্সিকিউট করা) সক্ষম হয়। + +## স্তর 4: Ethereum ক্লায়েন্ট API {#ethereum-client-apis} + +অনেক সুবিধাজনক লাইব্রেরি (Ethereum-এর ওপেন সোর্স কমিউনিটি দ্বারা নির্মিত এবং রক্ষণাবেক্ষণ করা) আপনার অ্যাপ্লিকেশনগুলিকে Ethereum ব্লকচেইনের সাথে সংযোগ স্থাপন এবং যোগাযোগ করতে দেয়। + +যদি আপনার ব্যবহারকারী-মুখী অ্যাপ্লিকেশনটি একটি ওয়েব অ্যাপ হয়, আপনি সরাসরি আপনার ফ্রন্টএন্ডে একটি [JavaScript API](/developers/docs/apis/javascript/) `npm install` করতে পারেন। অথবা হয়তো আপনি একটি [Python](/developers/docs/programming-languages/python/) বা [Java](/developers/docs/programming-languages/java/) API ব্যবহার করে এই ফাংশনালিটি সার্ভার-সাইডে বাস্তবায়ন করতে পছন্দ করবেন। + +যদিও এই API-গুলি স্ট্যাকের একটি অপরিহার্য অংশ নয়, তবে তারা সরাসরি একটি Ethereum নোডের সাথে ইন্টারঅ্যাক্ট করার অনেক জটিলতাকে অ্যাবস্ট্রাক্ট করে। তারা ইউটিলিটি ফাংশনও (যেমন, ETH-কে Gwei-তে রূপান্তর করা) সরবরাহ করে, তাই একজন ডেভেলপার হিসেবে আপনি Ethereum ক্লায়েন্টের জটিলতা নিয়ে কম সময় ব্যয় করতে পারেন এবং আপনার অ্যাপ্লিকেশনের নির্দিষ্ট ফাংশনালিটির উপর বেশি সময় মনোযোগ দিতে পারেন। + +## স্তর 5: এন্ড-ইউজার অ্যাপ্লিকেশন {#end-user-applications} + +স্ট্যাকের সর্বোচ্চ স্তরে রয়েছে ব্যবহারকারী-মুখী অ্যাপ্লিকেশন। এগুলি হলো স্ট্যান্ডার্ড অ্যাপ্লিকেশন যা আপনি আজ নিয়মিত ব্যবহার করেন এবং তৈরি করেন: প্রাথমিকভাবে ওয়েব এবং মোবাইল অ্যাপ। + +আপনি যেভাবে এই ইউজার ইন্টারফেসগুলি ডেভেলপ করেন তা মূলত অপরিবর্তিত থাকে। প্রায়শই ব্যবহারকারীদের জানার প্রয়োজন হবে না যে তারা যে অ্যাপ্লিকেশনটি ব্যবহার করছে তা একটি ব্লকচেইন ব্যবহার করে তৈরি করা হয়েছে। + +## আপনার স্ট্যাক বেছে নিতে প্রস্তুত? {#ready-to-choose-your-stack} + +আপনার Ethereum অ্যাপ্লিকেশনের জন্য একটি [লোকাল ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ](/developers/local-environment/) করতে আমাদের গাইডটি দেখুন। + +## আরও পড়ুন {#further-reading} + +- [একটি ওয়েব 3.0 অ্যাপ্লিকেশনের আর্কিটেকচার](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) - _প্রীতি কাসিরেড্ডি_ + +_এমন কোনো কমিউনিটি রিসোর্স সম্পর্কে জানেন যা আপনাকে সাহায্য করেছে? এই পৃষ্ঠাটি সম্পাদনা করুন এবং এটি যোগ করুন!_ diff --git a/public/content/translations/bn/developers/docs/evm/index.md b/public/content/translations/bn/developers/docs/evm/index.md new file mode 100644 index 00000000000..91ff30ed91d --- /dev/null +++ b/public/content/translations/bn/developers/docs/evm/index.md @@ -0,0 +1,88 @@ +--- +title: "ইথেরিয়াম ভার্চুয়াল মেশিন (EVM)" +description: "ইথেরিয়াম ভার্চুয়াল মেশিনের একটি পরিচিতি এবং এটি কীভাবে স্টেট, ট্রানজ্যাকশন এবং স্মার্ট কন্ট্র্যাক্টের সাথে সম্পর্কিত।" +lang: bn +--- + +ইথেরিয়াম ভার্চুয়াল মেশিন (EVM) একটি বিকেন্দ্রীভূত ভার্চুয়াল এনভায়রনমেন্ট যা সমস্ত Ethereum নোড জুড়ে ধারাবাহিকভাবে এবং সুরক্ষিতভাবে কোড এক্সিকিউট করে। নোডগুলি স্মার্ট কন্ট্র্যাক্ট এক্সিকিউট করার জন্য EVM চালায়, "[gas](/developers/docs/gas/)" ব্যবহার করে [অপারেশনগুলির](/developers/docs/evm/opcodes/) জন্য প্রয়োজনীয় কম্পিউটেশনাল প্রচেষ্টা পরিমাপ করে, যা কার্যকর রিসোর্স বরাদ্দ এবং নেটওয়ার্ক নিরাপত্তা নিশ্চিত করে। + +## পূর্বশর্ত {#prerequisites} + +EVM বোঝার জন্য কম্পিউটার সায়েন্সের কিছু সাধারণ পরিভাষা যেমন [bytes](https://wikipedia.org/wiki/Byte), [memory](https://wikipedia.org/wiki/Computer_memory), এবং একটি [stack](https://wikipedia.org/wiki/Stack_\(abstract_data_type\)) এর সাথে প্রাথমিক পরিচিতি থাকা প্রয়োজন। ক্রিপ্টোগ্রাফি/ব্লকচেইন ধারণা যেমন [hash functions](https://wikipedia.org/wiki/Cryptographic_hash_function) এবং [Merkle tree](https://wikipedia.org/wiki/Merkle_tree) এর সাথে পরিচিতি থাকলেও সহায়ক হবে। + +## লেজার থেকে স্টেট মেশিন {#from-ledger-to-state-machine} + +Bitcoin-এর মতো ব্লকচেইন বর্ণনা করার জন্য প্রায়শই 'ডিস্ট্রিবিউটেড লেজার'-এর উপমা ব্যবহার করা হয়, যা ক্রিপ্টোগ্রাফির মৌলিক টুলস ব্যবহার করে একটি বিকেন্দ্রীভূত কারেন্সি সক্ষম করে। লেজারটি কার্যকলাপের একটি রেকর্ড বজায় রাখে যা একটি নির্দিষ্ট নিয়মাবলীর সেটকে মেনে চলে, যা নির্ধারণ করে যে কেউ লেজারটি পরিবর্তন করার জন্য কী করতে পারে এবং কী করতে পারে না। উদাহরণস্বরূপ, একটি Bitcoin অ্যাড্রেস আগে যা পেয়েছে তার থেকে বেশি Bitcoin খরচ করতে পারে না। এই নিয়মগুলি Bitcoin এবং অন্যান্য অনেক ব্লকচেইনের সমস্ত ট্রানজ্যাকশনের ভিত্তি। + +যদিও Ethereum-এর নিজস্ব নেটিভ ক্রিপটোকারেন্সি (ইথার) আছে যা প্রায় একই স্বজ্ঞাত নিয়মগুলি অনুসরণ করে, এটি একটি অনেক বেশি শক্তিশালী ফাংশনও সক্ষম করে: [smart contracts](/developers/docs/smart-contracts/)। এই আরও জটিল বৈশিষ্ট্যের জন্য, একটি আরও পরিশীলিত উপমার প্রয়োজন। ডিস্ট্রিবিউটেড লেজারের পরিবর্তে, Ethereum একটি ডিস্ট্রিবিউটেড [state machine](https://wikipedia.org/wiki/Finite-state_machine)। Ethereum-এর স্টেট হল একটি বিশাল ডেটা স্ট্রাকচার যা শুধুমাত্র সমস্ত অ্যাকাউন্ট এবং ব্যালেন্সই ধরে রাখে না, বরং একটি _মেশিন স্টেট_ ধারণ করে, যা একটি পূর্ব-নির্ধারিত নিয়মাবলীর সেট অনুযায়ী ব্লক থেকে ব্লকে পরিবর্তন হতে পারে, এবং যা ইচ্ছামত মেশিন কোড এক্সিকিউট করতে পারে। ব্লক থেকে ব্লকে স্টেট পরিবর্তনের নির্দিষ্ট নিয়মগুলি EVM দ্বারা সংজ্ঞায়িত হয়। + +![EVM-এর গঠন দেখানো একটি ডায়াগ্রাম](./evm.png) +_[Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf) থেকে অভিযোজিত ডায়াগ্রাম_ + +## Ethereum স্টেট ট্রানজিশন ফাংশন {#the-ethereum-state-transition-function} + +EVM একটি গাণিতিক ফাংশনের মতো আচরণ করে: একটি ইনপুট দিলে, এটি একটি ডিটারমিনিস্টিক আউটপুট তৈরি করে। অতএব, Ethereum-কে আরও আনুষ্ঠানিকভাবে একটি **স্টেট ট্রানজিশন ফাংশন** হিসেবে বর্ণনা করা বেশ সহায়ক: + +``` +Y(S, T)= S' +``` + +একটি পুরানো বৈধ স্টেট `(S)` এবং নতুন বৈধ ট্রানজ্যাকশনের সেট `(T)` দেওয়া হলে, Ethereum স্টেট ট্রানজিশন ফাংশন `Y(S, T)` একটি নতুন বৈধ আউটপুট স্টেট `S'` তৈরি করে। + +### স্টেট {#state} + +Ethereum-এর প্রসঙ্গে, স্টেট হল একটি বিশাল ডেটা স্ট্রাকচার যা [modified Merkle Patricia Trie](/developers/docs/data-structures-and-encoding/patricia-merkle-trie/) নামে পরিচিত, যা সমস্ত [অ্যাকাউন্টকে](/developers/docs/accounts/) হ্যাসের মাধ্যমে লিঙ্ক করে রাখে এবং ব্লকচেইনে সংরক্ষিত একটি একক রুট হ্যাসে পরিণত করা যায়। + +### লেনদেন {#transactions} + +লেনদেন হল অ্যাকাউন্ট থেকে ক্রিপ্টোগ্রাফিকভাবে স্বাক্ষরিত নির্দেশাবলী। দুই ধরনের ট্রানজ্যাকশন আছে: যেগুলি মেসেজ কলের ফলে হয় এবং যেগুলি কন্ট্র্যাক্ট তৈরির ফলে হয়। + +কন্ট্র্যাক্ট তৈরির ফলে একটি নতুন কন্ট্র্যাক্ট অ্যাকাউন্ট তৈরি হয়, যেখানে কম্পাইল করা [স্মার্ট কন্ট্র্যাক্ট](/developers/docs/smart-contracts/anatomy/) বাইটকোড থাকে। যখনই অন্য কোনো অ্যাকাউন্ট সেই কন্ট্র্যাক্টে মেসেজ কল করে, তখন এটি তার বাইটকোড এক্সিকিউট করে। + +## EVM নির্দেশাবলী {#evm-instructions} + +EVM একটি 1024 আইটেমের ডেপথ সহ [স্ট্যাক মেশিন](https://wikipedia.org/wiki/Stack_machine) হিসাবে এক্সিকিউট করে। প্রতিটি আইটেম একটি 256-বিটের শব্দ, যা 256-বিট ক্রিপ্টোগ্রাফি (যেমন Keccak-256 হ্যাস বা secp256k1 সিগনেচার) এর সাথে ব্যবহারের সুবিধার জন্য বেছে নেওয়া হয়েছিল। + +এক্সিকিউশনের সময়, EVM একটি ক্ষণস্থায়ী _মেমরি_ (একটি শব্দ-অ্যাড্রেসড বাইট অ্যারে হিসাবে) বজায় রাখে, যা ট্রানজ্যাকশনের মধ্যে স্থায়ী হয় না। + +### ক্ষণস্থায়ী স্টোরেজ + +ক্ষণস্থায়ী স্টোরেজ হল একটি প্রতি-ট্রানজ্যাকশন কী-ভ্যালু স্টোর যা `TSTORE` এবং `TLOAD` অপকোডের মাধ্যমে অ্যাক্সেস করা হয়। এটি একই ট্রানজ্যাকশনের সময় সমস্ত অভ্যন্তরীণ কলের মধ্যে স্থায়ী হয় কিন্তু ট্রানজ্যাকশনের শেষে মুছে যায়। মেমরির মতো নয়, ক্ষণস্থায়ী স্টোরেজ এক্সিকিউশন ফ্রেমের পরিবর্তে EVM স্টেটের অংশ হিসাবে মডেল করা হয়, তবুও এটি গ্লোবাল স্টেটে প্রতিশ্রুতিবদ্ধ নয়। ক্ষণস্থায়ী স্টোরেজ একটি ট্রানজ্যাকশনের সময় অভ্যন্তরীণ কলের মধ্যে গ্যাস-সাশ্রয়ী অস্থায়ী স্টেট শেয়ারিং সক্ষম করে। + +### সংগ্রহস্থল + +কন্ট্র্যাক্টে একটি Merkle Patricia _স্টোরেজ_ ট্রাই (একটি শব্দ-অ্যাড্রেসযোগ্য শব্দ অ্যারে হিসাবে) থাকে, যা সংশ্লিষ্ট অ্যাকাউন্টের সাথে যুক্ত এবং গ্লোবাল স্টেটের অংশ। এই স্থায়ী স্টোরেজ ক্ষণস্থায়ী স্টোরেজ থেকে আলাদা, যা শুধুমাত্র একটি একক ট্রানজ্যাকশনের সময়কালের জন্য উপলব্ধ এবং অ্যাকাউন্টের স্থায়ী স্টোরেজ ট্রাই-এর অংশ গঠন করে না। + +### Opcodes + +কম্পাইল করা স্মার্ট কন্ট্র্যাক্ট বাইটকোড একাধিক EVM [opcodes](/developers/docs/evm/opcodes) হিসাবে এক্সিকিউট হয়, যা `XOR`, `AND`, `ADD`, `SUB` ইত্যাদির মতো স্ট্যান্ডার্ড স্ট্যাক অপারেশন সম্পাদন করে। EVM এছাড়াও `ADDRESS`, `BALANCE`, `BLOCKHASH` ইত্যাদির মতো বেশ কিছু ব্লকচেইন-নির্দিষ্ট স্ট্যাক অপারেশন প্রয়োগ করে। অপকোড সেটে `TSTORE` এবং `TLOAD` অন্তর্ভুক্ত রয়েছে, যা ক্ষণস্থায়ী স্টোরেজে অ্যাক্সেস প্রদান করে। + +![EVM অপারেশনের জন্য কোথায় গ্যাসের প্রয়োজন হয় তা দেখানো একটি ডায়াগ্রাম](../gas/gas.png) +_[Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf) থেকে অভিযোজিত ডায়াগ্রাম_ + +## EVM ইমপ্লিমেন্টেশন {#evm-implementations} + +EVM-এর সমস্ত ইমপ্লিমেন্টেশনকে অবশ্যই Ethereum Yellowpaper-এ বর্ণিত স্পেসিফিকেশন মেনে চলতে হবে। + +Ethereum-এর দশ বছরের ইতিহাসে, EVM-এর বেশ কিছু সংশোধন হয়েছে, এবং বিভিন্ন প্রোগ্রামিং ভাষায় EVM-এর বেশ কিছু ইমপ্লিমেন্টেশন রয়েছে। + +[Ethereum এক্সিকিউশন ক্লায়েন্টগুলিতে](/developers/docs/nodes-and-clients/#execution-clients) একটি EVM ইমপ্লিমেন্টেশন অন্তর্ভুক্ত থাকে। এছাড়াও, একাধিক স্বতন্ত্র ইমপ্লিমেন্টেশন রয়েছে, যার মধ্যে রয়েছে: + +- [Py-EVM](https://github.com/ethereum/py-evm) - _Python_ +- [evmone](https://github.com/ethereum/evmone) - _C++_ +- [ethereumjs-vm](https://github.com/ethereumjs/ethereumjs-vm) - _JavaScript_ +- [revm](https://github.com/bluealloy/revm) - _Rust_ + +## আরও পড়ুন {#further-reading} + +- [Ethereum Yellowpaper](https://ethereum.github.io/yellowpaper/paper.pdf) +- [Jellopaper ওরফে KEVM: K-তে EVM-এর সেম্যান্টিক্স](https://jellopaper.org/) +- [The Beigepaper](https://github.com/chronaeon/beigepaper) +- [Ethereum ভার্চুয়াল মেশিন অপকোড](https://www.ethervm.io/) +- [Ethereum ভার্চুয়াল মেশিন অপকোড ইন্টারঅ্যাক্টিভ রেফারেন্স](https://www.evm.codes/) +- [Solidity-র ডকুমেন্টেশনে একটি সংক্ষিপ্ত পরিচিতি](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html#index-6) +- [মাস্টারিং Ethereum - দি Ethereum ভার্চুয়াল মেশিন](https://github.com/ethereumbook/ethereumbook/blob/openedition/13evm.asciidoc) + +## সম্পর্কিত বিষয় {#related-topics} + +- [গ্যাস](/developers/docs/gas/) diff --git a/public/content/translations/bn/developers/docs/evm/opcodes/index.md b/public/content/translations/bn/developers/docs/evm/opcodes/index.md new file mode 100644 index 00000000000..9740ce20db4 --- /dev/null +++ b/public/content/translations/bn/developers/docs/evm/opcodes/index.md @@ -0,0 +1,177 @@ +--- +title: "EVM-এর জন্য অপকোডসমূহ" +description: "ইথেরিয়াম ভার্চুয়াল মেশিনের জন্য উপলব্ধ সমস্ত অপকোডের একটি তালিকা।" +lang: bn +--- + +## একনজরে {#overview} + +এটি [wolflo/evm-opcodes](https://github.com/wolflo/evm-opcodes)-এ EVM রেফারেন্স পেজের একটি আপডেট করা সংস্করণ। +এছাড়াও এটি [ইয়োলো পেপার](https://ethereum.github.io/yellowpaper/paper.pdf), [জেলো পেপার](https://jellopaper.org/evm/), এবং [geth](https://github.com/ethereum/go-ethereum) ইমপ্লিমেন্টেশন থেকে নেওয়া হয়েছে। +এটি একটি সহজলভ্য রেফারেন্স হিসেবে তৈরি করা হয়েছে, তবে এটি বিশেষভাবে কঠোর নয়। +আপনি যদি সঠিকতার ব্যাপারে নিশ্চিত হতে চান এবং প্রতিটি এজ কেস সম্পর্কে অবগত থাকতে চান, তবে জেলো পেপার বা ক্লায়েন্ট ইমপ্লিমেন্টেশন ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। + +একটি ইন্টারেক্টিভ রেফারেন্স খুঁজছেন? [evm.codes](https://www.evm.codes/) দেখুন। + +ডাইনামিক গ্যাস খরচের অপারেশনগুলোর জন্য, [gas.md](https://github.com/wolflo/evm-opcodes/blob/main/gas.md) দেখুন। + +💡 দ্রুত টিপ: সম্পূর্ণ লাইন দেখতে, ডেস্কটপে অনুভূমিকভাবে স্ক্রল করার জন্য `[shift] + scroll` ব্যবহার করুন। + +| স্ট্যাক | নাম | গ্যাস | প্রাথমিক স্ট্যাক | ফলাফল স্ট্যাক | Mem / সংগ্রহস্থল | নোট | | +| :-----: | :------------- | :---------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | +| 00 | STOP | 0 | | | | এক্সিকিউশন থামিয়ে দিন | | +| 01 | ADD | 3 | `a, b` | `a + b` | | (u)int256 যোগ মডিউলো 2\*\*256 | | +| 02 | MUL | 5 | `a, b` | `a * b` | | (u)int256 গুণ মডিউলো 2\*\*256 | | +| 03 | SUB | 3 | `a, b` | `a - b` | | (u)int256 বিয়োগ মডিউলো 2\*\*256 | | +| 04 | DIV | 5 | `a, b` | `a // b` | | uint256 ভাগ | | +| 05 | SDIV | 5 | `a, b` | `a // b` | | int256 ভাগ | | +| 06 | MOD | 5 | `a, b` | `a % b` | | uint256 মডিউলাস | | +| 07 | SMOD | 5 | `a, b` | `a % b` | | int256 মডিউলাস | | +| 08 | ADDMOD | 8 | `a, b, N` | `(a + b) % N` | | (u)int256 যোগ মডিউলো N | | +| 09 | MULMOD | 8 | `a, b, N` | `(a * b) % N` | | (u)int256 গুণ মডিউলো N | | +| 0A | EXP | [A1](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a1-exp) | `a, b` | `a ** b` | | uint256 এক্সপোনেনশিয়েশন মডিউলো 2\*\*256 | | +| 0B | SIGNEXTEND | 5 | `b, x` | `SIGNEXTEND(x, b)` | | [sign extend](https://wikipedia.org/wiki/Sign_extension) `x`-কে `(b+1)` বাইট থেকে 32 বাইটে প্রসারিত করুন | | +| 0C-0F | _অবৈধ_ | | | | | | | +| 10 | LT | 3 | `a, b` | `a < b` | | uint256 এর থেকে ছোট | | +| 11 | GT | 3 | `a, b` | `a > b` | | uint256 এর থেকে বড় | | +| 12 | SLT | 3 | `a, b` | `a < b` | | int256 এর থেকে ছোট | | +| 13 | SGT | 3 | `a, b` | `a > b` | | int256 এর থেকে বড় | | +| 14 | EQ | 3 | `a, b` | `a == b` | | (u)int256 সমতা | | +| 15 | ISZERO | 3 | `a` | `a == 0` | | (u)int256 iszero | | +| 16 | AND | 3 | `a, b` | `a && b` | | বিটওয়াইজ AND | | +| 17 | OR | 3 | `a, b` | `a \\|\\| b` | | বিটওয়াইজ OR | | +| 18 | XOR | 3 | `a, b` | `a ^ b` | | বিটওয়াইজ XOR | | +| 19 | NOT | 3 | `a` | `~a` | | বিটওয়াইজ NOT | | +| 1A | BYTE | 3 | `i, x` | `(x >> (248 - i * 8)) && 0xFF` | | বাম দিক থেকে (u)int256 `x` এর `i`তম বাইট | | +| 1B | SHL | 3 | `shift, val` | `val << shift` | | বামে শিফট করুন | | +| 1C | SHR | 3 | `shift, val` | `val >> shift` | | লজিক্যাল শিফট রাইট | | +| 1D | SAR | 3 | `shift, val` | `val >> shift` | | অ্যারিথমেটিক শিফট রাইট | | +| 1E-1F | _অবৈধ_ | | | | | | | +| 20 | KECCAK256 | [A2](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a2-sha3) | `ost, len` | `keccak256(mem[ost:ost+len-1])` | | keccak256 | | +| 21-2F | _অবৈধ_ | | | | | | | +| 30 | ADDRESS | 2 | `.` | `address(this)` | | এক্সিকিউটিং কনট্র্যাক্টের ঠিকানা | | +| 31 | BALANCE | [A5](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a5-balance-extcodesize-extcodehash) | `addr` | `addr.balance` | | ব্যালেন্স, wei-তে | | +| 32 | ORIGIN | 2 | `.` | `tx.origin` | | যে ঠিকানা থেকে tx শুরু হয়েছে | | +| 33 | CALLER | 2 | `.` | `msg.sender` | | msg প্রেরকের ঠিকানা | | +| 34 | CALLVALUE | 2 | `.` | `msg.value` | | msg ভ্যালু, wei-তে | | +| 35 | CALLDATALOAD | 3 | `idx` | `msg.data[idx:idx+32]` | | `idx` ইনডেক্সে msg ডেটা থেকে ওয়ার্ড পড়ুন | | +| 36 | CALLDATASIZE | 2 | `.` | `len(msg.data)` | | msg ডেটার দৈর্ঘ্য, বাইটে | | +| 37 | CALLDATACOPY | [A3](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a3-copy-operations) | `dstOst, ost, len` | `.` | mem[dstOst:dstOst+len-1] := msg.data[ost:ost+len-1] | msg ডেটা কপি করুন | | +| 38 | CODESIZE | 2 | `.` | `len(this.code)` | | এক্সিকিউটিং কনট্র্যাক্টের কোডের দৈর্ঘ্য, বাইটে | | +| 39 | CODECOPY | [A3](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a3-copy-operations) | `dstOst, ost, len` | `.` | | mem[dstOst:dstOst+len-1] := this.code[ost:ost+len-1] | এক্সিকিউটিং কনট্র্যাক্টের বাইটকোড কপি করুন | +| 3A | GASPRICE | 2 | `.` | `tx.gasprice` | | tx-এর গ্যাস প্রাইস, প্রতি ইউনিট গ্যাসের জন্য wei-তে [\*\*](https://eips.ethereum.org/EIPS/eip-1559#gasprice) | | +| 3B | EXTCODESIZE | [A5](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a5-balance-extcodesize-extcodehash) | `addr` | `len(addr.code)` | | addr-এ কোডের সাইজ, বাইটে | | +| 3C | EXTCODECOPY | [A4](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a4-extcodecopy) | `addr, dstOst, ost, len` | `.` | mem[dstOst:dstOst+len-1] := addr.code[ost:ost+len-1] | `addr` থেকে কোড কপি করুন | | +| 3D | RETURNDATASIZE | 2 | `.` | `size` | | শেষ এক্সটার্নাল কল থেকে ফেরত আসা ডেটার সাইজ, বাইটে | | +| 3E | RETURNDATACOPY | [A3](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a3-copy-operations) | `dstOst, ost, len` | `.` | mem[dstOst:dstOst+len-1] := returndata[ost:ost+len-1] | শেষ এক্সটার্নাল কল থেকে ফেরত আসা ডেটা কপি করুন | | +| 3F | EXTCODEHASH | [A5](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a5-balance-extcodesize-extcodehash) | `addr` | `হ্যাস` | | হ্যাস = addr.exists ? keccak256(addr.code) : 0 | | +| 40 | BLOCKHASH | 20 | `blockNum` | `blockHash(blockNum)` | | | | +| 41 | COINBASE | 2 | `.` | `block.coinbase` | | বর্তমান ব্লকের প্রপোজারের ঠিকানা | | +| 42 | TIMESTAMP | 2 | `.` | `block.timestamp` | | বর্তমান ব্লকের টাইমস্ট্যাম্প | | +| 43 | NUMBER | 2 | `.` | `block.number` | | বর্তমান ব্লকের নম্বর | | +| 44 | PREVRANDAO | 2 | `.` | `randomness beacon` | | র‍্যান্ডমনেস বিকন | | +| 45 | GASLIMIT | 2 | `.` | `block.gaslimit` | | বর্তমান ব্লকের গ্যাস লিমিট | | +| 46 | CHAINID | 2 | `.` | `chain_id` | | বর্তমান [চেইন আইডি](https://eips.ethereum.org/EIPS/eip-155) স্ট্যাকে পুশ করুন | | +| 47 | SELFBALANCE | 5 | `.` | `address(this).balance` | | এক্সিকিউটিং কনট্র্যাক্টের ব্যালেন্স, wei-তে | | +| 48 | BASEFEE | 2 | `.` | `block.basefee` | | বর্তমান ব্লকের বেস ফি | | +| 49 | BLOBHASH | 3 | `idx` | `tx.blob_versioned_hashes[idx]` | | [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) | | +| 4A | BLOBBASEFEE | 2 | `.` | `block.blobbasefee` | | বর্তমান ব্লকের ব্লব বেস ফি ([EIP-7516](https://eips.ethereum.org/EIPS/eip-7516)) | | +| 4B-4F | _অবৈধ_ | | | | | | | +| 50 | POP | 2 | `_anon` | `.` | | স্ট্যাকের শীর্ষ থেকে আইটেম সরান এবং এটি বাতিল করুন | | +| 51 | MLOAD | 3[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost` | `mem[ost:ost+32]` | | অফসেট `ost`-এ মেমরি থেকে ওয়ার্ড পড়ুন | | +| 52 | MSTORE | 3[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost, val` | `.` | mem[ost:ost+32] := val | মেমরিতে একটি ওয়ার্ড লিখুন | | +| 53 | MSTORE8 | 3[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost, val` | `.` | mem[ost] := val && 0xFF | মেমরিতে একটি একক বাইট লিখুন | | +| 54 | SLOAD | [A6](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a6-sload) | `key` | `সংগ্রহস্থল[key]` | | সংগ্রহস্থল থেকে ওয়ার্ড পড়ুন | | +| 55 | SSTORE | [A7](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a7-sstore) | `key, val` | `.` | সংগ্রহস্থল[key] := val | সংগ্রহস্থলে ওয়ার্ড লিখুন | | +| 56 | JUMP | 8 | `dst` | `.` | | `$pc := dst` চিহ্নিত করুন যে `pc` শুধুমাত্র তখনই নির্ধারিত হবে যদি `dst` একটি বৈধ জাম্পডেস্ট হয় | | +| 57 | JUMPI | 10 | `dst, condition` | `.` | | `$pc := condition ?` dst : $pc + 1` | | +| 58 | PC | 2 | `.` | `$pc` | | প্রোগ্রাম কাউন্টার | | +| 59 | MSIZE | 2 | `.` | `len(mem)` | | বর্তমান এক্সিকিউশন কনটেক্সটে মেমরির সাইজ, বাইটে | | +| 5A | GAS | 2 | `.` | `gasRemaining` | | | | +| 5B | JUMPDEST | 1 | | | বৈধ জাম্প ডেস্টিনেশন চিহ্নিত করুন | একটি বৈধ জাম্প ডেস্টিনেশন উদাহরণস্বরূপ একটি জাম্প ডেস্টিনেশন পুশ ডেটার ভিতরে নয় | | +| 5C | TLOAD | 100 | `key` | `tstorage[key]` | | ট্রানজিয়েন্ট সংগ্রহস্থল থেকে ওয়ার্ড পড়ুন ([EIP-1153](https://eips.ethereum.org/EIPS/eip-1153)) | | +| 5D | TSTORE | 100 | `key, val` | `.` | tstorage[key] := val | ট্রানজিয়েন্ট সংগ্রহস্থলে ওয়ার্ড লিখুন ([EIP-1153](https://eips.ethereum.org/EIPS/eip-1153)) | | +| 5E | MCOPY | 3+3\*words+[A0](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `dstOst, ost, len` | `.` | mem[dstOst] := mem[ost:ost+len] | মেমরি এক এলাকা থেকে অন্য এলাকায় কপি করুন ([EIP-5656](https://eips.ethereum.org/EIPS/eip-5656)) | | +| 5F | PUSH0 | 2 | `.` | `uint8` | | স্ট্যাকে ধ্রুবক মান 0 পুশ করুন | | +| 60 | PUSH1 | 3 | `.` | `uint8` | | স্ট্যাকে 1-বাইট মান পুশ করুন | | +| 61 | PUSH2 | 3 | `.` | `uint16` | | স্ট্যাকে 2-বাইট মান পুশ করুন | | +| 62 | PUSH3 | 3 | `.` | `uint24` | | স্ট্যাকে 3-বাইট মান পুশ করুন | | +| 63 | PUSH4 | 3 | `.` | `uint32` | | স্ট্যাকে 4-বাইট মান পুশ করুন | | +| 64 | PUSH5 | 3 | `.` | `uint40` | | স্ট্যাকে 5-বাইট মান পুশ করুন | | +| 65 | PUSH6 | 3 | `.` | `uint48` | | স্ট্যাকে 6-বাইট মান পুশ করুন | | +| 66 | PUSH7 | 3 | `.` | `uint56` | | স্ট্যাকে 7-বাইট মান পুশ করুন | | +| 67 | PUSH8 | 3 | `.` | `uint64` | | স্ট্যাকে 8-বাইট মান পুশ করুন | | +| 68 | PUSH9 | 3 | `.` | `uint72` | | স্ট্যাকে 9-বাইট মান পুশ করুন | | +| 69 | PUSH10 | 3 | `.` | `uint80` | | স্ট্যাকে 10-বাইট মান পুশ করুন | | +| 6A | PUSH11 | 3 | `.` | `uint88` | | স্ট্যাকে 11-বাইট মান পুশ করুন | | +| 6B | PUSH12 | 3 | `.` | `uint96` | | স্ট্যাকে 12-বাইট মান পুশ করুন | | +| 6C | PUSH13 | 3 | `.` | `uint104` | | স্ট্যাকে 13-বাইট মান পুশ করুন | | +| 6D | PUSH14 | 3 | `.` | `uint112` | | স্ট্যাকে 14-বাইট মান পুশ করুন | | +| 6E | PUSH15 | 3 | `.` | `uint120` | | স্ট্যাকে 15-বাইট মান পুশ করুন | | +| 6F | PUSH16 | 3 | `.` | `uint128` | | স্ট্যাকে 16-বাইট মান পুশ করুন | | +| 70 | PUSH17 | 3 | `.` | `uint136` | | স্ট্যাকে 17-বাইট মান পুশ করুন | | +| 71 | PUSH18 | 3 | `.` | `uint144` | | স্ট্যাকে 18-বাইট মান পুশ করুন | | +| 72 | PUSH19 | 3 | `.` | `uint152` | | স্ট্যাকে 19-বাইট মান পুশ করুন | | +| 73 | PUSH20 | 3 | `.` | `uint160` | | স্ট্যাকে 20-বাইট মান পুশ করুন | | +| 74 | PUSH21 | 3 | `.` | `uint168` | | স্ট্যাকে 21-বাইট মান পুশ করুন | | +| 75 | PUSH22 | 3 | `.` | `uint176` | | স্ট্যাকে 22-বাইট মান পুশ করুন | | +| 76 | PUSH23 | 3 | `.` | `uint184` | | স্ট্যাকে 23-বাইট মান পুশ করুন | | +| 77 | PUSH24 | 3 | `.` | `uint192` | | স্ট্যাকে 24-বাইট মান পুশ করুন | | +| 78 | PUSH25 | 3 | `.` | `uint200` | | স্ট্যাকে 25-বাইট মান পুশ করুন | | +| 79 | PUSH26 | 3 | `.` | `uint208` | | স্ট্যাকে 26-বাইট মান পুশ করুন | | +| 7A | PUSH27 | 3 | `.` | `uint216` | | স্ট্যাকে 27-বাইট মান পুশ করুন | | +| 7B | PUSH28 | 3 | `.` | `uint224` | | স্ট্যাকে 28-বাইট মান পুশ করুন | | +| 7C | PUSH29 | 3 | `.` | `uint232` | | স্ট্যাকে 29-বাইট মান পুশ করুন | | +| 7D | PUSH30 | 3 | `.` | `uint240` | | স্ট্যাকে 30-বাইট মান পুশ করুন | | +| 7E | PUSH31 | 3 | `.` | `uint248` | | স্ট্যাকে 31-বাইট মান পুশ করুন | | +| 7F | PUSH32 | 3 | `.` | `uint256` | | স্ট্যাকে 32-বাইট মান পুশ করুন | | +| 80 | DUP1 | 3 | `a` | `a, a` | | স্ট্যাকের ১ম মানটি ক্লোন করুন | | +| 81 | DUP2 | 3 | `_, a` | `a, _, a` | | স্ট্যাকের ২য় মানটি ক্লোন করুন | | +| 82 | DUP3 | 3 | `_, _, a` | `a, _, _, a` | | স্ট্যাকের ৩য় মানটি ক্লোন করুন | | +| 83 | DUP4 | 3 | `_, _, _, a` | `a, _, _, _, a` | | স্ট্যাকের ৪র্থ মানটি ক্লোন করুন | | +| 84 | DUP5 | 3 | `..., a` | `a, ..., a` | | স্ট্যাকের ৫ম মানটি ক্লোন করুন | | +| 85 | DUP6 | 3 | `..., a` | `a, ..., a` | | স্ট্যাকের ৬ষ্ঠ মানটি ক্লোন করুন | | +| 86 | DUP7 | 3 | `..., a` | `a, ..., a` | | স্ট্যাকের ৭ম মানটি ক্লোন করুন | | +| 87 | DUP8 | 3 | `..., a` | `a, ..., a` | | স্ট্যাকের ৮ম মানটি ক্লোন করুন | | +| 88 | DUP9 | 3 | `..., a` | `a, ..., a` | | স্ট্যাকের ৯ম মানটি ক্লোন করুন | | +| 89 | DUP10 | 3 | `..., a` | `a, ..., a` | | স্ট্যাকের ১০ম মানটি ক্লোন করুন | | +| 8A | DUP11 | 3 | `..., a` | `a, ..., a` | | স্ট্যাকের ১১তম মানটি ক্লোন করুন | | +| 8B | DUP12 | 3 | `..., a` | `a, ..., a` | | স্ট্যাকের ১২তম মানটি ক্লোন করুন | | +| 8C | DUP13 | 3 | `..., a` | `a, ..., a` | | স্ট্যাকের ১৩তম মানটি ক্লোন করুন | | +| 8D | DUP14 | 3 | `..., a` | `a, ..., a` | | স্ট্যাকের ১৪তম মানটি ক্লোন করুন | | +| 8E | DUP15 | 3 | `..., a` | `a, ..., a` | | স্ট্যাকের ১৫তম মানটি ক্লোন করুন | | +| 8F | DUP16 | 3 | `..., a` | `a, ..., a` | | স্ট্যাকের ১৬তম মানটি ক্লোন করুন | | +| 90 | SWAP1 | 3 | `a, b` | `b, a` | | | | +| 91 | SWAP2 | 3 | `a, _, b` | `b, _, a` | | | | +| 92 | SWAP3 | 3 | `a, _, _, b` | `b, _, _, a` | | | | +| 93 | SWAP4 | 3 | `a, _, _, _, b` | `b, _, _, _, a` | | | | +| 94 | SWAP5 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 95 | SWAP6 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 96 | SWAP7 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 97 | SWAP8 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 98 | SWAP9 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 99 | SWAP10 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 9A | SWAP11 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 9B | SWAP12 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 9C | SWAP13 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 9D | SWAP14 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 9E | SWAP15 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 9F | SWAP16 | 3 | `a, ..., b` | `b, ..., a` | | | | +| A0 | LOG0 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len` | `.` | | LOG0(memory[ost:ost+len-1]) | | +| A1 | LOG1 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len, topic0` | `.` | | LOG1(memory[ost:ost+len-1], topic0) | | +| A2 | LOG2 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len, topic0, topic1` | `.` | | LOG2(memory[ost:ost+len-1], topic0, topic1) | | +| A3 | LOG3 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len, topic0, topic1, topic2` | `.` | | LOG3(memory[ost:ost+len-1], topic0, topic1, topic2) | | +| A4 | LOG4 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len, topic0, topic1, topic2, topic3` | `.` | | LOG4(memory[ost:ost+len-1], topic0, topic1, topic2, topic3) | | +| A5-EF | _অবৈধ_ | | | | | | | +| F0 | CREATE | [A9](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a9-create-operations) | `val, ost, len` | `addr` | | addr = keccak256(rlp([address(this), this.nonce])) | | +| F1 | CALL | [AA](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations) | গ্যাস, addr, val, argOst, argLen, retOst, retLen | `success` | mem[retOst:retOst+retLen-1] := returndata | | | +| F2 | CALLCODE | [AA](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations) | `গ্যাস, addr, val, argOst, argLen, retOst, retLen` | `success` | mem[retOst:retOst+retLen-1] = returndata | DELEGATECALL-এর মতোই, কিন্তু আসল msg.sender এবং msg.value প্রচার করে না | | +| F3 | RETURN | 0[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost, len` | `.` | | mem[ost:ost+len-1] রিটার্ন করুন | | +| F4 | DELEGATECALL | [AA](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations) | `গ্যাস, addr, argOst, argLen, retOst, retLen` | `success` | mem[retOst:retOst+retLen-1] := returndata | | | +| F5 | CREATE2 | [A9](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a9-create-operations) | `val, ost, len, salt` | `addr` | | addr = keccak256(0xff ++ address(this) ++ salt ++ keccak256(mem[ost:ost+len-1]))[12:] | | +| F6-F9 | _অবৈধ_ | | | | | | | +| FA | STATICCALL | [AA](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations) | `গ্যাস, addr, argOst, argLen, retOst, retLen` | `success` | mem[retOst:retOst+retLen-1] := returndata | | | +| FB-FC | _অবৈধ_ | | | | | | | +| FD | REVERT | 0[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost, len` | `.` | | revert(mem[ost:ost+len-1]) | | +| FE | INVALID | [AF](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#af-invalid) | | | মনোনীত অবৈধ অপকোড - [EIP-141](https://eips.ethereum.org/EIPS/eip-141) | | | +| FF | SELFDESTRUCT | [AB](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#ab-selfdestruct) | `addr` | `.` | | সমস্ত ETH `addr`-এ পাঠায়; যদি একটি কনট্র্যাক্ট তৈরি করার একই ট্রানজ্যাকশনে এটি এক্সিকিউট করা হয়, তবে এটি কনট্র্যাক্টটি ধ্বংস করে দেয় | | diff --git a/public/content/translations/bn/developers/docs/frameworks/index.md b/public/content/translations/bn/developers/docs/frameworks/index.md new file mode 100644 index 00000000000..9e39a7e09c8 --- /dev/null +++ b/public/content/translations/bn/developers/docs/frameworks/index.md @@ -0,0 +1,154 @@ +--- +title: "ডিএ্যাপ ডেভেলপমেন্ট ফ্রেমওয়ার্কস" +description: "ফ্রেমওয়ার্কের সুবিধাগুলো অন্বেষণ করুন এবং উপলব্ধ বিকল্পগুলির তুলনা করুন।" +lang: bn +--- + +## ফ্রেমওয়ার্কের ভূমিকা {#introduction-to-frameworks} + +একটি পূর্ণাঙ্গ ডিএ্যাপ তৈরি করার জন্য +বিভিন্ন ধরনের প্রযুক্তির প্রয়োজন হয়। সফ্টওয়্যার ফ্রেমওয়ার্কগুলোতে প্রয়োজনীয় অনেক +ফিচার অন্তর্ভুক্ত থাকে অথবা আপনার পছন্দের টুলগুলো বেছে নেওয়ার জন্য সহজ প্লাগইন সিস্টেম সরবরাহ করে। + +ফ্রেমওয়ার্কগুলো অনেক আউট-অফ-দ্য-বক্স কার্যকারিতা সহ আসে, +যেমন: + +- একটি স্থানীয় ব্লকচেইন মুহুর্তে স্পিন আপ করার ফিচারসমূহ। +- আপনার স্মার্ট কন্ট্র্যাক্ট গুলি কম্পাইল এবং পরীক্ষা করার ইউটিলিটি সমূহ। +- একই প্রজেক্ট/রিপোজিটরির মধ্যে আপনার ইউজার-ফেসিং অ্যাপ্লিকেশন তৈরি করার জন্য ক্লায়েন্ট ডেভেলপমেন্ট অ্যাড-অন। +- Ethereum নেটওয়ার্কের সাথে সংযোগ স্থাপন এবং কন্ট্র্যাক্ট ডেপ্লয় করার জন্য কনফিগারেশন, + সেটা স্থানীয়ভাবে চলমান কোনো ইনস্ট্যান্স হোক, অথবা Ethereum-এর কোনো পাবলিক নেটওয়ার্ক। +- ডিসেন্ট্রালাইজড অ্যাপ ডিস্ট্রিবিউশন - IPFS-এর মতো স্টোরেজ + বিকল্পগুলির সাথে ইন্টিগ্রেশন। + +## পূর্বশর্ত {#prerequisites} + +ফ্রেমওয়ার্কগুলিতে প্রবেশ করার আগে, আমরা আপনাকে প্রথমে আমাদের [ডিএ্যাপস](/developers/docs/dapps/) এবং [Ethereum স্ট্যাক](/developers/docs/ethereum-stack/) এর ভূমিকা পড়ে নেওয়ার পরামর্শ দিচ্ছি। + +## উপলব্ধ ফ্রেমওয়ার্ক {#available-frameworks} + +**Foundry** - **_Foundry হলো Ethereum অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য একটি অত্যন্ত দ্রুত, পোর্টেবল এবং মডুলার টুলকিট_** + +- [Foundry ইনস্টল করুন](https://book.getfoundry.sh/) +- [Foundry বই](https://book.getfoundry.sh/) +- [টেলিগ্রামে Foundry কমিউনিটি চ্যাট](https://t.me/foundry_support) +- [অসাম Foundry](https://github.com/crisgarner/awesome-foundry) + +**Hardhat -** **_পেশাদারদের জন্য Ethereum ডেভেলপমেন্ট এনভায়রনমেন্ট।_** + +- [hardhat.org](https://hardhat.org) +- [GitHub](https://github.com/nomiclabs/hardhat) + +**Ape -** **_Pythonistas, ডেটা সায়েন্টিস্ট এবং সিকিউরিটি পেশাদারদের জন্য স্মার্ট কন্ট্র্যাক্ট ডেভেলপমেন্ট টুল।_** + +- [ডকুমেন্টেশন](https://docs.apeworx.io/ape/stable/) +- [GitHub](https://github.com/ApeWorX/ape) + +**Web3j -** **_JVM-এ ব্লকচেইন অ্যাপ্লিকেশন ডেভেলপ করার জন্য একটি প্ল্যাটফর্ম।_** + +- [হোমপেজ](https://www.web3labs.com/web3j-sdk) +- [ডকুমেন্টেশন](https://docs.web3j.io) +- [GitHub](https://github.com/web3j/web3j) + +**ethers-kt -** **_EVM-ভিত্তিক ব্লকচেইনের জন্য অ্যাসিঙ্ক, হাই-পারফরম্যান্স Kotlin/Java/Android লাইব্রেরি।_** + +- [GitHub](https://github.com/Kr1ptal/ethers-kt) +- [উদাহরণ](https://github.com/Kr1ptal/ethers-kt/tree/master/examples) +- [Discord](https://discord.gg/rx35NzQGSb) + +**Create Eth App -** **_এক কমান্ডে Ethereum-চালিত অ্যাপ তৈরি করুন। বেছে নেওয়ার জন্য UI ফ্রেমওয়ার্ক এবং DeFi টেমপ্লেটের বিস্তৃত সম্ভার সহ আসে।_** + +- [GitHub](https://github.com/paulrberg/create-eth-app) +- [টেমপ্লেট](https://github.com/PaulRBerg/create-eth-app/tree/develop/templates) + +**Scaffold-Eth -** **_Ethers.js + Hardhat + web3-এর জন্য React কম্পোনেন্ট এবং হুকস: স্মার্ট কন্ট্র্যাক্ট দ্বারা চালিত ডিসেন্ট্রালাইজড এপ্লিকেশন তৈরি শুরু করার জন্য আপনার যা কিছু প্রয়োজন।_** + +- [GitHub](https://github.com/scaffold-eth/scaffold-eth-2) + +**Tenderly -** **_Web3 ডেভেলপমেন্ট প্ল্যাটফর্ম যা ব্লকচেইন ডেভেলপারদের স্মার্ট কন্ট্র্যাক্ট তৈরি, পরীক্ষা, ডিবাগ, নিরীক্ষণ এবং পরিচালনা করতে এবং ডিএ্যাপ UX উন্নত করতে সক্ষম করে।_** + +- [ওয়েবসাইট](https://tenderly.co/) +- [ডকুমেন্টেশন](https://docs.tenderly.co/) + +**The Graph -** **_দক্ষভাবে ব্লকচেইন ডেটা কোয়েরি করার জন্য The Graph।_** + +- [ওয়েবসাইট](https://thegraph.com/) +- [টিউটোরিয়াল](/developers/tutorials/the-graph-fixing-web3-data-querying/) + +**Alchemy -** **_Ethereum ডেভেলপমেন্ট প্ল্যাটফর্ম।_** + +- [alchemy.com](https://www.alchemy.com/) +- [GitHub](https://github.com/alchemyplatform) +- [Discord](https://discord.com/invite/alchemyplatform) + +**NodeReal -** **_Ethereum ডেভেলপমেন্ট প্ল্যাটফর্ম।_** + +- [Nodereal.io](https://nodereal.io/) +- [GitHub](https://github.com/node-real) +- [Discord](https://discord.gg/V5k5gsuE) + +**thirdweb SDK -** **_আমাদের শক্তিশালী SDK এবং CLI ব্যবহার করে এমন web3 অ্যাপ্লিকেশন তৈরি করুন যা আপনার স্মার্ট কন্ট্র্যাক্টগুলির সাথে ইন্টারঅ্যাক্ট করতে পারে।_** + +- [ডকুমেন্টেশন](https://portal.thirdweb.com/sdk/) +- [GitHub](https://github.com/thirdweb-dev/) + +**Chainstack -** **_Web3 (Ethereum এবং অন্যান্য) ডেভেলপমেন্ট প্ল্যাটফর্ম।_** + +- [chainstack.com](https://www.chainstack.com/) +- [GitHub](https://github.com/chainstack) +- [Discord](https://discord.gg/BSb5zfp9AT) + +**Crossmint -** **_এন্টারপ্রাইজ-গ্রেড web3 ডেভেলপমেন্ট প্ল্যাটফর্ম, যা আপনাকে সমস্ত প্রধান চেইন EVM চেইন (এবং অন্যন্য) -এ NFT অ্যাপ্লিকেশন তৈরি করতে দেয়।_** + +- [ওয়েবসাইট](https://www.crossmint.com) +- [নথিপত্র](https://docs.crossmint.com) +- [Discord](https://discord.com/invite/crossmint) + +**Brownie -** **_পাইথন-ভিত্তিক ডেভেলপমেন্ট এনভায়রনমেন্ট এবং টেস্টিং ফ্রেমওয়ার্ক।_** + +- [ডকুমেন্টেশন](https://eth-brownie.readthedocs.io/en/latest/) +- [GitHub](https://github.com/eth-brownie/brownie) +- **Brownie বর্তমানে আনমেইনটেইন্ড** + +**OpenZeppelin SDK -** **_চূড়ান্ত স্মার্ট কন্ট্র্যাক্ট টুলকিট: আপনাকে স্মার্ট কন্ট্র্যাক্ট ডেভেলপ, কম্পাইল, আপগ্রেড, ডেপ্লয় এবং তার সাথে ইন্টারঅ্যাক্ট করতে সাহায্য করার জন্য টুলের একটি স্যুট।_** + +- [OpenZeppelin Defender SDK](https://docs.openzeppelin.com/defender/sdk) +- [GitHub](https://github.com/OpenZeppelin/openzeppelin-sdk) +- [কমিউনিটি ফোরাম](https://forum.openzeppelin.com/c/support/17) +- **OpenZeppelin SDK-এর ডেভেলপমেন্ট শেষ হয়ে গেছে** + +**Catapulta -** **_মাল্টি-চেইন স্মার্ট কন্ট্র্যাক্ট ডেপ্লয়মেন্ট টুল, ব্লক এক্সপ্লোরারে ভেরিফিকেশন অটোমেট করে, ডেপ্লয় করা স্মার্ট কন্ট্র্যাক্টের ট্র্যাক রাখে এবং ডেপ্লয়মেন্ট রিপোর্ট শেয়ার করে, Foundry এবং Hardhat প্রজেক্টের জন্য প্লাগ-এন-প্লে।_** + +- [ওয়েবসাইট](https://catapulta.sh/) +- [ডকুমেন্টেশন](https://catapulta.sh/docs) +- [Github](https://github.com/catapulta-sh) + +**GoldRush (Covalent দ্বারা চালিত) -** **_GoldRush ডেভেলপার, বিশ্লেষক এবং এন্টারপ্রাইজদের জন্য সবচেয়ে ব্যাপক ব্লকচেইন ডেটা API স্যুট অফার করে। আপনি একটি DeFi ড্যাশবোর্ড, একটি ওয়ালেট, একটি ট্রেডিং বট, একটি AI এজেন্ট বা একটি কমপ্লায়েন্স প্ল্যাটফর্ম তৈরি করুন না কেন, ডেটা APIগুলি আপনার প্রয়োজনীয় অনচেইন ডেটাতে দ্রুত, নির্ভুল এবং ডেভেলপার-বান্ধব অ্যাক্সেস প্রদান করে_** + +- [ওয়েবসাইট](https://goldrush.dev/) +- [ডকুমেন্টেশন](https://goldrush.dev/docs/chains/ethereum) +- [GitHub](https://github.com/covalenthq) +- [Discord](https://www.covalenthq.com/discord/) + +**Wake -** **_কন্ট্র্যাক্ট টেস্টিং, ফাজিং, ডেপ্লয়মেন্ট, ভালনারেবিলিটি স্ক্যানিং এবং কোড নেভিগেশনের জন্য অল-ইন-ওয়ান পাইথন ফ্রেমওয়ার্ক।_** + +- [হোমপেজ](https://getwake.io/) +- [ডকুমেন্টেশন](https://ackeeblockchain.com/wake/docs/latest/) +- [GitHub](https://github.com/Ackee-Blockchain/wake) +- [VS কোড এক্সটেনশন](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity) + +**Veramo -** **_ওপেন সোর্স, মডুলার এবং অ্যাগনস্টিক ফ্রেমওয়ার্ক যা ডিসেন্ট্রালাইজড এপ্লিকেশন ডেভেলপারদের জন্য তাদের অ্যাপ্লিকেশনে ডিসেন্ট্রালাইজড আইডেন্টিটি এবং ভেরিফাইয়েবল ক্রেডেনশিয়াল তৈরি করা সহজ করে তোলে।_** + +- [হোমপেজ](https://veramo.io/) +- [ডকুমেন্টেশন](https://veramo.io/docs/basics/introduction) +- [GitHub](https://github.com/uport-project/veramo) +- [Discord](https://discord.com/invite/FRRBdjemHV) +- [NPM প্যাকেজ](https://www.npmjs.com/package/@veramo/core) + +## আরও পড়ুন {#further-reading} + +_এমন কোনো কমিউনিটি রিসোর্স সম্পর্কে জানেন যা আপনাকে সাহায্য করেছে? এই পৃষ্ঠাটি সম্পাদনা করুন এবং এটি যোগ করুন!_ + +## সম্পর্কিত বিষয় {#related-topics} + +- [একটি স্থানীয় ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করুন](/developers/local-environment/) diff --git a/public/content/translations/bn/developers/docs/gas/index.md b/public/content/translations/bn/developers/docs/gas/index.md new file mode 100644 index 00000000000..b64a77cef54 --- /dev/null +++ b/public/content/translations/bn/developers/docs/gas/index.md @@ -0,0 +1,151 @@ +--- +title: "গ্যাস এবং ফি" +metaTitle: "Ethereum গ্যাস এবং ফি: টেকনিক্যাল ওভারভিউ" +description: "Ethereum গ্যাস ফি, সেগুলি কীভাবে গণনা করা হয় এবং নেটওয়ার্ক নিরাপত্তা এবং লেনদেন প্রক্রিয়াকরণে তাদের ভূমিকা সম্পর্কে জানুন।" +lang: bn +--- + +গ্যাস Ethereum নেটওয়ার্কের জন্য অপরিহার্য। এটি সেই জ্বালানি যা এটিকে কাজ করার অনুমতি দেয়, ঠিক যেমন একটি গাড়ি চালানোর জন্য গ্যাসোলিনের প্রয়োজন হয়। + +## পূর্বশর্ত {#prerequisites} + +এই পৃষ্ঠাটি আরও ভালভাবে বোঝার জন্য, আমরা আপনাকে প্রথমে [লেনদেন](/developers/docs/transactions/) এবং [EVM](/developers/docs/evm/) সম্পর্কে পড়ার পরামর্শ দিচ্ছি। + +## Ethereum-এ গ্যাস সম্পর্কে জানুন: তারা কীভাবে কাজ করে এবং কীভাবে গ্যাস ফি কম দিতে হয়? {#what-is-gas} + +গ্যাস বলতে সেই একককে বোঝায় যা Ethereum নেটওয়ার্কে নির্দিষ্ট ক্রিয়াকলাপ সম্পাদনের জন্য প্রয়োজনীয় কম্পিউটেশনাল প্রচেষ্টার পরিমাণ পরিমাপ করে। + +যেহেতু প্রতিটি Ethereum লেনদেন কার্যকর করার জন্য কম্পিউটেশনাল রিসোর্স প্রয়োজন, তাই সেই রিসোর্সের জন্য অর্থ প্রদান করতে হয় যাতে Ethereum স্প্যামের জন্য ঝুঁকিপূর্ণ না হয় এবং অসীম কম্পিউটেশনাল লুপে আটকে না যায়। গণনার জন্য অর্থপ্রদান একটি গ্যাস ফি আকারে করা হয়। + +গ্যাস ফি হল **কিছু অপারেশন করার জন্য ব্যবহৃত গ্যাসের পরিমাণ, প্রতি ইউনিট গ্যাসের খরচ দ্বারা গুণিত**। লেনদেন সফল বা ব্যর্থ হোক না কেন ফি প্রদান করা হয়। + +![একটি ডায়াগ্রাম যা দেখাচ্ছে EVM অপারেশনে কোথায় গ্যাসের প্রয়োজন](./gas.png) +_[Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf) থেকে অভিযোজিত ডায়াগ্রাম_ + +গ্যাস ফি অবশ্যই Ethereum-এর নেটিভ কারেন্সি, ইথার (ETH)-এ পরিশোধ করতে হবে। গ্যাসের দাম সাধারণত gwei-তে উদ্ধৃত করা হয়, যা ETH-এর একটি একক। প্রতি gwei এক বিলিয়নের এক ভাগ ETH (0.000000001 ETH বা 10-9 ETH)-এর সমান। + +উদাহরণস্বরূপ, আপনার গ্যাস খরচ 0.000000001 ইথার বলার পরিবর্তে, আপনি বলতে পারেন আপনার গ্যাস খরচ 1 gwei। + +'gwei' শব্দটি 'giga-wei'-এর একটি সংক্ষিপ্ত রূপ, যার অর্থ 'বিলিয়ন wei'। এক gwei এক বিলিয়ন wei এর সমান। Wei নিজেই ([বি-মানি](https://www.investopedia.com/terms/b/bmoney.asp)-এর স্রষ্টা [ওয়েই ডাই](https://wikipedia.org/wiki/Wei_Dai)-এর নামে নামকরণ করা হয়েছে) ETH-এর ক্ষুদ্রতম একক। + +## গ্যাস ফি কীভাবে গণনা করা হয়? {#how-are-gas-fees-calculated} + +আপনি যখন একটি লেনদেন জমা দেন তখন আপনি যে পরিমাণ গ্যাস দিতে ইচ্ছুক তা সেট করতে পারেন। একটি নির্দিষ্ট পরিমাণ গ্যাস অফার করার মাধ্যমে, আপনি পরবর্তী ব্লকে আপনার লেনদেন অন্তর্ভুক্ত করার জন্য বিড করছেন। আপনি যদি খুব কম অফার করেন, তাহলে ভ্যালিডেটররা আপনার লেনদেন অন্তর্ভুক্ত করার জন্য বেছে নেওয়ার সম্ভাবনা কম, যার অর্থ আপনার লেনদেন দেরিতে বা একেবারেই কার্যকর নাও হতে পারে। আপনি যদি খুব বেশি অফার করেন, তাহলে আপনি কিছু ETH নষ্ট করতে পারেন। তাহলে, আপনি কীভাবে বলবেন যে কত টাকা দিতে হবে? + +আপনি যে মোট গ্যাস প্রদান করেন তা দুটি উপাদানে বিভক্ত: `বেস ফি` এবং `প্রায়োরিটি ফি` (টিপ)। + +`বেস ফি` প্রোটোকল দ্বারা সেট করা হয়—আপনার লেনদেন বৈধ বলে বিবেচিত হওয়ার জন্য আপনাকে অন্তত এই পরিমাণ অর্থ প্রদান করতে হবে। `প্রায়োরিটি ফি` হল একটি টিপ যা আপনি বেস ফি-তে যোগ করেন যাতে আপনার লেনদেনটি ভ্যালিডেটরদের কাছে আকর্ষণীয় হয় যাতে তারা পরবর্তী ব্লকে অন্তর্ভুক্ত করার জন্য এটি বেছে নেয়। + +একটি লেনদেন যা শুধুমাত্র `বেস ফি` প্রদান করে তা প্রযুক্তিগতভাবে বৈধ কিন্তু অন্তর্ভুক্ত হওয়ার সম্ভাবনা কম কারণ এটি ভ্যালিডেটরদের অন্য কোনো লেনদেনের চেয়ে এটি বেছে নেওয়ার জন্য কোনো প্রণোদনা প্রদান করে না। 'সঠিক' `প্রায়োরিটি` ফি আপনার লেনদেন পাঠানোর সময় নেটওয়ার্ক ব্যবহারের দ্বারা নির্ধারিত হয়—যদি অনেক চাহিদা থাকে তাহলে আপনাকে আপনার `প্রায়োরিটি` ফি বেশি সেট করতে হতে পারে, কিন্তু যখন চাহিদা কম থাকে তখন আপনি কম অর্থ প্রদান করতে পারেন। + +উদাহরণস্বরূপ, ধরা যাক জর্ডানকে টেলরকে 1 ETH দিতে হবে। একটি ETH স্থানান্তরের জন্য 21,000 ইউনিট গ্যাস প্রয়োজন, এবং বেস ফি হল 10 gwei। জর্ডান 2 gwei এর একটি টিপ অন্তর্ভুক্ত করে। + +মোট ফি এখন এর সমান হবে: + +`ব্যবহৃত গ্যাসের ইউনিট * (বেস ফি + প্রায়োরিটি ফি)` + +যেখানে `বেস ফি` প্রোটোকল দ্বারা সেট করা একটি মান এবং `প্রায়োরিটি ফি` হল ভ্যালিডেটরের জন্য টিপ হিসাবে ব্যবহারকারী দ্বারা সেট করা একটি মান। + +যেমন, `21,000 * (10 + 2) = 252,000 gwei` (0.000252 ETH)। + +জর্ডান যখন টাকা পাঠাবে, তখন জর্ডানের অ্যাকাউন্ট থেকে 1.000252 ETH কেটে নেওয়া হবে। টেলরের অ্যাকাউন্টে 1.0000 ETH জমা হবে। ভ্যালিডেটর 0.000042 ETH এর টিপ গ্রহণ করে। 0.00021 ETH এর `বেস ফি` বার্ন করা হয়। + +### বেস ফি {#base-fee} + +প্রতিটি ব্লকের একটি বেস ফি থাকে যা একটি রিজার্ভ মূল্য হিসাবে কাজ করে। একটি ব্লকে অন্তর্ভুক্তির জন্য যোগ্য হতে, প্রতি গ্যাসের জন্য প্রস্তাবিত মূল্য কমপক্ষে বেস ফি-র সমান হতে হবে। বেস ফি বর্তমান ব্লক থেকে স্বাধীনভাবে গণনা করা হয় এবং পরিবর্তে এর আগের ব্লকগুলি দ্বারা নির্ধারিত হয়, যা ব্যবহারকারীদের জন্য লেনদেন ফি আরও অনুমানযোগ্য করে তোলে। ব্লক তৈরি করা হলে এই **বেস ফি \"বার্ন\" করা হয়**, এটিকে প্রচলন থেকে সরিয়ে দেওয়া হয়। + +বেস ফি একটি সূত্র দ্বারা গণনা করা হয় যা পূর্ববর্তী ব্লকের আকারের (সমস্ত লেনদেনের জন্য ব্যবহৃত গ্যাসের পরিমাণ) সাথে লক্ষ্য আকারের (গ্যাস সীমার অর্ধেক) তুলনা করে। যদি লক্ষ্য ব্লকের আকার লক্ষ্যের উপরে বা নীচে থাকে, তবে বেস ফি প্রতি ব্লকে সর্বোচ্চ 12.5% বৃদ্ধি বা হ্রাস পাবে। এই সূচকীয় বৃদ্ধি ব্লক সাইজকে অনির্দিষ্টকালের জন্য উচ্চ রাখা অর্থনৈতিকভাবে অকার্যকর করে তোলে। + +| ব্লক নম্বর | অন্তর্ভুক্ত গ্যাস | ফি বৃদ্ধি | বর্তমান বেস ফি | +| ---------- | ----------------: | --------------------: | -------------------------: | +| 1 | 18M | 0% | 100 gwei | +| 2 | 36M | 0% | 100 gwei | +| 3 | 36M | 12.5% | 112.5 gwei | +| 4 | 36M | 12.5% | 126.6 gwei | +| 5 | 36M | 12.5% | 142.4 gwei | +| 6 | 36M | 12.5% | 160.2 gwei | +| 7 | 36M | 12.5% | 180.2 gwei | +| 8 | 36M | 12.5% | 202.7 gwei | + +উপরের সারণীতে, 36 মিলিয়নকে গ্যাস সীমা হিসাবে ব্যবহার করে একটি উদাহরণ দেখানো হয়েছে। এই উদাহরণটি অনুসরণ করে, 9 নম্বর ব্লকে একটি লেনদেন তৈরি করতে, একটি ওয়ালেট ব্যবহারকারীকে নিশ্চিতভাবে জানিয়ে দেবে যে পরবর্তী ব্লকে যোগ করার জন্য **সর্বোচ্চ বেস ফি** হল `বর্তমান বেস ফি * 112.5%` বা `202.7 gwei * 112.5% = 228.1 gwei`। + +এটিও মনে রাখা গুরুত্বপূর্ণ যে আমরা সম্পূর্ণ ব্লকের বর্ধিত স্পাইক দেখতে পাওয়ার সম্ভাবনা কম কারণ একটি সম্পূর্ণ ব্লকের আগে বেস ফি যে গতিতে বৃদ্ধি পায়। + +| ব্লক নম্বর | অন্তর্ভুক্ত গ্যাস | ফি বৃদ্ধি | বর্তমান বেস ফি | +| --------------------------------------------------- | --------------------------------------------------: | --------------------: | --------------------------------------------------: | +| 30 | 36M | 12.5% | 2705.6 gwei | +| ... | ... | 12.5% | ... | +| 50 | 36M | 12.5% | 28531.3 gwei | +| ... | ... | 12.5% | ... | +| 100 | 36M | 12.5% | 10302608.6 gwei | + +### প্রায়োরিটি ফি (টিপস) {#priority-fee} + +প্রায়োরিটি ফি (টিপ) ভ্যালিডেটরদের একটি ব্লকের লেনদেনের সংখ্যা সর্বাধিক করতে উৎসাহিত করে, যা শুধুমাত্র ব্লক গ্যাস সীমা দ্বারা সীমাবদ্ধ। টিপস ছাড়া, একজন যুক্তিসঙ্গত ভ্যালিডেটর কোনো সরাসরি এক্সিকিউশন লেয়ার বা কনসেন্সাস লেয়ারের জরিমানা ছাড়াই কম—এমনকি শূন্য—লেনদেন অন্তর্ভুক্ত করতে পারে, কারণ স্টেকিং রিওয়ার্ড একটি ব্লকে কতগুলি লেনদেন আছে তার থেকে স্বাধীন। অতিরিক্তভাবে, টিপস ব্যবহারকারীদের একই ব্লকের মধ্যে অগ্রাধিকারের জন্য অন্যদেরকে ছাড়িয়ে যেতে দেয়, যা কার্যকরভাবে জরুরি অবস্থার সংকেত দেয়। + +### সর্বোচ্চ ফি {#maxfee} + +নেটওয়ার্কে একটি লেনদেন সম্পাদনের জন্য, ব্যবহারকারীরা তাদের লেনদেন কার্যকর করার জন্য যে সর্বোচ্চ সীমা দিতে ইচ্ছুক তা নির্দিষ্ট করতে পারে। এই ঐচ্ছিক প্যারামিটারটি `maxFeePerGas` নামে পরিচিত। একটি লেনদেন কার্যকর করার জন্য, সর্বোচ্চ ফি অবশ্যই বেস ফি এবং টিপের যোগফলকে অতিক্রম করতে হবে। লেনদেন প্রেরককে সর্বোচ্চ ফি এবং বেস ফি ও টিপের যোগফলের মধ্যে পার্থক্য ফেরত দেওয়া হয়। + +### ব্লকের আকার {#block-size} + +প্রতিটি ব্লকের একটি লক্ষ্য আকার থাকে যা বর্তমান গ্যাস সীমার অর্ধেক, তবে ব্লক সীমা পর্যন্ত না পৌঁছানো পর্যন্ত (লক্ষ্য ব্লক আকারের 2 গুণ) নেটওয়ার্কের চাহিদা অনুযায়ী ব্লকের আকার বাড়বে বা কমবে। প্রোটোকলটি _tâtonnement_ প্রক্রিয়ার মাধ্যমে লক্ষ্যে একটি ভারসাম্য গড় ব্লক আকার অর্জন করে। এর মানে হল যদি ব্লকের আকার লক্ষ্য ব্লকের আকারের চেয়ে বড় হয়, প্রোটোকল নিম্নলিখিত ব্লকের জন্য বেস ফি বাড়িয়ে দেবে। একইভাবে, যদি ব্লকের আকার লক্ষ্য ব্লকের আকারের চেয়ে কম হয় তবে প্রোটোকল বেস ফি কমিয়ে দেবে। + +বেস ফি যে পরিমাণে সামঞ্জস্য করা হয় তা বর্তমান ব্লক আকার লক্ষ্য থেকে কত দূরে তার সমানুপাতিক। এটি একটি খালি ব্লকের জন্য -12.5% থেকে একটি রৈখিক গণনা, লক্ষ্য আকারে 0%, গ্যাস সীমায় পৌঁছানো একটি ব্লকের জন্য +12.5% পর্যন্ত। ভ্যালিডেটর সংকেতের উপর ভিত্তি করে, সেইসাথে নেটওয়ার্ক আপগ্রেডের মাধ্যমে সময়ের সাথে সাথে গ্যাস সীমা ওঠানামা করতে পারে। আপনি [এখানে সময়ের সাথে সাথে গ্যাস সীমার পরিবর্তন দেখতে পারেন](https://eth.blockscout.com/stats/averageGasLimit?interval=threeMonths)। + +[ব্লক সম্পর্কে আরও](/developers/docs/blocks/) + +### অনুশীলনে গ্যাস ফি গণনা করা {#calculating-fees-in-practice} + +আপনার লেনদেন কার্যকর করার জন্য আপনি কত টাকা দিতে ইচ্ছুক তা আপনি স্পষ্টভাবে বলতে পারেন। যাইহোক, বেশিরভাগ ওয়ালেট প্রদানকারী তাদের ব্যবহারকারীদের উপর চাপানো জটিলতা কমাতে স্বয়ংক্রিয়ভাবে একটি প্রস্তাবিত লেনদেন ফি (বেস ফি + প্রস্তাবিত প্রায়োরিটি ফি) সেট করবে। + +## গ্যাস ফি কেন বিদ্যমান? {#why-do-gas-fees-exist} + +সংক্ষেপে, গ্যাস ফি Ethereum নেটওয়ার্ককে সুরক্ষিত রাখতে সাহায্য করে। নেটওয়ার্কে নির্বাহ করা প্রতিটি গণনার জন্য একটি ফি প্রয়োজন করে, আমরা খারাপ অভিনেতাদের নেটওয়ার্ক স্প্যামিং থেকে বিরত রাখি। কোডে দুর্ঘটনাজনিত বা প্রতিকূল অসীম লুপ বা অন্যান্য গণনামূলক অপচয় এড়াতে, প্রতিটি লেনদেনকে কোড এক্সিকিউশনের কতগুলি গণনামূলক পদক্ষেপ ব্যবহার করতে পারে তার একটি সীমা সেট করতে হবে। গণনার মৌলিক একক হল \"গ্যাস\"। + +যদিও একটি লেনদেনে একটি সীমা অন্তর্ভুক্ত থাকে, একটি লেনদেনে ব্যবহৃত না হওয়া কোনো গ্যাস ব্যবহারকারীকে ফেরত দেওয়া হয় (যেমন, `max fee - (base fee + tip)` ফেরত দেওয়া হয়)। + +![অব্যবহৃত গ্যাস কীভাবে ফেরত দেওয়া হয় তা দেখানো ডায়াগ্রাম](../transactions/gas-tx.png) +_[Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf) থেকে অভিযোজিত ডায়াগ্রাম_ + +## গ্যাস সীমা কি? {#what-is-gas-limit} + +গ্যাস সীমা বলতে একটি লেনদেনে আপনি যে পরিমাণ গ্যাস ব্যবহার করতে ইচ্ছুক তা বোঝায়। [স্মার্ট কন্ট্র্যাক্ট](/developers/docs/smart-contracts/) জড়িত আরও জটিল লেনদেনগুলির জন্য আরও গণনামূলক কাজ প্রয়োজন, তাই তাদের একটি সাধারণ অর্থপ্রদানের চেয়ে উচ্চতর গ্যাস সীমার প্রয়োজন। একটি স্ট্যান্ডার্ড ETH স্থানান্তরের জন্য 21,000 ইউনিট গ্যাসের একটি গ্যাস সীমা প্রয়োজন। + +উদাহরণস্বরূপ, আপনি যদি একটি সাধারণ ETH স্থানান্তরের জন্য 50,000 এর একটি গ্যাস সীমা রাখেন, EVM 21,000 ব্যবহার করবে এবং আপনি অবশিষ্ট 29,000 ফেরত পাবেন। যাইহোক, আপনি যদি খুব কম গ্যাস নির্দিষ্ট করেন, উদাহরণস্বরূপ, একটি সাধারণ ETH স্থানান্তরের জন্য 20,000 এর গ্যাস সীমা, লেনদেনটি বৈধতা পর্বের সময় ব্যর্থ হবে। এটি একটি ব্লকে অন্তর্ভুক্ত করার আগে প্রত্যাখ্যান করা হবে এবং কোনো গ্যাস খরচ হবে না। অন্যদিকে, যদি কোনো লেনদেন কার্যকর করার সময় গ্যাস ফুরিয়ে যায় (যেমন, একটি স্মার্ট কন্ট্র্যাক্ট মাঝপথে সমস্ত গ্যাস ব্যবহার করে), EVM যেকোনো পরিবর্তন ফিরিয়ে দেবে, কিন্তু প্রদত্ত সমস্ত গ্যাস এখনও সম্পাদিত কাজের জন্য ব্যবহার করা হবে। + +## কেন গ্যাস ফি এত বেশি হতে পারে? {#why-can-gas-fees-get-so-high} + +Ethereum-এর জনপ্রিয়তার কারণে গ্যাস ফি বেশি হয়। যদি খুব বেশি চাহিদা থাকে, ব্যবহারকারীদের অবশ্যই অন্যান্য ব্যবহারকারীদের লেনদেনকে ছাড়িয়ে যাওয়ার চেষ্টা করার জন্য উচ্চতর টিপ পরিমাণ অফার করতে হবে। একটি উচ্চতর টিপ আপনার লেনদেনকে পরবর্তী ব্লকে যাওয়ার সম্ভাবনা বাড়িয়ে তুলতে পারে। এছাড়াও, আরও জটিল স্মার্ট কন্ট্র্যাক্ট অ্যাপগুলি তাদের ফাংশনগুলিকে সমর্থন করার জন্য প্রচুর অপারেশন করতে পারে, যার ফলে তারা প্রচুর গ্যাস গ্রহণ করে। + +## গ্যাস খরচ কমানোর উদ্যোগ {#initiatives-to-reduce-gas-costs} + +Ethereum [স্কেলেবিলিটি আপগ্রেড](/roadmap/) শেষ পর্যন্ত গ্যাস ফি সংক্রান্ত কিছু সমস্যা সমাধান করবে, যা ফলস্বরূপ, প্ল্যাটফর্মটিকে প্রতি সেকেন্ডে হাজার হাজার লেনদেন প্রক্রিয়া করতে এবং বিশ্বব্যাপী স্কেল করতে সক্ষম করবে। + +লেয়ার 2 স্কেলিং হল গ্যাস খরচ, ব্যবহারকারীর অভিজ্ঞতা এবং স্কেলেবিলিটি ব্যাপকভাবে উন্নত করার একটি প্রাথমিক উদ্যোগ। + +[লেয়ার 2 স্কেলিং সম্পর্কে আরও](/developers/docs/scaling/#layer-2-scaling) + +## গ্যাস ফি পর্যবেক্ষণ {#monitoring-gas-fees} + +আপনি যদি গ্যাসের দাম নিরীক্ষণ করতে চান, যাতে আপনি কম খরচে আপনার ETH পাঠাতে পারেন, আপনি বিভিন্ন টুল ব্যবহার করতে পারেন যেমন: + +- [Etherscan](https://etherscan.io/gastracker) _লেনদেনের গ্যাস মূল্যের অনুমানকারী_ +- [Blockscout](https://eth.blockscout.com/gas-tracker) _ওপেন সোর্স লেনদেন গ্যাস মূল্য অনুমানকারী_ +- [ETH Gas Tracker](https://www.ethgastracker.com/) _লেনদেন ফি কমাতে এবং অর্থ সঞ্চয় করতে Ethereum এবং L2 গ্যাসের দাম নিরীক্ষণ এবং ট্র্যাক করুন_ +- [Blocknative ETH Gas Estimator](https://chrome.google.com/webstore/detail/blocknative-eth-gas-estim/ablbagjepecncofimgjmdpnhnfjiecfm) _গ্যাস অনুমানকারী ক্রোম এক্সটেনশন যা টাইপ 0 লিগ্যাসি লেনদেন এবং টাইপ 2 EIP-1559 লেনদেন উভয়ই সমর্থন করে।_ +- [Cryptoneur Gas Fees Calculator](https://www.cryptoneur.xyz/gas-fees-calculator) _মেইননেট, আরবিট্রাম এবং পলিগনে বিভিন্ন ধরনের লেনদেনের জন্য আপনার স্থানীয় মুদ্রায় গ্যাস ফি গণনা করুন।_ + +## সম্পর্কিত টুলস {#related-tools} + +- [ব্লকনেটিভ'স গ্যাস প্ল্যাটফর্ম](https://www.blocknative.com/gas) _ব্লকনেটিভ'স গ্লোবাল মেমপুল ডেটা প্ল্যাটফর্ম দ্বারা চালিত গ্যাস অনুমান API_ +- [গ্যাস নেটওয়ার্ক](https://gas.network) অনচেইন গ্যাস ওরাকেলস। 35+ চেইনের জন্য সমর্থন। + +## আরও পড়ুন {#further-reading} + +- [Ethereum গ্যাস ব্যাখ্যা করা হয়েছে](https://defiprime.com/gas) +- [আপনার স্মার্ট কন্ট্র্যাক্টের গ্যাস খরচ কমানো](https://medium.com/coinmonks/8-ways-of-reducing-the-gas-consumption-of-your-smart-contracts-9a506b339c0a) +- [ডেভেলপারদের জন্য গ্যাস অপ্টিমাইজেশান কৌশল](https://www.alchemy.com/overviews/solidity-gas-optimization) +- [EIP-1559 ডক্স](https://eips.ethereum.org/EIPS/eip-1559)। +- [টিম বেইকোর EIP-1559 রিসোর্স](https://hackmd.io/@timbeiko/1559-resources) +- [EIP-1559: মেমস থেকে মেকানিজম আলাদা করা](https://web.archive.org/web/20241126205908/https://research.2077.xyz/eip-1559-separating-mechanisms-from-memes) diff --git a/public/content/translations/bn/developers/docs/ides/index.md b/public/content/translations/bn/developers/docs/ides/index.md new file mode 100644 index 00000000000..cd4d276908f --- /dev/null +++ b/public/content/translations/bn/developers/docs/ides/index.md @@ -0,0 +1,64 @@ +--- +title: "ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্টস (IDEs)" +description: "ইথেরিয়াম বিকাশের জন্য ওয়েব-ভিত্তিক এবং ডেস্কটপ IDEs সম্পর্কে জানুন, যার মধ্যে রয়েছে Remix, VS কোড, এবং জনপ্রিয় প্লাগইন।" +lang: bn +--- + +যখন একটি [ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট (IDE)](https://wikipedia.org/wiki/Integrated_development_environment) সেট আপ করার কথা আসে, তখন ইথেরিয়াম-এ অ্যাপ্লিকেশন প্রোগ্রামিং করা অন্য যেকোনো সফ্টওয়্যার প্রজেক্ট প্রোগ্রামিং করার মতোই। বেছে নেওয়ার জন্য অনেক বিকল্প আছে, তাই দিনের শেষে, এমন IDE বা কোড এডিটর বেছে নিন যা আপনার পছন্দের জন্য সবচেয়ে উপযুক্ত। সম্ভবত আপনার ইথেরিয়াম বিকাশের জন্য সেরা IDE পছন্দ হলো সেই IDE যা আপনি ইতিমধ্যেই প্রথাগত সফ্টওয়্যার বিকাশের জন্য ব্যবহার করেন। + +## ওয়েব-ভিত্তিক IDEs {#web-based-ides} + +আপনি যদি একটি [লোকাল ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করার](/developers/local-environment/) আগে কোড নিয়ে নাড়াচাড়া করতে চান, তাহলে এই ওয়েব অ্যাপগুলি ইথেরিয়াম স্মার্ট কন্ট্র্যাক্ট বিকাশের জন্য বিশেষভাবে তৈরি করা হয়েছে। + +**[Remix](https://remix.ethereum.org/)** - **_অন্তর্নির্মিত স্ট্যাটিক বিশ্লেষণ এবং একটি টেস্ট ব্লকচেইন ভার্চুয়াল মেশিন সহ ওয়েব-ভিত্তিক IDE_** + +- [ডক্স](https://remix-ide.readthedocs.io/en/latest/#) +- [Gitter](https://gitter.im/ethereum/remix) + +**[ChainIDE](https://chainide.com/)** - **_একটি ক্লাউড-ভিত্তিক মাল্টি-চেইন IDE_** + +- [ডক্স](https://chainide.gitbook.io/chainide-english-1/) +- [হেল্প ফোরাম](https://forum.chainide.com/) + +**[Replit (Solidity স্টার্টার - বিটা)](https://replit.com/@replit/Solidity-starter-beta)** - **_হট রিলোডিং, ত্রুটি পরীক্ষা এবং প্রথম-শ্রেণীর টেস্টনেট সমর্থন সহ Ethereum-এর জন্য একটি কাস্টমাইজযোগ্য ডেভেলপমেন্ট এনভায়রনমেন্ট_** + +- [ডক্স](https://docs.replit.com/) + +**[Tenderly Sandbox](https://sandbox.tenderly.co/)** - **_একটি দ্রুত প্রোটোটাইপিং এনভায়রনমেন্ট যেখানে আপনি সলিডিটি এবং জাভাস্ক্রিপ্ট ব্যবহার করে ব্রাউজারে স্মার্ট কন্ট্র্যাক্ট লিখতে, এক্সিকিউট করতে এবং ডিবাগ করতে পারেন_** + +**[EthFiddle](https://ethfiddle.com/)** - **_ওয়েব-ভিত্তিক IDE যা আপনাকে আপনার স্মার্ট কন্ট্র্যাক্ট লিখতে, কম্পাইল করতে এবং ডিবাগ করতে দেয়_** + +- [Gitter](https://gitter.im/loomnetwork/ethfiddle) + +## ডেস্কটপ IDEs {#desktop-ides} + +বেশিরভাগ প্রতিষ্ঠিত IDEs-এ Ethereum ডেভেলপমেন্টের অভিজ্ঞতা বাড়ানোর জন্য প্লাগইন তৈরি করা হয়েছে। ন্যূনতমপক্ষে, তারা [স্মার্ট কন্ট্র্যাক্ট ভাষাগুলির](/developers/docs/smart-contracts/languages/) জন্য সিনট্যাক্স হাইলাইটিং প্রদান করে। + +**ভিজ্যুয়াল স্টুডিও কোড -** **_অফিসিয়াল ইথেরিয়াম সমর্থন সহ পেশাদার ক্রস-প্ল্যাটফর্ম IDE_** + +- [ভিজ্যুয়াল স্টুডিও কোড](https://code.visualstudio.com/) +- [কোড স্যাম্পেল](https://github.com/Azure-Samples/blockchain/blob/master/blockchain-workbench/application-and-smart-contract-samples/readme.md) +- [GitHub](https://github.com/microsoft/vscode) + +**JetBrains IDEs (IntelliJ IDEA, ইত্যাদি) -** **_সফ্টওয়্যার ডেভেলপার এবং টিমের জন্য প্রয়োজনীয় টুলস_** + +- [JetBrains](https://www.jetbrains.com/) +- [GitHub](https://github.com/JetBrains) +- [IntelliJ Solidity](https://github.com/intellij-solidity/intellij-solidity/) + +**Remix ডেস্কটপ -** **_আপনার লোকাল মেশিনে Remix IDE-এর অভিজ্ঞতা নিন_** + +- [ডাউনলোড](https://github.com/ethereum/remix-desktop/releases) +- [GitHub](https://github.com/ethereum/remix-desktop) + +## প্লাগইন এবং এক্সটেনশন {#plugins-extensions} + +- [solidity](https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity) - ভিজ্যুয়াল স্টুডিও কোডের জন্য Ethereum সলিডিটি ল্যাঙ্গুয়েজ +- [VS কোডের জন্য সলিডিটি + হার্ডহ্যাট](https://marketplace.visualstudio.com/items?itemName=NomicFoundation.hardhat-solidity) - হার্ডহ্যাট টিমের দ্বারা সলিডিটি এবং হার্ডহ্যাট সাপোর্ট +- [Prettier Solidity](https://github.com/prettier-solidity/prettier-plugin-solidity) - prettier ব্যবহার করে কোড ফরমেটার + +## আরও পড়ুন {#further-reading} + +- [Ethereum IDEs](https://www.alchemy.com/list-of/web3-ides-on-ethereum) _- Alchemy-র Ethereum IDEs-এর তালিকা_ + +_এমন কোনো কমিউনিটি রিসোর্স সম্পর্কে জানেন যা আপনাকে সাহায্য করেছে? এই পৃষ্ঠাটি সম্পাদনা করুন এবং এটি যোগ করুন!_ diff --git a/public/content/translations/bn/developers/docs/index.md b/public/content/translations/bn/developers/docs/index.md new file mode 100644 index 00000000000..815146c14a8 --- /dev/null +++ b/public/content/translations/bn/developers/docs/index.md @@ -0,0 +1,25 @@ +--- +title: "ইথেরিয়াম উন্নয়ন নথিপত্র" +description: "ethereum.org ডেভেলপার নথিপত্রের সূচনা।" +lang: bn +--- + +এই নথিপত্রটি আপনাকে Ethereum দিয়ে তৈরি করতে সাহায্য করার জন্য ডিজাইন করা হয়েছে। এটি একটি ধারণা হিসাবে Ethereum-কে কভার করে, Ethereum টেক স্ট্যাক ব্যাখ্যা করে এবং আরও জটিল অ্যাপ্লিকেশন এবং ব্যবহারের ক্ষেত্রের জন্য উন্নত বিষয়গুলি নথিভুক্ত করে। + +এটি একটি ওপেন-সোর্স কমিউনিটির প্রচেষ্টা, তাই নির্দ্বিধায় নতুন বিষয় প্রস্তাব করুন, নতুন কনটেন্ট যোগ করুন এবং যেখানেই আপনি মনে করেন এটি সহায়ক হতে পারে সেখানে উদাহরণ দিন। সমস্ত নথিপত্র GitHub-এর মাধ্যমে সম্পাদনা করা যেতে পারে – আপনি যদি নিশ্চিত না হন কীভাবে করবেন, [এই নির্দেশাবলী অনুসরণ করুন](https://github.com/ethereum/ethereum-org-website/blob/dev/docs/editing-markdown.md)। + +## উন্নয়ন মডিউল {#development-modules} + +যদি এটি Ethereum উন্নয়নে আপনার প্রথম প্রচেষ্টা হয়, আমরা শুরু থেকে শুরু করে একটি বইয়ের মতো করে এগিয়ে যাওয়ার পরামর্শ দিই। + +### মৌলিক বিষয় {#foundational-topics} + + + +### Ethereum স্ট্যাক {#ethereum-stack} + + + +### উন্নত {#advanced} + + diff --git a/public/content/translations/bn/developers/docs/intro-to-ether/index.md b/public/content/translations/bn/developers/docs/intro-to-ether/index.md new file mode 100644 index 00000000000..4ebeba1b6c1 --- /dev/null +++ b/public/content/translations/bn/developers/docs/intro-to-ether/index.md @@ -0,0 +1,78 @@ +--- +title: "ইথারের টেকনিক্যাল ভূমিকা" +description: "ইথার ক্রিপটোকারেন্সি সম্পর্কে একজন ডেভেলপারের জন্য একটি ভূমিকা।" +lang: bn +--- + +## পূর্বশর্ত {#prerequisites} + +এই পৃষ্ঠাটি আরও ভালভাবে বুঝতে আপনাকে সাহায্য করার জন্য, আমরা সুপারিশ করছি যে আপনি প্রথমে [ইথেরিয়ামের পরিচিতি](/developers/docs/intro-to-ethereum/) পড়ুন। + +## ক্রিপটোকারেন্সি কী? {#what-is-a-cryptocurrency} + +একটি ক্রিপটোকারেন্সি হল একটি ব্লকচেইন-ভিত্তিক লেজার দ্বারা সুরক্ষিত বিনিময়ের একটি মাধ্যম। + +বিনিময়ের একটি মাধ্যম হল পণ্য এবং পরিষেবার জন্য অর্থপ্রদান হিসাবে ব্যাপকভাবে গৃহীত যে কোনও কিছু এবং একটি লেজার হল একটি ডেটা স্টোর যা লেনদেনের ট্র্যাক রাখে। ব্লকচেইন প্রযুক্তি ব্যবহারকারীদের লেজার বজায় রাখার জন্য একটি বিশ্বস্ত তৃতীয় পক্ষের উপর নির্ভর না করে লেজারে লেনদেন করার অনুমতি দেয়। + +সাতোশি নাকামোতোর তৈরি প্রথম ক্রিপটোকারেন্সি ছিল বিটকয়েন। 2009 সালে বিটকয়েন প্রকাশের পর থেকে, লোকেরা বিভিন্ন ব্লকচেইন জুড়ে হাজার হাজার ক্রিপ্টোকারেন্সি তৈরি করেছে। + +## ইথার কী? {#what-is-ether} + +**ইথার (ETH)** হল Ethereum নেটওয়ার্কে অনেক কিছুর জন্য ব্যবহৃত ক্রিপটোকারেন্সি। মৌলিকভাবে, এটি লেনদেন ফি-এর জন্য অর্থপ্রদানের একমাত্র গ্রহণযোগ্য ফর্ম, এবং [The Merge](/roadmap/merge)-এর পরে, Mainnet-এ ব্লকগুলিকে যাচাই এবং প্রস্তাব করার জন্য ইথার প্রয়োজন। ইথার [DeFi](/defi) ঋণদানের বাজারে জামানতের প্রাথমিক রূপ হিসাবে, NFT মার্কেটপ্লেসে অ্যাকাউন্টের একক হিসাবে, পরিষেবা সম্পাদন বা বাস্তব-বিশ্বের পণ্য বিক্রির জন্য অর্জিত অর্থপ্রদান হিসাবে এবং আরও অনেক কিছুতে ব্যবহৃত হয়। + +Ethereum ডেভেলপারদের [**ডিসেন্ট্রালাইজড এপ্লিকেশন (ডিএ্যাপস)**](/developers/docs/dapps) তৈরি করার অনুমতি দেয়, যা সকলেই কম্পিউটিং পাওয়ারের একটি পুল শেয়ার করে। এই শেয়ার করা পুলটি সসীম, তাই এটি কে ব্যবহার করবে তা নির্ধারণ করার জন্য Ethereum-এর একটি পদ্ধতির প্রয়োজন। অন্যথায়, একটি ডিএ্যাপ ঘটনাক্রমে বা দূষিতভাবে সমস্ত নেটওয়ার্ক রিসোর্স ব্যবহার করতে পারে, যা অন্যদের এটি অ্যাক্সেস করতে বাধা দেবে। + +ইথার ক্রিপটোকারেন্সি Ethereum-এর কম্পিউটিং পাওয়ারের জন্য একটি মূল্য নির্ধারণ প্রক্রিয়া সমর্থন করে। যখন ব্যবহারকারীরা একটি লেনদেন করতে চায়, তখন তাদের ব্লকচেইনে তাদের লেনদেনকে স্বীকৃতি দেওয়ার জন্য ইথার দিতে হবে। এই ব্যবহারের খরচগুলি [গ্যাস ফি](/developers/docs/gas/) হিসাবে পরিচিত, এবং গ্যাস ফি লেনদেন সম্পাদনের জন্য প্রয়োজনীয় কম্পিউটিং শক্তির পরিমাণ এবং সেই সময়ে কম্পিউটিং শক্তির জন্য নেটওয়ার্ক-ব্যাপী চাহিদার উপর নির্ভর করে। + +অতএব, এমনকি যদি একটি দূষিত ডিএ্যাপ একটি অসীম লুপ জমা দেয়, লেনদেনটি অবশেষে ইথারের বাইরে চলে যাবে এবং শেষ হয়ে যাবে, নেটওয়ার্কটিকে স্বাভাবিক অবস্থায় ফিরে আসতে দেবে। + +Ethereum এবং ইথারকে [এক করে ফেলা সাধারণ](https://abcnews.go.com/Business/bitcoin-slumps-week-low-amid-renewed-worries-chinese/story?id=78399845) — যখন লোকেরা "Ethereum-এর মূল্য" উল্লেখ করে, তখন তারা ইথারের মূল্য বর্ণনা করে। + +## ইথার মিন্টিং {#minting-ether} + +মিন্টিং হল এমন একটি প্রক্রিয়া যেখানে Ethereum লেজারে নতুন ইথার তৈরি হয়। অন্তর্নিহিত Ethereum প্রোটোকল নতুন ইথার তৈরি করে, এবং একজন ব্যবহারকারীর পক্ষে ইথার তৈরি করা সম্ভব নয়। + +প্রতিটি প্রস্তাবিত ব্লকের জন্য একটি পুরস্কার হিসাবে এবং কনসেন্সাসে পৌঁছানোর সাথে সম্পর্কিত অন্যান্য যাচাইকারী কার্যকলাপের জন্য প্রতিটি যুগ চেকপয়েন্টে ইথার মিন্ট করা হয়। ইস্যু করা মোট পরিমাণ যাচাইকারীর সংখ্যা এবং তারা কত ইথার স্টেক করেছে তার উপর নির্ভর করে। এই মোট ইস্যুয়েন্সটি আদর্শ ক্ষেত্রে যাচাইকারীদের মধ্যে সমানভাবে বিভক্ত হয় যে সমস্ত যাচাইকারী সৎ এবং অনলাইন, কিন্তু বাস্তবে, এটি যাচাইকারীর কার্যকারিতার উপর ভিত্তি করে পরিবর্তিত হয়। মোট ইস্যুয়েন্সের প্রায় 1/8 ব্লক প্রস্তাবকের কাছে যায়; বাকিটা অন্যান্য যাচাইকারীদের মধ্যে বিতরণ করা হয়। ব্লক প্রস্তাবকরা লেনদেন ফি এবং MEV-সম্পর্কিত আয় থেকে টিপসও পান, কিন্তু এগুলি পুনর্ব্যবহৃত ইথার থেকে আসে, নতুন ইস্যুয়েন্স থেকে নয়। + +## ইথার বার্ন করা {#burning-ether} + +ব্লক রিওয়ার্ডের মাধ্যমে ইথার তৈরির পাশাপাশি, 'বার্নিং' নামক একটি প্রক্রিয়ার মাধ্যমে ইথার ধ্বংস করা যেতে পারে। যখন ইথার বার্ন করা হয়, তখন এটি স্থায়ীভাবে প্রচলন থেকে সরানো হয়। + +Ethereum-এর প্রতিটি লেনদেনে ইথার বার্ন হয়। যখন ব্যবহারকারীরা তাদের লেনদেনের জন্য অর্থ প্রদান করে, তখন একটি বেস গ্যাস ফি, যা লেনদেনের চাহিদা অনুযায়ী নেটওয়ার্ক দ্বারা সেট করা হয়, তা ধ্বংস হয়ে যায়। এটি, পরিবর্তনশীল ব্লক আকার এবং একটি সর্বোচ্চ গ্যাস ফি সহ, Ethereum-এ লেনদেন ফি অনুমানকে সহজ করে। যখন নেটওয়ার্কের চাহিদা বেশি থাকে, তখন [ব্লকগুলি](https://eth.blockscout.com/block/22580057) তাদের মিন্ট করার চেয়ে বেশি ইথার বার্ন করতে পারে, যা কার্যকরভাবে ইথার ইস্যুয়েন্সকে অফসেট করে। + +বেস ফি বার্ন করা একজন ব্লক প্রযোজকের লেনদেন ম্যানিপুলেট করার ক্ষমতাকে বাধা দেয়। উদাহরণস্বরূপ, যদি ব্লক প্রযোজকরা বেস ফি পেতেন, তাহলে তারা বিনামূল্যে তাদের নিজস্ব লেনদেন অন্তর্ভুক্ত করতে পারত এবং অন্য সবার জন্য বেস ফি বাড়িয়ে দিত। বিকল্পভাবে, তারা অফচেইনে কিছু ব্যবহারকারীকে বেস ফি ফেরত দিতে পারে, যা একটি আরও অস্বচ্ছ এবং জটিল লেনদেন ফি বাজারের দিকে নিয়ে যায়। + +## ইথারের বিভাজন {#denominations} + +যেহেতু Ethereum-এ অনেক লেনদেনের মান কম, তাই ইথারের বেশ কয়েকটি বিভাজন রয়েছে যা অ্যাকাউন্টের ছোট একক হিসাবে উল্লেখ করা যেতে পারে। এই বিভাজনগুলির মধ্যে, Wei এবং gwei বিশেষভাবে গুরুত্বপূর্ণ। + +Wei হল ইথারের ক্ষুদ্রতম সম্ভাব্য পরিমাণ, এবং ফলস্বরূপ, অনেক প্রযুক্তিগত বাস্তবায়ন, যেমন [Ethereum Yellowpaper](https://ethereum.github.io/yellowpaper/paper.pdf), Wei-তে সমস্ত গণনা ভিত্তি করবে। + +Gwei, গিগা-ওয়েই এর সংক্ষিপ্ত রূপ, প্রায়শই Ethereum-এ গ্যাস খরচ বর্ণনা করতে ব্যবহৃত হয়। + +| বিভাজন | ইথারে মান | সাধারণ ব্যবহার | +| ------ | ---------------- | ------------------------- | +| Wei | 10-18 | প্রযুক্তিগত বাস্তবায়ন | +| Gwei | 10-9 | মানুষের পাঠযোগ্য গ্যাস ফি | + +## ইথার স্থানান্তর করা {#transferring-ether} + +Ethereum-এর প্রতিটি লেনদেনে একটি `value` ক্ষেত্র থাকে, যা প্রেরকের ঠিকানা থেকে প্রাপকের ঠিকানায় পাঠানোর জন্য wei-তে নির্ধারিত স্থানান্তরিত করা ইথারের পরিমাণ নির্দিষ্ট করে। + +যখন প্রাপকের ঠিকানা একটি [স্মার্ট কন্ট্র্যাক্ট](/developers/docs/smart-contracts/) হয়, তখন এই স্থানান্তরিত ইথারটি স্মার্ট কন্ট্র্যাক্ট তার কোড কার্যকর করার সময় গ্যাসের জন্য অর্থ প্রদান করতে ব্যবহার করা যেতে পারে। + +[লেনদেন সম্পর্কে আরও](/developers/docs/transactions/) + +## ইথার কোয়েরি করা {#querying-ether} + +ব্যবহারকারীরা অ্যাকাউন্টের `balance` ক্ষেত্রটি পরিদর্শন করে যেকোনো [অ্যাকাউন্টের](/developers/docs/accounts/) ইথার ব্যালেন্স জিজ্ঞাসা করতে পারে, যা wei-তে নির্ধারিত ইথার হোল্ডিং দেখায়। + +[Etherscan](https://etherscan.io) এবং [Blockscout](https://eth.blockscout.com) হল ওয়েব-ভিত্তিক অ্যাপ্লিকেশনগুলির মাধ্যমে ঠিকানার ব্যালেন্স পরিদর্শন করার জন্য জনপ্রিয় টুল। উদাহরণস্বরূপ, [এই Blockscout পৃষ্ঠাটি](https://eth.blockscout.com/address/0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe) Ethereum Foundation-এর ব্যালেন্স দেখায়। অ্যাকাউন্ট ব্যালেন্স ওয়ালেট ব্যবহার করে বা সরাসরি নোডগুলিতে অনুরোধ করে জিজ্ঞাসা করা যেতে পারে। + +## আরও পড়ুন {#further-reading} + +- [ইথার এবং Ethereum সংজ্ঞায়িত করা](https://www.cmegroup.com/education/courses/introduction-to-ether/defining-ether-and-ethereum.html) – _CME Group_ +- [Ethereum Whitepaper](/whitepaper/): Ethereum-এর জন্য মূল প্রস্তাব। এই নথিতে ইথারের একটি বিবরণ এবং এটি তৈরির পেছনের প্রেরণা অন্তর্ভুক্ত রয়েছে। +- [Gwei ক্যালকুলেটর](https://www.alchemy.com/gwei-calculator): wei, gwei এবং ইথার সহজে রূপান্তর করতে এই gwei ক্যালকুলেটরটি ব্যবহার করুন। কেবলমাত্র যেকোনো পরিমাণ wei, gwei, বা ETH প্লাগ ইন করুন এবং স্বয়ংক্রিয়ভাবে রূপান্তর গণনা করুন। + +_এমন কোনো কমিউনিটি রিসোর্স সম্পর্কে জানেন যা আপনাকে সাহায্য করেছে? এই পৃষ্ঠাটি সম্পাদনা করুন এবং এটি যোগ করুন!_ diff --git a/public/content/translations/bn/developers/docs/intro-to-ethereum/index.md b/public/content/translations/bn/developers/docs/intro-to-ethereum/index.md new file mode 100644 index 00000000000..ffba041234d --- /dev/null +++ b/public/content/translations/bn/developers/docs/intro-to-ethereum/index.md @@ -0,0 +1,124 @@ +--- +title: "ইথেরিয়ামের প্রযুক্তিগত ভূমিকা" +description: "Ethereum-এর মূল ধারণাগুলির সাথে একজন ড্যাপ (dapp) ডেভেলপারের পরিচিতি।" +lang: bn +--- + +## ব্লকচেইন কী? {#what-is-a-blockchain} + +ব্লকচেইন হলো একটি পাবলিক ডাটাবেস যা একটি নেটওয়ার্কের অনেক কম্পিউটারে আপডেট এবং শেয়ার করা হয়। + +"ব্লক" বলতে বোঝায় ডেটা এবং স্টেট যা "ব্লক" নামে পরিচিত পরপর গ্রুপে সংরক্ষণ করা হয়। আপনি যদি অন্য কাউকে ETH পাঠান, লেনদেন সফল হওয়ার জন্য লেনদেনের ডেটা একটি ব্লকে যোগ করতে হবে। + +"চেইন" বলতে বোঝায় যে প্রতিটি ব্লক ক্রিপ্টোগ্রাফিকভাবে তার প্যারেন্টকে রেফারেন্স করে। অন্য কথায়, ব্লকগুলো একসাথে চেইন করা হয়। একটি ব্লকের ডেটা পরবর্তী সমস্ত ব্লক পরিবর্তন না করে পরিবর্তন করা যায় না, যার জন্য পুরো নেটওয়ার্কের কনসেন্সাস প্রয়োজন হবে। + +নেটওয়ার্কের প্রতিটি কম্পিউটারকে অবশ্যই প্রতিটি নতুন ব্লক এবং পুরো চেইনের উপর একমত হতে হবে। এই কম্পিউটারগুলি "নোড" নামে পরিচিত। নোডগুলি নিশ্চিত করে যে ব্লকচেইনের সাথে ইন্টারঅ্যাক্ট করা প্রত্যেকের কাছে একই ডেটা রয়েছে। এই ডিস্ট্রিবিউটেড চুক্তি সম্পন্ন করার জন্য, ব্লকচেইনগুলির একটি কনসেন্সাস মেকানিজম প্রয়োজন। + +Ethereum একটি [প্রুফ-অফ-স্টেক-ভিত্তিক কনসেন্সাস মেকানিজম](/developers/docs/consensus-mechanisms/pos/) ব্যবহার করে। যে কেউ চেইনে নতুন ব্লক যোগ করতে চায় তাকে অবশ্যই জামানত হিসাবে ETH - Ethereum-এর নেটিভ মুদ্রা - স্টেক করতে হবে এবং ভ্যালিডেটর সফ্টওয়্যার চালাতে হবে। এই "ভ্যালিডেটরদের" তখন এলোমেলোভাবে ব্লক প্রস্তাব করার জন্য নির্বাচন করা যেতে পারে যা অন্যান্য ভ্যালিডেটররা পরীক্ষা করে এবং ব্লকচেইনে যোগ করে। পুরস্কার এবং শাস্তির একটি সিস্টেম রয়েছে যা অংশগ্রহণকারীদের সৎ হতে এবং যতটা সম্ভব অনলাইনে উপলব্ধ থাকতে দৃঢ়ভাবে উৎসাহিত করে। + +আপনি যদি দেখতে চান কিভাবে ব্লকচেইন ডেটা হ্যাস করা হয় এবং পরবর্তীতে ব্লক রেফারেন্সের ইতিহাসে যুক্ত করা হয়, তাহলে অ্যান্ডার্স ব্রাউনওয়ার্থের [এই ডেমোটি](https://andersbrownworth.com/blockchain/blockchain) দেখতে ভুলবেন না এবং নীচের ভিডিওটি দেখুন। + +ব্লকচেইনে অ্যান্ডার্সের হ্যাস ব্যাখ্যা দেখুন: + + + +## ইথেরিয়াম কী? {#what-is-ethereum} + +Ethereum হল একটি ব্লকচেইন যার মধ্যে একটি কম্পিউটার এমবেড করা আছে। এটি একটি বিকেন্দ্রীভূত, অনুমতিহীন, সেন্সরশিপ-প্রতিরোধী উপায়ে অ্যাপ এবং সংস্থা তৈরির ভিত্তি। + +Ethereum ইউনিভার্সে, একটি একক, ক্যানোনিকাল কম্পিউটার রয়েছে (যাকে ইথিরিয়াম ভার্চুয়াল মেশিন বা EVM বলা হয়) যার স্টেটের উপর Ethereum নেটওয়ার্কের সবাই একমত। Ethereum নেটওয়ার্কে অংশগ্রহণকারী প্রত্যেকে (প্রতিটি Ethereum নোড) এই কম্পিউটারের স্টেটের একটি অনুলিপি রাখে। অতিরিক্তভাবে, যেকোনো অংশগ্রহণকারী এই কম্পিউটারকে নির্বিচারে গণনা সম্পাদন করার জন্য একটি অনুরোধ ব্রডকাস্ট করতে পারে। যখনই এই ধরনের একটি অনুরোধ ব্রডকাস্ট করা হয়, নেটওয়ার্কের অন্যান্য অংশগ্রহণকারীরা গণনাটি যাচাই, বৈধকরণ এবং সম্পাদন ("এক্সিকিউট") করে। এই এক্সিকিউশন EVM-এ একটি স্টেট পরিবর্তনের কারণ হয়, যা পুরো নেটওয়ার্কে কমিটেড এবং প্রচারিত হয়। + +গণনার জন্য অনুরোধগুলিকে লেনদেনের অনুরোধ বলা হয়; সমস্ত লেনদেনের রেকর্ড এবং EVM-এর বর্তমান স্টেট ব্লকচেইনে সংরক্ষণ করা হয়, যা ঘুরেফিরে সমস্ত নোড দ্বারা সংরক্ষণ করা হয় এবং সম্মত হয়। + +ক্রিপ্টোগ্রাফিক মেকানিজম নিশ্চিত করে যে একবার লেনদেন বৈধ হিসাবে যাচাই করা হয়ে গেলে এবং ব্লকচেইনে যুক্ত করা হলে, সেগুলি পরে বিকৃত করা যাবে না। একই মেকানিজমগুলি এটাও নিশ্চিত করে যে সমস্ত লেনদেন উপযুক্ত "অনুমতি" সহ স্বাক্ষরিত এবং কার্যকর করা হয়েছে (এলিসের অ্যাকাউন্ট থেকে ডিজিটাল সম্পদ পাঠানোর ক্ষমতা এলিস ছাড়া আর কারো থাকা উচিত নয়)। + +## ইথার কী? {#what-is-ether} + +**Ether (ETH)** হল Ethereum-এর নেটিভ ক্রিপটোকারেন্সি। ETH-এর উদ্দেশ্য হল গণনার জন্য একটি বাজারের সুযোগ দেওয়া। এই ধরনের একটি বাজার অংশগ্রহণকারীদের লেনদেনের অনুরোধ যাচাই ও কার্যকর করতে এবং নেটওয়ার্কে গণনামূলক রিসোর্স সরবরাহ করতে একটি অর্থনৈতিক উৎসাহ প্রদান করে। + +যেকোনো অংশগ্রহণকারী যিনি একটি লেনদেনের অনুরোধ ব্রডকাস্ট করেন তাকে অবশ্যই বাউন্টি হিসাবে নেটওয়ার্কে কিছু পরিমাণ ETH অফার করতে হবে। নেটওয়ার্ক বাউন্টির একটি অংশ পুড়িয়ে ফেলবে এবং বাকিটা তাকে পুরস্কার দেবে যে অবশেষে লেনদেন যাচাই, সম্পাদন, ব্লকচেইনে কমিট করা এবং নেটওয়ার্কে ব্রডকাস্ট করার কাজ করে। + +প্রদত্ত ETH-এর পরিমাণ গণনার জন্য প্রয়োজনীয় রিসোর্সের সাথে সঙ্গতিপূর্ণ। এই বাউন্টিগুলি দূষিত অংশগ্রহণকারীদের ইচ্ছাকৃতভাবে অসীম গণনা বা অন্যান্য রিসোর্স-ইনটেনসিভ স্ক্রিপ্ট চালানোর অনুরোধ করে নেটওয়ার্ককে বাধা দেওয়া থেকে বিরত রাখে, কারণ এই অংশগ্রহণকারীদের গণনার রিসোর্সের জন্য অর্থ প্রদান করতে হয়। + +ETH তিনটি প্রধান উপায়ে নেটওয়ার্কে ক্রিপ্টো-অর্থনৈতিক নিরাপত্তা প্রদান করতেও ব্যবহৃত হয়: ১) এটি ভ্যালিডেটরদের পুরস্কৃত করার একটি উপায় হিসাবে ব্যবহৃত হয় যারা ব্লক প্রস্তাব করে বা অন্যান্য ভ্যালিডেটরদের অসাধু আচরণের কথা জানায়; ২) এটি ভ্যালিডেটরদের দ্বারা স্টেক করা হয়, যা অসাধু আচরণের বিরুদ্ধে জামানত হিসাবে কাজ করে—যদি ভ্যালিডেটররা অসদাচরণ করার চেষ্টা করে তবে তাদের ETH ধ্বংস করা যেতে পারে; ৩) এটি নতুন প্রস্তাবিত ব্লকগুলির জন্য 'ভোট' ওজন করতে ব্যবহৃত হয়, যা কনসেন্সাস মেকানিজমের ফর্ক-চয়েস অংশে ফিড করে। + +## স্মার্ট কন্ট্রাক্ট কী? {#what-are-smart-contracts} + +বাস্তবে, অংশগ্রহণকারীরা যখনই EVM-এ গণনার অনুরোধ করতে চায়, প্রতিবার নতুন কোড লেখে না। বরং, অ্যাপ্লিকেশন ডেভেলপাররা প্রোগ্রাম (পুনরায় ব্যবহারযোগ্য কোড স্নিপেট) EVM স্টেটে আপলোড করে এবং ব্যবহারকারীরা বিভিন্ন প্যারামিটার সহ এই কোড স্নিপেটগুলি চালানোর জন্য অনুরোধ করে। আমরা নেটওয়ার্কে আপলোড করা এবং চালানো প্রোগ্রামগুলিকে "স্মার্ট কন্ট্রাক্ট" বলি। + +খুব প্রাথমিক স্তরে, আপনি একটি স্মার্ট কন্ট্রাক্টকে এক ধরনের ভেন্ডিং মেশিনের মতো ভাবতে পারেন: একটি স্ক্রিপ্ট যা নির্দিষ্ট প্যারামিটার দিয়ে কল করা হলে, নির্দিষ্ট শর্ত পূরণ হলে কিছু কাজ বা গণনা করে। উদাহরণস্বরূপ, একটি সাধারণ ভেন্ডর স্মার্ট কন্ট্রাক্ট একটি ডিজিটাল সম্পদের মালিকানা তৈরি এবং বরাদ্দ করতে পারে যদি কলার একটি নির্দিষ্ট প্রাপককে ETH পাঠায়। + +যেকোনো ডেভেলপার একটি স্মার্ট কন্ট্রাক্ট তৈরি করতে এবং এটিকে নেটওয়ার্কের কাছে পাবলিক করতে পারে, ব্লকচেইনকে তার ডেটা লেয়ার হিসাবে ব্যবহার করে, নেটওয়ার্কে প্রদত্ত একটি ফি-এর বিনিময়ে। যেকোনো ব্যবহারকারী তখন স্মার্ট কন্ট্রাক্টকে তার কোড চালানোর জন্য কল করতে পারে, আবারও নেটওয়ার্কে প্রদত্ত একটি ফি-এর বিনিময়ে। + +এইভাবে, স্মার্ট কন্ট্রাক্টের মাধ্যমে, ডেভেলপাররা নির্বিচারে জটিল ব্যবহারকারী-মুখী অ্যাপ এবং পরিষেবা যেমন: মার্কেটপ্লেস, আর্থিক উপকরণ, গেম ইত্যাদি তৈরি এবং ডেপ্লয় করতে পারে। + +## পরিভাষা {#terminology} + +### ব্লকচেইন {#blockchain} + +নেটওয়ার্কের ইতিহাসে Ethereum নেটওয়ার্কে কমিট করা সমস্ত ব্লকের ক্রম। এরকম নামকরণ করা হয়েছে কারণ প্রতিটি ব্লকে পূর্ববর্তী ব্লকের একটি রেফারেন্স থাকে, যা আমাদের সমস্ত ব্লকের উপর একটি ক্রম বজায় রাখতে সাহায্য করে (এবং এইভাবে সঠিক ইতিহাসের উপরও)। + +### ETH {#eth} + +**Ether (ETH)** হল Ethereum-এর নেটিভ ক্রিপটোকারেন্সি। ব্যবহারকারীরা তাদের কোড এক্সিকিউশন অনুরোধগুলি পূরণ করার জন্য অন্যান্য ব্যবহারকারীদের ETH প্রদান করে। + +[ETH সম্পর্কে আরও](/developers/docs/intro-to-ether/) + +### EVM {#evm} + +ইথিরিয়াম ভার্চুয়াল মেশিন হল গ্লোবাল ভার্চুয়াল কম্পিউটার যার স্টেট Ethereum নেটওয়ার্কের প্রত্যেক অংশগ্রহণকারী সংরক্ষণ করে এবং তাতে একমত হয়। যেকোনো অংশগ্রহণকারী EVM-এ নির্বিচারে কোড চালানোর জন্য অনুরোধ করতে পারে; কোড এক্সিকিউশন EVM-এর স্টেট পরিবর্তন করে। + +[EVM সম্পর্কে আরও](/developers/docs/evm/) + +### নোড {#nodes} + +বাস্তব-জীবনের মেশিন যা EVM স্টেট সংরক্ষণ করছে। নোডগুলি একে অপরের সাথে যোগাযোগ করে EVM স্টেট এবং নতুন স্টেট পরিবর্তন সম্পর্কে তথ্য প্রচার করতে। যেকোনো ব্যবহারকারী একটি নোড থেকে কোড এক্সিকিউশন অনুরোধ ব্রডকাস্ট করে কোড এক্সিকিউশনের জন্য অনুরোধ করতে পারে। Ethereum নেটওয়ার্ক নিজেই সমস্ত Ethereum নোড এবং তাদের যোগাযোগের সমষ্টি। + +[নোড সম্পর্কে আরও](/developers/docs/nodes-and-clients/) + +### অ্যাকাউন্ট {#accounts} + +যেখানে ETH সংরক্ষণ করা হয়। ব্যবহারকারীরা অ্যাকাউন্ট শুরু করতে পারে, অ্যাকাউন্টে ETH জমা করতে পারে এবং তাদের অ্যাকাউন্ট থেকে অন্য ব্যবহারকারীদের কাছে ETH স্থানান্তর করতে পারে। অ্যাকাউন্ট এবং অ্যাকাউন্ট ব্যালেন্স EVM-এর একটি বড় টেবিলে সংরক্ষণ করা হয়; এগুলি সামগ্রিক EVM স্টেটের একটি অংশ। + +[অ্যাকাউন্ট সম্পর্কে আরও](/developers/docs/accounts/) + +### লেনদেন {#transactions} + +একটি "লেনদেনের অনুরোধ" হল EVM-এ কোড এক্সিকিউশনের অনুরোধের আনুষ্ঠানিক পরিভাষা, এবং একটি "লেনদেন" হল একটি পূরণ করা লেনদেনের অনুরোধ এবং EVM স্টেটের সংশ্লিষ্ট পরিবর্তন। যেকোনো ব্যবহারকারী একটি নোড থেকে নেটওয়ার্কে একটি লেনদেনের অনুরোধ ব্রডকাস্ট করতে পারে। লেনদেনের অনুরোধটি সম্মত EVM স্টেটকে প্রভাবিত করার জন্য, এটিকে অন্য নোড দ্বারা যাচাই, এক্সিকিউট এবং "নেটওয়ার্কে কমিট" করতে হবে। যেকোনো কোড এক্সিকিউশন EVM-এ একটি স্টেট পরিবর্তনের কারণ হয়; কমিট করার পরে, এই স্টেট পরিবর্তনটি নেটওয়ার্কের সমস্ত নোডে ব্রডকাস্ট করা হয়। লেনদেনের কিছু উদাহরণ: + +- আমার অ্যাকাউন্ট থেকে এলিসের অ্যাকাউন্টে X ETH পাঠান। +- কিছু স্মার্ট কন্ট্রাক্ট কোড EVM স্টেটে প্রকাশ করুন। +- EVM-এ ঠিকানা X-এ থাকা স্মার্ট কন্ট্রাক্টের কোড, আর্গুমেন্ট Y সহ এক্সিকিউট করুন। + +[লেনদেন সম্পর্কে আরও](/developers/docs/transactions/) + +### ব্লক {#blocks} + +লেনদেনের পরিমাণ খুব বেশি, তাই লেনদেনগুলি ব্যাচে বা ব্লকে "কমিটেড" হয়। ব্লকগুলিতে সাধারণত কয়েক ডজন থেকে শত শত লেনদেন থাকে। + +[ব্লক সম্পর্কে আরও](/developers/docs/blocks/) + +### স্মার্ট কন্ট্রাক্ট {#smart-contracts} + +কোডের একটি পুনঃব্যবহারযোগ্য স্নিপেট (একটি প্রোগ্রাম) যা একজন ডেভেলপার EVM স্টেটে প্রকাশ করে। যেকোনো ব্যক্তি একটি লেনদেনের অনুরোধ করে স্মার্ট কন্ট্রাক্ট কোডটি এক্সিকিউট করার জন্য অনুরোধ করতে পারে। কারণ ডেভেলপাররা EVM-এ নির্বিচারে এক্সিকিউটেবল অ্যাপ্লিকেশন লিখতে পারে (গেম, মার্কেটপ্লেস, আর্থিক উপকরণ, ইত্যাদি) স্মার্ট কন্ট্রাক্ট প্রকাশ করার মাধ্যমে, এগুলিকে প্রায়ই [ডিএ্যাপস, বা ডিসেন্ট্রালাইজড এপ্লিকেশন](/developers/docs/dapps/) বলা হয়। + +[স্মার্ট কন্ট্রাক্ট সম্পর্কে আরও](/developers/docs/smart-contracts/) + +## আরও পড়ুন {#further-reading} + +- [Ethereum হোয়াইটপেপার](/whitepaper/) +- [Ethereum কীভাবে কাজ করে?](https://medium.com/@preethikasireddy/how-does-ethereum-work-anyway-22d1df506369) - _প্রীতি কাসিরেড্ডি_ (**বিশেষ দ্রষ্টব্য** এই রিসোর্সটি এখনও মূল্যবান তবে সচেতন থাকুন যে এটি [The Merge](/roadmap/merge)-এর পূর্ববর্তী এবং তাই এখনও Ethereum-এর প্রুফ-অফ-ওয়ার্ক মেকানিজমকে বোঝায় - Ethereum এখন আসলে [প্রুফ-অফ-স্টেক](/developers/docs/consensus-mechanisms/pos) ব্যবহার করে সুরক্ষিত) + +### আপনি কি দেখে শিখতে বেশি পছন্দ করেন? {#visual-learner} + +এই ভিডিও সিরিজটি মৌলিক বিষয়গুলির একটি পুঙ্খানুপুঙ্খ অন্বেষণ অফার করে: + + + +[Ethereum বেসিকস প্লেলিস্ট](https://youtube.com/playlist?list=PLqgutSGloqiJyyoL0zvLVFPS-GMD2wKa5&si=kZTf5I7PKGTXDsOZ) + +_এমন কোনো কমিউনিটি রিসোর্স সম্পর্কে জানেন যা আপনাকে সাহায্য করেছে? এই পৃষ্ঠাটি সম্পাদনা করুন এবং এটি যোগ করুন!_ + +## সম্পর্কিত টিউটোরিয়াল {#related-tutorials} + +- [একজন ডেভেলপারের জন্য Ethereum-এর নির্দেশিকা, পর্ব ১](/developers/tutorials/a-developers-guide-to-ethereum-part-one/) _– Python এবং web3.py ব্যবহার করে Ethereum-এর একটি খুব শিক্ষানবিস-বান্ধব অন্বেষণ_ diff --git a/public/content/translations/bn/developers/docs/mev/index.md b/public/content/translations/bn/developers/docs/mev/index.md new file mode 100644 index 00000000000..ef9fb8de297 --- /dev/null +++ b/public/content/translations/bn/developers/docs/mev/index.md @@ -0,0 +1,221 @@ +--- +title: "ম্যাক্সিমাল এক্সট্রাক্টবল ভ্যালু (MEV)" +description: "ম্যাক্সিমাল এক্সট্রাক্টবল ভ্যালু (MEV)-এর একটি ভূমিকা" +lang: bn +--- + +ম্যাক্সিমাল এক্সট্রাক্টবল ভ্যালু (MEV) বলতে একটি ব্লকে লেনদেন অন্তর্ভুক্ত করা, বাদ দেওয়া এবং ক্রম পরিবর্তন করার মাধ্যমে স্ট্যান্ডার্ড ব্লক রিওয়ার্ড এবং গ্যাস ফি-এর অতিরিক্ত ব্লক উৎপাদন থেকে যে সর্বোচ্চ ভ্যালু বের করা যায়, তাকে বোঝায়। + +## ম্যাক্সিমাল এক্সট্রাক্টবল ভ্যালু {#maximal-extractable-value} + +ম্যাক্সিমাল এক্সট্রাক্টবল ভ্যালু প্রথম [প্রুফ-অফ-ওয়ার্ক](/developers/docs/consensus-mechanisms/pow/)-এর প্রেক্ষাপটে প্রয়োগ করা হয়েছিল এবং প্রাথমিকভাবে একে "মাইনার এক্সট্রাক্টবল ভ্যালু" হিসাবে উল্লেখ করা হয়েছিল। এর কারণ হল, প্রুফ-অফ-ওয়ার্কে মাইনাররা লেনদেন অন্তর্ভুক্ত করা, বাদ দেওয়া এবং ক্রম নিয়ন্ত্রণ করে। তবে, [দ্য মার্জ](/roadmap/merge)-এর মাধ্যমে প্রুফ-অফ-স্টেক-এ স্থানান্তরের পর থেকে, ভ্যালিডেটররা এই ভূমিকাগুলির জন্য দায়ী, এবং মাইনিং এখন আর Ethereum প্রোটোকলের অংশ নয়। তবে, ভ্যালু বের করার পদ্ধতিগুলো এখনও বিদ্যমান, তাই এখন এর পরিবর্তে "ম্যাক্সিমাল এক্সট্রাক্টবল ভ্যালু" শব্দটি ব্যবহার করা হয়। + +## পূর্বশর্ত {#prerequisites} + +নিশ্চিত করুন যে আপনি [লেনদেন](/developers/docs/transactions/), [ব্লক](/developers/docs/blocks/), [প্রুফ-অফ-স্টেক](/developers/docs/consensus-mechanisms/pos) এবং [গ্যাস](/developers/docs/gas/) সম্পর্কে পরিচিত। [ডিঅ্যাপস](/apps/) এবং [ডিফাই](/defi/)-এর সাথে পরিচিতি থাকাও সহায়ক। + +## MEV এক্সট্র্যাকশন {#mev-extraction} + +তত্ত্বগতভাবে, MEV সম্পূর্ণরূপে ভ্যালিডেটরদের কাছে জমা হয় কারণ তারাই একমাত্র পক্ষ যারা একটি লাভজনক MEV সুযোগের এক্সিকিউশন নিশ্চিত করতে পারে। তবে, বাস্তবে, MEV-এর একটি বড় অংশ "সার্চার" নামে পরিচিত স্বাধীন নেটওয়ার্ক অংশগ্রহণকারীদের দ্বারা বের করা হয়। সার্চাররা ব্লকচেইন ডেটার উপর জটিল অ্যালগরিদম চালায় লাভজনক MEV সুযোগ শনাক্ত করার জন্য এবং তাদের কাছে বট থাকে যা স্বয়ংক্রিয়ভাবে সেই লাভজনক লেনদেনগুলি নেটওয়ার্কে জমা দেয়। + +ভ্যালিডেটররা যাইহোক সম্পূর্ণ MEV পরিমাণের একটি অংশ পায় কারণ সার্চাররা তাদের লাভজনক লেনদেনগুলিকে একটি ব্লকে অন্তর্ভুক্ত করার উচ্চতর সম্ভাবনার বিনিময়ে উচ্চ গ্যাস ফি (যা ভ্যালিডেটরের কাছে যায়) দিতে ইচ্ছুক। ধরে নেওয়া যাক সার্চাররা অর্থনৈতিকভাবে যুক্তিসঙ্গত, একজন সার্চার যে গ্যাস ফি দিতে ইচ্ছুক তা তার MEV-এর ১০০% পর্যন্ত একটি পরিমাণ হবে (কারণ গ্যাস ফি বেশি হলে, সার্চার টাকা হারাবে)। + +এর সাথে, কিছু অত্যন্ত প্রতিযোগিতামূলক MEV সুযোগের জন্য, যেমন [DEX আরবিট্রেজ](#mev-examples-dex-arbitrage), সার্চারদের তাদের মোট MEV আয়ের ৯০% বা তারও বেশি ভ্যালিডেটরকে গ্যাস ফি হিসাবে দিতে হতে পারে কারণ অনেক লোক একই লাভজনক আরবিট্রেজ ট্রেড চালাতে চায়। এর কারণ হল, তাদের আরবিট্রেজ লেনদেন যে চলবে তা নিশ্চিত করার একমাত্র উপায় হল যদি তারা সর্বোচ্চ গ্যাস মূল্যে লেনদেনটি জমা দেয়। + +### গ্যাস গল্ফিং {#mev-extraction-gas-golfing} + +এই ডাইনামিকটি "গ্যাস গল্ফিং"-এ ভালো হওয়াকে - লেনদেনগুলিকে এমনভাবে প্রোগ্রামিং করা যাতে তারা সর্বনিম্ন পরিমাণ গ্যাস ব্যবহার করে - একটি প্রতিযোগিতামূলক সুবিধা তৈরি করেছে, কারণ এটি সার্চারদের তাদের মোট গ্যাস ফি স্থির রেখে একটি উচ্চতর গ্যাস মূল্য সেট করতে দেয় (যেহেতু গ্যাস ফি = গ্যাস মূল্য \* ব্যবহৃত গ্যাস)। + +কিছু সুপরিচিত গ্যাস গল্ফ কৌশলের মধ্যে রয়েছে: শূন্যের দীর্ঘ স্ট্রিং দিয়ে শুরু হওয়া অ্যাড্রেস ব্যবহার করা (যেমন, [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://eth.blockscout.com/address/0x0000000000C521824EaFf97Eac7B73B084ef9306)) কারণ সেগুলি সঞ্চয় করতে কম জায়গা (এবং তাই গ্যাস) নেয়; এবং চুক্তিতে ছোট [ERC-20](/developers/docs/standards/tokens/erc-20/) টোকেন ব্যালেন্স রেখে দেওয়া, কারণ একটি স্টোরেজ স্লট আপডেট করার চেয়ে একটি স্টোরেজ স্লট ইনিশিয়ালাইজ করতে (যদি ব্যালেন্স 0 হয়) বেশি গ্যাস খরচ হয়। গ্যাস ব্যবহার কমানোর জন্য আরও কৌশল খুঁজে বের করা সার্চারদের মধ্যে গবেষণার একটি সক্রিয় ক্ষেত্র। + +### জেনারেলাইজড ফ্রন্টরানার {#mev-extraction-generalized-frontrunners} + +লাভজনক MEV সুযোগ সনাক্ত করার জন্য জটিল অ্যালগরিদম প্রোগ্রামিং করার পরিবর্তে, কিছু সার্চার জেনারেলাইজড ফ্রন্টরানার চালায়। জেনারেলাইজড ফ্রন্টরানার হল এমন বট যা লাভজনক লেনদেন সনাক্ত করতে মেমপুল দেখে। ফ্রন্টরানার সম্ভাব্য লাভজনক লেনদেনের কোড কপি করবে, অ্যাড্রেসগুলিকে ফ্রন্টরানারের অ্যাড্রেস দিয়ে প্রতিস্থাপন করবে, এবং পরিবর্তিত লেনদেনটি ফ্রন্টরানারের অ্যাড্রেসে লাভ এনে দেয় কিনা তা দুবার পরীক্ষা করার জন্য স্থানীয়ভাবে লেনদেনটি চালাবে। যদি লেনদেনটি সত্যিই লাভজনক হয়, ফ্রন্টরানার পরিবর্তিত লেনদেনটি প্রতিস্থাপিত অ্যাড্রেস এবং একটি উচ্চতর গ্যাস মূল্য সহ জমা দেবে, মূল লেনদেনকে "ফ্রন্টরানিং" করবে এবং মূল সার্চারের MEV পাবে। + +### ফ্ল্যাশবট {#mev-extraction-flashbots} + +ফ্ল্যাশবট হল একটি স্বাধীন প্রকল্প যা এক্সিকিউশন ক্লায়েন্টদের একটি পরিষেবা দিয়ে প্রসারিত করে যা সার্চারদের পাবলিক মেমপুলে প্রকাশ না করে ভ্যালিডেটরদের কাছে MEV লেনদেন জমা দেওয়ার অনুমতি দেয়। এটি লেনদেনগুলিকে জেনারেলাইজড ফ্রন্টরানারদের দ্বারা ফ্রন্টরান হওয়া থেকে বাধা দেয়। + +## MEV উদাহরণ {#mev-examples} + +ব্লকচেইনে MEV কয়েকটি উপায়ে আবির্ভূত হয়। + +### DEX আরবিট্রেজ {#mev-examples-dex-arbitrage} + +[ডিসেন্ট্রালাইজড এক্সচেঞ্জ](/glossary/#dex) (DEX) আরবিট্রেজ হল সবচেয়ে সহজ এবং সবচেয়ে পরিচিত MEV সুযোগ। ফলস্বরূপ, এটি সবচেয়ে প্রতিযোগিতামূলকও। + +এটি এইভাবে কাজ করে: যদি দুটি DEX দুটি ভিন্ন মূল্যে একটি টোকেন অফার করে, তবে কেউ কম মূল্যের DEX-এ টোকেনটি কিনতে পারে এবং এটিকে একটি একক, অ্যাটমিক লেনদেনে উচ্চ মূল্যের DEX-এ বিক্রি করতে পারে। ব্লকচেইনের মেকানিক্সের জন্য ধন্যবাদ, এটি সত্যিকারের, ঝুঁকিমুক্ত আরবিট্রেজ। + +[এখানে](https://eth.blockscout.com/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) একটি লাভজনক আরবিট্রেজ লেনদেনের উদাহরণ যেখানে একজন সার্চার Uniswap বনাম Sushiswap-এ ETH/DAI পেয়ারের ভিন্ন মূল্যের সুবিধা নিয়ে 1,000 ETH কে 1,045 ETH-এ পরিণত করেছে। + +### লিকুইডেশন {#mev-examples-liquidations} + +লেন্ডিং প্রোটোকল লিকুইডেশন আরেকটি সুপরিচিত MEV সুযোগ উপস্থাপন করে। + +মেকার এবং অ্যাভের মতো লেন্ডিং প্রোটোকলগুলির জন্য ব্যবহারকারীদের কিছু কোল্যাটারাল (যেমন, ETH) জমা করতে হয়। এই জমাকৃত কোল্যাটারাল তারপর অন্য ব্যবহারকারীদের ধার দেওয়ার জন্য ব্যবহৃত হয়। + +ব্যবহারকারীরা তখন তাদের প্রয়োজনের উপর নির্ভর করে অন্যদের কাছ থেকে সম্পদ এবং টোকেন ধার করতে পারে (যেমন, আপনি যদি একটি MakerDAO গভর্নেন্স প্রস্তাবে ভোট দিতে চান তবে আপনি MKR ধার করতে পারেন) তাদের জমাকৃত কোল্যাটারালের একটি নির্দিষ্ট শতাংশ পর্যন্ত। উদাহরণস্বরূপ, যদি ধার করার পরিমাণ সর্বোচ্চ ৩০% হয়, একজন ব্যবহারকারী যিনি প্রোটোকলে ১০০ DAI জমা দেন তিনি অন্য একটি সম্পদের ৩০ DAI মূল্যের পর্যন্ত ধার করতে পারেন। প্রোটোকলটি সঠিক ধার করার ক্ষমতার শতাংশ নির্ধারণ করে। + +একজন ঋণগ্রহীতার কোল্যাটারালের মূল্য যেমন ওঠানামা করে, তেমনি তাদের ধার করার ক্ষমতাও ওঠানামা করে। যদি, বাজারের ওঠানামার কারণে, ধার করা সম্পদের মূল্য তাদের কোল্যাটারালের মূল্যের ৩০% অতিক্রম করে (আবার, সঠিক শতাংশ প্রোটোকল দ্বারা নির্ধারিত হয়), প্রোটোকলটি সাধারণত যে কাউকে কোল্যাটারাল লিকুইডেট করার অনুমতি দেয়, সঙ্গে সঙ্গে ঋণদাতাদের পরিশোধ করে (এটি ঐতিহ্যবাহী অর্থায়নে [মার্জিন কল](https://www.investopedia.com/terms/m/margincall.asp) কীভাবে কাজ করে তার অনুরূপ)। লিকুইডেট হলে, ঋণগ্রহীতাকে সাধারণত একটি মোটা লিকুইডেশন ফি দিতে হয়, যার কিছু অংশ লিকুইডেটরের কাছে যায় - এখানেই MEV সুযোগ আসে। + +সার্চাররা যত দ্রুত সম্ভব ব্লকচেইন ডেটা পার্স করার জন্য প্রতিযোগিতা করে তা নির্ধারণ করতে যে কোন ঋণগ্রহীতাদের লিকুইডেট করা যেতে পারে এবং একটি লিকুইডেশন লেনদেন জমা দেওয়ার জন্য প্রথম হতে এবং নিজেদের জন্য লিকুইডেশন ফি সংগ্রহ করতে। + +### স্যান্ডউইচ ট্রেডিং {#mev-examples-sandwich-trading} + +স্যান্ডউইচ ট্রেডিং MEV এক্সট্র্যাকশনের আরেকটি সাধারণ পদ্ধতি। + +স্যান্ডউইচ করতে, একজন সার্চার বড় DEX ট্রেডের জন্য মেমপুল দেখবে। উদাহরণস্বরূপ, ধরুন কেউ Uniswap-এ DAI দিয়ে ১০,০০০ UNI কিনতে চায়। এই মাত্রার একটি ট্রেড UNI/DAI পেয়ারে একটি অর্থপূর্ণ প্রভাব ফেলবে, যা সম্ভাব্যভাবে DAI-এর তুলনায় UNI-এর দাম উল্লেখযোগ্যভাবে বাড়িয়ে দেবে। + +একজন সার্চার UNI/DAI পেয়ারে এই বড় ট্রেডের আনুমানিক মূল্য প্রভাব গণনা করতে পারে এবং বড় ট্রেডের ঠিক _আগে_ একটি সর্বোত্তম বাই অর্ডার এক্সিকিউট করতে পারে, সস্তায় UNI কিনে, তারপর বড় ট্রেডের ঠিক _পরে_ একটি সেল অর্ডার এক্সিকিউট করতে পারে, বড় অর্ডারের কারণে সৃষ্ট উচ্চ মূল্যে এটি বিক্রি করে। + +স্যান্ডউইচিং, তবে, আরও ঝুঁকিপূর্ণ কারণ এটি অ্যাটমিক নয় (উপরে বর্ণিত DEX আরবিট্রেজের মতো নয়) এবং এটি একটি [সালমোনেলা অ্যাটাক](https://github.com/Defi-Cartel/salmonella)-এর জন্য প্রবণ। + +### NFT MEV {#mev-examples-nfts} + +NFT স্পেসে MEV একটি উদীয়মান ঘটনা, এবং এটি অগত্যা লাভজনক নয়। + +তবে, যেহেতু NFT লেনদেনগুলি অন্য সমস্ত Ethereum লেনদেন দ্বারা শেয়ার করা একই ব্লকচেইনে ঘটে, তাই সার্চাররা NFT বাজারে ঐতিহ্যবাহী MEV সুযোগগুলিতে ব্যবহৃত কৌশলগুলির মতো একই কৌশল ব্যবহার করতে পারে। + +উদাহরণস্বরূপ, যদি একটি জনপ্রিয় NFT ড্রপ থাকে এবং একজন সার্চার একটি নির্দিষ্ট NFT বা NFT-এর সেট চায়, তবে তারা এমনভাবে একটি লেনদেন প্রোগ্রাম করতে পারে যাতে তারা NFT কেনার জন্য লাইনে প্রথম থাকে, অথবা তারা একটি একক লেনদেনে NFT-এর পুরো সেটটি কিনতে পারে। অথবা যদি একটি NFT [ভুলবশত কম দামে তালিকাভুক্ত হয়](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), একজন সার্চার অন্য ক্রেতাদের ফ্রন্টরান করতে পারে এবং সস্তায় এটি তুলে নিতে পারে। + +NFT MEV-এর একটি বিশিষ্ট উদাহরণ ঘটেছিল যখন একজন সার্চার ফ্লোর প্রাইসে প্রতিটি ক্রিপ্টোপাঙ্ক [কিনতে](https://eth.blockscout.com/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5?tab=txs) ৭ মিলিয়ন ডলার খরচ করেছিল। একজন ব্লকচেইন গবেষক [টুইটারে ব্যাখ্যা করেছেন](https://twitter.com/IvanBogatyy/status/1422232184493121538) কিভাবে ক্রেতা তাদের কেনাকাটা গোপন রাখতে একজন MEV প্রদানকারীর সাথে কাজ করেছিল। + +### দ্য লং টেইল {#mev-examples-long-tail} + +DEX আরবিট্রেজ, লিকুইডেশন এবং স্যান্ডউইচ ট্রেডিং সবই খুব পরিচিত MEV সুযোগ এবং নতুন সার্চারদের জন্য লাভজনক হওয়ার সম্ভাবনা কম। তবে, কম পরিচিত MEV সুযোগের একটি দীর্ঘ তালিকা রয়েছে (NFT MEV তর্কসাপেক্ষে এমনই একটি সুযোগ)। + +যারা সবে শুরু করছেন সেই সার্চাররা এই দীর্ঘ তালিকায় MEV অনুসন্ধান করে আরও সাফল্য পেতে সক্ষম হতে পারেন। ফ্ল্যাশবটের [MEV জব বোর্ড](https://github.com/flashbots/mev-job-board) কিছু উদীয়মান সুযোগ তালিকাভুক্ত করে। + +## MEV-এর প্রভাব {#effects-of-mev} + +MEV সব খারাপ নয় — Ethereum-এ MEV-এর ইতিবাচক এবং নেতিবাচক উভয় পরিণতি রয়েছে। + +### ভালো দিক {#effects-of-mev-the-good} + +অনেক ডিফাই প্রকল্প তাদের প্রোটোকলের উপযোগিতা এবং স্থিতিশীলতা নিশ্চিত করতে অর্থনৈতিকভাবে যুক্তিসঙ্গত অভিনেতাদের উপর নির্ভর করে। উদাহরণস্বরূপ, DEX আরবিট্রেজ নিশ্চিত করে যে ব্যবহারকারীরা তাদের টোকেনের জন্য সেরা, সবচেয়ে সঠিক মূল্য পায়, এবং ঋণদাতাদের পরিশোধ করা নিশ্চিত করতে লেন্ডিং প্রোটোকলগুলি দ্রুত লিকুইডেশনের উপর নির্ভর করে যখন ঋণগ্রহীতারা কোল্যাটার‍্যালাইজেশন অনুপাতের নিচে নেমে যায়। + +অর্থনৈতিক অদক্ষতা খোঁজা এবং ঠিক করা এবং প্রোটোকলের অর্থনৈতিক প্রণোদনার সুবিধা নেওয়া যুক্তিসঙ্গত সার্চার ছাড়া, ডিফাই প্রোটোকল এবং সাধারণভাবে ডিঅ্যাপসগুলি আজকের মতো শক্তিশালী নাও হতে পারে। + +### খারাপ দিক {#effects-of-mev-the-bad} + +অ্যাপ্লিকেশন লেয়ারে, MEV-এর কিছু রূপ, যেমন স্যান্ডউইচ ট্রেডিং, ব্যবহারকারীদের জন্য নিঃসন্দেহে একটি খারাপ অভিজ্ঞতার কারণ হয়। যেসব ব্যবহারকারীরা স্যান্ডউইচের শিকার হন তারা তাদের ট্রেডে বর্ধিত স্লিপেজ এবং খারাপ এক্সিকিউশনের সম্মুখীন হন। + +নেটওয়ার্ক লেয়ারে, জেনারেলাইজড ফ্রন্টরানার এবং তারা যে গ্যাস-মূল্যের নিলামে প্রায়ই অংশ নেয় (যখন দুই বা ততোধিক ফ্রন্টরানার তাদের লেনদেনকে পরবর্তী ব্লকে অন্তর্ভুক্ত করার জন্য তাদের নিজস্ব লেনদেনের গ্যাস মূল্য ক্রমাগত বাড়িয়ে প্রতিযোগিতা করে) তার ফলে নেটওয়ার্ক কনজেশন এবং অন্য সবার জন্য যারা সাধারণ লেনদেন চালানোর চেষ্টা করছে তাদের জন্য উচ্চ গ্যাস মূল্য হয়। + +ব্লকের _ভিতরে_ যা ঘটছে তার বাইরেও, MEV ব্লকের _মধ্যে_ ক্ষতিকর প্রভাব ফেলতে পারে। যদি একটি ব্লকে উপলব্ধ MEV স্ট্যান্ডার্ড ব্লক রিওয়ার্ডকে উল্লেখযোগ্যভাবে ছাড়িয়ে যায়, তাহলে ভ্যালিডেটররা ব্লক রিঅর্গানাইজ করতে এবং নিজেদের জন্য MEV ক্যাপচার করতে উৎসাহিত হতে পারে, যার ফলে ব্লকচেইন রিঅর্গানাইজেশন এবং কনসেন্সাস অস্থিতিশীলতা দেখা দেয়। + +ব্লকচেইন রিঅর্গানাইজেশনের এই সম্ভাবনা [পূর্বে বিটকয়েন ব্লকচেইনে অন্বেষণ করা হয়েছে](https://dl.acm.org/doi/10.1145/2976749.2978408)। যেহেতু বিটকয়েনের ব্লক রিওয়ার্ড অর্ধেক হয়ে যায় এবং লেনদেন ফি ব্লক রিওয়ার্ডের একটি বৃহত্তর এবং বৃহত্তর অংশ তৈরি করে, এমন পরিস্থিতি দেখা দেয় যেখানে মাইনারদের জন্য পরবর্তী ব্লকের রিওয়ার্ড ছেড়ে দেওয়া এবং পরিবর্তে উচ্চতর ফি সহ অতীতের ব্লকগুলি রিমাইন করা অর্থনৈতিকভাবে যুক্তিসঙ্গত হয়ে ওঠে। MEV-এর বৃদ্ধির সাথে সাথে, Ethereum-এও একই ধরণের পরিস্থিতি ঘটতে পারে, যা ব্লকচেইনের অখণ্ডতাকে হুমকির মুখে ফেলবে। + +## MEV-এর অবস্থা {#state-of-mev} + +২০২১ সালের শুরুতে MEV এক্সট্র্যাকশন ব্যাপকভাবে বৃদ্ধি পায়, যার ফলে বছরের প্রথম কয়েক মাসে অত্যন্ত উচ্চ গ্যাস মূল্য দেখা যায়। ফ্ল্যাশবটের MEV রিলে-এর উত্থান জেনারেলাইজড ফ্রন্টরানারদের কার্যকারিতা হ্রাস করেছে এবং গ্যাস মূল্যের নিলাম অফচেইনে নিয়ে গেছে, যা সাধারণ ব্যবহারকারীদের জন্য গ্যাস মূল্য কমিয়েছে। + +যদিও অনেক সার্চার এখনও MEV থেকে ভালো অর্থ উপার্জন করছে, সুযোগগুলি আরও পরিচিত হওয়ার সাথে সাথে এবং আরও বেশি সার্চার একই সুযোগের জন্য প্রতিযোগিতা করার সাথে সাথে, ভ্যালিডেটররা আরও বেশি মোট MEV আয় ক্যাপচার করবে (কারণ মূলত উপরে বর্ণিত একই ধরণের গ্যাস নিলাম ফ্ল্যাশবটেও ঘটে, যদিও ব্যক্তিগতভাবে, এবং ভ্যালিডেটররা ফলস্বরূপ গ্যাস আয় ক্যাপচার করবে)। MEV শুধুমাত্র Ethereum-এর জন্য অনন্য নয়, এবং Ethereum-এ সুযোগগুলি আরও প্রতিযোগিতামূলক হওয়ার সাথে সাথে সার্চাররা Binance Smart Chain-এর মতো বিকল্প ব্লকচেইনে চলে যাচ্ছে, যেখানে Ethereum-এর মতো একই রকম MEV সুযোগ কম প্রতিযোগিতা সহ বিদ্যমান। + +অন্যদিকে, প্রুফ-অফ-ওয়ার্ক থেকে প্রুফ-অফ-স্টেকে রূপান্তর এবং রোলআপ ব্যবহার করে Ethereum স্কেল করার চলমান প্রচেষ্টা সবই MEV ল্যান্ডস্কেপকে এমনভাবে পরিবর্তন করে যা এখনও কিছুটা অস্পষ্ট। প্রুফ-অফ-ওয়ার্কের সম্ভাব্যতা মডেলের তুলনায় সামান্য আগে থেকে পরিচিত গ্যারান্টিযুক্ত ব্লক-প্রস্তাবকদের থাকা MEV এক্সট্র্যাকশনের গতিশীলতাকে কীভাবে পরিবর্তন করে বা যখন [একক গোপন নেতা নির্বাচন](https://ethresear.ch/t/secret-non-single-leader-election/11789) এবং [ডিস্ট্রিবিউটেড ভ্যালিডেটর প্রযুক্তি](/staking/dvt/) প্রয়োগ করা হবে তখন এটি কীভাবে ব্যাহত হবে তা এখনও ভালভাবে জানা যায়নি। একইভাবে, যখন বেশিরভাগ ব্যবহারকারী কার্যকলাপ Ethereum থেকে এবং এর লেয়ার 2 রোলআপ এবং শার্ডগুলিতে স্থানান্তরিত হয় তখন কী MEV সুযোগ বিদ্যমান থাকে তা এখনও দেখা বাকি। + +## Ethereum প্রুফ-অফ-স্টেক (PoS)-এ MEV {#mev-in-ethereum-proof-of-stake} + +যেমনটি ব্যাখ্যা করা হয়েছে, সামগ্রিক ব্যবহারকারীর অভিজ্ঞতা এবং কনসেন্সাস-লেয়ার সুরক্ষার জন্য MEV-এর নেতিবাচক প্রভাব রয়েছে। কিন্তু Ethereum-এর একটি প্রুফ-অফ-স্টেক কনসেন্সাসে রূপান্তর ("দ্য মার্জ" নামে পরিচিত) সম্ভাব্যভাবে নতুন MEV-সম্পর্কিত ঝুঁকি তৈরি করে: + +### ভ্যালিডেটর সেন্ট্রালাইজেশন {#validator-centralization} + +মার্জ-পরবর্তী Ethereum-এ, ভ্যালিডেটররা (32 ETH-এর নিরাপত্তা আমানত করার পর) বিকন চেইনে যোগ করা ব্লকের বৈধতার উপর কনসেন্সাসে আসে। যেহেতু 32 ETH অনেকের নাগালের বাইরে হতে পারে, তাই [একটি স্টেকিং পুলে যোগদান করা](/staking/pools/) একটি আরও সম্ভাব্য বিকল্প হতে পারে। তবুও, [সোলো স্টেকারদের](/staking/solo/) একটি স্বাস্থ্যকর বন্টন আদর্শ, কারণ এটি ভ্যালিডেটরদের সেন্ট্রালাইজেশন প্রশমিত করে এবং Ethereum-এর নিরাপত্তা উন্নত করে। + +তবে, বিশ্বাস করা হয় যে MEV এক্সট্র্যাকশন ভ্যালিডেটর সেন্ট্রালাইজেশন ত্বরান্বিত করতে সক্ষম। এর আংশিক কারণ হল, যেহেতু ভ্যালিডেটররা মাইনারদের আগের তুলনায় [ব্লক প্রস্তাব করার জন্য কম উপার্জন করে](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply), MEV এক্সট্র্যাকশন [দ্য মার্জ](/roadmap/merge/) থেকে ভ্যালিডেটরদের উপার্জন ব্যাপকভাবে [প্রভাবিত করেছে](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb)। + +বৃহত্তর স্টেকিং পুলগুলির MEV সুযোগগুলি ক্যাপচার করার জন্য প্রয়োজনীয় অপ্টিমাইজেশনে বিনিয়োগ করার জন্য সম্ভবত আরও বেশি রিসোর্স থাকবে। এই পুলগুলি যত বেশি MEV এক্সট্র্যাক্ট করবে, তাদের MEV-এক্সট্র্যাকশন ক্ষমতা উন্নত করার জন্য (এবং সামগ্রিক রাজস্ব বাড়ানোর জন্য) তাদের তত বেশি রিসোর্স থাকবে, যা মূলত [ইকোনমিক্স অফ স্কেল](https://www.investopedia.com/terms/e/economiesofscale.asp#) তৈরি করে। + +তাদের হাতে কম রিসোর্স থাকায়, সোলো স্টেকাররা MEV সুযোগ থেকে লাভ করতে অক্ষম হতে পারে। এটি স্বাধীন ভ্যালিডেটরদের উপর তাদের আয় বাড়াতে শক্তিশালী স্টেকিং পুলগুলিতে যোগদানের জন্য চাপ বাড়াতে পারে, যা Ethereum-এ ডিসেন্ট্রালাইজেশন হ্রাস করে। + +### পারমিশনড মেমপুল {#permissioned-mempools} + +স্যান্ডউইচিং এবং ফ্রন্টরানিং অ্যাটাকের প্রতিক্রিয়ায়, ট্রেডাররা লেনদেনের গোপনীয়তার জন্য ভ্যালিডেটরদের সাথে অফচেইন ডিল করা শুরু করতে পারে। একটি সম্ভাব্য MEV লেনদেন পাবলিক মেমপুলে পাঠানোর পরিবর্তে, ট্রেডার এটি সরাসরি ভ্যালিডেটরের কাছে পাঠায়, যিনি এটিকে একটি ব্লকে অন্তর্ভুক্ত করেন এবং ট্রেডারের সাথে লাভ ভাগ করে নেন। + +“ডার্ক পুল” হল এই ব্যবস্থার একটি বৃহত্তর সংস্করণ এবং এটি পারমিশনড, শুধুমাত্র-অ্যাক্সেস মেমপুল হিসাবে কাজ করে যা নির্দিষ্ট ফি দিতে ইচ্ছুক ব্যবহারকারীদের জন্য উন্মুক্ত। এই প্রবণতা Ethereum-এর পারমিশনলেসনেস এবং ট্রাস্টলেসনেস হ্রাস করবে এবং সম্ভাব্যভাবে ব্লকচেইনকে একটি “পে-টু-প্লে” মেকানিজমে রূপান্তরিত করবে যা সর্বোচ্চ দরদাতাকে সুবিধা দেয়। + +পারমিশনড মেমপুলগুলি আগের বিভাগে বর্ণিত সেন্ট্রালাইজেশন ঝুঁকিগুলিও ত্বরান্বিত করবে। একাধিক ভ্যালিডেটর চালানো বড় পুলগুলি সম্ভবত ট্রেডার এবং ব্যবহারকারীদের লেনদেনের গোপনীয়তা অফার করে উপকৃত হবে, যা তাদের MEV আয় বৃদ্ধি করবে। + +মার্জ-পরবর্তী Ethereum-এ এই MEV-সম্পর্কিত সমস্যাগুলির বিরুদ্ধে লড়াই করা গবেষণার একটি মূল ক্ষেত্র। আজ পর্যন্ত, দ্য মার্জের পরে Ethereum-এর ডিসেন্ট্রালাইজেশন এবং সুরক্ষার উপর MEV-এর নেতিবাচক প্রভাব কমাতে প্রস্তাবিত দুটি সমাধান হল [**প্রপোজার-বিল্ডার সেপারেশন (PBS)**](/roadmap/pbs/) এবং [**বিল্ডার API**](https://github.com/ethereum/builder-specs)। + +### প্রপোজার-বিল্ডার সেপারেশন {#proposer-builder-separation} + +প্রুফ-অফ-ওয়ার্ক এবং প্রুফ-অফ-স্টেক উভয় ক্ষেত্রেই, একটি নোড যা একটি ব্লক তৈরি করে তা কনসেন্সাসে অংশগ্রহণকারী অন্যান্য নোডগুলির কাছে চেইনে যোগ করার জন্য এটি প্রস্তাব করে। একটি নতুন ব্লক ক্যানোনিকাল চেইনের অংশ হয়ে যায় যখন অন্য একজন মাইনার এর উপরে তৈরি করে (PoW-তে) অথবা এটি বেশিরভাগ ভ্যালিডেটরের কাছ থেকে অ্যাটেস্টেশন পায় (PoS-তে)। + +ব্লক প্রডিউসার এবং ব্লক প্রপোজার ভূমিকার সংমিশ্রণই পূর্বে বর্ণিত বেশিরভাগ MEV-সম্পর্কিত সমস্যা তৈরি করে। উদাহরণস্বরূপ, কনসেন্সাস নোডগুলি MEV আয় সর্বাধিক করার জন্য [টাইম-ব্যান্ডিট অ্যাটাকে](https://www.mev.wiki/attack-examples/time-bandit-attack) চেইন রিঅর্গানাইজেশন ট্রিগার করতে উৎসাহিত হয়। + +[প্রপোজার-বিল্ডার সেপারেশন](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) MEV-এর প্রভাব প্রশমিত করার জন্য ডিজাইন করা হয়েছে, বিশেষ করে কনসেন্সাস লেয়ারে। PBS-এর প্রধান বৈশিষ্ট্য হল ব্লক প্রডিউসার এবং ব্লক প্রপোজার নিয়মের পৃথকীকরণ। ভ্যালিডেটররা এখনও ব্লক প্রস্তাব এবং ভোট দেওয়ার জন্য দায়ী, কিন্তু **ব্লক বিল্ডার** নামক একটি নতুন শ্রেণীর বিশেষায়িত সত্তাকে লেনদেন অর্ডার করা এবং ব্লক তৈরির দায়িত্ব দেওয়া হয়েছে। + +PBS-এর অধীনে, একজন ব্লক বিল্ডার একটি লেনদেন বান্ডিল তৈরি করে এবং একটি বিকন চেইন ব্লকে ("এক্সিকিউশন পেলোড" হিসাবে) অন্তর্ভুক্তির জন্য একটি বিড রাখে। পরবর্তী ব্লক প্রস্তাব করার জন্য নির্বাচিত ভ্যালিডেটর তারপর বিভিন্ন বিড পরীক্ষা করে এবং সর্বোচ্চ ফি সহ বান্ডিলটি বেছে নেয়। PBS মূলত একটি নিলাম বাজার তৈরি করে, যেখানে বিল্ডাররা ব্লকস্পেস বিক্রি করা ভ্যালিডেটরদের সাথে আলোচনা করে। + +বর্তমান PBS ডিজাইনগুলি একটি [কমিট-রিভিল স্কিম](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) ব্যবহার করে যেখানে বিল্ডাররা শুধুমাত্র তাদের বিডের সাথে একটি ব্লকের বিষয়বস্তুর (ব্লক হেডার) একটি ক্রিপ্টোগ্রাফিক কমিটমেন্ট প্রকাশ করে। বিজয়ী বিড গ্রহণ করার পরে, প্রপোজার একটি স্বাক্ষরিত ব্লক প্রস্তাব তৈরি করে যাতে ব্লক হেডার অন্তর্ভুক্ত থাকে। ব্লক বিল্ডারের স্বাক্ষরিত ব্লক প্রস্তাব দেখার পরে সম্পূর্ণ ব্লক বডি প্রকাশ করার কথা, এবং চূড়ান্ত হওয়ার আগে এটিকে ভ্যালিডেটরদের কাছ থেকে পর্যাপ্ত [অ্যাটেস্টেশন](/glossary/#attestation) পেতে হবে। + +#### প্রপোজার-বিল্ডার সেপারেশন কীভাবে MEV-এর প্রভাব প্রশমিত করে? {#how-does-pbs-curb-mev-impact} + +ইন-প্রোটোকল প্রপোজার-বিল্ডার সেপারেশন ভ্যালিডেটরদের আওতা থেকে MEV এক্সট্র্যাকশন সরিয়ে দিয়ে কনসেন্সাসের উপর MEV-এর প্রভাব হ্রাস করে। পরিবর্তে, বিশেষায়িত হার্ডওয়্যার চালানো ব্লক বিল্ডাররা ভবিষ্যতে MEV সুযোগগুলি ক্যাপচার করবে। + +তবে, এটি ভ্যালিডেটরদের MEV-সম্পর্কিত আয় থেকে সম্পূর্ণরূপে বাদ দেয় না, কারণ বিল্ডারদের তাদের ব্লক ভ্যালিডেটরদের দ্বারা গৃহীত হওয়ার জন্য উচ্চ বিড করতে হবে। তবুও, ভ্যালিডেটররা আর সরাসরি MEV আয় অপ্টিমাইজ করার উপর মনোনিবেশ না করায়, টাইম-ব্যান্ডিট অ্যাটাকের হুমকি হ্রাস পায়। + +প্রপোজার-বিল্ডার সেপারেশন MEV-এর সেন্ট্রালাইজেশন ঝুঁকিও হ্রাস করে। উদাহরণস্বরূপ, কমিট-রিভিল স্কিম ব্যবহার করলে বিল্ডারদের ভ্যালিডেটরদের উপর বিশ্বাস রাখার প্রয়োজন দূর হয় যে তারা MEV সুযোগ চুরি করবে না বা অন্য বিল্ডারদের কাছে এটি প্রকাশ করবে না। এটি সোলো স্টেকারদের MEV থেকে উপকৃত হওয়ার জন্য বাধা কমিয়ে দেয়, অন্যথায়, বিল্ডাররা অফচেইন খ্যাতি সহ বড় পুলগুলিকে সুবিধা দেওয়ার এবং তাদের সাথে অফচেইন ডিল করার দিকে ঝুঁকবে। + +একইভাবে, ভ্যালিডেটরদের বিল্ডারদের উপর বিশ্বাস রাখতে হবে না যে তারা ব্লক বডি আটকে রাখবে না বা অবৈধ ব্লক প্রকাশ করবে না কারণ পেমেন্ট শর্তহীন। প্রস্তাবিত ব্লকটি অনুপলব্ধ বা অন্য ভ্যালিডেটরদের দ্বারা অবৈধ ঘোষিত হলেও ভ্যালিডেটরের ফি এখনও প্রসেস হয়। পরবর্তী ক্ষেত্রে, ব্লকটি কেবল বাতিল করা হয়, যা ব্লক বিল্ডারকে সমস্ত লেনদেন ফি এবং MEV আয় হারাতে বাধ্য করে। + +### বিল্ডার API {#builder-api} + +যদিও প্রপোজার-বিল্ডার সেপারেশন MEV এক্সট্র্যাকশনের প্রভাব কমানোর প্রতিশ্রুতি দেয়, এটি বাস্তবায়নের জন্য কনসেন্সাস প্রোটোকলে পরিবর্তনের প্রয়োজন। বিশেষত, বিকন চেইনের [ফর্ক চয়েস](/developers/docs/consensus-mechanisms/pos/#fork-choice) নিয়মটি আপডেট করার প্রয়োজন হবে। [বিল্ডার API](https://github.com/ethereum/builder-specs) হল একটি অস্থায়ী সমাধান যা প্রপোজার-বিল্ডার সেপারেশনের একটি কার্যকরী বাস্তবায়ন প্রদানের লক্ষ্যে, যদিও উচ্চতর বিশ্বাস অনুমানের সাথে। + +বিল্ডার API হল [ইঞ্জিন API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md)-এর একটি পরিবর্তিত সংস্করণ যা কনসেন্সাস লেয়ার ক্লায়েন্টরা এক্সিকিউশন লেয়ার ক্লায়েন্টদের কাছ থেকে এক্সিকিউশন পেলোড অনুরোধ করতে ব্যবহার করে। [অনেস্ট ভ্যালিডেটর স্পেসিফিকেশন](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md)-এ যেমন বর্ণিত হয়েছে, ব্লক প্রস্তাবের দায়িত্বের জন্য নির্বাচিত ভ্যালিডেটররা একটি সংযুক্ত এক্সিকিউশন ক্লায়েন্টের কাছ থেকে একটি লেনদেন বান্ডিলের অনুরোধ করে, যা তারা প্রস্তাবিত বিকন চেইন ব্লকে অন্তর্ভুক্ত করে। + +বিল্ডার API ভ্যালিডেটর এবং এক্সিকিউশন-লেয়ার ক্লায়েন্টদের মধ্যে একটি মিডলওয়্যার হিসাবেও কাজ করে; কিন্তু এটি ভিন্ন কারণ এটি বিকন চেইনের ভ্যালিডেটরদের বাহ্যিক সত্তা থেকে ব্লক সোর্স করতে দেয় (একটি এক্সিকিউশন ক্লায়েন্ট ব্যবহার করে স্থানীয়ভাবে একটি ব্লক তৈরির পরিবর্তে)। + +নীচে বিল্ডার API কীভাবে কাজ করে তার একটি ওভারভিউ দেওয়া হল: + +1. বিল্ডার API ভ্যালিডেটরকে এক্সিকিউশন লেয়ার ক্লায়েন্ট চালানো ব্লক বিল্ডারদের একটি নেটওয়ার্কের সাথে সংযুক্ত করে। PBS-এর মতো, বিল্ডাররা হল বিশেষায়িত পক্ষ যারা রিসোর্স-ইনটেনসিভ ব্লক-বিল্ডিংয়ে বিনিয়োগ করে এবং MEV + অগ্রাধিকার টিপস থেকে অর্জিত আয় সর্বাধিক করার জন্য বিভিন্ন কৌশল ব্যবহার করে। + +2. একজন ভ্যালিডেটর (একটি কনসেন্সাস লেয়ার ক্লায়েন্ট চালাচ্ছেন) বিল্ডারদের নেটওয়ার্ক থেকে বিডের সাথে এক্সিকিউশন পেলোডের অনুরোধ করে। বিল্ডারদের বিডগুলিতে এক্সিকিউশন পেলোড হেডার—পেলোডের বিষয়বস্তুর একটি ক্রিপ্টোগ্রাফিক কমিটমেন্ট—এবং ভ্যালিডেটরকে প্রদেয় একটি ফি থাকবে। + +3. ভ্যালিডেটর আগত বিডগুলি পর্যালোচনা করে এবং সর্বোচ্চ ফি সহ এক্সিকিউশন পেলোডটি বেছে নেয়। বিল্ডার API ব্যবহার করে, ভ্যালিডেটর একটি "ব্লাইন্ডেড" বিকন ব্লক প্রস্তাব তৈরি করে যাতে শুধুমাত্র তাদের স্বাক্ষর এবং এক্সিকিউশন পেলোড হেডার অন্তর্ভুক্ত থাকে এবং এটি বিল্ডারের কাছে পাঠায়। + +4. বিল্ডার API চালানো বিল্ডার ব্লাইন্ডেড ব্লক প্রস্তাব দেখার পরে সম্পূর্ণ এক্সিকিউশন পেলোড সহ প্রতিক্রিয়া জানাবে বলে আশা করা হয়। এটি ভ্যালিডেটরকে একটি "স্বাক্ষরিত" বিকন ব্লক তৈরি করতে দেয়, যা তারা পুরো নেটওয়ার্কে প্রচার করে। + +5. বিল্ডার API ব্যবহারকারী একজন ভ্যালিডেটর এখনও স্থানীয়ভাবে একটি ব্লক তৈরি করবেন বলে আশা করা হয় যদি ব্লক বিল্ডার দ্রুত প্রতিক্রিয়া জানাতে ব্যর্থ হয়, যাতে তারা ব্লক প্রস্তাবের রিওয়ার্ড থেকে বঞ্চিত না হয়। তবে, ভ্যালিডেটর এখন-প্রকাশিত লেনদেন বা অন্য একটি সেট ব্যবহার করে অন্য কোনো ব্লক তৈরি করতে পারে না, কারণ এটি _ইকুইভোকেশন_ (একই স্লটের মধ্যে দুটি ব্লকে স্বাক্ষর করা) এর সমান হবে, যা একটি স্ল্যাশেবল অফেন্স। + +বিল্ডার API-এর একটি উদাহরণ বাস্তবায়ন হল [MEV Boost](https://github.com/flashbots/mev-boost), যা [ফ্ল্যাশবট নিলাম প্রক্রিয়া](https://docs.flashbots.net/Flashbots-auction/overview)-এর একটি উন্নতি যা Ethereum-এ MEV-এর নেতিবাচক বহিরাগত প্রভাব রোধ করার জন্য ডিজাইন করা হয়েছে। ফ্ল্যাশবট নিলাম প্রুফ-অফ-স্টেক-এ ভ্যালিডেটরদের লাভজনক ব্লক তৈরির কাজ **সার্চার** নামক বিশেষায়িত পক্ষগুলির কাছে আউটসোর্স করার অনুমতি দেয়। +![একটি ডায়াগ্রাম যা বিস্তারিতভাবে MEV প্রবাহ দেখাচ্ছে](./mev.png) + +সার্চাররা লাভজনক MEV সুযোগ খোঁজে এবং ব্লকে অন্তর্ভুক্তির জন্য একটি [সিলড-প্রাইস বিড](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) সহ ব্লক প্রপোজারদের কাছে লেনদেন বান্ডিল পাঠায়। mev-geth চালানো ভ্যালিডেটর, যা go-ethereum (Geth) ক্লায়েন্টের একটি ফর্কড সংস্করণ, তাকে শুধুমাত্র সবচেয়ে বেশি লাভ সহ বান্ডিলটি বেছে নিতে হবে এবং এটিকে নতুন ব্লকের অংশ হিসাবে অন্তর্ভুক্ত করতে হবে। ব্লক প্রপোজারদের (ভ্যালিডেটরদের) স্প্যাম এবং অবৈধ লেনদেন থেকে রক্ষা করতে, লেনদেন বান্ডিলগুলি প্রপোজারের কাছে যাওয়ার আগে ভ্যালিডেশনের জন্য **রিলেয়ারদের** মাধ্যমে যায়। + +MEV Boost মূল ফ্ল্যাশবট নিলামের একই কার্যকারিতা বজায় রাখে, যদিও Ethereum-এর প্রুফ-অফ-স্টেকে পরিবর্তনের জন্য ডিজাইন করা নতুন বৈশিষ্ট্যগুলির সাথে। সার্চাররা এখনও ব্লকে অন্তর্ভুক্তির জন্য লাভজনক MEV লেনদেন খুঁজে পায়, কিন্তু **বিল্ডার** নামক একটি নতুন শ্রেণীর বিশেষায়িত পক্ষ লেনদেন এবং বান্ডিলগুলিকে ব্লকে একত্রিত করার জন্য দায়ী। একজন বিল্ডার সার্চারদের কাছ থেকে সিলড-প্রাইস বিড গ্রহণ করে এবং সবচেয়ে লাভজনক অর্ডারিং খুঁজে পেতে অপ্টিমাইজেশন চালায়। + +রিলেয়ার এখনও প্রপোজারের কাছে পাঠানোর আগে লেনদেন বান্ডিলগুলি ভ্যালিডেট করার জন্য দায়ী। তবে, MEV Boost **এসক্রো** চালু করে যা বিল্ডারদের দ্বারা প্রেরিত ব্লক বডি এবং ভ্যালিডেটরদের দ্বারা প্রেরিত ব্লক হেডার সংরক্ষণ করে [ডেটা প্রাপ্যতা](/developers/docs/data-availability/) প্রদানের জন্য দায়ী। এখানে, একটি রিলে-এর সাথে সংযুক্ত একজন ভ্যালিডেটর উপলব্ধ এক্সিকিউশন পেলোডের জন্য জিজ্ঞাসা করে এবং সর্বোচ্চ বিড + MEV টিপস সহ পেলোড হেডার নির্বাচন করতে MEV Boost-এর অর্ডারিং অ্যালগরিদম ব্যবহার করে। + +#### বিল্ডার API কীভাবে MEV-এর প্রভাব প্রশমিত করে? {#how-does-builder-api-curb-mev-impact} + +বিল্ডার API-এর মূল সুবিধা হল MEV সুযোগগুলিতে অ্যাক্সেসকে গণতান্ত্রিক করার সম্ভাবনা। কমিট-রিভিল স্কিম ব্যবহার করা বিশ্বাসের অনুমান দূর করে এবং MEV থেকে উপকৃত হতে চাওয়া ভ্যালিডেটরদের জন্য প্রবেশের বাধা হ্রাস করে। এটি সোলো স্টেকারদের MEV লাভ বাড়ানোর জন্য বড় স্টেকিং পুলগুলির সাথে একীভূত হওয়ার চাপ কমাতে হবে। + +বিল্ডার API-এর ব্যাপক বাস্তবায়ন ব্লক বিল্ডারদের মধ্যে বৃহত্তর প্রতিযোগিতাকে উৎসাহিত করবে, যা সেন্সরশিপ প্রতিরোধ বাড়ায়। যেহেতু ভ্যালিডেটররা একাধিক বিল্ডারের কাছ থেকে বিড পর্যালোচনা করে, এক বা একাধিক ব্যবহারকারী লেনদেন সেন্সর করার উদ্দেশ্যে একজন বিল্ডারকে সফল হওয়ার জন্য অন্য সমস্ত নন-সেন্সরিং বিল্ডারদের ছাড়িয়ে যেতে হবে। এটি ব্যবহারকারীদের সেন্সর করার খরচ নাটকীয়ভাবে বাড়িয়ে দেয় এবং এই অনুশীলনকে নিরুৎসাহিত করে। + +কিছু প্রকল্প, যেমন MEV Boost, একটি সামগ্রিক কাঠামোর অংশ হিসাবে বিল্ডার API ব্যবহার করে যা নির্দিষ্ট পক্ষগুলির জন্য লেনদেনের গোপনীয়তা প্রদানের জন্য ডিজাইন করা হয়েছে, যেমন ফ্রন্টরানিং/স্যান্ডউইচিং অ্যাটাক এড়াতে চাওয়া ট্রেডাররা। এটি ব্যবহারকারী এবং ব্লক বিল্ডারদের মধ্যে একটি ব্যক্তিগত যোগাযোগ চ্যানেল সরবরাহ করে অর্জন করা হয়। পূর্বে বর্ণিত পারমিশনড মেমপুলগুলির থেকে ভিন্ন, এই পদ্ধতিটি নিম্নলিখিত কারণগুলির জন্য উপকারী: + +1. বাজারে একাধিক বিল্ডারের অস্তিত্ব সেন্সর করা অবাস্তব করে তোলে, যা ব্যবহারকারীদের উপকৃত করে। বিপরীতে, সেন্ট্রালাইজড এবং বিশ্বাস-ভিত্তিক ডার্ক পুলগুলির অস্তিত্ব কয়েকজন ব্লক বিল্ডারের হাতে ক্ষমতা কেন্দ্রীভূত করবে এবং সেন্সর করার সম্ভাবনা বাড়িয়ে দেবে। + +2. বিল্ডার API সফ্টওয়্যারটি ওপেন-সোর্স, যা যে কাউকে ব্লক-বিল্ডার পরিষেবা অফার করার অনুমতি দেয়। এর মানে হল ব্যবহারকারীরা কোনো নির্দিষ্ট ব্লক বিল্ডার ব্যবহার করতে বাধ্য নন এবং এটি Ethereum-এর নিরপেক্ষতা এবং পারমিশনলেসনেস উন্নত করে। অধিকন্তু, MEV-সন্ধানী ট্রেডাররা ব্যক্তিগত লেনদেন চ্যানেল ব্যবহার করে অনিচ্ছাকৃতভাবে সেন্ট্রালাইজেশনে অবদান রাখবে না। + +## সম্পর্কিত রিসোর্স {#related-resources} + +- [ফ্ল্যাশবট ডক্স](https://docs.flashbots.net/) +- [ফ্ল্যাশবট গিটহাব](https://github.com/flashbots/pm) +- [mevboost.org](https://www.mevboost.org/) - _MEV-Boost রিলে এবং ব্লক বিল্ডারদের জন্য রিয়েল-টাইম পরিসংখ্যান সহ ট্র্যাকার_ + +## আরও পড়ুন {#further-reading} + +- [মাইনার-এক্সট্র্যাক্টেবল ভ্যালু (MEV) কী?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV এবং আমি](https://www.paradigm.xyz/2021/02/mev-and-me) +- [Ethereum একটি অন্ধকার জঙ্গল](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [অন্ধকার জঙ্গল থেকে পলায়ন](https://samczsun.com/escaping-the-dark-forest/) +- [ফ্ল্যাশবট: MEV সংকটের ফ্রন্টরানিং](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [@bertcmiller-এর MEV থ্রেড](https://twitter.com/bertcmiller/status/1402665992422047747) +- [MEV-Boost: মার্জ রেডি ফ্ল্যাশবট আর্কিটেকচার](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) +- [MEV Boost কী](https://www.alchemy.com/overviews/mev-boost) +- [কেন mev-boost চালাবেন?](https://writings.flashbots.net/writings/why-run-mevboost/) +- [দ্য হিচহাইকারস গাইড টু Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/public/content/translations/bn/developers/docs/networking-layer/index.md b/public/content/translations/bn/developers/docs/networking-layer/index.md new file mode 100644 index 00000000000..00b16d83194 --- /dev/null +++ b/public/content/translations/bn/developers/docs/networking-layer/index.md @@ -0,0 +1,163 @@ +--- +title: "নেটওয়ার্কিং লেয়ার" +description: "ইথেরিয়ামের নেটওয়ার্কিং লেয়ারের একটি ভূমিকা।" +lang: bn +sidebarDepth: 2 +--- + +ইথেরিয়াম হল একটি পিয়ার-টু-পিয়ার নেটওয়ার্ক যেখানে হাজার হাজার নোড রয়েছে যেগুলিকে অবশ্যই প্রমিত প্রোটোকল ব্যবহার করে একে অপরের সাথে যোগাযোগ করতে সক্ষম হতে হবে। "নেটওয়ার্কিং লেয়ার" হল প্রোটোকলের স্ট্যাক যা সেই নোডগুলিকে একে অপরকে খুঁজে পেতে এবং তথ্য বিনিময় করতে দেয়। এর মধ্যে নেটওয়ার্কের মাধ্যমে তথ্যের "গসিপিং" (এক-থেকে-অনেক যোগাযোগ) এবং নির্দিষ্ট নোডগুলির মধ্যে অনুরোধ এবং প্রতিক্রিয়ার সোয়াপিং (এক-থেকে-এক যোগাযোগ) অন্তর্ভুক্ত রয়েছে। প্রতিটি নোডকে অবশ্যই নির্দিষ্ট নেটওয়ার্কিং নিয়ম মেনে চলতে হবে যাতে তারা সঠিক তথ্য প্রেরণ এবং গ্রহণ করছে তা নিশ্চিত করা যায়। + +ক্লায়েন্ট সফটওয়্যারের দুটি অংশ রয়েছে (এক্সিকিউশন ক্লায়েন্ট এবং কনসেন্সাস ক্লায়েন্ট), প্রতিটির নিজস্ব স্বতন্ত্র নেটওয়ার্কিং স্ট্যাক রয়েছে। অন্যান্য ইথেরিয়াম নোডের সাথে যোগাযোগের পাশাপাশি, এক্সিকিউশন এবং কনসেন্সাস ক্লায়েন্টদের একে অপরের সাথে যোগাযোগ করতে হয়। এই পৃষ্ঠাটি সেই প্রোটোকলগুলির একটি পরিচায়ক ব্যাখ্যা প্রদান করে যা এই যোগাযোগকে সক্ষম করে। + +এক্সিকিউশন ক্লায়েন্টরা এক্সিকিউশন-লেয়ার পিয়ার-টু-পিয়ার নেটওয়ার্কের মাধ্যমে ট্রানজ্যাকশন গসিপ করে। এর জন্য প্রমাণীকৃত পিয়ারদের মধ্যে এনক্রিপ্ট করা যোগাযোগের প্রয়োজন। যখন একজন ভ্যালিডেটরকে একটি ব্লক প্রস্তাব করার জন্য নির্বাচন করা হয়, তখন নোডের স্থানীয় ট্রানজ্যাকশন পুল থেকে ট্রানজ্যাকশনগুলি একটি স্থানীয় RPC সংযোগের মাধ্যমে কনসেন্সাস ক্লায়েন্টদের কাছে পাঠানো হবে, যা বিকন ব্লকে প্যাকেজ করা হবে। কনসেন্সাস ক্লায়েন্টরা তখন তাদের পিটুপি (p2p) নেটওয়ার্কে বিকন ব্লকগুলি গসিপ করবে। এর জন্য দুটি পৃথক পিটুপি (p2p) নেটওয়ার্ক প্রয়োজন: একটি ট্রানজ্যাকশন গসিপের জন্য এক্সিকিউশন ক্লায়েন্টদের সংযোগ করে এবং অন্যটি ব্লক গসিপের জন্য কনসেন্সাস ক্লায়েন্টদের সংযোগ করে। + +## পূর্বশর্ত {#prerequisites} + +ইথেরিয়াম [নোড এবং ক্লায়েন্ট](/developers/docs/nodes-and-clients/) সম্পর্কে কিছু জ্ঞান এই পৃষ্ঠাটি বোঝার জন্য সহায়ক হবে। + +## এক্সিকিউশন লেয়ার {#execution-layer} + +এক্সিকিউশন লেয়ারের নেটওয়ার্কিং প্রোটোকল দুটি স্ট্যাকে বিভক্ত: + +- ডিসকভারি স্ট্যাক: UDP-এর উপর নির্মিত এবং একটি নতুন নোডকে সংযোগ করার জন্য পিয়ার খুঁজে পেতে সাহায্য করে। + +- DevP2P স্ট্যাক: TCP-এর উপরে বসে এবং নোডগুলিকে তথ্য বিনিময় করতে সক্ষম করে। + +দুটি স্ট্যাকই সমান্তরালভাবে কাজ করে। ডিসকভারি স্ট্যাক নতুন নেটওয়ার্ক অংশগ্রহণকারীদের নেটওয়ার্কে ফিড করে, এবং DevP2P স্ট্যাক তাদের মিথস্ক্রিয়া সক্ষম করে। + +### ডিসকভারি {#discovery} + +ডিসকভারি হল নেটওয়ার্কে অন্যান্য নোড খুঁজে বের করার প্রক্রিয়া। এটি বুটনোডগুলির একটি ছোট সেট ব্যবহার করে বুটস্ট্র্যাপ করা হয় (নোড যাদের ঠিকানা ক্লায়েন্টে [হার্ডকোড করা](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) থাকে যাতে সেগুলি অবিলম্বে খুঁজে পাওয়া যায় এবং ক্লায়েন্টকে পিয়ারদের সাথে সংযোগ করতে পারে)। এই বুটনোডগুলি শুধুমাত্র একটি নতুন নোডকে এক সেট পিয়ারদের সাথে পরিচয় করিয়ে দেওয়ার জন্য বিদ্যমান - এটিই তাদের একমাত্র উদ্দেশ্য, তারা চেইন সিঙ্ক করার মতো সাধারণ ক্লায়েন্ট কাজগুলিতে অংশ নেয় না, এবং সেগুলি শুধুমাত্র প্রথমবার ক্লায়েন্ট চালু করার সময় ব্যবহৃত হয়। + +নোড-বুটনোড মিথস্ক্রিয়ার জন্য ব্যবহৃত প্রোটোকল হল [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f)-এর একটি পরিবর্তিত রূপ যা নোডের তালিকা শেয়ার করার জন্য একটি [ডিস্ট্রিবিউটেড হ্যাস টেবিল](https://en.wikipedia.org/wiki/Distributed_hash_table) ব্যবহার করে। প্রতিটি নোডের কাছে এই টেবিলের একটি সংস্করণ রয়েছে যেখানে তার নিকটতম পিয়ারদের সাথে সংযোগ করার জন্য প্রয়োজনীয় তথ্য থাকে। এই 'নৈকট্য' ভৌগোলিক নয় - দূরত্ব নোডের আইডির সাদৃশ্য দ্বারা সংজ্ঞায়িত করা হয়। প্রতিটি নোডের টেবিল একটি নিরাপত্তা বৈশিষ্ট্য হিসাবে নিয়মিত রিফ্রেশ করা হয়। উদাহরণস্বরূপ, [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5) ডিসকভারি প্রোটোকলে, নোডগুলি 'বিজ্ঞাপন' পাঠাতে সক্ষম যা ক্লায়েন্ট সমর্থন করে এমন সাবপ্রোটোকলগুলি প্রদর্শন করে, যা পিয়ারদেরকে এমন প্রোটোকল সম্পর্কে আলোচনা করতে দেয় যা তারা উভয়ই যোগাযোগের জন্য ব্যবহার করতে পারে। + +ডিসকভারি PING-PONG খেলার মাধ্যমে শুরু হয়। একটি সফল PING-PONG নতুন নোডটিকে একটি বুটনোডের সাথে "বন্ড" করে। নেটওয়ার্কে প্রবেশকারী একটি নতুন নোডের অস্তিত্ব সম্পর্কে একটি বুটনোডকে সতর্ক করে এমন প্রাথমিক বার্তাটি হল একটি `PING`। এই `PING`-এ নতুন নোড, বুটনোড এবং একটি মেয়াদ শেষ হওয়ার টাইম-স্ট্যাম্প সম্পর্কে হ্যাশ করা তথ্য অন্তর্ভুক্ত থাকে। বুটনোড `PING` গ্রহণ করে এবং `PING` হ্যাস ধারণকারী একটি `PONG` ফেরত দেয়। যদি `PING` এবং `PONG` হ্যাস মিলে যায় তবে নতুন নোড এবং বুটনোডের মধ্যে সংযোগটি যাচাই করা হয় এবং বলা হয় যে তারা "বন্ডেড" হয়েছে। + +একবার বন্ডেড হয়ে গেলে, নতুন নোড বুটনোডকে একটি `FIND-NEIGHBOURS` অনুরোধ পাঠাতে পারে। বুটনোড দ্বারা ফেরত দেওয়া ডেটাতে এমন পিয়ারদের একটি তালিকা অন্তর্ভুক্ত থাকে যার সাথে নতুন নোড সংযোগ করতে পারে। যদি নোডগুলি বন্ডেড না হয়, `FIND-NEIGHBOURS` অনুরোধটি ব্যর্থ হবে, তাই নতুন নোডটি নেটওয়ার্কে প্রবেশ করতে পারবে না। + +নতুন নোডটি বুটনোড থেকে প্রতিবেশীদের একটি তালিকা পাওয়ার পরে, এটি তাদের প্রত্যেকের সাথে একটি PING-PONG এক্সচেঞ্জ শুরু করে। সফল PING-PONG নতুন নোডকে তার প্রতিবেশীদের সাথে বন্ড করে, বার্তা বিনিময় সক্ষম করে। + +``` +ক্লায়েন্ট শুরু করুন --> বুটনোডে সংযোগ করুন --> বুটনোডে বন্ড করুন --> প্রতিবেশী খুঁজুন --> প্রতিবেশীদের সাথে বন্ড করুন +``` + +এক্সিকিউশন ক্লায়েন্টরা বর্তমানে [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) ডিসকভারি প্রোটোকল ব্যবহার করছে এবং [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5) প্রোটোকলে স্থানান্তরিত করার জন্য একটি সক্রিয় প্রচেষ্টা চলছে। + +#### ENR: ইথেরিয়াম নোড রেকর্ডস {#enr} + +[ইথেরিয়াম নোড রেকর্ড (ENR)](/developers/docs/networking-layer/network-addresses/) হল একটি অবজেক্ট যা তিনটি মৌলিক উপাদান ধারণ করে: একটি স্বাক্ষর (কিছু সম্মত পরিচয় স্কিম অনুযায়ী তৈরি রেকর্ড বিষয়বস্তুর হ্যাস), একটি ক্রম সংখ্যা যা রেকর্ডের পরিবর্তনগুলি ট্র্যাক করে, এবং কি:মান জোড়ার একটি নির্বিচারে তালিকা। এটি একটি ভবিষ্যৎ-প্রমাণ বিন্যাস যা নতুন পিয়ারদের মধ্যে সনাক্তকারী তথ্যের সহজ বিনিময়কে অনুমতি দেয় এবং এটি ইথেরিয়াম নোডগুলির জন্য পছন্দের [নেটওয়ার্ক ঠিকানা](/developers/docs/networking-layer/network-addresses) বিন্যাস। + +#### কেন ডিসকভারি UDP-এর উপর নির্মিত? {#why-udp} + +UDP কোনো ত্রুটি পরীক্ষা, ব্যর্থ প্যাকেট পুনরায় পাঠানো, বা গতিশীলভাবে সংযোগ খোলা এবং বন্ধ করা সমর্থন করে না - পরিবর্তে এটি কেবল একটি লক্ষ্যে তথ্যের একটি অবিচ্ছিন্ন স্রোত পাঠায়, তা সফলভাবে প্রাপ্ত হয়েছে কিনা তা নির্বিশেষে। এই ন্যূনতম কার্যকারিতা ন্যূনতম ওভারহেডেও অনুবাদ করে, যা এই ধরণের সংযোগকে খুব দ্রুত করে তোলে। ডিসকভারির জন্য, যেখানে একটি নোড কেবল তার উপস্থিতি জানাতে চায় যাতে পরে একটি পিয়ারের সাথে একটি আনুষ্ঠানিক সংযোগ স্থাপন করা যায়, UDP যথেষ্ট। যাইহোক, বাকি নেটওয়ার্কিং স্ট্যাকের জন্য, UDP উদ্দেশ্যের জন্য উপযুক্ত নয়। নোডগুলির মধ্যে তথ্যগত বিনিময় বেশ জটিল এবং তাই একটি আরও সম্পূর্ণ বৈশিষ্ট্যযুক্ত প্রোটোকল প্রয়োজন যা পুনরায় পাঠানো, ত্রুটি পরীক্ষা ইত্যাদি সমর্থন করতে পারে। TCP-এর সাথে সম্পর্কিত অতিরিক্ত ওভারহেড অতিরিক্ত কার্যকারিতার জন্য মূল্যবান। অতএব, P2P স্ট্যাকের বেশিরভাগই TCP-এর উপর কাজ করে। + +### DevP2P {#devp2p} + +DevP2P নিজেই প্রোটোকলের একটি সম্পূর্ণ স্ট্যাক যা ইথেরিয়াম পিয়ার-টু-পিয়ার নেটওয়ার্ক প্রতিষ্ঠা এবং বজায় রাখার জন্য প্রয়োগ করে। নতুন নোড নেটওয়ার্কে প্রবেশ করার পরে, তাদের মিথস্ক্রিয়া [DevP2P](https://github.com/ethereum/devp2p) স্ট্যাকের প্রোটোকল দ্বারা পরিচালিত হয়। এগুলি সবই TCP-এর উপরে বসে এবং RLPx ট্রান্সপোর্ট প্রোটোকল, ওয়্যার প্রোটোকল এবং বেশ কয়েকটি সাব-প্রোটোকল অন্তর্ভুক্ত করে। [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) হল নোডগুলির মধ্যে সেশন শুরু করা, প্রমাণীকরণ করা এবং বজায় রাখার জন্য পরিচালিত প্রোটোকল। RLPx RLP (Recursive Length Prefix) ব্যবহার করে বার্তা এনকোড করে যা নোডগুলির মধ্যে পাঠানোর জন্য ডেটাকে একটি ন্যূনতম কাঠামোতে এনকোড করার একটি খুব স্থান-দক্ষ পদ্ধতি। + +দুটি নোডের মধ্যে একটি RLPx সেশন একটি প্রাথমিক ক্রিপ্টোগ্রাফিক হ্যান্ডশেক দিয়ে শুরু হয়। এর মধ্যে নোড একটি প্রমাণীকরণ বার্তা পাঠায় যা পরে পিয়ার দ্বারা যাচাই করা হয়। সফল যাচাইকরণের পরে, পিয়ারটি সূচনাকারী নোডে ফেরত পাঠানোর জন্য একটি প্রমাণীকরণ-স্বীকৃতি বার্তা তৈরি করে। এটি একটি কী-বিনিময় প্রক্রিয়া যা নোডগুলিকে ব্যক্তিগতভাবে এবং সুরক্ষিতভাবে যোগাযোগ করতে সক্ষম করে। একটি সফল ক্রিপ্টোগ্রাফিক হ্যান্ডশেক তখন উভয় নোডকে একে অপরকে "অন দ্য ওয়্যার" একটি "হ্যালো" বার্তা পাঠাতে ট্রিগার করে। ওয়্যার প্রোটোকল হ্যালো বার্তাগুলির একটি সফল বিনিময়ের মাধ্যমে শুরু করা হয়। + +হ্যালো বার্তাগুলিতে রয়েছে: + +- প্রোটোকল সংস্করণ +- ক্লায়েন্ট আইডি +- পোর্ট +- নোড আইডি +- সমর্থিত সাব-প্রোটোকলের তালিকা + +এটি একটি সফল মিথস্ক্রিয়ার জন্য প্রয়োজনীয় তথ্য কারণ এটি নির্ধারণ করে যে উভয় নোডের মধ্যে কোন ক্ষমতাগুলি ভাগ করা হয়েছে এবং যোগাযোগটি কনফিগার করে। এখানে একটি সাব-প্রোটোকল আলোচনার প্রক্রিয়া রয়েছে যেখানে প্রতিটি নোড দ্বারা সমর্থিত সাব-প্রোটোকলগুলির তালিকা তুলনা করা হয় এবং যেগুলি উভয় নোডের জন্য সাধারণ সেগুলি সেশনে ব্যবহার করা যেতে পারে। + +হ্যালো বার্তাগুলির পাশাপাশি, ওয়্যার প্রোটোকল একটি "ডিসকানেক্ট" বার্তাও পাঠাতে পারে যা একটি পিয়ারকে সতর্ক করে যে সংযোগটি বন্ধ করা হবে। ওয়্যার প্রোটোকলে PING এবং PONG বার্তাও অন্তর্ভুক্ত রয়েছে যা একটি সেশন খোলা রাখার জন্য পর্যায়ক্রমে পাঠানো হয়। RLPx এবং ওয়্যার প্রোটোকল এক্সচেঞ্জগুলি তাই নোডগুলির মধ্যে যোগাযোগের ভিত্তি স্থাপন করে, একটি নির্দিষ্ট সাব-প্রোটোকল অনুসারে দরকারী তথ্য বিনিময়ের জন্য ভারা প্রদান করে। + +### সাব-প্রোটোকল {#sub-protocols} + +#### ওয়্যার প্রোটোকল {#wire-protocol} + +একবার পিয়াররা সংযুক্ত হলে এবং একটি RLPx সেশন শুরু হলে, ওয়্যার প্রোটোকল নির্ধারণ করে যে পিয়াররা কীভাবে যোগাযোগ করে। প্রাথমিকভাবে, ওয়্যার প্রোটোকল তিনটি প্রধান কাজ সংজ্ঞায়িত করেছে: চেইন সিঙ্ক্রোনাইজেশন, ব্লক প্রচার এবং লেনদেন বিনিময়। যাইহোক, একবার ইথেরিয়াম প্রুফ-অফ-স্টেকে স্যুইচ করলে, ব্লক প্রচার এবং চেইন সিঙ্ক্রোনাইজেশন কনসেন্সাস লেয়ারের অংশ হয়ে যায়। লেনদেন বিনিময় এখনও এক্সিকিউশন ক্লায়েন্টদের আওতায় রয়েছে। লেনদেন বিনিময় বলতে নোডগুলির মধ্যে মুলতুবি লেনদেন বিনিময় করা বোঝায় যাতে ব্লক নির্মাতারা পরবর্তী ব্লকে অন্তর্ভুক্ত করার জন্য তাদের কিছু নির্বাচন করতে পারে। এই কাজগুলি সম্পর্কে বিস্তারিত তথ্য [এখানে](https://github.com/ethereum/devp2p/blob/master/caps/eth.md) উপলব্ধ। এই সাব-প্রোটোকলগুলিকে সমর্থনকারী ক্লায়েন্টরা [JSON-RPC](/developers/docs/apis/json-rpc/) এর মাধ্যমে সেগুলি প্রকাশ করে। + +#### les (লাইট ইথেরিয়াম সাবপ্রোটোকল) {#les} + +এটি লাইট ক্লায়েন্ট সিঙ্ক করার জন্য একটি ন্যূনতম প্রোটোকল। ঐতিহ্যগতভাবে এই প্রোটোকলটি খুব কমই ব্যবহৃত হয়েছে কারণ সম্পূর্ণ নোডগুলিকে উৎসাহিত না হয়ে লাইট ক্লায়েন্টদের ডেটা পরিবেশন করতে হয়। এক্সিকিউশন ক্লায়েন্টদের ডিফল্ট আচরণ হল les এর মাধ্যমে লাইট ক্লায়েন্টের ডেটা পরিবেশন না করা। les [স্পেক](https://github.com/ethereum/devp2p/blob/master/caps/les.md)-এ আরও তথ্য উপলব্ধ। + +#### স্ন্যাপ {#snap} + +[স্ন্যাপ প্রোটোকল](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) হল একটি ঐচ্ছিক এক্সটেনশন যা পিয়ারদের সাম্প্রতিক স্টেটগুলির স্ন্যাপশট বিনিময় করতে দেয়, যা পিয়ারদের মধ্যবর্তী Merkle ট্রাই নোড ডাউনলোড না করেই অ্যাকাউন্ট এবং স্টোরেজ ডেটা যাচাই করতে দেয়। + +#### উইট (উইটনেস প্রোটোকল) {#wit} + +[উইটনেস প্রোটোকল](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) হল একটি ঐচ্ছিক এক্সটেনশন যা পিয়ারদের মধ্যে স্টেট উইটনেস বিনিময়কে সক্ষম করে, যা ক্লায়েন্টদের চেইনের শীর্ষে সিঙ্ক করতে সাহায্য করে। + +#### হুইসপার {#whisper} + +হুইসপার একটি প্রোটোকল ছিল যার লক্ষ্য ছিল ব্লকচেইনে কোনো তথ্য না লিখে পিয়ারদের মধ্যে সুরক্ষিত মেসেজিং প্রদান করা। এটি DevP2P ওয়্যার প্রোটোকলের অংশ ছিল কিন্তু এখন এটি বাতিল করা হয়েছে। অনুরূপ লক্ষ্য নিয়ে অন্যান্য [সম্পর্কিত প্রকল্প](https://wakunetwork.com/) বিদ্যমান। + +## কনসেন্সাস লেয়ার {#consensus-layer} + +কনসেন্সাস ক্লায়েন্টরা একটি ভিন্ন স্পেসিফিকেশন সহ একটি পৃথক পিয়ার-টু-পিয়ার নেটওয়ার্কে অংশগ্রহণ করে। কনসেন্সাস ক্লায়েন্টদের ব্লক গসিপে অংশ নিতে হবে যাতে তারা পিয়ারদের থেকে নতুন ব্লক পেতে পারে এবং যখন তাদের ব্লক প্রস্তাবক হওয়ার পালা আসে তখন সেগুলি সম্প্রচার করতে পারে। এক্সিকিউশন লেয়ারের মতো, এর জন্য প্রথমে একটি ডিসকভারি প্রোটোকল প্রয়োজন যাতে একটি নোড পিয়ার খুঁজে পেতে পারে এবং ব্লক, অ্যাটেস্টেশন ইত্যাদি বিনিময়ের জন্য সুরক্ষিত সেশন স্থাপন করতে পারে। + +### ডিসকভারি {#consensus-discovery} + +এক্সিকিউশন ক্লায়েন্টদের মতো, কনসেন্সাস ক্লায়েন্টরা পিয়ার খুঁজে বের করার জন্য UDP-এর উপর [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) ব্যবহার করে। discv5-এর কনসেন্সাস লেয়ারের বাস্তবায়ন এক্সিকিউশন ক্লায়েন্টদের থেকে শুধুমাত্র এই কারণে ভিন্ন যে এটি একটি অ্যাডাপ্টার অন্তর্ভুক্ত করে যা discv5-কে একটি [libP2P](https://libp2p.io/) স্ট্যাকের সাথে সংযুক্ত করে, DevP2P-কে বাতিল করে দেয়। এক্সিকিউশন লেয়ারের RLPx সেশনগুলি libP2P-এর নয়েজ সুরক্ষিত চ্যানেল হ্যান্ডশেকের পক্ষে বাতিল করা হয়েছে। + +### ENRs {#consensus-enr} + +কনসেন্সাস নোডগুলির জন্য ENR-এ নোডের পাবলিক কি, আইপি ঠিকানা, UDP এবং TCP পোর্ট এবং দুটি কনসেন্সাস-নির্দিষ্ট ফিল্ড অন্তর্ভুক্ত রয়েছে: অ্যাটেস্টেশন সাবনেট বিটফিল্ড এবং `eth2` কি। পূর্বেরটি নোডগুলির জন্য নির্দিষ্ট অ্যাটেস্টেশন গসিপ সাব-নেটওয়ার্কে অংশগ্রহণকারী পিয়ারদের খুঁজে পাওয়া সহজ করে তোলে। `eth2` কি-তে নোডটি কোন ইথেরিয়াম ফর্ক সংস্করণ ব্যবহার করছে সে সম্পর্কে তথ্য রয়েছে, যা নিশ্চিত করে যে পিয়াররা সঠিক ইথেরিয়ামের সাথে সংযোগ স্থাপন করছে। + +### libP2P {#libp2p} + +libP2P স্ট্যাক ডিসকভারির পরে সমস্ত যোগাযোগ সমর্থন করে। ক্লায়েন্টরা তাদের ENR-এ সংজ্ঞায়িত হিসাবে IPv4 এবং/অথবা IPv6-এ ডায়াল এবং শুনতে পারে। libP2P লেয়ারের প্রোটোকলগুলিকে গসিপ এবং req/resp ডোমেনে বিভক্ত করা যেতে পারে। + +### গসিপ {#gossip} + +গসিপ ডোমেনে এমন সমস্ত তথ্য অন্তর্ভুক্ত থাকে যা নেটওয়ার্ক জুড়ে দ্রুত ছড়িয়ে পড়তে হবে। এর মধ্যে রয়েছে বিকন ব্লক, প্রুফ, অ্যাটেস্টেশন, এক্সিট এবং স্ল্যাশিং। এটি libP2P gossipsub v1 ব্যবহার করে প্রেরণ করা হয় এবং প্রতিটি নোডে স্থানীয়ভাবে সংরক্ষিত বিভিন্ন মেটাডেটার উপর নির্ভর করে, যার মধ্যে গসিপ পেলোড গ্রহণ এবং প্রেরণের সর্বোচ্চ আকার অন্তর্ভুক্ত রয়েছে। গসিপ ডোমেন সম্পর্কে বিস্তারিত তথ্য [এখানে](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub) উপলব্ধ। + +### অনুরোধ-প্রতিক্রিয়া {#request-response} + +অনুরোধ-প্রতিক্রিয়া ডোমেনে ক্লায়েন্টদের তাদের পিয়ারদের কাছ থেকে নির্দিষ্ট তথ্য অনুরোধ করার জন্য প্রোটোকল রয়েছে। উদাহরণগুলির মধ্যে রয়েছে নির্দিষ্ট রুট হ্যাসগুলির সাথে মিলে যাওয়া বা স্লটগুলির একটি পরিসরের মধ্যে নির্দিষ্ট বিকন ব্লকগুলির অনুরোধ করা। প্রতিক্রিয়াগুলি সর্বদা snappy-সংকুচিত SSZ এনকোডেড বাইট হিসাবে ফেরত দেওয়া হয়। + +## কনসেন্সাস ক্লায়েন্ট কেন RLP-এর চেয়ে SSZ পছন্দ করে? {#ssz-vs-rlp} + +SSZ মানে হল সিম্পল সিরিয়ালাইজেশন। এটি নির্দিষ্ট অফসেট ব্যবহার করে যা একটি এনকোড করা বার্তার সম্পূর্ণ কাঠামো ডিকোড না করেই পৃথক অংশগুলি ডিকোড করা সহজ করে তোলে, যা কনসেন্সাস ক্লায়েন্টের জন্য খুব দরকারী কারণ এটি এনকোড করা বার্তাগুলি থেকে দক্ষতার সাথে নির্দিষ্ট তথ্য গ্রহণ করতে পারে। এটি Merkleization-এর জন্য সম্পর্কিত দক্ষতা লাভের সাথে Merkle প্রোটোকলের সাথে একীভূত করার জন্য বিশেষভাবে ডিজাইন করা হয়েছে। যেহেতু কনসেন্সাস লেয়ারের সমস্ত হ্যাস হল Merkle রুট, এটি একটি উল্লেখযোগ্য উন্নতি যোগ করে। SSZ মানের অনন্য উপস্থাপনাও নিশ্চিত করে। + +## এক্সিকিউশন এবং কনসেন্সাস ক্লায়েন্টদের সংযোগ করা {#connecting-clients} + +কনসেন্সাস এবং এক্সিকিউশন উভয় ক্লায়েন্টই সমান্তরালভাবে চলে। তাদের সংযুক্ত থাকা প্রয়োজন যাতে কনসেন্সাস ক্লায়েন্ট এক্সিকিউশন ক্লায়েন্টকে নির্দেশনা দিতে পারে, এবং এক্সিকিউশন ক্লায়েন্ট বিকন ব্লকে অন্তর্ভুক্ত করার জন্য কনসেন্সাস ক্লায়েন্টকে লেনদেনের বান্ডিল পাঠাতে পারে। দুটি ক্লায়েন্টের মধ্যে যোগাযোগ একটি স্থানীয় RPC সংযোগ ব্যবহার করে অর্জন করা যেতে পারে। ['ইঞ্জিন-API'](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) নামে পরিচিত একটি API দুটি ক্লায়েন্টের মধ্যে প্রেরিত নির্দেশাবলীকে সংজ্ঞায়িত করে। যেহেতু উভয় ক্লায়েন্টই একটি একক নেটওয়ার্ক পরিচয়ের পিছনে বসে, তারা একটি ENR (ইথেরিয়াম নোড রেকর্ড) ভাগ করে নেয় যাতে প্রতিটি ক্লায়েন্টের জন্য একটি পৃথক কি থাকে (eth1 কি এবং eth2 কি)। + +নিয়ন্ত্রণ প্রবাহের একটি সারাংশ নীচে দেখানো হয়েছে, প্রাসঙ্গিক নেটওয়ার্কিং স্ট্যাকটি বন্ধনীতে রয়েছে। + +### যখন কনসেন্সাস ক্লায়েন্ট ব্লক প্রযোজক নয়: {#when-consensus-client-is-not-block-producer} + +- কনসেন্সাস ক্লায়েন্ট ব্লক গসিপ প্রোটোকলের মাধ্যমে একটি ব্লক গ্রহণ করে (কনসেন্সাস p2p) +- কনসেন্সাস ক্লায়েন্ট ব্লকটি প্রাক-যাচাই করে, অর্থাৎ, এটি সঠিক মেটাডেটা সহ একটি বৈধ প্রেরকের কাছ থেকে এসেছে তা নিশ্চিত করে। +- ব্লকের লেনদেনগুলি একটি এক্সিকিউশন পেলোড হিসাবে এক্সিকিউশন লেয়ারে পাঠানো হয় (স্থানীয় RPC সংযোগ) +- এক্সিকিউশন লেয়ার লেনদেনগুলি সম্পাদন করে এবং ব্লক হেডারের স্টেট যাচাই করে (অর্থাৎ, হ্যাসগুলি মিলেছে কিনা তা পরীক্ষা করে) +- এক্সিকিউশন লেয়ার বৈধকরণ ডেটা কনসেন্সাস লেয়ারে ফেরত পাঠায়, ব্লকটি এখন যাচাইকৃত বলে বিবেচিত হয় (স্থানীয় RPC সংযোগ) +- কনসেন্সাস লেয়ার ব্লকটিকে তার নিজস্ব ব্লকচেইনের শীর্ষে যুক্ত করে এবং এটির অ্যাটেস্টেশন করে, নেটওয়ার্কে অ্যাটেস্টেশন সম্প্রচার করে (কনসেন্সাস p2p) + +### যখন কনসেন্সাস ক্লায়েন্ট ব্লক প্রযোজক: {#when-consensus-client-is-block-producer} + +- কনসেন্সাস ক্লায়েন্ট নোটিশ পায় যে এটি পরবর্তী ব্লক প্রযোজক (কনসেন্সাস p2p) +- কনসেন্সাস লেয়ার এক্সিকিউশন ক্লায়েন্টে `create block` পদ্ধতি কল করে (স্থানীয় RPC) +- এক্সিকিউশন লেয়ার ট্রানজ্যাকশন মেমপুল অ্যাক্সেস করে যা ট্রানজ্যাকশন গসিপ প্রোটোকল দ্বারা জনবহুল হয়েছে (এক্সিকিউশন p2p) +- এক্সিকিউশন ক্লায়েন্ট লেনদেনগুলিকে একটি ব্লকে বান্ডিল করে, লেনদেনগুলি সম্পাদন করে এবং একটি ব্লক হ্যাস তৈরি করে +- কনসেন্সাস ক্লায়েন্ট এক্সিকিউশন ক্লায়েন্ট থেকে লেনদেন এবং ব্লক হ্যাস গ্রহণ করে এবং সেগুলিকে বিকন ব্লকে যোগ করে (স্থানীয় RPC) +- কনসেন্সাস ক্লায়েন্ট ব্লক গসিপ প্রোটোকলের মাধ্যমে ব্লকটি সম্প্রচার করে (কনসেন্সাস p2p) +- অন্যান্য ক্লায়েন্টরা ব্লক গসিপ প্রোটোকলের মাধ্যমে প্রস্তাবিত ব্লকটি গ্রহণ করে এবং উপরে বর্ণিত হিসাবে যাচাই করে (কনসেন্সাস p2p) + +একবার ব্লকটি পর্যাপ্ত ভ্যালিডেটর দ্বারা অ্যাটেস্টেড হয়ে গেলে এটি চেইনের শীর্ষে যুক্ত হয়, ন্যায্য বলে বিবেচিত হয় এবং অবশেষে চূড়ান্ত হয়। + +![](cons_client_net_layer.png) +![](exe_client_net_layer.png) + +[ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) থেকে কনসেন্সাস এবং এক্সিকিউশন ক্লায়েন্টদের জন্য নেটওয়ার্ক লেয়ার স্কিম্যাটিক + +## আরও পড়ুন {#further-reading} + +[DevP2P](https://github.com/ethereum/devp2p) +[LibP2p](https://github.com/libp2p/specs) +[কনসেন্সাস লেয়ার নেটওয়ার্ক স্পেকস](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) +[kademlia থেকে discv5](https://vac.dev/kademlia-to-discv5) +[kademlia পেপার](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) +[ইথেরিয়াম p2p-এর ভূমিকা](https://p2p.paris/en/talks/intro-ethereum-networking/) +[eth1/eth2 সম্পর্ক](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) +[মার্জ এবং eth2 ক্লায়েন্ট বিশদ ভিডিও](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/public/content/translations/bn/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/bn/developers/docs/networking-layer/network-addresses/index.md new file mode 100644 index 00000000000..fc15c99b690 --- /dev/null +++ b/public/content/translations/bn/developers/docs/networking-layer/network-addresses/index.md @@ -0,0 +1,39 @@ +--- +title: "নেটওয়ার্ক অ্যাড্রেস" +description: "নেটওয়ার্ক অ্যাড্রেসের একটি ভূমিকা।" +lang: bn +sidebarDepth: 2 +--- + +Ethereum নোডগুলিকে পিয়ারদের সঙ্গে কানেক্ট করতে নিজেদের কিছু প্রাথমিক তথ্য দিয়ে শনাক্ত করতে হয়। যেকোনো সম্ভাব্য পিয়ার যাতে এই তথ্যটি ব্যাখ্যা করতে পারে তা নিশ্চিত করার জন্য, এটি তিনটি প্রমিত ফরম্যাটের মধ্যে একটিতে রিলে করা হয় যা যেকোনো Ethereum নোড বুঝতে পারে: multiaddr, enode, বা Ethereum Node Records (ENRs)। ENR হলো Ethereum নেটওয়ার্ক অ্যাড্রেসের জন্য বর্তমান স্ট্যান্ডার্ড। + +## পূর্বশর্ত {#prerequisites} + +এই পেজটি বোঝার জন্য Ethereum-এর [নেটওয়ার্কিং লেয়ার](/developers/docs/networking-layer/) সম্পর্কে কিছু ধারণা থাকা প্রয়োজন। + +## Multiaddr {#multiaddr} + +আসল Ethereum নোড অ্যাড্রেস ফরম্যাটটি ছিল 'multiaddr' ('multi-addresses'-এর সংক্ষিপ্ত রূপ)। Multiaddr হলো একটি সর্বজনীন ফরম্যাট যা পিয়ার-টু-পিয়ার নেটওয়ার্কের জন্য ডিজাইন করা হয়েছে। অ্যাড্রেসগুলিকে কী-ভ্যালু পেয়ার হিসাবে উপস্থাপন করা হয়, যেখানে কী এবং ভ্যালুগুলি একটি ফরোয়ার্ড স্ল্যাশ দিয়ে আলাদা করা থাকে। উদাহরণস্বরূপ, IPv4 অ্যাড্রেস `192.168.22.27` সহ একটি নোডের জন্য multiaddr, যা TCP পোর্ট `33000`-এ লিসেন করে, সেটি দেখতে এইরকম: + +`/ip4/192.168.22.27/tcp/33000` + +একটি Ethereum নোডের জন্য, multiaddr-এ নোড-ID থাকে (তাদের পাবলিক কী-এর একটি হ্যাস): + +`/ip4/192.168.22.27/tcp/33000/p2p/5t7Nv7dG2d6ffbvAiewVsEwWweU3LdebSqX2y1bPrW8br` + +## Enode {#enode} + +একটি enode হলো একটি URL অ্যাড্রেস ফর্ম্যাট ব্যবহার করে একটি Ethereum নোড শনাক্ত করার একটি উপায়। হেক্সাডেসিমাল নোড-ID ইউআরএলের ইউজারনেম অংশে এনকোড করা হয় এবং @ চিহ্ন ব্যবহার করে হোস্ট থেকে আলাদা করা হয়। হোস্টনেম শুধুমাত্র একটি আইপি অ্যাড্রেস হিসাবে দেওয়া যেতে পারে; ডিএনএস নাম অনুমোদিত নয়। হোস্টনেম সেকশনের পোর্টটি হল টিসিপি লিসেনিং পোর্ট। যদি TCP এবং UDP (ডিসকভারি) পোর্ট ভিন্ন হয়, তাহলে UDP পোর্টটিকে একটি ক্যোয়ারী প্যারামিটার "discport" হিসেবে উল্লেখ করা হয়। + +নিম্নলিখিত উদাহরণে, নোড URLটি `10.3.58.6` আইপি অ্যাড্রেস, `30303` টিসিপি পোর্ট এবং `30301` ইউডিপি ডিসকভারি পোর্ট সহ একটি নোড বর্ণনা করে। + +`enode://6f8a80d14311c39f35f516fa664deaaaa13e85b2f7493f37f6144d86991ec012937307647bd3b9a82abe2974e1407241d54947bbb39763a4cac9f77166ad92a0@10.3.58.6:30303?discport=30301` + +## Ethereum Node Records (ENRs) {#enr} + +Ethereum Node Records (ENRs) হল Ethereum-এ নেটওয়ার্ক অ্যাড্রেসের জন্য একটি প্রমিত বিন্যাস। এগুলি multiaddr এবং enode-কে প্রতিস্থাপন করে। এগুলি বিশেষত দরকারী কারণ এগুলি নোডগুলির মধ্যে বৃহত্তর তথ্য বিনিময়ের অনুমতি দেয়। ENR-এ একটি স্বাক্ষর, ক্রম সংখ্যা এবং স্বাক্ষর তৈরি ও যাচাই করতে ব্যবহৃত পরিচয় স্কিমের বিশদ বিবরণ সম্বলিত ক্ষেত্র রয়েছে। ENR-কে কী-ভ্যালু পেয়ার হিসাবে সংগঠিত নির্বিচারে ডেটা দিয়েও পপুলেট করা যেতে পারে। এই কী-ভ্যালু পেয়ারগুলিতে নোডের আইপি অ্যাড্রেস এবং নোডটি যে সাব-প্রোটোকলগুলি ব্যবহার করতে সক্ষম সে সম্পর্কে তথ্য থাকে। কনসেন্সাস ক্লায়েন্টরা বুট নোড শনাক্ত করার জন্য একটি [নির্দিষ্ট ENR কাঠামো](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) ব্যবহার করে এবং এতে একটি `eth2` ফিল্ডও অন্তর্ভুক্ত থাকে, যেখানে বর্তমান Ethereum ফর্ক এবং অ্যাটেস্টেশন গসিপ সাবনেট (এটি নোডকে এমন এক বিশেষ শ্রেণীর পিয়ারদের সঙ্গে যুক্ত করে যাদের অ্যাটেস্টেশন একত্রিত করা হয়) সম্পর্কে তথ্য থাকে। + +## আরও পড়ুন {#further-reading} + +- [EIP-778: Ethereum Node Records (ENR)](https://eips.ethereum.org/EIPS/eip-778) +- [LibP2P: Multiaddr-Enode-ENR?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) diff --git a/public/content/translations/bn/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/bn/developers/docs/networking-layer/portal-network/index.md new file mode 100644 index 00000000000..7533e6175db --- /dev/null +++ b/public/content/translations/bn/developers/docs/networking-layer/portal-network/index.md @@ -0,0 +1,89 @@ +--- +title: "পোর্টাল নেটওয়ার্ক" +description: "পোর্টাল নেটওয়ার্কের একটি সংক্ষিপ্ত বিবরণ - একটি ইন-ডেভেলপমেন্ট নেটওয়ার্ক যা স্বল্প-সম্পদ ক্লায়েন্টদের সমর্থন করার জন্য ডিজাইন করা হয়েছে।" +lang: bn +--- + +ইথেরিয়াম হলো এমন একটি নেটওয়ার্ক যা ইথেরিয়াম ক্লায়েন্ট সফ্টওয়্যার চালিত কম্পিউটারগুলির সমন্বয়ে গঠিত। এই কম্পিউটারগুলির প্রত্যেকটিকে একটি 'নোড' বলা হয়। ক্লায়েন্ট সফ্টওয়্যার একটি নোডকে ইথেরিয়াম নেটওয়ার্কে ডেটা পাঠানো এবং গ্রহণ করার অনুমতি দেয় এবং ইথেরিয়াম প্রোটোকল নিয়ম অনুসারে ডেটা যাচাই করে। নোডগুলি তাদের ডিস্ক সংগ্রহস্থলে প্রচুর ঐতিহাসিক ডেটা রাখে এবং নেটওয়ার্কের অন্যান্য নোড থেকে ব্লক হিসাবে পরিচিত তথ্যের নতুন প্যাকেট গ্রহণ করার সময় তাতে যোগ করে। একটি নোডের কাছে নেটওয়ার্কের বাকি অংশের সাথে সামঞ্জস্যপূর্ণ তথ্য আছে কিনা তা সর্বদা পরীক্ষা করার জন্য এটি প্রয়োজনীয়। এর মানে হল একটি নোড চালানোর জন্য অনেক ডিস্ক স্পেস প্রয়োজন হতে পারে। কিছু নোড অপারেশনের জন্য প্রচুর RAMও প্রয়োজন হতে পারে। + +এই ডিস্ক সংগ্রহস্থলের সমস্যা সমাধানের জন্য, 'লাইট' নোড তৈরি করা হয়েছে যা নিজেরাই সমস্ত তথ্য সংগ্রহ করার পরিবর্তে সম্পূর্ণ নোড থেকে তথ্যের জন্য অনুরোধ করে। যাইহোক, এর মানে হল লাইট নোড স্বাধীনভাবে তথ্য যাচাই করে না এবং পরিবর্তে অন্য একটি নোডের উপর বিশ্বাস রাখে। এর মানে হল যে সম্পূর্ণ নোডগুলিকে সেই লাইট নোডগুলিকে পরিষেবা দেওয়ার জন্য অতিরিক্ত কাজ করতে হয়। + +পোর্টাল নেটওয়ার্ক হলো ইথেরিয়ামের জন্য একটি নতুন নেটওয়ার্কিং ডিজাইন, যার লক্ষ্য হলো নেটওয়ার্ক জুড়ে ছোট ছোট অংশে প্রয়োজনীয় ডেটা ভাগ করে সম্পূর্ণ নোডগুলির উপর বিশ্বাস স্থাপন বা অতিরিক্ত চাপ না দিয়েই "লাইট" নোডগুলির জন্য ডেটা প্রাপ্যতার সমস্যার সমাধান করা। + +[নোড এবং ক্লায়েন্ট](/developers/docs/nodes-and-clients/) সম্পর্কে আরও জানুন + +## আমাদের কেন পোর্টাল নেটওয়ার্ক প্রয়োজন {#why-do-we-need-portal-network} + +ইথেরিয়াম নোডগুলি ইথেরিয়াম ব্লকচেইনের নিজস্ব সম্পূর্ণ বা আংশিক অনুলিপি সংরক্ষণ করে। এই স্থানীয় অনুলিপিটি লেনদেন যাচাই করতে এবং নোডটি সঠিক চেইন অনুসরণ করছে তা নিশ্চিত করতে ব্যবহৃত হয়। এই স্থানীয়ভাবে সংরক্ষিত ডেটা নোডগুলিকে অন্য কোনো সত্তার উপর বিশ্বাস না করেই স্বাধীনভাবে যাচাই করার অনুমতি দেয় যে আগত ডেটা বৈধ এবং সঠিক। + +ব্লকচেইনের এই স্থানীয় অনুলিপি এবং সংশ্লিষ্ট স্টেট ও রসিদ ডেটা নোডের হার্ড ডিস্কে অনেক জায়গা নেয়। উদাহরণস্বরূপ, একটি কনসেন্সাস ক্লায়েন্টের সাথে যুক্ত [Geth](https://geth.ethereum.org) ব্যবহার করে একটি নোড চালানোর জন্য একটি 2TB হার্ড ডিস্কের সুপারিশ করা হয়। স্ন্যাপ সিঙ্ক ব্যবহার করে, যা শুধুমাত্র তুলনামূলকভাবে সাম্প্রতিক ব্লকের একটি সেট থেকে চেইন ডেটা সঞ্চয় করে, Geth সাধারণত প্রায় 650GB ডিস্ক স্পেস দখল করে কিন্তু প্রতি সপ্তাহে প্রায় 14GB হারে বৃদ্ধি পায় (আপনি পর্যায়ক্রমে নোডটিকে ছেঁটে 650GB-তে নামিয়ে আনতে পারেন)। + +এর মানে হলো নোড চালানো ব্যয়বহুল হতে পারে, কারণ ইথেরিয়ামের জন্য প্রচুর পরিমাণে ডিস্ক স্পেস উৎসর্গ করতে হয়। ইথেরিয়াম রোডম্যাপে এই সমস্যার বেশ কয়েকটি সমাধান রয়েছে, যার মধ্যে রয়েছে [হিস্টোরি এক্সপায়ারি](/roadmap/statelessness/#history-expiry), [স্টেট এক্সপায়ারি](/roadmap/statelessness/#state-expiry) এবং [স্টেটলেসনেস](/roadmap/statelessness/)। যাইহোক, এগুলি বাস্তবায়ন হতে সম্ভবত আরও বেশ কয়েক বছর সময় লাগবে। এছাড়াও [লাইট নোড](/developers/docs/nodes-and-clients/light-clients/) রয়েছে যা চেইন ডেটার নিজস্ব অনুলিপি সংরক্ষণ করে না, তারা সম্পূর্ণ নোড থেকে তাদের প্রয়োজনীয় ডেটার জন্য অনুরোধ করে। যাইহোক, এর মানে হল লাইট নোডগুলিকে সৎ ডেটা প্রদানের জন্য সম্পূর্ণ নোডগুলির উপর বিশ্বাস করতে হয় এবং এটি সেই সম্পূর্ণ নোডগুলির উপরও চাপ সৃষ্টি করে যাদের লাইট নোডগুলির প্রয়োজনীয় ডেটা পরিবেশন করতে হয়। + +পোর্টাল নেটওয়ার্কের লক্ষ্য হল লাইট নোডগুলিকে তাদের ডেটা পাওয়ার জন্য একটি বিকল্প উপায় প্রদান করা, যার জন্য সম্পূর্ণ নোডগুলির দ্বারা করা কাজের উপর বিশ্বাস স্থাপন বা উল্লেখযোগ্যভাবে কাজ যোগ করার প্রয়োজন হয় না। এটি সম্পন্ন করার উপায় হল ইথেরিয়াম নোডগুলির জন্য নেটওয়ার্ক জুড়ে ডেটা ভাগ করার একটি নতুন উপায় চালু করা। + +## পোর্টাল নেটওয়ার্ক কীভাবে কাজ করে? {#how-does-portal-network-work} + +ইথেরিয়াম নোডগুলির কঠোর প্রোটোকল রয়েছে যা নির্ধারণ করে যে তারা একে অপরের সাথে কীভাবে যোগাযোগ করবে। এক্সিকিউশন ক্লায়েন্টগুলি [DevP2P](/developers/docs/networking-layer/#devp2p) নামে পরিচিত সাবপ্রোটোকলগুলির একটি সেট ব্যবহার করে যোগাযোগ করে, যেখানে কনসেন্সাস ক্লায়েন্টগুলি [libP2P](/developers/docs/networking-layer/#libp2p) নামক সাবপ্রোটোকলগুলির একটি ভিন্ন স্ট্যাক ব্যবহার করে। এগুলি নোডগুলির মধ্যে যে ধরনের ডেটা পাস করা যায় তা নির্ধারণ করে। + +![devP2P এবং libP2P](portal-network-devp2p-libp2p.png) + +নোডগুলি [JSON-RPC API](/developers/docs/apis/json-rpc/) এর মাধ্যমে নির্দিষ্ট ডেটাও পরিবেশন করতে পারে, যা হলো সেই পদ্ধতি যার মাধ্যমে অ্যাপ এবং ওয়ালেটগুলি ইথেরিয়াম নোডগুলির সাথে তথ্য বিনিময় করে। যাইহোক, এর কোনোটিই লাইট ক্লায়েন্টদের কাছে ডেটা পরিবেশন করার জন্য আদর্শ প্রোটোকল নয়। + +লাইট ক্লায়েন্টরা বর্তমানে DevP2P বা libP2p-এর মাধ্যমে চেইন ডেটার নির্দিষ্ট অংশের জন্য অনুরোধ করতে পারে না কারণ সেই প্রোটোকলগুলি শুধুমাত্র চেইন সিঙ্ক্রোনাইজেশন এবং ব্লক ও লেনদেনের গসিপিং সক্ষম করার জন্য ডিজাইন করা হয়েছে। লাইট ক্লায়েন্টরা এই তথ্য ডাউনলোড করতে চায় না কারণ এটি তাদের "লাইট" থাকা থেকে বিরত রাখবে। + +JSON-RPC API-ও লাইট ক্লায়েন্ট ডেটা অনুরোধের জন্য একটি আদর্শ পছন্দ নয়, কারণ এটি একটি নির্দিষ্ট সম্পূর্ণ নোড বা কেন্দ্রীভূত RPC প্রদানকারীর সাথে সংযোগের উপর নির্ভর করে যা ডেটা পরিবেশন করতে পারে। এর মানে হল লাইট ক্লায়েন্টকে সেই নির্দিষ্ট নোড/প্রদানকারীর সৎ থাকার উপর বিশ্বাস করতে হয়, এবং সম্পূর্ণ নোডটিকেও অনেক লাইট ক্লায়েন্টের থেকে প্রচুর অনুরোধ সামলাতে হতে পারে, যা তাদের ব্যান্ডউইথের প্রয়োজনীয়তা বাড়িয়ে তোলে। + +পোর্টাল নেটওয়ার্কের মূল উদ্দেশ্য হল বিদ্যমান ইথেরিয়াম ক্লায়েন্টদের ডিজাইন সীমাবদ্ধতার বাইরে, বিশেষ করে লাইটনেসের জন্য নির্মাণ করে, পুরো ডিজাইনটি পুনর্বিবেচনা করা। + +পোর্টাল নেটওয়ার্কের মূল ধারণা হল একটি [DHT](https://en.wikipedia.org/wiki/Distributed_hash_table) (Bittorrent-এর মতো) ব্যবহার করে একটি লাইটওয়েট DevP2P স্টাইলের পিয়ার-টু-পিয়ার বিকেন্দ্রীভূত নেটওয়ার্কের মাধ্যমে লাইট ক্লায়েন্টদের প্রয়োজনীয় তথ্য, যেমন ঐতিহাসিক ডেটা এবং চেইনের বর্তমান হেডের পরিচয়, পরিবেশন করার মাধ্যমে বর্তমান নেটওয়ার্কিং স্ট্যাকের সেরা অংশগুলি গ্রহণ করা। + +এর ধারণাটি হলো প্রতিটি নোডে মোট ঐতিহাসিক ইথেরিয়াম ডেটার ছোট অংশ এবং কিছু নির্দিষ্ট নোডের দায়িত্ব যোগ করা। তারপর, অনুরোধ করা নির্দিষ্ট ডেটা সংরক্ষণকারী নোডগুলি খুঁজে বের করে এবং তাদের থেকে তা পুনরুদ্ধার করে অনুরোধগুলি পরিবেশন করা হয়। + +এটি লাইট নোডগুলির একটি একক নোড খুঁজে বের করা এবং তাদের প্রচুর পরিমাণে ডেটা ফিল্টার ও পরিবেশন করার অনুরোধ করার সাধারণ মডেলটিকে উল্টে দেয়; পরিবর্তে, তারা দ্রুত নোডগুলির একটি বড় নেটওয়ার্ক ফিল্টার করে যার প্রতিটি অল্প পরিমাণে ডেটা পরিচালনা করে। + +এর লক্ষ্য হলো লাইটওয়েট পোর্টাল ক্লায়েন্টদের একটি বিকেন্দ্রীভূত নেটওয়ার্ককে নিম্নলিখিত কাজগুলো করার অনুমতি দেওয়া: + +- চেইনের হেড ট্র্যাক করা +- সাম্প্রতিক এবং ঐতিহাসিক চেইন ডেটা সিঙ্ক করা +- স্টেট ডেটা পুনরুদ্ধার করা +- লেনদেন সম্প্রচার করা +- [EVM](/developers/docs/evm/) ব্যবহার করে লেনদেন নির্বাহ করা + +এই নেটওয়ার্ক ডিজাইনের সুবিধাগুলি হল: + +- কেন্দ্রীভূত প্রদানকারীদের উপর নির্ভরতা হ্রাস করা +- ইন্টারনেট ব্যান্ডউইথ ব্যবহার হ্রাস করা +- ন্যূনতম বা শূন্য সিঙ্কিং +- সম্পদ-সীমাবদ্ধ ডিভাইসগুলিতে অ্যাক্সেসযোগ্য (\<1 GB RAM, \<100 MB ডিস্ক স্পেস, 1 CPU) + +নীচের টেবিলটি বিদ্যমান ক্লায়েন্টদের সেই ফাংশনগুলি দেখায় যা পোর্টাল নেটওয়ার্ক দ্বারা সরবরাহ করা যেতে পারে, যা ব্যবহারকারীদের খুব কম-রিসোর্স ডিভাইসে এই ফাংশনগুলি অ্যাক্সেস করতে সক্ষম করে। + +### পোর্টাল নেটওয়ার্কসমূহ + +| বিকন লাইট ক্লায়েন্ট | স্টেট নেটওয়ার্ক | লেনদেন গসিপ | হিস্টোরি নেটওয়ার্ক | +| -------------------- | -------------------------------------- | ---------------- | ------------------- | +| বিকন চেইন লাইট | অ্যাকাউন্ট এবং কন্ট্র্যাক্ট সংগ্রহস্থল | লাইটওয়েট মেমপুল | হেডার | +| প্রোটোকল ডেটা | | | ব্লক বডি | +| | | | রসিদ | + +## ডিফল্টরূপে ক্লায়েন্ট ডাইভারসিটি {#client-diversity-as-default} + +পোর্টাল নেটওয়ার্ক ডেভেলপাররাও প্রথম দিন থেকেই চারটি পৃথক পোর্টাল নেটওয়ার্ক ক্লায়েন্ট তৈরি করার ডিজাইনের সিদ্ধান্ত নিয়েছিল। + +পোর্টাল নেটওয়ার্ক ক্লায়েন্টগুলি হল: + +- [Trin](https://github.com/ethereum/trin): রাস্ট-এ লেখা +- [Fluffy](https://fluffy.guide): নিম-এ লেখা +- [Ultralight](https://github.com/ethereumjs/ultralight): টাইপস্ক্রিপ্ট-এ লেখা +- [Shisui](https://github.com/zen-eth/shisui): গো-তে লেখা + +একাধিক স্বাধীন ক্লায়েন্ট ইমপ্লিমেন্টেশন থাকা ইথেরিয়াম নেটওয়ার্কের স্থিতিস্থাপকতা এবং বিকেন্দ্রীকরণকে বাড়িয়ে তোলে। + +যদি একটি ক্লায়েন্ট সমস্যা বা দুর্বলতার সম্মুখীন হয়, তবে অন্যান্য ক্লায়েন্টরা মসৃণভাবে কাজ চালিয়ে যেতে পারে, যা একটি একক ব্যর্থতার বিন্দুকে প্রতিরোধ করে। উপরন্তু, বিভিন্ন ক্লায়েন্ট ইমপ্লিমেন্টেশন উদ্ভাবন এবং প্রতিযোগিতাকে উৎসাহিত করে, যা ইকোসিস্টেমের মধ্যে উন্নতির চালিকাশক্তি এবং মনোকালচার ঝুঁকি হ্রাস করে। + +## আরও পড়ুন {#further-reading} + +- [পোর্টাল নেটওয়ার্ক (পাইপার মেরিয়াম ডেভকন বোগোটাতে)](https://www.youtube.com/watch?v=0stc9jnQLXA)। +- [পোর্টাল নেটওয়ার্ক ডিসকর্ড](https://discord.gg/CFFnmE7Hbs) +- [পোর্টাল নেটওয়ার্ক ওয়েবসাইট](https://www.ethportal.net/) diff --git a/public/content/translations/bn/developers/docs/networks/index.md b/public/content/translations/bn/developers/docs/networks/index.md new file mode 100644 index 00000000000..3312b40b854 --- /dev/null +++ b/public/content/translations/bn/developers/docs/networks/index.md @@ -0,0 +1,216 @@ +--- +title: "নেটওয়ার্ক" +description: "ইথেরিয়াম নেটওয়ার্কের একটি সংক্ষিপ্ত বিবরণ এবং আপনার অ্যাপ্লিকেশন পরীক্ষা করার জন্য টেস্টনেট ইথার (ETH) কোথা থেকে পাবেন।" +lang: bn +--- + +ইথেরিয়াম নেটওয়ার্কগুলি হলো সংযুক্ত কম্পিউটারগুলির একটি গ্রুপ যা ইথেরিয়াম প্রোটোকল ব্যবহার করে একে অপরের সাথে যোগাযোগ করে। শুধুমাত্র একটি ইথেরিয়াম মেইননেট আছে, তবে একই প্রোটোকলের নিয়ম মেনে চলা স্বাধীন নেটওয়ার্কগুলি পরীক্ষা এবং ডেভেলপমেন্টের উদ্দেশ্যে তৈরি করা যেতে পারে। অনেকগুলি স্বাধীন "নেটওয়ার্ক" আছে যা একে অপরের সাথে ইন্টারঅ্যাক্ট না করে প্রোটোকল মেনে চলে। আপনি এমনকি আপনার স্মার্ট কন্ট্র্যাক্ট এবং web3 অ্যাপগুলি পরীক্ষা করার জন্য নিজের কম্পিউটারে স্থানীয়ভাবে একটি শুরু করতে পারেন। + +আপনার ইথেরিয়াম অ্যাকাউন্ট বিভিন্ন নেটওয়ার্কে কাজ করবে, কিন্তু আপনার অ্যাকাউন্টের ব্যালেন্স এবং ট্রানজ্যাকশনের ইতিহাস প্রধান ইথেরিয়াম নেটওয়ার্ক থেকে স্থানান্তরিত হবে না। পরীক্ষার উদ্দেশ্যে, কোন নেটওয়ার্কগুলি উপলব্ধ এবং কীভাবে টেস্টনেট ETH নিয়ে পরীক্ষা নিরীক্ষা করা যায় তা জানা দরকার। সাধারণত, নিরাপত্তার কথা ভেবে, মেইননেট অ্যাকাউন্ট টেস্টনেটে বা টেস্টনেটের অ্যাকাউন্ট মেইননেটে পুনরায় ব্যবহার করার সুপারিশ করা হয় না। + +## পূর্বশর্ত {#prerequisites} + +বিভিন্ন নেটওয়ার্ক সম্পর্কে পড়ার আগে আপনার [ইথেরিয়ামের মূল বিষয়গুলি](/developers/docs/intro-to-ethereum/) বোঝা উচিত, কারণ টেস্ট নেটওয়ার্কগুলি আপনাকে ইথেরিয়ামের একটি সস্তা, নিরাপদ সংস্করণ দেবে যা নিয়ে আপনি পরীক্ষা করতে পারবেন। + +## পাবলিক নেটওয়ার্ক {#public-networks} + +ইন্টারনেট সংযোগ আছে এমন বিশ্বের যে কেউ পাবলিক নেটওয়ার্কগুলিতে অ্যাক্সেস করতে পারে। যে কেউ একটি পাবলিক ব্লকচেইনে ট্রানজ্যাকশন পড়তে বা তৈরি করতে পারে এবং কার্যকর হওয়া ট্রানজ্যাকশনগুলি যাচাই করতে পারে। পিয়ারদের মধ্যে কনসেন্সাস ট্রানজ্যাকশনগুলির অন্তর্ভুক্তি এবং নেটওয়ার্কের স্টেট সম্পর্কে সিদ্ধান্ত নেয়। + +### ইথেরিয়াম মেইননেট {#ethereum-mainnet} + +মেইননেট হল প্রাথমিক পাবলিক ইথেরিয়াম প্রোডাকশন ব্লকচেইন, যেখানে ডিস্ট্রিবিউটেড লেজারে আসল মূল্যের ট্রানজ্যাকশনগুলি ঘটে। + +যখন মানুষ এবং এক্সচেঞ্জগুলি ETH-এর দাম নিয়ে আলোচনা করে, তারা মেইননেট ETH সম্পর্কে কথা বলে। + +### ইথেরিয়াম টেস্টনেট {#ethereum-testnets} + +মেইননেট ছাড়াও, পাবলিক টেস্টনেট রয়েছে। এইগুলি এমন নেটওয়ার্ক যা প্রোটোকল ডেভেলপার বা স্মার্ট কন্ট্র্যাক্ট ডেভেলপাররা মেইননেটে ডিপ্লয়মেন্টের আগে প্রোডাকশনের মতো পরিবেশে প্রোটোকল আপগ্রেড এবং সম্ভাব্য স্মার্ট কন্ট্র্যাক্ট উভয়ই পরীক্ষা করার জন্য ব্যবহার করে। এটিকে প্রোডাকশন বনাম স্টেজিং সার্ভারের একটি উপমা হিসেবে ভাবুন। + +আপনার লেখা যেকোনো কন্ট্র্যাক্ট কোড মেইননেটে ডিপ্লয় করার আগে একটি টেস্টনেটে পরীক্ষা করা উচিত। যেসব ডিএ্যাপস বিদ্যমান স্মার্ট কন্ট্র্যাক্টের সাথে ইন্টিগ্রেট করে, তাদের বেশিরভাগ প্রজেক্টের কপি টেস্টনেটে ডিপ্লয় করা আছে। + +বেশিরভাগ টেস্টনেট একটি পারমিশনড প্রুফ-অফ-অথরিটি কনসেন্সাস মেকানিজম ব্যবহার করে শুরু হয়েছিল। এর মানে হল অল্প সংখ্যক নোডকে ট্রানজ্যাকশন যাচাই করতে এবং নতুন ব্লক তৈরি করার জন্য বেছে নেওয়া হয় – এই প্রক্রিয়ায় তারা তাদের পরিচয় স্টেক করে। বিকল্পভাবে, কিছু টেস্টনেটে একটি উন্মুক্ত প্রুফ-অফ-স্টেক কনসেন্সাস মেকানিজম রয়েছে যেখানে প্রত্যেকে ইথেরিয়াম মেইননেটের মতোই একটি ভ্যালিডেটর চালানোর পরীক্ষা করতে পারে। + +টেস্টনেটে ETH-এর কোনো আসল মূল্য থাকার কথা নয়; তবে, কিছু নির্দিষ্ট ধরনের টেস্টনেট ETH-এর জন্য বাজার তৈরি হয়েছে যা দুর্লভ বা পাওয়া কঠিন হয়ে পড়েছে। যেহেতু ইথেরিয়ামের সাথে (এমনকি টেস্টনেটেও) ইন্টারঅ্যাক্ট করার জন্য আপনার ETH প্রয়োজন, তাই বেশিরভাগ মানুষ ফসেট থেকে বিনামূল্যে টেস্টনেট ETH পায়। বেশিরভাগ ফসেট হল ওয়েবঅ্যাপ যেখানে আপনি একটি অ্যাড্রেস ইনপুট করতে পারেন যেখানে আপনি ETH পাঠানোর অনুরোধ করেন। + +#### আমার কোন টেস্টনেট ব্যবহার করা উচিত? + +ক্লায়েন্ট ডেভেলপাররা বর্তমানে যে দুটি পাবলিক টেস্টনেট রক্ষণাবেক্ষণ করছেন সেগুলি হল সেপোলিয়া এবং হুডি। সেপোলিয়া হল কন্ট্র্যাক্ট এবং অ্যাপ্লিকেশন ডেভেলপারদের জন্য তাদের অ্যাপ্লিকেশন পরীক্ষা করার একটি নেটওয়ার্ক। হুডি নেটওয়ার্ক প্রোটোকল ডেভেলপারদের নেটওয়ার্ক আপগ্রেড পরীক্ষা করতে দেয় এবং স্টেকারদের ভ্যালিডেটর চালানো পরীক্ষা করতে দেয়। + +#### সেপোলিয়া {#sepolia} + +**অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য সেপোলিয়া হল সুপারিশকৃত ডিফল্ট টেস্টনেট**। সেপোলিয়া নেটওয়ার্ক একটি পারমিশনড ভ্যালিডেটর সেট ব্যবহার করে যা ক্লায়েন্ট ও টেস্টিং টিম দ্বারা নিয়ন্ত্রিত হয়। + +##### রিসোর্স + +- [ওয়েবসাইট](https://sepolia.dev/) +- [গিটহাব](https://github.com/eth-clients/sepolia) +- [অটারস্ক্যান](https://sepolia.otterscan.io/) +- [ইথারস্ক্যান](https://sepolia.etherscan.io) +- [ব্লকস্কাউট](https://eth-sepolia.blockscout.com/) + +##### ফসেট + +- [অ্যালকেমি সেপোলিয়া ফসেট](https://www.alchemy.com/faucets/ethereum-sepolia) +- [চেইন প্ল্যাটফর্ম সেপোলিয়া ফসেট](https://faucet.chainplatform.co/faucets/ethereum-sepolia/) +- [চেইনস্ট্যাক সেপোলিয়া ফসেট](https://faucet.chainstack.com/sepolia-testnet-faucet) +- [ইথেরিয়াম ইকোসিস্টেম ফসেট](https://www.ethereum-ecosystem.com/faucets/ethereum-sepolia) +- [ethfaucet.com সেপোলিয়া ফসেট](https://ethfaucet.com/networks/ethereum) +- [Google ক্লাউড Web3 সেপোলিয়া ফসেট](https://cloud.google.com/application/web3/faucet/ethereum/sepolia) +- [গ্র্যাবটিথ](https://grabteeth.xyz/) +- [ইনফিউরা সেপোলিয়া ফসেট](https://www.infura.io/faucet) +- [PoW ফসেট](https://sepolia-faucet.pk910.de/) +- [কুইকনোড সেপোলিয়া ফসেট](https://faucet.quicknode.com/ethereum/sepolia) + +#### হুডি {#hoodi} + +হুডি হলো ভ্যালিডেটিং এবং স্টেকিং পরীক্ষা করার জন্য একটি টেস্টনেট। যারা টেস্টনেট ভ্যালিডেটর চালাতে চান তাদের জন্য হুডি নেটওয়ার্কটি উন্মুক্ত। যেসব স্টেকাররা প্রোটোকল আপগ্রেডগুলি মেইননেটে ডিপ্লয় করার আগে পরীক্ষা করতে চান, তাদের হুডি ব্যবহার করা উচিত। + +- উন্মুক্ত ভ্যালিডেটর সেট, স্টেকাররা নেটওয়ার্ক আপগ্রেড পরীক্ষা করতে পারে +- বড় স্টেট, জটিল স্মার্ট কন্ট্র্যাক্ট ইন্টারঅ্যাকশন পরীক্ষা করার জন্য উপযোগী +- সিঙ্ক হতে বেশি সময় লাগে এবং একটি নোড চালানোর জন্য আরও বেশি স্টোরেজ প্রয়োজন + +##### রিসোর্স + +- [ওয়েবসাইট](https://hoodi.ethpandaops.io/) +- [গিটহাব](https://github.com/eth-clients/hoodi) +- [এক্সপ্লোরার](https://explorer.hoodi.ethpandaops.io/) +- [চেকপয়েন্ট সিঙ্ক](https://checkpoint-sync.hoodi.ethpandaops.io/) +- [অটারস্ক্যান](https://hoodi.otterscan.io/) +- [ইথারস্ক্যান](https://hoodi.etherscan.io/) + +##### ফসেট + +- [চেইন প্ল্যাটফর্ম হুডি ফসেট](https://faucet.chainplatform.co/faucets/ethereum-hoodi/) +- [হুডি ফসেট](https://hoodi.ethpandaops.io/) +- [PoW ফসেট](https://hoodi-faucet.pk910.de/) + +#### এফেমেরি {#ephemery} + +এফেমেরি হল এক বিশেষ ধরনের টেস্টনেট যা প্রতি মাসে সম্পূর্ণভাবে রিসেট হয়। এক্সিকিউশন এবং কনসেন্সাস স্টেট প্রতি ২৮ দিনে জেনেসিসে ফিরে যায়, যার মানে হল টেস্টনেটে যা কিছু ঘটে তা ক্ষণস্থায়ী। এটি স্বল্পমেয়াদী পরীক্ষা, দ্রুত নোড বুটস্ট্র্যাপ এবং 'হ্যালো ওয়ার্ল্ড' ধরনের অ্যাপ্লিকেশনের জন্য আদর্শ, যাদের স্থায়িত্বের প্রয়োজন নেই। + +- সর্বদা নতুন স্টেট, ভ্যালিডেটর এবং অ্যাপের স্বল্পমেয়াদী পরীক্ষা +- শুধুমাত্র কন্ট্র্যাক্টের বেসিক সেট অন্তর্ভুক্ত +- উন্মুক্ত ভ্যালিডেটর সেট এবং বড় আকারের ফান্ড সহজে অ্যাক্সেসযোগ্য +- সবচেয়ে ছোট নোডের প্রয়োজনীয়তা এবং দ্রুততম সিঙ্ক, গড়ে <5GB + +##### রিসোর্স + +- [ওয়েবসাইট](https://ephemery.dev/) +- [গিটহাব](https://github.com/ephemery-testnet/ephemery-resources) +- [কমিউনিটি চ্যাট](https://matrix.to/#/#staker-testnet:matrix.org) +- [ব্লকস্কাউট](https://explorer.ephemery.dev/) +- [অটারস্ক্যান](https://otter.bordel.wtf/) +- [বিকন এক্সপ্লোরার](https://beaconlight.ephemery.dev/) +- [চেকপয়েন্ট সিঙ্ক](https://checkpoint-sync.ephemery.ethpandaops.io) +- [লঞ্চপ্যাড](https://launchpad.ephemery.dev/) + +#### ফসেট + +- [বোরডেল ফসেট](https://faucet.bordel.wtf/) +- [Pk910 PoW ফসেট](https://ephemery-faucet.pk910.de/) + +#### হোলস্কি (অপ্রচলিত) {#holesky} + +হোলস্কি টেস্টনেট সেপ্টেম্বর 2025 থেকে অপ্রচলিত। স্টেকিং অপারেটর এবং ইনফ্রাস্ট্রাকচার প্রদানকারীদের পরিবর্তে ভ্যালিডেটর পরীক্ষার জন্য হুডি ব্যবহার করা উচিত। + +- [হোলস্কি টেস্টনেট শাটডাউন ঘোষণা](https://blog.ethereum.org/2025/09/01/holesky-shutdown-announcement) - _EF ব্লগ, ১-সেপ্টেম্বর-২০২৫_ +- [হোলস্কি এবং হুডি টেস্টনেট আপডেট](https://blog.ethereum.org/en/2025/03/18/hoodi-holesky) - _EF ব্লগ, ১৮-মার্চ-২০২৫_ + +### লেয়ার 2 টেস্টনেট {#layer-2-testnets} + +[লেয়ার 2 (L2)](/layer-2/) হল একটি সম্মিলিত শব্দ যা ইথেরিয়াম স্কেলিং সলিউশনের একটি নির্দিষ্ট সেটকে বর্ণনা করতে ব্যবহৃত হয়। একটি লেয়ার 2 হল একটি আলাদা ব্লকচেইন যা ইথেরিয়ামকে প্রসারিত করে এবং ইথেরিয়ামের নিরাপত্তার নিশ্চয়তা উত্তরাধিকার সূত্রে পায়। লেয়ার 2 টেস্টনেট সাধারণত পাবলিক ইথেরিয়াম টেস্টনেটের সাথে দৃঢ়ভাবে সংযুক্ত থাকে। + +#### আরবিট্রাম সেপোলিয়া {#arbitrum-sepolia} + +[আরবিট্রাম](https://arbitrum.io/)-এর জন্য একটি টেস্টনেট। + +##### রিসোর্স + +- [ইথারস্ক্যান](https://sepolia.arbiscan.io/) +- [ব্লকস্কাউট](https://sepolia-explorer.arbitrum.io/) + +##### ফসেট + +- [অ্যালকেমি আরবিট্রাম সেপোলিয়া ফসেট](https://www.alchemy.com/faucets/arbitrum-sepolia) +- [চেইনলিংক আরবিট্রাম সেপোলিয়া ফসেট](https://faucets.chain.link/arbitrum-sepolia) +- [ethfaucet.com আরবিট্রাম সেপোলিয়া ফসেট](https://ethfaucet.com/networks/arbitrum) +- [কুইকনোড আরবিট্রাম সেপোলিয়া ফসেট](https://faucet.quicknode.com/arbitrum/sepolia) + +#### অপ্টিমিস্টিক সেপোলিয়া {#optimistic-sepolia} + +[অপ্টিমিজম](https://www.optimism.io/)-এর জন্য একটি টেস্টনেট। + +##### রিসোর্স + +- [ইথারস্ক্যান](https://sepolia-optimistic.etherscan.io/) +- [ব্লকস্কাউট](https://optimism-sepolia.blockscout.com/) + +##### ফসেট + +- [অ্যালকেমি ফসেট](https://www.alchemy.com/faucets/optimism-sepolia) +- [চেইনলিংক ফসেট](https://faucets.chain.link/optimism-sepolia) +- [ethfaucet.com অপ্টিমিজম সেপোলিয়া ফসেট](https://ethfaucet.com/networks/optimism) +- [টেস্টনেট ফসেট](https://docs.optimism.io/builders/tools/build/faucets) + +#### স্টার্কনেট সেপোলিয়া {#starknet-sepolia} + +[স্টার্কনেট](https://www.starknet.io)-এর জন্য একটি টেস্টনেট। + +##### রিসোর্স + +- [স্টার্কস্ক্যান](https://sepolia.starkscan.co/) + +##### ফসেট + +- [অ্যালকেমি ফসেট](https://www.alchemy.com/faucets/starknet-sepolia) +- [ব্লাস্ট স্টার্কনেট সেপোলিয়া ফসেট](https://blastapi.io/faucets/starknet-sepolia-eth) +- [স্টার্কনেট ফসেট](https://starknet-faucet.vercel.app/) + +## প্রাইভেট নেটওয়ার্ক {#private-networks} + +একটি ইথেরিয়াম নেটওয়ার্ক একটি প্রাইভেট নেটওয়ার্ক যদি এর নোডগুলি কোনো পাবলিক নেটওয়ার্কের (অর্থাৎ, মেইননেট বা একটি টেস্টনেট) সাথে সংযুক্ত না থাকে। এই প্রসঙ্গে, প্রাইভেট মানে শুধুমাত্র সংরক্ষিত বা বিচ্ছিন্ন, সুরক্ষিত বা নিরাপদ নয়। + +### ডেভেলপমেন্ট নেটওয়ার্ক {#development-networks} + +একটি ইথেরিয়াম অ্যাপ্লিকেশন ডেভেলপ করার জন্য, আপনি এটি ডিপ্লয় করার আগে এটি কীভাবে কাজ করে তা দেখতে একটি প্রাইভেট নেটওয়ার্কে চালাতে চাইবেন। আপনি যেমন ওয়েব ডেভেলপমেন্টের জন্য আপনার কম্পিউটারে একটি লোকাল সার্ভার তৈরি করেন, তেমনি আপনার dapp পরীক্ষা করার জন্য একটি লোকাল ব্লকচেইন ইনস্ট্যান্স তৈরি করতে পারেন। এটি একটি পাবলিক টেস্টনেটের চেয়ে অনেক দ্রুত পুনরাবৃত্তির সুযোগ দেয়। + +এটিতে সহায়তা করার জন্য নিবেদিত প্রকল্প এবং টুলস রয়েছে। [ডেভেলপমেন্ট নেটওয়ার্ক](/developers/docs/development-networks/) সম্পর্কে আরও জানুন। + +### কনসোর্টিয়াম নেটওয়ার্ক {#consortium-networks} + +কনসেন্সাস প্রক্রিয়াটি বিশ্বস্ত নোডগুলির একটি পূর্ব-নির্ধারিত সেট দ্বারা নিয়ন্ত্রিত হয়। উদাহরণস্বরূপ, পরিচিত একাডেমিক প্রতিষ্ঠানগুলির একটি প্রাইভেট নেটওয়ার্ক যেখানে প্রতিটি একটি একক নোড পরিচালনা করে, এবং ব্লকগুলি নেটওয়ার্কের মধ্যে স্বাক্ষরকারীদের একটি থ্রেশহোল্ড দ্বারা যাচাই করা হয়। + +যদি একটি পাবলিক ইথেরিয়াম নেটওয়ার্ক পাবলিক ইন্টারনেটের মতো হয়, একটি কনসোর্টিয়াম নেটওয়ার্ক একটি প্রাইভেট ইন্ট্রানেটের মতো। + +## কেন ইথেরিয়াম টেস্টনেটগুলির নাম মেট্রো স্টেশনের নামে রাখা হয়? {#why-naming} + +অনেক ইথেরিয়াম টেস্টনেটের নাম বাস্তব-জগতের মেট্রো বা ট্রেন স্টেশনের নামে রাখা হয়েছে। এই নামকরণের ঐতিহ্যটি প্রথম দিকে শুরু হয়েছিল এবং এটি সেইসব বিশ্বব্যাপী শহরগুলিকে প্রতিফলিত করে যেখানে কন্ট্রিবিউটররা বসবাস করেছেন বা কাজ করেছেন। এটি প্রতীকী, স্মরণীয় এবং ব্যবহারিক। ঠিক যেমন টেস্টনেটগুলি ইথেরিয়াম মেইননেট থেকে বিচ্ছিন্ন, মেট্রো লাইনগুলি ভূপৃষ্ঠের ট্র্যাফিক থেকে আলাদাভাবে চলে। + +### সাধারণভাবে ব্যবহৃত এবং লিগ্যাসি টেস্টনেট {#common-and-legacy-testnets} + +- **সেপোলিয়া** - এথেন্স, গ্রীসের একটি মেট্রো-সংযুক্ত এলাকা। বর্তমানে স্মার্ট কন্ট্র্যাক্ট এবং dApp পরীক্ষার জন্য ব্যবহৃত হয়। +- **হুডি** - ভারতের বেঙ্গালুরুর হুডি মেট্রো স্টেশনের নামে নামকরণ করা হয়েছে। ভ্যালিডেটর এবং প্রোটোকল আপগ্রেড পরীক্ষার জন্য ব্যবহৃত হয়। +- **গোয়েরলি** _(অপ্রচলিত)_ - জার্মানির বার্লিনের গোর্লিটজার বাহনহফের নামে নামকরণ করা হয়েছে। +- **রিঙ্কেবি** _(অপ্রচলিত)_ - একটি মেট্রো স্টেশনসহ স্টকহোমের একটি শহরতলির নামে নামকরণ করা হয়েছে। +- **রোপস্টেন** _(অপ্রচলিত)_ - স্টকহোমের একটি এলাকা এবং প্রাক্তন ফেরি/মেট্রো টার্মিনালকে বোঝায়। +- **কোভান** _(অপ্রচলিত)_ - সিঙ্গাপুরের একটি এমআরটি স্টেশনের নামে নামকরণ করা হয়েছে। +- **মর্ডেন** _(অপ্রচলিত)_ - লন্ডনের একটি আন্ডারগ্রাউন্ড স্টেশনের নামে নামকরণ করা হয়েছে। ইথেরিয়ামের প্রথম পাবলিক টেস্টনেট। + +### অন্যান্য বিশেষায়িত টেস্টনেট {#other-testnets} + +কিছু টেস্টনেট স্বল্পমেয়াদী বা আপগ্রেড-নির্দিষ্ট পরীক্ষার জন্য তৈরি করা হয়েছিল এবং সেগুলি অগত্যা মেট্রো-থিমযুক্ত নয়: + +- **হোলস্কি** _(অপ্রচলিত)_ - প্রাগের হোলসোভিস স্টেশনের নামে নামকরণ করা হয়েছে। ভ্যালিডেটর পরীক্ষার জন্য ব্যবহৃত; ২০২৫ সালে অপ্রচলিত। +- **কিলন**, **ঝেজিয়াং**, **শানডং**, **প্রেটার**, **পাইরমন্ট**, **অলিম্পিক** _(সবই অপ্রচলিত)_ এবং **এফেমেরি** - দ্য মার্জ, সাংহাই-এর মতো আপগ্রেড সিমুলেশন বা ভ্যালিডেটর পরীক্ষার জন্য বিশেষভাবে তৈরি করা হয়েছে। কিছু নাম মেট্রো-ভিত্তিক না হয়ে আঞ্চলিক বা থিম্যাটিক। + +মেট্রো স্টেশনের নাম ব্যবহার করা ডেভেলপারদের সাংখ্যিক চেইন আইডি-র উপর নির্ভর না করে দ্রুত টেস্টনেট সনাক্ত করতে এবং মনে রাখতে সাহায্য করে। এটি ইথেরিয়ামের সংস্কৃতিকেও প্রতিফলিত করে: ব্যবহারিক, বিশ্বব্যাপী এবং মানব-কেন্দ্রিক। + +## সম্পর্কিত টুলস {#related-tools} + +- [চেইনলিস্ট](https://chainlist.org/) _EVM নেটওয়ার্কের তালিকা যা ওয়ালেট এবং প্রোভাইডারদের সঠিক চেইন আইডি এবং নেটওয়ার্ক আইডির সাথে সংযুক্ত করে_ +- [EVM-ভিত্তিক চেইন](https://github.com/ethereum-lists/chains) _চেইন মেটাডেটার গিটহাব রিপো যা চেইনলিস্টকে শক্তি জোগায়_ + +## আরও পড়ুন {#further-reading} + +- [প্রস্তাব: অনুমানযোগ্য ইথেরিয়াম টেস্টনেট জীবনচক্র](https://ethereum-magicians.org/t/proposal-predictable-ethereum-testnet-lifecycle/11575/17) +- [ইথেরিয়াম টেস্টনেটগুলির বিবর্তন](https://etherworld.co/2022/08/19/the-evolution-of-ethereum-testnet/) diff --git a/public/content/translations/bn/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/bn/developers/docs/nodes-and-clients/archive-nodes/index.md new file mode 100644 index 00000000000..92c17b5d9d1 --- /dev/null +++ b/public/content/translations/bn/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -0,0 +1,81 @@ +--- +title: "ইথেরিয়াম আর্কাইভ নোড" +description: "আর্কাইভ নোডগুলির একটি ওভারভিউ" +lang: bn +sidebarDepth: 2 +--- + +একটি আর্কাইভ নোড হলো একটি ইথেরিয়াম ক্লায়েন্টের একটি ইনস্ট্যান্স যা সমস্ত ঐতিহাসিক স্টেটগুলির একটি আর্কাইভ তৈরি করার জন্য কনফিগার করা থাকে। এটি নির্দিষ্ট কিছু ব্যবহারের ক্ষেত্রে একটি দরকারী টুল কিন্তু একটি সম্পূর্ণ নোড চালানোর চেয়ে এটি চালানো আরও কঠিন হতে পারে। + +## পূর্বশর্ত {#prerequisites} + +আপনার একটি [ইথেরিয়াম নোড](/developers/docs/nodes-and-clients/)-এর ধারণা, [এর আর্কিটেকচার](/developers/docs/nodes-and-clients/node-architecture/), [সিঙ্ক কৌশল](/developers/docs/nodes-and-clients/#sync-modes), [এটি চালানোর](/developers/docs/nodes-and-clients/run-a-node/) এবং [ব্যবহার করার](/developers/docs/apis/json-rpc/) অভ্যাসগুলি বোঝা উচিত। + +## একটি আর্কাইভ নোড কী + +একটি আর্কাইভ নোডের গুরুত্ব বোঝার জন্য, আসুন "স্টেট"-এর ধারণাটি স্পষ্ট করি। ইথেরিয়ামকে একটি _লেনদেন-ভিত্তিক স্টেট মেশিন_ হিসেবে উল্লেখ করা যেতে পারে। এটি অ্যাকাউন্ট এবং অ্যাপ্লিকেশনগুলি নিয়ে গঠিত যা তাদের স্টেট পরিবর্তনকারী লেনদেনগুলি কার্যকর করে। প্রতিটি অ্যাকাউন্ট এবং চুক্তি সম্পর্কে তথ্য সহ গ্লোবাল ডেটা স্টেট নামক একটি ট্রাই ডেটাবেসে সংরক্ষণ করা হয়। এটি এক্সিকিউশন লেয়ার (EL) ক্লায়েন্ট দ্বারা পরিচালিত হয় এবং এর মধ্যে রয়েছে: + +- অ্যাকাউন্টের ব্যালেন্স এবং ননসেস +- চুক্তির কোড এবং স্টোরেজ +- কনসেন্সাস-সম্পর্কিত ডেটা, যেমন, স্টেকিং ডিপোজিট চুক্তি + +নেটওয়ার্কের সাথে ইন্টারঅ্যাক্ট করতে, নতুন ব্লক যাচাই এবং তৈরি করতে, ইথেরিয়াম ক্লায়েন্টদের সবচেয়ে সাম্প্রতিক পরিবর্তনগুলির সাথে (চেইনের অগ্রভাগ) তাল মিলিয়ে চলতে হবে এবং তাই বর্তমান স্টেট বজায় রাখতে হবে। একটি এক্সিকিউশন লেয়ার ক্লায়েন্ট যা একটি সম্পূর্ণ নোড হিসাবে কনফিগার করা আছে তা নেটওয়ার্কের সর্বশেষ স্টেট যাচাই করে এবং অনুসরণ করে কিন্তু শুধুমাত্র অতীতের কয়েকটি স্টেট ক্যাশে করে, যেমন, শেষ 128টি ব্লকের সাথে যুক্ত স্টেট, যাতে এটি চেইন রিঅর্গগুলি পরিচালনা করতে পারে এবং সাম্প্রতিক ডেটাতে দ্রুত অ্যাক্সেস সরবরাহ করতে পারে। সাম্প্রতিক স্টেট হলো যা সমস্ত ক্লায়েন্টের আগত লেনদেন যাচাই করতে এবং নেটওয়ার্ক ব্যবহার করতে প্রয়োজন। + +আপনি একটি নির্দিষ্ট ব্লকে স্টেটকে একটি ক্ষণস্থায়ী নেটওয়ার্ক স্ন্যাপশট হিসাবে এবং আর্কাইভকে একটি হিস্ট্রি রিপ্লে হিসাবে কল্পনা করতে পারেন। + +ঐতিহাসিক স্টেটগুলি নিরাপদে ছাঁটাই করা যেতে পারে কারণ নেটওয়ার্ক পরিচালনার জন্য এগুলির প্রয়োজন নেই এবং ক্লায়েন্টের জন্য সমস্ত পুরানো ডেটা রাখা অপ্রয়োজনীয়ভাবে বাহুল্য হবে। কিছু সাম্প্রতিক ব্লকের (যেমন, হেডের 128টি ব্লক আগে) আগে বিদ্যমান স্টেটগুলি কার্যকরভাবে ফেলে দেওয়া হয়। সম্পূর্ণ নোডগুলি শুধুমাত্র ঐতিহাসিক ব্লকচেইন ডেটা (ব্লক এবং লেনদেন) এবং মাঝে মাঝে ঐতিহাসিক স্ন্যাপশট রাখে যা তারা অনুরোধের ভিত্তিতে পুরানো স্টেটগুলি পুনরায় তৈরি করতে ব্যবহার করতে পারে। তারা EVM-এ অতীতের লেনদেনগুলি পুনরায় কার্যকর করে এটি করে, যা কম্পিউটেশনালি চাহিদাপূর্ণ হতে পারে যখন কাঙ্ক্ষিত স্টেটটি নিকটতম স্ন্যাপশট থেকে অনেক দূরে থাকে। + +যাইহোক, এর মানে হল যে একটি সম্পূর্ণ নোডে একটি ঐতিহাসিক স্টেট অ্যাক্সেস করতে অনেক কম্পিউটেশন লাগে। ক্লায়েন্টের অতীতের সমস্ত লেনদেন কার্যকর করতে এবং জেনেসিস থেকে একটি ঐতিহাসিক স্টেট গণনা করার প্রয়োজন হতে পারে। আর্কাইভ নোডগুলি শুধুমাত্র সবচেয়ে সাম্প্রতিক স্টেটগুলি সংরক্ষণ করে নয়, বরং প্রতিটি ব্লকের পরে তৈরি প্রতিটি ঐতিহাসিক স্টেটও সংরক্ষণ করে এর সমাধান করে। এটি মূলত বৃহত্তর ডিস্ক স্পেসের প্রয়োজনের সাথে একটি আপস করে। + +এটা মনে রাখা গুরুত্বপূর্ণ যে নেটওয়ার্ক সমস্ত ঐতিহাসিক ডেটা রাখা এবং সরবরাহ করার জন্য আর্কাইভ নোডগুলির উপর নির্ভর করে না। উপরে উল্লিখিত হিসাবে, সমস্ত ঐতিহাসিক অন্তর্বর্তী স্টেটগুলি একটি সম্পূর্ণ নোড থেকে প্রাপ্ত করা যেতে পারে। যেকোনো সম্পূর্ণ নোড দ্বারা লেনদেনগুলি সংরক্ষণ করা হয় (বর্তমানে 400G-এর কম) এবং পুরো আর্কাইভটি তৈরি করতে পুনরায় প্লে করা যেতে পারে। + +### ব্যবহার + +ইথেরিয়ামের নিয়মিত ব্যবহার যেমন লেনদেন পাঠানো, চুক্তি স্থাপন করা, কনসেন্সাস যাচাই করা ইত্যাদির জন্য ঐতিহাসিক স্টেটগুলিতে অ্যাক্সেসের প্রয়োজন হয় না। নেটওয়ার্কের সাথে একটি স্ট্যান্ডার্ড ইন্টারঅ্যাকশনের জন্য ব্যবহারকারীদের কখনো একটি আর্কাইভ নোডের প্রয়োজন হয় না। + +স্টেট আর্কাইভের প্রধান সুবিধা হলো ঐতিহাসিক স্টেটগুলি সম্পর্কে ক্যোয়ারিগুলিতে দ্রুত অ্যাক্সেস। উদাহরণস্বরূপ, আর্কাইভ নোড দ্রুত ফলাফল দেবে যেমন: + +- _অ্যাকাউন্ট 0x1337...-এর ETH ব্যালেন্স কত ছিল_ ব্লক 15537393-এ?_ +- _ব্লক 1920000-এ চুক্তি 0x-এ টোকেন 0x-এর ব্যালেন্স কত?_ + +উপরে যেমন ব্যাখ্যা করা হয়েছে, একটি সম্পূর্ণ নোডকে EVM এক্সিকিউশনের মাধ্যমে এই ডেটা তৈরি করতে হবে যা CPU ব্যবহার করে এবং সময় নেয়। আর্কাইভ নোডগুলি ডিস্কে সেগুলি অ্যাক্সেস করে এবং অবিলম্বে প্রতিক্রিয়া পরিবেশন করে। এটি অবকাঠামোর নির্দিষ্ট কিছু অংশের জন্য একটি দরকারী বৈশিষ্ট্য, উদাহরণস্বরূপ: + +- ব্লক এক্সপ্লোরারের মতো পরিষেবা প্রদানকারী +- গবেষক +- নিরাপত্তা বিশ্লেষক +- Dapp ডেভেলপার +- অডিটিং এবং কমপ্লায়েন্স + +বিভিন্ন বিনামূল্যে [পরিষেবা](/developers/docs/nodes-and-clients/nodes-as-a-service/) রয়েছে যা ঐতিহাসিক ডেটাতে অ্যাক্সেসেরও অনুমতি দেয়। যেহেতু একটি আর্কাইভ নোড চালানো আরও চাহিদাপূর্ণ, এই অ্যাক্সেস বেশিরভাগই সীমিত এবং শুধুমাত্র মাঝে মাঝে অ্যাক্সেসের জন্য কাজ করে। যদি আপনার প্রকল্পের ঐতিহাসিক ডেটাতে ক্রমাগত অ্যাক্সেসের প্রয়োজন হয়, তবে আপনার নিজের একটি চালানোর কথা বিবেচনা করা উচিত। + +## বাস্তবায়ন এবং ব্যবহার + +এই প্রসঙ্গে আর্কাইভ নোড মানে ব্যবহারকারী-মুখী এক্সিকিউশন লেয়ার ক্লায়েন্টদের দ্বারা পরিবেশিত ডেটা কারণ তারা স্টেট ডেটাবেস পরিচালনা করে এবং JSON-RPC এন্ডপয়েন্ট সরবরাহ করে। কনফিগারেশন অপশন, সিঙ্ক সময় এবং ডেটাবেস আকার ক্লায়েন্ট ভেদে ভিন্ন হতে পারে। বিস্তারিত জানতে, অনুগ্রহ করে আপনার ক্লায়েন্ট দ্বারা প্রদত্ত ডকুমেন্টেশন দেখুন। + +আপনার নিজের আর্কাইভ নোড শুরু করার আগে, ক্লায়েন্টগুলির মধ্যে পার্থক্য এবং বিশেষ করে বিভিন্ন [হার্ডওয়্যার প্রয়োজনীয়তা](/developers/docs/nodes-and-clients/run-a-node/#requirements) সম্পর্কে জানুন। বেশিরভাগ ক্লায়েন্ট এই বৈশিষ্ট্যের জন্য অপ্টিমাইজ করা হয় না এবং তাদের আর্কাইভগুলির জন্য 12TB-র বেশি জায়গার প্রয়োজন হয়। বিপরীতে, Erigon-এর মতো বাস্তবায়নগুলি একই ডেটা 3TB-র কম জায়গায় সংরক্ষণ করতে পারে যা তাদের একটি আর্কাইভ নোড চালানোর সবচেয়ে কার্যকর উপায় করে তোলে। + +## সুপারিশকৃত অভ্যাস + +[একটি নোড চালানোর জন্য সাধারণ সুপারিশগুলি](/developers/docs/nodes-and-clients/run-a-node/) ছাড়াও, একটি আর্কাইভ নোড হার্ডওয়্যার এবং রক্ষণাবেক্ষণে আরও চাহিদাপূর্ণ হতে পারে। Erigon-এর [মূল বৈশিষ্ট্যগুলি](https://github.com/ledgerwatch/erigon#key-features) বিবেচনা করে, সবচেয়ে বাস্তবসম্মত পদ্ধতি হল [Erigon](/developers/docs/nodes-and-clients/#erigon) ক্লায়েন্ট বাস্তবায়ন ব্যবহার করা। + +### হার্ডওয়্যার + +সর্বদা একটি ক্লায়েন্টের ডকুমেন্টেশনে একটি নির্দিষ্ট মোডের জন্য হার্ডওয়্যার প্রয়োজনীয়তা যাচাই করা নিশ্চিত করুন। +আর্কাইভ নোডগুলির জন্য সবচেয়ে বড় প্রয়োজন হলো ডিস্ক স্পেস। ক্লায়েন্টের উপর নির্ভর করে, এটি 3TB থেকে 12TB পর্যন্ত পরিবর্তিত হয়। যদিও HDD বড় পরিমাণে ডেটার জন্য একটি ভালো সমাধান হিসাবে বিবেচিত হতে পারে, এটি সিঙ্ক করা এবং চেইনের হেড ক্রমাগত আপডেট করার জন্য SSD ড্রাইভের প্রয়োজন হবে। [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) ড্রাইভগুলি যথেষ্ট ভালো কিন্তু এটি একটি নির্ভরযোগ্য মানের হওয়া উচিত, অন্তত [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences)। যথেষ্ট স্লট সহ একটি ডেস্কটপ কম্পিউটার বা একটি সার্ভারে ডিস্কগুলি লাগানো যেতে পারে। এই ধরনের ডেডিকেটেড ডিভাইস উচ্চ আপটাইম নোড চালানোর জন্য আদর্শ। এটি একটি ল্যাপটপে চালানো সম্পূর্ণ সম্ভব কিন্তু বহনযোগ্যতা একটি অতিরিক্ত খরচে আসবে। + +সমস্ত ডেটা একটি ভলিউমে ফিট করতে হবে, তাই ডিস্কগুলিকে যুক্ত করতে হবে, যেমন, [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) বা LVM দিয়ে। [ZFS](https://en.wikipedia.org/wiki/ZFS) ব্যবহার করাও বিবেচনা করার মতো হতে পারে কারণ এটি "কপি-অন-রাইট" সমর্থন করে যা নিশ্চিত করে যে ডেটা কোনো নিম্ন-স্তরের ত্রুটি ছাড়াই ডিস্কে সঠিকভাবে লেখা হয়েছে। + +আকস্মিক ডেটাবেস দুর্নীতি প্রতিরোধে আরও স্থিতিশীলতা এবং নিরাপত্তার জন্য, বিশেষ করে একটি পেশাদার সেটআপে, আপনার সিস্টেম সমর্থন করলে [ECC মেমরি](https://en.wikipedia.org/wiki/ECC_memory) ব্যবহার করার কথা বিবেচনা করুন। RAM-এর আকার সাধারণত একটি সম্পূর্ণ নোডের জন্য যা প্রয়োজন তার সমান রাখার পরামর্শ দেওয়া হয় কিন্তু আরও বেশি RAM সিঙ্ক্রোনাইজেশনের গতি বাড়াতে সাহায্য করতে পারে। + +প্রাথমিক সিঙ্কের সময়, আর্কাইভ মোডে ক্লায়েন্টরা জেনেসিস থেকে প্রতিটি লেনদেন সম্পাদন করবে। এক্সিকিউশনের গতি বেশিরভাগই CPU দ্বারা সীমিত, তাই একটি দ্রুততর CPU প্রাথমিক সিঙ্কের সময় সাহায্য করতে পারে। একটি গড় ভোক্তা কম্পিউটারে, প্রাথমিক সিঙ্ক এক মাস পর্যন্ত সময় নিতে পারে। + +## আরও পড়ুন {#further-reading} + +- [ইথেরিয়াম সম্পূর্ণ নোড বনাম আর্কাইভ নোড](https://www.quicknode.com/guides/infrastructure/ethereum-full-node-vs-archive-node) - _কুইকনোড, সেপ্টেম্বর ২০২২_ +- [আপনার নিজের ইথেরিয়াম আর্কাইভ নোড তৈরি করা](https://tjayrush.medium.com/building-your-own-ethereum-archive-node-72c014affc09) - _থমাস জে রাশ, আগস্ট ২০২১_ +- [পরিষেবা হিসাবে Erigon, Erigon-এর RPC এবং TrueBlocks (স্ক্রেপ এবং API) কীভাবে সেট আপ করবেন](https://magnushansson.xyz/blog_posts/crypto_defi/2022-01-10-Erigon-Trueblocks) _– ম্যাগনাস হ্যানসন, সেপ্টেম্বর ২০২২-এ আপডেট করা হয়েছে_ + +## সম্পর্কিত বিষয় {#related-topics} + +- [নোড এবং ক্লায়েন্ট](/developers/docs/nodes-and-clients/) +- [একটি নোড চালানো](/developers/docs/nodes-and-clients/run-a-node/) diff --git a/public/content/translations/bn/developers/docs/nodes-and-clients/bootnodes/index.md b/public/content/translations/bn/developers/docs/nodes-and-clients/bootnodes/index.md new file mode 100644 index 00000000000..4be6be63fa8 --- /dev/null +++ b/public/content/translations/bn/developers/docs/nodes-and-clients/bootnodes/index.md @@ -0,0 +1,31 @@ +--- +title: "ইথেরিয়াম বুটনোডে ভূমিকা" +description: "বুটনোডগুলি বোঝার জন্য আপনার প্রয়োজনীয় প্রাথমিক তথ্য" +lang: bn +--- + +যখন একটি নতুন নোড ইথেরিয়াম নেটওয়ার্কে যোগ দেয়, তখন নতুন পিয়ারদের আবিষ্কার করার জন্য এটিকে ইতিমধ্যেই নেটওয়ার্কে থাকা নোডগুলির সাথে সংযোগ স্থাপন করতে হয়। ইথেরিয়াম নেটওয়ার্কে এই এন্ট্রি পয়েন্টগুলিকে বুটনোড বলা হয়। ক্লায়েন্টদের মধ্যে সাধারণত বুটনোডগুলির একটি তালিকা হার্ডকোড করা থাকে। এই বুটনোডগুলি সাধারণত ইথেরিয়াম ফাইন্ডেশনের ডেভঅপস টিম বা ক্লায়েন্ট টিম নিজেরাই চালায়। মনে রাখবেন যে বুটনোডগুলি স্ট্যাটিক নোডের মতো নয়। স্ট্যাটিক নোডগুলিকে বারবার কল করা হয়, যেখানে বুটনোডগুলিকে কেবল তখনই কল করা হয় যদি সংযোগ করার জন্য যথেষ্ট পিয়ার না থাকে এবং একটি নোডকে কিছু নতুন সংযোগ বুটস্ট্র্যাপ করতে হয়। + +## একটি বুটনোডের সাথে সংযোগ করুন {#connect-to-a-bootnode} + +বেশিরভাগ ক্লায়েন্টের একটি বিল্টইন বুটনোডের তালিকা থাকে, তবে আপনি নিজের বুটনোডও চালাতে চাইতে পারেন, বা ক্লায়েন্টের হার্ডকোডেড তালিকার অংশ নয় এমন একটি ব্যবহার করতে পারেন। এই ক্ষেত্রে, আপনি আপনার ক্লায়েন্ট শুরু করার সময় সেগুলি নির্দিষ্ট করতে পারেন, যেমনটি নিচে দেখানো হয়েছে (উদাহরণটি Geth-এর জন্য, অনুগ্রহ করে আপনার ক্লায়েন্টের নথিপত্র দেখুন): + +``` +geth --bootnodes "enode://@:" +``` + +## একটি বুটনোড চালান {#run-a-bootnode} + +বুটনোডগুলি সম্পূর্ণ নোড যা NAT-এর ([Network Address Translation](https://www.geeksforgeeks.org/network-address-translation-nat/)) পিছনে নেই। প্রতিটি সম্পূর্ণ নোড একটি বুটনোড হিসাবে কাজ করতে পারে যতক্ষণ না এটি সর্বজনীনভাবে উপলব্ধ থাকে। + +আপনি যখন একটি নোড শুরু করেন, তখন এটি আপনার [enode](/developers/docs/networking-layer/network-addresses/#enode) লগ করা উচিত, যা একটি সর্বজনীন শনাক্তকারী যা অন্যরা আপনার নোডের সাথে সংযোগ করতে ব্যবহার করতে পারে। + +enode সাধারণত প্রতিটি রিস্টার্টে পুনরায় তৈরি করা হয়, তাই আপনার বুটনোডের জন্য একটি স্থায়ী enode কীভাবে তৈরি করবেন সে সম্পর্কে আপনার ক্লায়েন্টের নথিপত্র দেখতে ভুলবেন না। + +একটি ভাল বুটনোড হওয়ার জন্য এটির সাথে সংযোগ করতে পারে এমন পিয়ারের সর্বোচ্চ সংখ্যা বাড়ানো একটি ভাল ধারণা। অনেক পিয়ারের সাথে একটি বুটনোড চালানো ব্যান্ডউইথের প্রয়োজনীয়তাকে উল্লেখযোগ্যভাবে বাড়িয়ে তুলবে। + +## উপলব্ধ বুটনোড {#available-bootnodes} + +go-ethereum-এর মধ্যে বিল্টইন বুটনোডের একটি তালিকা [এখানে](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go#L23) পাওয়া যাবে। এই বুটনোডগুলি ইথেরিয়াম ফাইন্ডেশন এবং go-ethereum টিম দ্বারা রক্ষণাবেক্ষণ করা হয়। + +স্বেচ্ছাসেবকদের দ্বারা রক্ষণাবেক্ষণ করা বুটনোডগুলির অন্যান্য তালিকা উপলব্ধ আছে। অনুগ্রহ করে নিশ্চিত করুন যে সর্বদা অন্তত একটি অফিসিয়াল বুটনোড অন্তর্ভুক্ত করা হয়েছে, অন্যথায় আপনি একটি এক্লিপ্স অ্যাটাকের শিকার হতে পারেন। diff --git a/public/content/translations/bn/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/bn/developers/docs/nodes-and-clients/client-diversity/index.md new file mode 100644 index 00000000000..e1a7caa174d --- /dev/null +++ b/public/content/translations/bn/developers/docs/nodes-and-clients/client-diversity/index.md @@ -0,0 +1,132 @@ +--- +title: "ক্লায়েন্ট বৈচিত্র্য" +description: "Ethereum ক্লায়েন্ট বৈচিত্র্যের গুরুত্বের একটি উচ্চ স্তরের ব্যাখ্যা।" +lang: bn +sidebarDepth: 2 +--- + +একটি Ethereum নোডের আচরণ এটি যে ক্লায়েন্ট সফ্টওয়্যার চালায় তার দ্বারা নিয়ন্ত্রিত হয়। বেশ কয়েকটি প্রোডাকশন-লেভেলের Ethereum ক্লায়েন্ট রয়েছে, প্রতিটি আলাদা দল দ্বারা বিভিন্ন ভাষায় তৈরি এবং রক্ষণাবেক্ষণ করা হয়। ক্লায়েন্টগুলি একটি সাধারণ স্পেসিফিকেশনে তৈরি করা হয়েছে যা নিশ্চিত করে যে ক্লায়েন্টরা নির্বিঘ্নে একে অপরের সাথে যোগাযোগ করে এবং একই কার্যকারিতা রয়েছে এবং একটি সমতুল্য ব্যবহারকারীর অভিজ্ঞতা প্রদান করে। যাইহোক, এই মুহূর্তে নোড জুড়ে ক্লায়েন্টদের বন্টন এই নেটওয়ার্ক শক্তিশালীকরণের পূর্ণ সম্ভাবনাকে কাজে লাগানোর জন্য যথেষ্ট সমান নয়। আদর্শগতভাবে, ব্যবহারকারীরা নেটওয়ার্কে যতটা সম্ভব ক্লায়েন্ট বৈচিত্র্য আনতে বিভিন্ন ক্লায়েন্ট জুড়ে মোটামুটি সমানভাবে বিভক্ত হয়। + +## পূর্বশর্ত {#prerequisites} + +আপনি যদি ইতিমধ্যেই নোড এবং ক্লায়েন্টগুলি কী তা না বোঝেন, তাহলে [নোড এবং ক্লায়েন্ট](/developers/docs/nodes-and-clients/) দেখুন। গ্লসারিতে [এক্সিকিউশন](/glossary/#execution-layer) এবং [কনসেন্সাস](/glossary/#consensus-layer) লেয়ারগুলি সংজ্ঞায়িত করা হয়েছে। + +## একাধিক ক্লায়েন্ট কেন আছে? {#why-multiple-clients} + +একাধিক, স্বাধীনভাবে বিকশিত এবং রক্ষণাবেক্ষণ করা ক্লায়েন্ট বিদ্যমান কারণ ক্লায়েন্ট বৈচিত্র্য নেটওয়ার্ককে আক্রমণ এবং বাগের বিরুদ্ধে আরও স্থিতিস্থাপক করে তোলে। একাধিক ক্লায়েন্ট Ethereum-এর জন্য একটি অনন্য শক্তি - অন্যান্য ব্লকচেইন একটি একক ক্লায়েন্টের অভ্রান্ততার উপর নির্ভর করে। যাইহোক, একাধিক ক্লায়েন্ট উপলব্ধ থাকাই যথেষ্ট নয়, সেগুলিকে কমিউনিটি দ্বারা গ্রহণ করতে হবে এবং মোট সক্রিয় নোডগুলিকে তাদের মধ্যে তুলনামূলকভাবে সমানভাবে বিতরণ করতে হবে। + +## ক্লায়েন্ট বৈচিত্র্য কেন গুরুত্বপূর্ণ? {#client-diversity-importance} + +অনেকগুলি স্বাধীনভাবে বিকশিত এবং রক্ষণাবেক্ষণ করা ক্লায়েন্ট থাকা একটি বিকেন্দ্রীভূত নেটওয়ার্কের স্বাস্থ্যের জন্য অত্যাবশ্যক। আসুন কারণগুলো অন্বেষণ করি। + +### বাগ {#bugs} + +Ethereum নোডগুলির একটি সংখ্যালঘুকে প্রতিনিধিত্ব করার সময় একটি পৃথক ক্লায়েন্টের একটি বাগ নেটওয়ার্কের জন্য কম ঝুঁকির। অনেক ক্লায়েন্ট জুড়ে নোডগুলির মোটামুটি সমান বন্টনের সাথে, বেশিরভাগ ক্লায়েন্টের একটি ভাগ করা সমস্যায় ভোগার সম্ভাবনা কম, এবং ফলস্বরূপ, নেটওয়ার্কটি আরও শক্তিশালী। + +### আক্রমণের বিরুদ্ধে স্থিতিস্থাপকতা {#resilience} + +ক্লায়েন্ট বৈচিত্র্য আক্রমণের বিরুদ্ধে স্থিতিস্থাপকতাও প্রদান করে। উদাহরণস্বরূপ, একটি আক্রমণ যা [একটি নির্দিষ্ট ক্লায়েন্টকে](https://twitter.com/vdWijden/status/1437712249926393858) চেইনের একটি নির্দিষ্ট শাখায় নিয়ে যাওয়ার জন্য প্রতারণা করে তা সফল হওয়ার সম্ভাবনা কম কারণ অন্যান্য ক্লায়েন্টদের একই উপায়ে শোষণযোগ্য হওয়ার সম্ভাবনা কম এবং ক্যানোনিকাল চেইনটি ত্রুটিমুক্ত থাকে। কম ক্লায়েন্ট বৈচিত্র্য প্রভাবশালী ক্লায়েন্টের উপর একটি হ্যাকের সাথে যুক্ত ঝুঁকি বাড়ায়। ক্লায়েন্ট বৈচিত্র্য ইতিমধ্যেই নেটওয়ার্কে ক্ষতিকারক আক্রমণের বিরুদ্ধে একটি গুরুত্বপূর্ণ প্রতিরক্ষা হিসাবে প্রমাণিত হয়েছে, উদাহরণস্বরূপ, 2016 সালে সাংহাই ডিনায়েল-অফ-সার্ভিস আক্রমণটি সম্ভব হয়েছিল কারণ আক্রমণকারীরা প্রভাবশালী ক্লায়েন্টকে (Geth) প্রতি ব্লকে হাজার হাজার বার একটি ধীরগতির ডিস্ক i/o অপারেশন চালানোর জন্য প্রতারণা করতে সক্ষম হয়েছিল। কারণ বিকল্প ক্লায়েন্টরাও অনলাইনে ছিল যারা দুর্বলতা ভাগ করে নেয়নি, Ethereum আক্রমণ প্রতিহত করতে এবং Geth-এর দুর্বলতা সংশোধন করার সময় কাজ চালিয়ে যেতে সক্ষম হয়েছিল। + +### প্রুফ-অফ-স্টেক ফাইনালিটি {#finality} + +Ethereum নোডের 33% এর বেশি সহ একটি কনসেন্সাস ক্লায়েন্টের একটি বাগ কনসেন্সাস লেয়ারকে চূড়ান্ত করা থেকে আটকাতে পারে, যার অর্থ ব্যবহারকারীরা বিশ্বাস করতে পারে না যে লেনদেনগুলি কোনও সময়ে ফিরিয়ে দেওয়া বা পরিবর্তন করা হবে না। এটি Ethereum-এর উপরে নির্মিত অনেক অ্যাপের জন্য, বিশেষ করে DeFi-এর জন্য খুব সমস্যাযুক্ত হবে। + + আরও খারাপ, দুই-তৃতীয়াংশ সংখ্যাগরিষ্ঠতা সহ একটি ক্লায়েন্টের একটি গুরুতর বাগ চেইনটিকে ভুলভাবে বিভক্ত এবং চূড়ান্ত করতে পারে, যার ফলে একটি বড় সংখ্যক ভ্যালিডেটর একটি অবৈধ চেইনে আটকে যায়। যদি তারা সঠিক চেইনে পুনরায় যোগ দিতে চায়, তবে এই ভ্যালিডেটররা স্ল্যাশিং বা একটি ধীর এবং ব্যয়বহুল স্বেচ্ছায় প্রত্যাহার এবং পুনরায় সক্রিয়করণের মুখোমুখি হয়। একটি স্ল্যাশিং এর মাত্রা দোষী নোডের সংখ্যার সাথে পরিমাপ করা হয় যার দুই-তৃতীয়াংশ সংখ্যাগরিষ্ঠতা সর্বাধিক (32 ETH) স্ল্যাশ করা হয়। + +যদিও এগুলি অসম্ভাব্য পরিস্থিতি, Ethereum ইকোসিস্টেম সক্রিয় নোড জুড়ে ক্লায়েন্টদের বন্টন সমান করে তাদের ঝুঁকি কমাতে পারে। আদর্শগতভাবে, কোনো কনসেন্সাস ক্লায়েন্টই মোট নোডের 33% শেয়ারে পৌঁছাতে পারবে না। + +### ভাগ করা দায়িত্ব {#responsibility} + +সংখ্যাগরিষ্ঠ ক্লায়েন্ট থাকার একটি মানবিক মূল্যও রয়েছে। এটি একটি ছোট ডেভেলপমেন্ট দলের উপর অতিরিক্ত চাপ এবং দায়িত্ব চাপিয়ে দেয়। ক্লায়েন্ট বৈচিত্র্য যত কম হবে, সংখ্যাগরিষ্ঠ ক্লায়েন্ট রক্ষণাবেক্ষণকারী ডেভেলপারদের উপর দায়িত্বের বোঝা তত বেশি হবে। এই দায়িত্বটি একাধিক দলে ছড়িয়ে দেওয়া Ethereum-এর নোডগুলির নেটওয়ার্ক এবং এর লোকজনের নেটওয়ার্ক উভয়ের স্বাস্থ্যের জন্যই ভাল। + +## বর্তমান ক্লায়েন্ট বৈচিত্র্য {#current-client-diversity} + +### এক্সিকিউশন ক্লায়েন্ট {#execution-clients-breakdown} + + + +### কনসেন্সাস ক্লায়েন্ট {#consensus-clients-breakdown} + + + +এই ডায়াগ্রামটি পুরানো হতে পারে — আপ-টু-ডেট তথ্যের জন্য [ethernodes.org](https://ethernodes.org) এবং [clientdiversity.org](https://clientdiversity.org)-এ যান। + +উপরের দুটি পাই চার্ট এক্সিকিউশন এবং কনসেন্সাস লেয়ারের জন্য বর্তমান ক্লায়েন্ট বৈচিত্র্যের স্ন্যাপশট দেখায় (অক্টোবর 2025-এ লেখার সময়)। ক্লায়েন্ট বৈচিত্র্য বছরের পর বছর ধরে উন্নত হয়েছে, এবং এক্সিকিউশন লেয়ারে [Geth](https://geth.ethereum.org/)-এর আধিপত্য হ্রাস পেয়েছে, যেখানে [Nethermind](https://www.nethermind.io/nethermind-client) খুব কাছাকাছি দ্বিতীয়, [Besu](https://besu.hyperledger.org/) তৃতীয় এবং [Erigon](https://github.com/ledgerwatch/erigon) চতুর্থ, এবং অন্যান্য ক্লায়েন্টরা নেটওয়ার্কের 3% এরও কম অংশ নিয়ে গঠিত। কনসেন্সাস লেয়ারে সর্বাধিক ব্যবহৃত ক্লায়েন্ট—[Lighthouse](https://lighthouse.sigmaprime.io/)—দ্বিতীয় সর্বাধিক ব্যবহৃত ক্লায়েন্টের খুব কাছাকাছি। [Prysm](https://prysmaticlabs.com/#projects) এবং [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) যথাক্রমে ~31% এবং ~14% গঠন করে, এবং অন্যান্য ক্লায়েন্ট খুব কমই ব্যবহৃত হয়। + +এক্সিকিউশন লেয়ারের ডেটা ২৬-অক্টোবর-২০২৫ তারিখে [supermajority.info](https://supermajority.info/) থেকে পাওয়া গেছে। [মাইকেল স্প্রুলের](https://github.com/sigp/blockprint) কাছ থেকে কনসেন্সাস ক্লায়েন্টদের জন্য ডেটা পাওয়া গেছে। কনসেন্সাস ক্লায়েন্টের ডেটা পাওয়া আরও কঠিন কারণ কনসেন্সাস লেয়ার ক্লায়েন্টদের কাছে সবসময় দ্ব্যর্থহীন ট্রেস থাকে না যা তাদের সনাক্ত করতে ব্যবহার করা যেতে পারে। ডেটা একটি শ্রেণিবিন্যাস অ্যালগরিদম ব্যবহার করে তৈরি করা হয়েছিল যা কখনও কখনও কিছু সংখ্যালঘু ক্লায়েন্টকে বিভ্রান্ত করে (আরও বিশদ বিবরণের জন্য [এখানে](https://twitter.com/sproulM_/status/1440512518242197516) দেখুন)। উপরের ডায়াগ্রামে, এই ধরনের দ্ব্যর্থবোধক শ্রেণীবিন্যাসকে একটি দ্বৈত লেবেল (যেমন Nimbus/Teku) হিসেবে দেখানো হয়েছে। তথাপি, এটা স্পষ্ট যে নেটওয়ার্কের বেশিরভাগই Prysm চালাচ্ছে। শুধুমাত্র স্ন্যাপশট হওয়া সত্ত্বেও, ডায়াগ্রামের মানগুলি ক্লায়েন্ট বৈচিত্র্যের বর্তমান অবস্থার একটি ভাল সাধারণ ধারণা প্রদান করে। + +কনসেন্সাস লেয়ারের জন্য আপ-টু-ডেট ক্লায়েন্ট ডাইভারসিটি ডেটা এখন [clientdiversity.org](https://clientdiversity.org/)-এ উপলব্ধ। + +## এক্সিকিউশন লেয়ার {#execution-layer} + +এখন পর্যন্ত, ক্লায়েন্ট বৈচিত্র্য নিয়ে কথোপকথন মূলত কনসেন্সাস লেয়ারের উপর দৃষ্টি নিবদ্ধ করেছে। যাইহোক, এক্সিকিউশন ক্লায়েন্ট [Geth](https://geth.ethereum.org) বর্তমানে সমস্ত নোডের প্রায় 85% এর জন্য দায়ী। এই শতাংশটি কনসেন্সাস ক্লায়েন্টদের মতো একই কারণে সমস্যাযুক্ত। উদাহরণস্বরূপ, লেনদেন হ্যান্ডলিং বা এক্সিকিউশন পেলোড তৈরিতে প্রভাব ফেলে এমন Geth-এর একটি বাগ কনসেন্সাস ক্লায়েন্টদের সমস্যাযুক্ত বা বাগযুক্ত লেনদেন চূড়ান্ত করতে পারে। অতএব, Ethereum এক্সিকিউশন ক্লায়েন্টদের আরও সমান বন্টনের সাথে স্বাস্থ্যকর হবে, আদর্শভাবে কোনও ক্লায়েন্ট নেটওয়ার্কের 33% এর বেশি প্রতিনিধিত্ব করবে না। + +## একটি সংখ্যালঘু ক্লায়েন্ট ব্যবহার করুন {#use-minority-client} + +ক্লায়েন্ট বৈচিত্র্য মোকাবেলার জন্য সংখ্যালঘু ক্লায়েন্ট বেছে নেওয়ার জন্য স্বতন্ত্র ব্যবহারকারীদের চেয়ে বেশি প্রয়োজন - এর জন্য ভ্যালিডেটর পুল এবং প্রধান ডিএ্যাপস এবং এক্সচেঞ্জের মতো প্রতিষ্ঠানগুলিকেও ক্লায়েন্ট পরিবর্তন করতে হবে। যাইহোক, সমস্ত ব্যবহারকারী বর্তমান ভারসাম্যহীনতা সংশোধন করতে এবং সমস্ত উপলব্ধ Ethereum সফ্টওয়্যার ব্যবহারকে স্বাভাবিক করার জন্য তাদের অংশ করতে পারে। The Merge-এর পরে, সমস্ত নোড অপারেটরদের একটি এক্সিকিউশন ক্লায়েন্ট এবং একটি কনসেন্সাস ক্লায়েন্ট চালাতে হবে। নীচে প্রস্তাবিত ক্লায়েন্টদের সংমিশ্রণ বেছে নেওয়া ক্লায়েন্টের বৈচিত্র্য বাড়াতে সাহায্য করবে। + +### এক্সিকিউশন ক্লায়েন্ট {#execution-clients} + +- [Besu](https://www.hyperledger.org/use/besu) +- [Nethermind](https://downloads.nethermind.io/) +- [Erigon](https://github.com/ledgerwatch/erigon) +- [Go-Ethereum](https://geth.ethereum.org/) +- [Reth](https://reth.rs/) + +### কনসেন্সাস ক্লায়েন্ট {#consensus-clients} + +- [Nimbus](https://nimbus.team/) +- [Lighthouse](https://github.com/sigp/lighthouse) +- [Teku](https://consensys.io/teku) +- [Lodestar](https://github.com/ChainSafe/lodestar) +- [Prysm](https://prysm.offchainlabs.com/docs/) +- [Grandine](https://docs.grandine.io/) + +প্রযুক্তিগত ব্যবহারকারীরা সংখ্যালঘু ক্লায়েন্টদের জন্য আরও টিউটোরিয়াল এবং ডকুমেন্টেশন লিখে এবং তাদের নোড-অপারেটিং সহকর্মীদের প্রভাবশালী ক্লায়েন্টদের থেকে দূরে সরে যেতে উত্সাহিত করে এই প্রক্রিয়াটিকে ত্বরান্বিত করতে সহায়তা করতে পারে। একটি সংখ্যালঘু কনসেন্সাস ক্লায়েন্টে স্যুইচ করার জন্য নির্দেশিকা [clientdiversity.org](https://clientdiversity.org/) এ উপলব্ধ। + +## ক্লায়েন্ট বৈচিত্র্য ড্যাশবোর্ড {#client-diversity-dashboards} + +বেশ কয়েকটি ড্যাশবোর্ড এক্সিকিউশন এবং কনসেন্সাস লেয়ারের জন্য রিয়েল-টাইম ক্লায়েন্ট বৈচিত্র্যের পরিসংখ্যান দেয়। + +**কনসেন্সাস লেয়ার:** + +- [Rated.network](https://www.rated.network/) +- [clientdiversity.org](https://clientdiversity.org/) + +**এক্সিকিউশন লেয়ার:** + +- [supermajority.info](https://supermajority.info//) +- [Ethernodes](https://ethernodes.org/) + +## আরও পড়ুন {#further-reading} + +- [Ethereum-এর কনসেন্সাস লেয়ারে ক্লায়েন্ট বৈচিত্র্য](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) +- [Ethereum Merge: নিজের ঝুঁকিতে সংখ্যাগরিষ্ঠ ক্লায়েন্ট চালান!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _ড্যানক্র্যাড ফিস্ট, ২৪ মার্চ ২০২২_ +- [ক্লায়েন্ট বৈচিত্র্যের গুরুত্ব](https://our.status.im/the-importance-of-client-diversity/) +- [ইথেরিয়াম নোড পরিষেবাগুলির তালিকা](https://ethereumnodes.com/) +- [ক্লায়েন্ট বৈচিত্র্য সমস্যার \"পাঁচটি কেন\"](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) +- [Ethereum ডাইভারসিটি এবং কিভাবে এর সমাধান করা যায় (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) +- [clientdiversity.org](https://clientdiversity.org/) + +## সম্পর্কিত বিষয় {#related-topics} + +- [একটি Ethereum নোড চালান](/run-a-node/) +- [নোড এবং ক্লায়েন্ট](/developers/docs/nodes-and-clients/) diff --git a/public/content/translations/bn/developers/docs/nodes-and-clients/index.md b/public/content/translations/bn/developers/docs/nodes-and-clients/index.md new file mode 100644 index 00000000000..7a2e496ce85 --- /dev/null +++ b/public/content/translations/bn/developers/docs/nodes-and-clients/index.md @@ -0,0 +1,319 @@ +--- +title: "নোড ও ক্লায়েন্ট" +description: "ইথেরিয়াম নোড এবং ক্লায়েন্ট সফ্টওয়্যারের একটি সংক্ষিপ্ত বিবরণ, সাথে কীভাবে একটি নোড সেট আপ করতে হয় এবং কেন আপনার এটি করা উচিত।" +lang: bn +sidebarDepth: 2 +--- + +ইথেরিয়াম হল কম্পিউটারগুলির (নোড হিসাবে পরিচিত) একটি বিতরণ করা নেটওয়ার্ক যা এমন সফ্টওয়্যার চালায় যা ব্লক এবং লেনদেনের ডেটা যাচাই করতে পারে। আপনার কম্পিউটারকে একটি ইথেরিয়াম নোডে পরিণত করার জন্য সফ্টওয়্যারটি অবশ্যই আপনার কম্পিউটারে চালাতে হবে। একটি নোড তৈরি করার জন্য দুটি পৃথক সফ্টওয়্যার ('ক্লায়েন্ট' হিসাবে পরিচিত) প্রয়োজন। + +## পূর্বশর্ত {#prerequisites} + +গভীরে যাওয়ার আগে এবং একটি ইথেরিয়াম ক্লায়েন্টের নিজস্ব উদাহরণ চালানোর আগে আপনার একটি পিয়ার-টু-পিয়ার নেটওয়ার্কের ধারণা এবং [EVM-এর মূল বিষয়গুলি](/developers/docs/evm/) বোঝা উচিত। আমাদের [ইথেরিয়ামের পরিচিতি](/developers/docs/intro-to-ethereum/) দেখুন। + +আপনি যদি নোডের বিষয়ে নতুন হন, তাহলে আমরা প্রথমে [একটি ইথেরিয়াম নোড চালানো](/run-a-node)-র উপর আমাদের ব্যবহারকারী-বান্ধব ভূমিকাটি দেখার পরামর্শ দিই। + +## নোড এবং ক্লায়েন্ট কী? {#what-are-nodes-and-clients} + +একটি "নোড" হল ইথেরিয়াম ক্লায়েন্ট সফ্টওয়্যারের যেকোনো উদাহরণ যা ইথেরিয়াম সফ্টওয়্যার চালিত অন্যান্য কম্পিউটারের সাথে সংযুক্ত থাকে এবং একটি নেটওয়ার্ক তৈরি করে। একটি ক্লায়েন্ট হল ইথেরিয়ামের একটি বাস্তবায়ন যা প্রোটোকলের নিয়ম অনুসারে ডেটা যাচাই করে এবং নেটওয়ার্ককে সুরক্ষিত রাখে। একটি নোডকে দুটি ক্লায়েন্ট চালাতে হয়: একটি কনসেন্সাস ক্লায়েন্ট এবং একটি এক্সিকিউশন ক্লায়েন্ট। + +- এক্সিকিউশন ক্লায়েন্ট (এক্সিকিউশন ইঞ্জিন, EL ক্লায়েন্ট বা পূর্বে Eth1 ক্লায়েন্ট নামেও পরিচিত) নেটওয়ার্কে সম্প্রচারিত নতুন লেনদেন শোনে, সেগুলিকে EVM-এ কার্যকর করে এবং সমস্ত বর্তমান ইথেরিয়াম ডেটার সর্বশেষ অবস্থা এবং ডেটাবেস ধারণ করে। +- কনসেন্সাস ক্লায়েন্ট (বিকন নোড, CL ক্লায়েন্ট বা পূর্বে Eth2 ক্লায়েন্ট নামেও পরিচিত) প্রুফ-অফ-স্টেক কনসেন্সাস অ্যালগরিদম প্রয়োগ করে, যা এক্সিকিউশন ক্লায়েন্ট থেকে যাচাইকৃত ডেটার উপর ভিত্তি করে নেটওয়ার্ককে চুক্তিতে পৌঁছাতে সক্ষম করে। এছাড়াও একটি তৃতীয় সফ্টওয়্যার আছে, যা একটি 'ভ্যালিডেটর' হিসাবে পরিচিত যা কনসেন্সাস ক্লায়েন্টে যোগ করা যেতে পারে, যা একটি নোডকে নেটওয়ার্ক সুরক্ষিত করতে অংশগ্রহণ করার অনুমতি দেয়। + +এই ক্লায়েন্টরা ইথেরিয়াম চেইনের হেডের ট্র্যাক রাখতে একসাথে কাজ করে এবং ব্যবহারকারীদের ইথেরিয়াম নেটওয়ার্কের সাথে যোগাযোগ করতে দেয়। একাধিক সফ্টওয়্যার একসাথে কাজ করার এই মডুলার ডিজাইনকে [এনক্যাপসুলেটেড কমপ্লেক্সিটি](https://vitalik.eth.limo/general/2022/02/28/complexity.html) বলা হয়। এই পদ্ধতিটি নির্বিঘ্নে [দ্য মার্জ](/roadmap/merge) কার্যকর করা সহজ করেছে, ক্লায়েন্ট সফ্টওয়্যার বজায় রাখা এবং বিকাশ করা সহজ করে তোলে এবং পৃথক ক্লায়েন্টদের পুনঃব্যবহার সক্ষম করে, উদাহরণস্বরূপ, [লেয়ার 2 ইকোসিস্টেমে](/layer-2/)। + +![কাপলড এক্সিকিউশন এবং কনসেন্সাস ক্লায়েন্ট](./eth1eth2client.png) +একটি কাপলড এক্সিকিউশন এবং কনসেন্সাস ক্লায়েন্টের সরলীকৃত ডায়াগ্রাম। + +### ক্লায়েন্ট বৈচিত্র্য {#client-diversity} + +[এক্সিকিউশন ক্লায়েন্ট](/developers/docs/nodes-and-clients/#execution-clients) এবং [কনসেন্সাস ক্লায়েন্ট](/developers/docs/nodes-and-clients/#consensus-clients) উভয়ই বিভিন্ন দল দ্বারা তৈরি বিভিন্ন প্রোগ্রামিং ভাষায় বিদ্যমান। + +একাধিক ক্লায়েন্ট বাস্তবায়ন একটি একক কোডবেসের উপর নির্ভরতা হ্রাস করে নেটওয়ার্ককে আরও শক্তিশালী করে তুলতে পারে। আদর্শ লক্ষ্য হল কোনও ক্লায়েন্টের নেটওয়ার্কে আধিপত্য ছাড়াই বৈচিত্র্য অর্জন করা, যার ফলে ব্যর্থতার একটি সম্ভাব্য একক পয়েন্ট দূর করা যায়। +ভাষার বৈচিত্র্য একটি বিস্তৃত ডেভেলপার সম্প্রদায়কে আমন্ত্রণ জানায় এবং তাদের পছন্দের ভাষায় ইন্টিগ্রেশন তৈরি করতে দেয়। + +[ক্লায়েন্ট ডাইভারসিটি](/developers/docs/nodes-and-clients/client-diversity/) সম্পর্কে আরও জানুন। + +এই বাস্তবায়নগুলির মধ্যে যা সাধারণ তা হল তারা সবাই একটি একক স্পেসিফিকেশন অনুসরণ করে। স্পেসিফিকেশনগুলি নির্দেশ করে যে ইথেরিয়াম নেটওয়ার্ক এবং ব্লকচেইন কীভাবে কাজ করে। প্রতিটি প্রযুক্তিগত বিবরণ সংজ্ঞায়িত করা হয়েছে এবং স্পেসিফিকেশনগুলি এভাবে পাওয়া যেতে পারে: + +- মূলত, [ইথেরিয়াম ইয়েলো পেপার](https://ethereum.github.io/yellowpaper/paper.pdf) +- [এক্সিকিউশন স্পেকস](https://github.com/ethereum/execution-specs/) +- [কনসেন্সাস স্পেকস](https://github.com/ethereum/consensus-specs) +- [EIPs](https://eips.ethereum.org/) বিভিন্ন [নেটওয়ার্ক আপগ্রেডে](/ethereum-forks/) প্রয়োগ করা হয়েছে + +### নেটওয়ার্কে নোড ট্র্যাক করা {#network-overview} + +একাধিক ট্র্যাকার ইথেরিয়াম নেটওয়ার্কের নোডগুলির একটি রিয়েল-টাইম ওভারভিউ অফার করে। মনে রাখবেন যে বিকেন্দ্রীভূত নেটওয়ার্কগুলির প্রকৃতির কারণে, এই ক্রলারগুলি কেবল নেটওয়ার্কের একটি সীমিত ভিউ প্রদান করতে পারে এবং বিভিন্ন ফলাফল রিপোর্ট করতে পারে। + +- Etherscan দ্বারা [নোডের মানচিত্র](https://etherscan.io/nodetracker) +- Bitfly দ্বারা [Ethernodes](https://ethernodes.org/) +- Chainsafe দ্বারা [Nodewatch](https://www.nodewatch.io/), কনসেন্সাস নোড ক্রল করা +- [Monitoreth](https://monitoreth.io/) - MigaLabs দ্বারা, একটি ডিস্ট্রিবিউটেড নেটওয়ার্ক মনিটরিং টুল +- [সাপ্তাহিক নেটওয়ার্ক স্বাস্থ্য প্রতিবেদন](https://probelab.io) - ProbeLab দ্বারা, [নেবুলা ক্রলার](https://github.com/dennis-tra/nebula) এবং অন্যান্য টুল ব্যবহার করে + +## নোডের প্রকারভেদ {#node-types} + +আপনি যদি [নিজের নোড চালাতে](/developers/docs/nodes-and-clients/run-a-node/) চান, তাহলে আপনার বোঝা উচিত যে বিভিন্ন ধরণের নোড রয়েছে যা ভিন্নভাবে ডেটা ব্যবহার করে। আসলে, ক্লায়েন্টরা তিন ধরণের নোড চালাতে পারে: লাইট, ফুল এবং আর্কাইভ। এছাড়াও বিভিন্ন সিঙ্ক কৌশলের বিকল্প রয়েছে যা দ্রুত সিঙ্ক্রোনাইজেশন সময় সক্ষম করে। সিঙ্ক্রোনাইজেশন বলতে বোঝায় এটি কত দ্রুত ইথেরিয়ামের অবস্থার সবচেয়ে আপ-টু-ডেট তথ্য পেতে পারে। + +### ফুল নোড {#full-node} + +ফুল নোডগুলি ব্লকচেইনের একটি ব্লক-বাই-ব্লক বৈধতা সম্পাদন করে, যার মধ্যে প্রতিটি ব্লকের জন্য ব্লক বডি এবং স্টেট ডেটা ডাউনলোড এবং যাচাই করা অন্তর্ভুক্ত। ফুল নোডের বিভিন্ন ক্লাস রয়েছে - কিছু জেনেসিস ব্লক থেকে শুরু হয় এবং ব্লকচেইনের পুরো ইতিহাসে প্রতিটি একক ব্লক যাচাই করে। অন্যরা তাদের যাচাইকরণ একটি সাম্প্রতিক ব্লক থেকে শুরু করে যা তারা বিশ্বাস করে যে বৈধ (যেমন, Geth-এর 'স্ন্যাপ সিঙ্ক')। যাচাইকরণ যেখানেই শুরু হোক না কেন, ফুল নোডগুলি শুধুমাত্র তুলনামূলকভাবে সাম্প্রতিক ডেটার (সাধারণত সবচেয়ে সাম্প্রতিক 128টি ব্লক) একটি স্থানীয় কপি রাখে, যা ডিস্ক স্পেস বাঁচানোর জন্য পুরানো ডেটা মুছে ফেলার অনুমতি দেয়। প্রয়োজনে পুরোনো ডেটা পুনরায় তৈরি করা যেতে পারে। + +- সম্পূর্ণ ব্লকচেইন ডেটা সঞ্চয় করে (যদিও এটি পর্যায়ক্রমে ছাঁটাই করা হয় তাই একটি ফুল নোড জেনেসিস পর্যন্ত সমস্ত স্টেট ডেটা সঞ্চয় করে না) +- ব্লক যাচাইকরণে অংশ নেয়, সমস্ত ব্লক এবং স্টেট যাচাই করে। +- সমস্ত স্টেট হয় স্থানীয় স্টোরেজ থেকে পুনরুদ্ধার করা যেতে পারে বা একটি ফুল নোড দ্বারা 'স্ন্যাপশট' থেকে পুনরায় তৈরি করা যেতে পারে। +- নেটওয়ার্কে পরিষেবা দেয় এবং অনুরোধের ভিত্তিতে ডেটা সরবরাহ করে। + +### আর্কাইভ নোড {#archive-node} + +আর্কাইভ নোডগুলি হল ফুল নোড যা জেনেসিস থেকে প্রতিটি ব্লক যাচাই করে এবং ডাউনলোড করা কোনও ডেটা কখনও মুছে ফেলে না। + +- ফুল নোডে রাখা সবকিছু সঞ্চয় করে এবং ঐতিহাসিক স্টেটের একটি আর্কাইভ তৈরি করে। আপনার যদি ব্লক #4,000,000-এ একটি অ্যাকাউন্টের ব্যালেন্সের মতো কিছু জিজ্ঞাসা করার প্রয়োজন হয়, বা ট্রেসিং ব্যবহার করে যাচাই না করে সহজভাবে এবং নির্ভরযোগ্যভাবে আপনার নিজের লেনদেন সেট পরীক্ষা করার প্রয়োজন হয়, তবে এটির প্রয়োজন। +- এই ডেটা টেরাবাইট ইউনিটের প্রতিনিধিত্ব করে, যা আর্কাইভ নোডগুলিকে গড় ব্যবহারকারীদের জন্য কম আকর্ষণীয় করে তোলে তবে ব্লক এক্সপ্লোরার, ওয়ালেট বিক্রেতা এবং চেইন অ্যানালিটিক্সের মতো পরিষেবাগুলির জন্য সুবিধাজনক হতে পারে। + +আর্কাইভ ছাড়া অন্য কোনো মোডে ক্লায়েন্ট সিঙ্ক করার ফলে ছাঁটাই করা ব্লকচেইন ডেটা হবে। এর মানে হল, সমস্ত ঐতিহাসিক স্টেটের কোনো আর্কাইভ নেই তবে ফুল নোড প্রয়োজনে সেগুলি তৈরি করতে সক্ষম। + +[আর্কাইভ নোড](/developers/docs/nodes-and-clients/archive-nodes) সম্পর্কে আরও জানুন। + +### লাইট নোড {#light-node} + +প্রতিটি ব্লক ডাউনলোড করার পরিবর্তে, লাইট নোডগুলি কেবল ব্লক হেডার ডাউনলোড করে। এই হেডারগুলিতে ব্লকগুলির বিষয়বস্তু সম্পর্কে সংক্ষিপ্ত তথ্য থাকে। লাইট নোডের প্রয়োজনীয় অন্য যেকোনো তথ্য একটি ফুল নোড থেকে অনুরোধ করা হয়। লাইট নোড তখন ব্লক হেডারগুলিতে স্টেট রুটের বিপরীতে তারা যে ডেটা পায় তা স্বাধীনভাবে যাচাই করতে পারে। লাইট নোড ব্যবহারকারীদেরকে শক্তিশালী হার্ডওয়্যার বা ফুল নোড চালানোর জন্য প্রয়োজনীয় উচ্চ ব্যান্ডউইথ ছাড়াই ইথেরিয়াম নেটওয়ার্কে অংশগ্রহণ করতে সক্ষম করে। অবশেষে, লাইট নোডগুলি মোবাইল ফোন বা এমবেডেড ডিভাইসে চলতে পারে। লাইট নোডগুলি কনসেন্সাসে অংশ নেয় না (অর্থাৎ, তারা ভ্যালিডেটর হতে পারে না), তবে তারা একটি ফুল নোডের মতো একই কার্যকারিতা এবং নিরাপত্তা গ্যারান্টি সহ ইথেরিয়াম ব্লকচেইনে অ্যাক্সেস করতে পারে। + +লাইট ক্লায়েন্টগুলি ইথেরিয়ামের জন্য সক্রিয় বিকাশের একটি ক্ষেত্র এবং আমরা শীঘ্রই কনসেন্সাস লেয়ার এবং এক্সিকিউশন লেয়ারের জন্য নতুন লাইট ক্লায়েন্ট দেখার আশা করি। +[গসিপ নেটওয়ার্ক](https://www.ethportal.net/) এর মাধ্যমে লাইট ক্লায়েন্ট ডেটা সরবরাহ করার সম্ভাব্য রুটও রয়েছে। এটি সুবিধাজনক কারণ গসিপ নেটওয়ার্ক অনুরোধ পরিবেশন করার জন্য ফুল নোডের প্রয়োজন ছাড়াই লাইট নোডগুলির একটি নেটওয়ার্ক সমর্থন করতে পারে। + +ইথেরিয়াম এখনও লাইট নোডের একটি বড় জনসংখ্যা সমর্থন করে না, তবে লাইট নোড সমর্থন একটি এমন ক্ষেত্র যা অদূর ভবিষ্যতে দ্রুত বিকশিত হবে বলে আশা করা হচ্ছে। বিশেষ করে, [Nimbus](https://nimbus.team/), [Helios](https://github.com/a16z/helios), এবং [LodeStar](https://lodestar.chainsafe.io/)-এর মতো ক্লায়েন্টরা বর্তমানে লাইট নোডগুলিতে খুব বেশি মনোনিবেশ করছে। + +## আমার কেন একটি ইথেরিয়াম নোড চালানো উচিত? {#why-should-i-run-an-ethereum-node} + +একটি নোড চালানো আপনাকে সরাসরি, বিশ্বাসহীনভাবে এবং ব্যক্তিগতভাবে ইথেরিয়াম ব্যবহার করার অনুমতি দেয় এবং একই সাথে নেটওয়ার্ককে আরও শক্তিশালী এবং বিকেন্দ্রীভূত রেখে সমর্থন করে। + +### আপনার জন্য সুবিধা {#benefits-to-you} + +আপনার নিজের নোড চালানো আপনাকে একটি ব্যক্তিগত, স্বয়ংসম্পূর্ণ এবং বিশ্বাসহীন পদ্ধতিতে ইথেরিয়াম ব্যবহার করতে সক্ষম করে। আপনাকে নেটওয়ার্ককে বিশ্বাস করার দরকার নেই কারণ আপনি আপনার ক্লায়েন্টের সাথে নিজেই ডেটা যাচাই করতে পারেন। "বিশ্বাস করবেন না, যাচাই করুন" একটি জনপ্রিয় ব্লকচেইন মন্ত্র। + +- আপনার নোড নিজেই কনসেন্সাস নিয়মগুলির বিরুদ্ধে সমস্ত লেনদেন এবং ব্লক যাচাই করে। এর মানে হল আপনাকে নেটওয়ার্কের অন্য কোনও নোডের উপর নির্ভর করতে হবে না বা তাদের পুরোপুরি বিশ্বাস করতে হবে না। +- আপনি আপনার নিজের নোডের সাথে একটি ইথেরিয়াম ওয়ালেট ব্যবহার করতে পারেন। আপনি আরও সুরক্ষিতভাবে এবং ব্যক্তিগতভাবে ডিএ্যাপস ব্যবহার করতে পারেন কারণ আপনাকে মধ্যস্থতাকারীদের কাছে আপনার ঠিকানা এবং ব্যালেন্স ফাঁস করতে হবে না। সবকিছু আপনার নিজের ক্লায়েন্ট দিয়ে পরীক্ষা করা যেতে পারে। [MetaMask](https://metamask.io), [Frame](https://frame.sh/), এবং [অন্যান্য অনেক ওয়ালেট](/wallets/find-wallet/) RPC-আমদানি অফার করে, যা তাদের আপনার নোড ব্যবহার করার অনুমতি দেয়। +- আপনি অন্যান্য পরিষেবাগুলি চালাতে এবং স্ব-হোস্ট করতে পারেন যা ইথেরিয়াম থেকে ডেটার উপর নির্ভর করে। উদাহরণস্বরূপ, এটি একটি বিকন চেইন ভ্যালিডেটর, লেয়ার 2-এর মতো সফ্টওয়্যার, অবকাঠামো, ব্লক এক্সপ্লোরার, পেমেন্ট প্রসেসর ইত্যাদি হতে পারে। +- আপনি আপনার নিজস্ব কাস্টম [RPC এন্ডপয়েন্ট](/developers/docs/apis/json-rpc/) প্রদান করতে পারেন। আপনি এমনকি এই এন্ডপয়েন্টগুলি প্রকাশ্যে সম্প্রদায়ের কাছে অফার করতে পারেন যাতে তারা বড় সেন্ট্রালাইজড প্রদানকারীদের এড়াতে পারে। +- আপনি **ইন্টার-প্রসেস কমিউনিকেশনস (IPC)** ব্যবহার করে আপনার নোডের সাথে সংযোগ স্থাপন করতে পারেন বা আপনার প্রোগ্রামকে একটি প্লাগইন হিসাবে লোড করার জন্য নোডটি পুনরায় লিখতে পারেন। এটি কম লেটেন্সি প্রদান করে, যা অনেক সাহায্য করে, যেমন, ওয়েব3 লাইব্রেরি ব্যবহার করে প্রচুর ডেটা প্রক্রিয়া করার সময় বা যখন আপনাকে যত দ্রুত সম্ভব আপনার লেনদেন প্রতিস্থাপন করতে হবে (যেমন, ফ্রন্টরানিং)। +- আপনি নেটওয়ার্ক সুরক্ষিত করতে এবং পুরস্কার অর্জন করতে সরাসরি ETH স্টেক করতে পারেন। শুরু করতে [একক স্টেকিং](/staking/solo/) দেখুন। + +![আপনার অ্যাপ্লিকেশন এবং নোডের মাধ্যমে আপনি কীভাবে ইথেরিয়াম অ্যাক্সেস করবেন](./nodes.png) + +### নেটওয়ার্কের সুবিধা {#network-benefits} + +ইথেরিয়ামের স্বাস্থ্য, নিরাপত্তা এবং কর্মক্ষম স্থিতিস্থাপকতার জন্য বিভিন্ন ধরণের নোড থাকা গুরুত্বপূর্ণ। + +- ফুল নোডগুলি কনসেন্সাস নিয়মগুলি প্রয়োগ করে যাতে তাদের এমন ব্লকগুলি গ্রহণ করতে প্রতারিত করা না যায় যা সেগুলি অনুসরণ করে না। এটি নেটওয়ার্কে অতিরিক্ত নিরাপত্তা প্রদান করে কারণ যদি সমস্ত নোড লাইট নোড হত, যা সম্পূর্ণ যাচাই করে না, তবে ভ্যালিডেটররা নেটওয়ার্কে আক্রমণ করতে পারত। +- [প্রুফ-অফ-স্টেক](/developers/docs/consensus-mechanisms/pos/#what-is-pos)-এর ক্রিপ্টো-অর্থনৈতিক প্রতিরক্ষা অতিক্রমকারী একটি আক্রমণের ক্ষেত্রে, সৎ চেইন অনুসরণ করতে বেছে নেওয়া ফুল নোডগুলির দ্বারা একটি সামাজিক পুনরুদ্ধার করা যেতে পারে। +- নেটওয়ার্কে আরও নোড থাকার ফলে একটি আরও বৈচিত্র্যময় এবং শক্তিশালী নেটওয়ার্ক তৈরি হয়, যা বিকেন্দ্রীকরণের চূড়ান্ত লক্ষ্য, যা একটি সেন্সরশিপ-প্রতিরোধী এবং নির্ভরযোগ্য সিস্টেম সক্ষম করে। +- ফুল নোডগুলি লাইটওয়েট ক্লায়েন্টদের জন্য ব্লকচেইন ডেটাতে অ্যাক্সেস সরবরাহ করে যা এর উপর নির্ভর করে। লাইট নোডগুলি পুরো ব্লকচেইন সঞ্চয় করে না, পরিবর্তে তারা [ব্লক হেডারগুলিতে স্টেট রুট](/developers/docs/blocks/#block-anatomy) এর মাধ্যমে ডেটা যাচাই করে। প্রয়োজনে তারা ফুল নোড থেকে আরও তথ্য অনুরোধ করতে পারে। + +আপনি যদি একটি ফুল নোড চালান, তবে পুরো ইথেরিয়াম নেটওয়ার্ক এটি থেকে উপকৃত হয়, এমনকি যদি আপনি একটি ভ্যালিডেটর নাও চালান। + +## আপনার নিজের নোড চালানো {#running-your-own-node} + +আপনার নিজের ইথেরিয়াম ক্লায়েন্ট চালাতে আগ্রহী? + +নতুনদের জন্য বন্ধুত্বপূর্ণ পরিচিতির জন্য আরও জানতে আমাদের [একটি নোড চালান](/run-a-node) পৃষ্ঠাটি দেখুন। + +আপনি যদি আরও বেশি প্রযুক্তিগত ব্যবহারকারী হন, তাহলে কীভাবে [আপনার নিজের নোড চালু করবেন](/developers/docs/nodes-and-clients/run-a-node/) সে সম্পর্কে আরও বিশদ এবং বিকল্পগুলিতে ডুব দিন। + +## বিকল্প {#alternatives} + +আপনার নিজের নোড সেট আপ করতে আপনার সময় এবং রিসোর্স খরচ হতে পারে তবে আপনাকে সবসময় নিজের ইনস্ট্যান্স চালানোর প্রয়োজন নেই। এই ক্ষেত্রে, আপনি একটি তৃতীয় পক্ষের API প্রদানকারী ব্যবহার করতে পারেন। এই পরিষেবাগুলি ব্যবহার করার একটি সংক্ষিপ্ত বিবরণের জন্য, [পরিষেবা হিসাবে নোডগুলি](/developers/docs/nodes-and-clients/nodes-as-a-service/) দেখুন। + +যদি কেউ আপনার সম্প্রদায়ে একটি পাবলিক API সহ একটি ইথেরিয়াম নোড চালায়, আপনি কাস্টম RPC এর মাধ্যমে আপনার ওয়ালেটগুলিকে একটি কমিউনিটি নোডে নির্দেশ করতে পারেন এবং কিছু এলোমেলো বিশ্বস্ত তৃতীয় পক্ষের তুলনায় আরও বেশি গোপনীয়তা অর্জন করতে পারেন। + +অন্যদিকে, আপনি যদি একটি ক্লায়েন্ট চালান, আপনি এটি আপনার বন্ধুদের সাথে শেয়ার করতে পারেন যাদের এটির প্রয়োজন হতে পারে। + +## এক্সিকিউশন ক্লায়েন্ট {#execution-clients} + +ইথেরিয়াম সম্প্রদায় একাধিক ওপেন-সোর্স এক্সিকিউশন ক্লায়েন্ট (পূর্বে 'Eth1 ক্লায়েন্ট', বা শুধু 'ইথেরিয়াম ক্লায়েন্ট' নামে পরিচিত) রক্ষণাবেক্ষণ করে, যা বিভিন্ন দল বিভিন্ন প্রোগ্রামিং ভাষা ব্যবহার করে তৈরি করেছে। এটি নেটওয়ার্ককে আরও শক্তিশালী এবং আরও [বৈচিত্র্যময়](/developers/docs/nodes-and-clients/client-diversity/) করে তোলে। আদর্শ লক্ষ্য হল কোনো একক ব্যর্থতার বিন্দু কমাতে কোনো ক্লায়েন্টের আধিপত্য ছাড়াই বৈচিত্র্য অর্জন করা। + +এই টেবিলটি বিভিন্ন ক্লায়েন্টের সারসংক্ষেপ করে। তারা সবাই [ক্লায়েন্ট পরীক্ষা](https://github.com/ethereum/tests) পাস করে এবং নেটওয়ার্ক আপগ্রেডের সাথে আপডেট থাকার জন্য সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়। + +| ক্লায়েন্ট | ভাষা | অপারেটিং সিস্টেম | নেটওয়ার্ক | সিঙ্ক কৌশল | স্টেট ছাঁটাই | +| ------------------------------------------------------------------------------------------- | ------------------------ | -------------------------- | ------------------------ | ---------------------------------------------------------------------------------- | ------------------- | +| [Geth](https://geth.ethereum.org/) | যান | লিনাক্স, উইন্ডোজ, ম্যাকওএস | মেইননেট, সেপোলিয়া, হুডি | [স্ন্যাপ](#snap-sync), [ফুল](#full-sync) | আর্কাইভ, ছাঁটাই করা | +| [Nethermind](https://www.nethermind.io/) | C#, .NET | লিনাক্স, উইন্ডোজ, ম্যাকওএস | মেইননেট, সেপোলিয়া, হুডি | [স্ন্যাপ](#snap-sync) (পরিষেবা ছাড়া), ফাস্ট, [ফুল](#full-sync) | আর্কাইভ, ছাঁটাই করা | +| [Besu](https://besu.hyperledger.org/en/stable/) | জাভা | লিনাক্স, উইন্ডোজ, ম্যাকওএস | মেইননেট, সেপোলিয়া, হুডি | [স্ন্যাপ](#snap-sync), [ফাস্ট](#fast-sync), [ফুল](#full-sync) | আর্কাইভ, ছাঁটাই করা | +| [Erigon](https://github.com/ledgerwatch/erigon) | যান | লিনাক্স, উইন্ডোজ, ম্যাকওএস | মেইননেট, সেপোলিয়া, হুডি | [ফুল](#full-sync) | আর্কাইভ, ছাঁটাই করা | +| [Reth](https://reth.rs/) | রাস্ট | লিনাক্স, উইন্ডোজ, ম্যাকওএস | মেইননেট, সেপোলিয়া, হুডি | [ফুল](#full-sync) | আর্কাইভ, ছাঁটাই করা | +| [EthereumJS](https://github.com/ethereumjs/ethereumjs-monorepo) _(বিটা)_ | টাইপস্ক্রিপ্ট | লিনাক্স, উইন্ডোজ, ম্যাকওএস | সেপোলিয়া, হুডি | [ফুল](#full-sync) | ছাঁটাই করা | + +সমর্থিত নেটওয়ার্ক সম্পর্কে আরও জানতে, [ইথেরিয়াম নেটওয়ার্ক](/developers/docs/networks/) সম্পর্কে পড়ুন। + +প্রতিটি ক্লায়েন্টের নিজস্ব ব্যবহার এবং সুবিধা রয়েছে, তাই আপনার নিজের পছন্দের উপর ভিত্তি করে একটি বেছে নেওয়া উচিত। বৈচিত্র্য বিভিন্ন বৈশিষ্ট্য এবং ব্যবহারকারী দর্শকদের উপর বাস্তবায়ন ফোকাস করার অনুমতি দেয়। আপনি বৈশিষ্ট্য, সমর্থন, প্রোগ্রামিং ভাষা বা লাইসেন্সের উপর ভিত্তি করে একটি ক্লায়েন্ট বেছে নিতে পারেন। + +### Besu {#besu} + +হাইপারলেজার বেসু পাবলিক এবং অনুমতিপ্রাপ্ত নেটওয়ার্কের জন্য একটি এন্টারপ্রাইজ-গ্রেড ইথেরিয়াম ক্লায়েন্ট। এটি ট্রেসিং থেকে GraphQL পর্যন্ত সমস্ত ইথেরিয়াম মেইননেট বৈশিষ্ট্য চালায়, এর ব্যাপক পর্যবেক্ষণ রয়েছে এবং এটি ConsenSys দ্বারা সমর্থিত, উভয়ই উন্মুক্ত কমিউনিটি চ্যানেলে এবং উদ্যোগগুলির জন্য বাণিজ্যিক SLA-এর মাধ্যমে। এটি জাভাতে লেখা এবং অ্যাপাচি 2.0 লাইসেন্সপ্রাপ্ত। + +বেসুর বিস্তৃত [নথিপত্র](https://besu.hyperledger.org/en/stable/) আপনাকে এর বৈশিষ্ট্য এবং সেটআপের সমস্ত বিবরণ দিয়ে গাইড করবে। + +### Erigon {#erigon} + +Erigon, যা পূর্বে টার্বো-গেথ নামে পরিচিত ছিল, এটি গো ইথেরিয়ামের একটি ফর্ক হিসাবে শুরু হয়েছিল যা গতি এবং ডিস্ক-স্পেস দক্ষতার দিকে ভিত্তিক। Erigon হল ইথেরিয়ামের একটি সম্পূর্ণ পুনঃস্থাপিত বাস্তবায়ন, যা বর্তমানে Go-তে লেখা কিন্তু অন্যান্য ভাষায় বাস্তবায়ন উন্নয়নাধীন রয়েছে। Erigon-এর লক্ষ্য হল ইথেরিয়ামের একটি দ্রুত, আরও মডুলার এবং আরও অপ্টিমাইজড বাস্তবায়ন প্রদান করা। এটি প্রায় 2TB ডিস্ক স্পেস ব্যবহার করে 3 দিনেরও কম সময়ে একটি সম্পূর্ণ আর্কাইভ নোড সিঙ্ক করতে পারে। + +### গো ইথেরিয়াম {#geth} + +গো ইথেরিয়াম (সংক্ষেপে Geth) হল ইথেরিয়াম প্রোটোকলের মূল বাস্তবায়নগুলির মধ্যে একটি। বর্তমানে, এটি সবচেয়ে বিস্তৃত ক্লায়েন্ট যার সবচেয়ে বড় ব্যবহারকারী বেস এবং ব্যবহারকারী ও ডেভেলপারদের জন্য বিভিন্ন ধরনের টুলিং রয়েছে। এটি Go-তে লেখা, সম্পূর্ণরূপে ওপেন সোর্স এবং GNU LGPL v3-এর অধীনে লাইসেন্সপ্রাপ্ত। + +Geth সম্পর্কে আরও জানতে এর [নথিপত্র](https://geth.ethereum.org/docs/) দেখুন। + +### Nethermind {#nethermind} + +Nethermind হল C# .NET টেক স্ট্যাক দিয়ে তৈরি একটি ইথেরিয়াম বাস্তবায়ন, যা LGPL-3.0 দিয়ে লাইসেন্সপ্রাপ্ত এবং ARM সহ সমস্ত প্রধান প্ল্যাটফর্মে চলে। এটি দুর্দান্ত পারফরম্যান্স অফার করে: + +- একটি অপ্টিমাইজড ভার্চুয়াল মেশিন +- স্টেট অ্যাক্সেস +- নেটওয়ার্কিং এবং প্রোমিথিউস/গ্রাফানা ড্যাশবোর্ড, seq এন্টারপ্রাইজ লগিং সাপোর্ট, JSON-RPC ট্রেসিং এবং অ্যানালিটিক্স প্লাগইনের মতো সমৃদ্ধ বৈশিষ্ট্য। + +Nethermind-এর [বিস্তারিত নথিপত্র](https://docs.nethermind.io), শক্তিশালী ডেভ সাপোর্ট, একটি অনলাইন কমিউনিটি এবং প্রিমিয়াম ব্যবহারকারীদের জন্য 24/7 সাপোর্ট রয়েছে। + +### Reth {#reth} + +Reth (রাস্ট ইথেরিয়ামের সংক্ষিপ্ত রূপ) হল একটি ইথেরিয়াম ফুল নোড বাস্তবায়ন যা ব্যবহারকারী-বান্ধব, অত্যন্ত মডুলার, দ্রুত এবং দক্ষ হওয়ার উপর দৃষ্টি নিবদ্ধ করে। Reth মূলত Paradigm দ্বারা নির্মিত এবং চালিত হয়েছিল, এবং এটি অ্যাপাচি এবং এমআইটি লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত। + +Reth প্রোডাকশন-রেডি, এবং স্টেকিং বা হাই-আপটাইম পরিষেবার মতো মিশন-ক্রিটিক্যাল পরিবেশে ব্যবহারের জন্য উপযুক্ত। RPC, MEV, ইন্ডেক্সিং, সিমুলেশন এবং P2P কার্যকলাপের মতো ক্ষেত্রে যেখানে দুর্দান্ত মার্জিন সহ উচ্চ কার্যকারিতা প্রয়োজন সেখানে ভাল কাজ করে। + +[Reth Book](https://reth.rs/) বা [Reth GitHub repo](https://github.com/paradigmxyz/reth?tab=readme-ov-file#reth) দেখে আরও জানুন। + +### উন্নয়নাধীন {#execution-in-development} + +এই ক্লায়েন্টগুলি এখনও বিকাশের প্রাথমিক পর্যায়ে রয়েছে এবং এখনও প্রোডাকশন ব্যবহারের জন্য সুপারিশ করা হয় না। + +#### EthereumJS {#ethereumjs} + +EthereumJS এক্সিকিউশন ক্লায়েন্ট (EthereumJS) টাইপস্ক্রিপ্টে লেখা এবং বেশ কয়েকটি প্যাকেজ নিয়ে গঠিত, যার মধ্যে ব্লক, ট্রানজ্যাকশন এবং মার্কল-প্যাট্রিসিয়া ট্রাই ক্লাস দ্বারা প্রতিনিধিত্বকারী মূল ইথেরিয়াম প্রিমিটিভস এবং ইথেরিয়াম ভার্চুয়াল মেশিন (EVM), একটি ব্লকচেইন ক্লাস এবং DevP2P নেটওয়ার্কিং স্ট্যাকের একটি বাস্তবায়ন সহ মূল ক্লায়েন্ট উপাদান অন্তর্ভুক্ত রয়েছে। + +এর [নথিপত্র](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master) পড়ে এটি সম্পর্কে আরও জানুন। + +## কনসেন্সাস ক্লায়েন্ট {#consensus-clients} + +[কনসেন্সাস আপগ্রেড](/roadmap/beacon-chain/) সমর্থন করার জন্য একাধিক কনসেন্সাস ক্লায়েন্ট (পূর্বে 'Eth2' ক্লায়েন্ট হিসাবে পরিচিত) রয়েছে। তারা ফর্ক-চয়েস অ্যালগরিদম, অ্যাটেস্টেশন প্রক্রিয়াকরণ এবং [প্রুফ-অফ-স্টেক](/developers/docs/consensus-mechanisms/pos) পুরস্কার এবং জরিমানা পরিচালনা সহ সমস্ত কনসেন্সাস-সম্পর্কিত যুক্তির জন্য দায়ী। + +| ক্লায়েন্ট | ভাষা | অপারেটিং সিস্টেম | নেটওয়ার্ক | +| ------------------------------------------------------------- | ------------- | -------------------------- | ---------------------------------------------------------------- | +| [Lighthouse](https://lighthouse.sigmaprime.io/) | রাস্ট | লিনাক্স, উইন্ডোজ, ম্যাকওএস | বিকন চেইন, হুডি, পিয়ারমন্ট, সেপোলিয়া এবং আরও অনেক কিছু | +| [Lodestar](https://lodestar.chainsafe.io/) | টাইপস্ক্রিপ্ট | লিনাক্স, উইন্ডোজ, ম্যাকওএস | বিকন চেইন, হুডি, সেপোলিয়া এবং আরও অনেক কিছু | +| [Nimbus](https://nimbus.team/) | নিম | লিনাক্স, উইন্ডোজ, ম্যাকওএস | বিকন চেইন, হুডি, সেপোলিয়া এবং আরও অনেক কিছু | +| [Prysm](https://prysm.offchainlabs.com/docs/) | যান | লিনাক্স, উইন্ডোজ, ম্যাকওএস | বিকন চেইন, Gnosis, হুডি, পিয়ারমন্ট, সেপোলিয়া এবং আরও অনেক কিছু | +| [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) | জাভা | লিনাক্স, উইন্ডোজ, ম্যাকওএস | বিকন চেইন, Gnosis, হুডি, সেপোলিয়া এবং আরও অনেক কিছু | +| [Grandine](https://docs.grandine.io/) | রাস্ট | লিনাক্স, উইন্ডোজ, ম্যাকওএস | বিকন চেইন, হুডি, সেপোলিয়া এবং আরও অনেক কিছু | + +### Lighthouse {#lighthouse} + +Lighthouse হল একটি কনসেন্সাস ক্লায়েন্ট বাস্তবায়ন যা রাস্টে অ্যাপাচি-২.০ লাইসেন্সের অধীনে লেখা। এটি সিগমা প্রাইম দ্বারা রক্ষণাবেক্ষণ করা হয় এবং বিকন চেইন জেনেসিস থেকে স্থিতিশীল এবং প্রোডাকশন-রেডি। বিভিন্ন এন্টারপ্রাইজ, স্টেকিং পুল এবং ব্যক্তিরা এর উপর নির্ভর করে। ডেস্কটপ পিসি থেকে শুরু করে অত্যাধুনিক স্বয়ংক্রিয় স্থাপনা পর্যন্ত বিস্তৃত পরিবেশে সুরক্ষিত, কার্যক্ষম এবং আন্তঃক্রিয়াশীল হওয়াই এর লক্ষ্য। + +[Lighthouse Book](https://lighthouse-book.sigmaprime.io/)-এ নথিপত্র পাওয়া যাবে। + +### Lodestar {#lodestar} + +Lodestar হল একটি প্রোডাকশন-রেডি কনসেন্সাস ক্লায়েন্ট বাস্তবায়ন যা টাইপস্ক্রিপ্টে এলজিপিএল-৩.০ লাইসেন্সের অধীনে লেখা। এটি ChainSafe সিস্টেম দ্বারা রক্ষণাবেক্ষণ করা হয় এবং এটি একক-স্টেকার, ডেভেলপার এবং গবেষকদের জন্য নতুনতম কনসেন্সাস ক্লায়েন্ট। Lodestar একটি বিকন নোড এবং ভ্যালিডেটর ক্লায়েন্ট নিয়ে গঠিত যা ইথেরিয়াম প্রোটোকলের জাভাস্ক্রিপ্ট বাস্তবায়ন দ্বারা চালিত। Lodestar-এর লক্ষ্য হল লাইট ক্লায়েন্টদের সাথে ইথেরিয়ামের ব্যবহারযোগ্যতা উন্নত করা, ডেভেলপারদের একটি বৃহত্তর গোষ্ঠীর কাছে অ্যাক্সেসযোগ্যতা প্রসারিত করা এবং ইকোসিস্টেমের বৈচিত্র্যে আরও অবদান রাখা। + +[Lodestar ওয়েবসাইট](https://lodestar.chainsafe.io/)-এ আরও তথ্য পাওয়া যাবে। + +### Nimbus {#nimbus} + +Nimbus হল একটি কনসেন্সাস ক্লায়েন্ট বাস্তবায়ন যা নিম-এ অ্যাপাচি-২.০ লাইসেন্সের অধীনে লেখা। এটি একটি প্রোডাকশন-রেডি ক্লায়েন্ট যা একক-স্টেকার এবং স্টেকিং পুল দ্বারা ব্যবহৃত হয়। Nimbus রিসোর্স দক্ষতার জন্য ডিজাইন করা হয়েছে, যা স্থিতিশীলতা বা পুরস্কারের কার্যকারিতার সাথে আপস না করে রিসোর্স-সীমাবদ্ধ ডিভাইস এবং এন্টারপ্রাইজ অবকাঠামোতে সহজে চালানো সহজ করে তোলে। একটি হালকা রিসোর্স ফুটপ্রিন্ট মানে নেটওয়ার্ক যখন চাপে থাকে তখন ক্লায়েন্টের নিরাপত্তার একটি বৃহত্তর মার্জিন থাকে। + +[Nimbus ডক্স](https://nimbus.guide/)-এ আরও জানুন + +### Prysm {#prysm} + +Prysm হল একটি পূর্ণ-বৈশিষ্ট্যযুক্ত, ওপেন সোর্স কনসেন্সাস ক্লায়েন্ট যা Go-তে GPL-3.0 লাইসেন্সের অধীনে লেখা। এতে একটি ঐচ্ছিক ওয়েবঅ্যাপ UI রয়েছে এবং এটি বাড়িতে স্টেক করা এবং প্রাতিষ্ঠানিক উভয় ব্যবহারকারীর জন্য ব্যবহারকারীর অভিজ্ঞতা, নথিপত্র এবং কনফিগারযোগ্যতাকে অগ্রাধিকার দেয়। + +আরও জানতে [Prysm ডক্স](https://prysm.offchainlabs.com/docs/) দেখুন। + +### Teku {#teku} + +Teku হল আসল বিকন চেইন জেনেসিস ক্লায়েন্টদের মধ্যে একটি। সাধারণ লক্ষ্যগুলির (নিরাপত্তা, দৃঢ়তা, স্থিতিশীলতা, ব্যবহারযোগ্যতা, কার্যকারিতা) পাশাপাশি, Teku বিশেষভাবে বিভিন্ন কনসেন্সাস ক্লায়েন্ট মানগুলির সাথে সম্পূর্ণভাবে মেনে চলার লক্ষ্য রাখে। + +Teku খুব নমনীয় স্থাপনার বিকল্পগুলি অফার করে। বিকন নোড এবং ভ্যালিডেটর ক্লায়েন্টকে একটি একক প্রক্রিয়া হিসাবে একসাথে চালানো যেতে পারে, যা একক স্টেকারদের জন্য অত্যন্ত সুবিধাজনক, বা অত্যাধুনিক স্টেকিং অপারেশনের জন্য নোডগুলি আলাদাভাবে চালানো যেতে পারে। এছাড়াও, Teku সাইনিং কী নিরাপত্তা এবং স্ল্যাশিং সুরক্ষার জন্য [Web3Signer](https://github.com/ConsenSys/web3signer/) এর সাথে সম্পূর্ণরূপে আন্তঃক্রিয়াশীল। + +Teku জাভাতে লেখা এবং অ্যাপাচি 2.0 লাইসেন্সপ্রাপ্ত। এটি ConsenSys-এর প্রোটোকল টিম দ্বারা তৈরি করা হয়েছে যা বেসু এবং Web3Signer-এর জন্যও দায়ী। [Teku ডক্স](https://docs.teku.consensys.net/en/latest/)-এ আরও জানুন। + +### Grandine {#grandine} + +Grandine হল একটি কনসেন্সাস ক্লায়েন্ট বাস্তবায়ন, যা রাস্টে GPL-3.0 লাইসেন্সের অধীনে লেখা। এটি গ্র্যান্ডাইন কোর টিম দ্বারা রক্ষণাবেক্ষণ করা হয় এবং এটি দ্রুত, উচ্চ-কার্যক্ষম এবং হালকা। এটি রাস্পবেরি পাই-এর মতো কম-রিসোর্স ডিভাইসে চালিত একক স্টেকার থেকে শুরু করে হাজার হাজার ভ্যালিডেটর চালানো বড় প্রাতিষ্ঠানিক স্টেকার পর্যন্ত বিস্তৃত স্টেকারদের জন্য উপযুক্ত। + +[Grandine Book](https://docs.grandine.io/)-এ নথিপত্র পাওয়া যাবে। + +## সিঙ্ক্রোনাইজেশন মোড {#sync-modes} + +নেটওয়ার্কের বর্তমান ডেটা অনুসরণ এবং যাচাই করতে, ইথেরিয়াম ক্লায়েন্টকে সর্বশেষ নেটওয়ার্ক স্টেটের সাথে সিঙ্ক করতে হবে। এটি পিয়ারদের থেকে ডেটা ডাউনলোড করে, ক্রিপ্টোগ্রাফিকভাবে তাদের অখণ্ডতা যাচাই করে এবং একটি স্থানীয় ব্লকচেইন ডেটাবেস তৈরি করে করা হয়। + +সিঙ্ক্রোনাইজেশন মোডগুলি বিভিন্ন ট্রেড-অফ সহ এই প্রক্রিয়ার বিভিন্ন পদ্ধতির প্রতিনিধিত্ব করে। ক্লায়েন্টরা তাদের সিঙ্ক অ্যালগরিদম বাস্তবায়নেও ভিন্ন হয়। বাস্তবায়নের নির্দিষ্ট বিবরণের জন্য সর্বদা আপনার নির্বাচিত ক্লায়েন্টের অফিসিয়াল নথিপত্র দেখুন। + +### এক্সিকিউশন লেয়ার সিঙ্ক মোড {#execution-layer-sync-modes} + +এক্সিকিউশন লেয়ারটি বিভিন্ন ব্যবহারের ক্ষেত্রে উপযুক্ত করার জন্য বিভিন্ন মোডে চালানো যেতে পারে, ব্লকচেইনের ওয়ার্ল্ড স্টেট পুনরায় কার্যকর করা থেকে শুরু করে একটি বিশ্বস্ত চেকপয়েন্ট থেকে চেইনের ডগা দিয়ে সিঙ্ক করা পর্যন্ত। + +#### ফুল সিঙ্ক {#full-sync} + +একটি ফুল সিঙ্ক সমস্ত ব্লক (হেডার এবং ব্লক বডি সহ) ডাউনলোড করে এবং জেনেসিস থেকে প্রতিটি ব্লক কার্যকর করে ক্রমবর্ধমানভাবে ব্লকচেইনের স্টেট পুনরায় তৈরি করে। + +- প্রতিটি লেনদেন যাচাই করে বিশ্বাস কমায় এবং সর্বোচ্চ নিরাপত্তা প্রদান করে। +- ক্রমবর্ধমান লেনদেনের সংখ্যার সাথে, সমস্ত লেনদেন প্রক্রিয়া করতে দিন থেকে সপ্তাহ সময় লাগতে পারে। + +[আর্কাইভ নোড](#archive-node) প্রতিটি ব্লকের প্রতিটি লেনদেনের দ্বারা করা স্টেট পরিবর্তনের একটি সম্পূর্ণ ইতিহাস তৈরি করতে (এবং ধরে রাখতে) একটি ফুল সিঙ্ক সম্পাদন করে। + +#### ফাস্ট সিঙ্ক {#fast-sync} + +একটি ফুল সিঙ্কের মতো, একটি ফাস্ট সিঙ্ক সমস্ত ব্লক (হেডার, লেনদেন এবং রসিদ সহ) ডাউনলোড করে। যাইহোক, ঐতিহাসিক লেনদেনগুলি পুনরায় প্রক্রিয়া করার পরিবর্তে, একটি ফাস্ট সিঙ্ক রসিদগুলির উপর নির্ভর করে যতক্ষণ না এটি একটি সাম্প্রতিক হেডে পৌঁছায়, যখন এটি একটি ফুল নোড সরবরাহ করার জন্য ব্লক আমদানি এবং প্রক্রিয়াকরণে স্যুইচ করে। + +- ফাস্ট সিঙ্ক কৌশল। +- ব্যান্ডউইথ ব্যবহারের পক্ষে প্রক্রিয়াকরণের চাহিদা হ্রাস করে। + +#### স্ন্যাপ সিঙ্ক {#snap-sync} + +স্ন্যাপ সিঙ্কগুলিও চেইনকে ব্লক-বাই-ব্লক যাচাই করে। যাইহোক, জেনেসিস ব্লক থেকে শুরু করার পরিবর্তে, একটি স্ন্যাপ সিঙ্ক একটি সাম্প্রতিক 'বিশ্বস্ত' চেকপয়েন্ট থেকে শুরু হয় যা সত্যিকারের ব্লকচেইনের অংশ হিসাবে পরিচিত। নোড একটি নির্দিষ্ট বয়সের চেয়ে পুরানো ডেটা মুছে ফেলার সময় পর্যায়ক্রমিক চেকপয়েন্টগুলি সংরক্ষণ করে। এই স্ন্যাপশটগুলি চিরতরে সঞ্চয় করার পরিবর্তে প্রয়োজন অনুসারে স্টেট ডেটা পুনরায় তৈরি করতে ব্যবহৃত হয়। + +- দ্রুততম সিঙ্ক কৌশল, বর্তমানে ইথেরিয়াম মেইননেটে ডিফল্ট। +- নিরাপত্তার সাথে আপস না করে প্রচুর ডিস্ক ব্যবহার এবং নেটওয়ার্ক ব্যান্ডউইথ সাশ্রয় করে। + +[স্ন্যাপ সিঙ্ক সম্পর্কে আরও](https://github.com/ethereum/devp2p/blob/master/caps/snap.md)। + +#### লাইট সিঙ্ক {#light-sync} + +লাইট ক্লায়েন্ট মোড সমস্ত ব্লক হেডার, ব্লক ডেটা ডাউনলোড করে এবং এলোমেলোভাবে কিছু যাচাই করে। শুধুমাত্র বিশ্বস্ত চেকপয়েন্ট থেকে চেইনের ডগা সিঙ্ক করে। + +- ডেভেলপার এবং কনসেন্সাস মেকানিজমের উপর আস্থা রেখে শুধুমাত্র সর্বশেষ স্টেট পায়। +- ক্লায়েন্ট কয়েক মিনিটের মধ্যে বর্তমান নেটওয়ার্ক স্টেটের সাথে ব্যবহারের জন্য প্রস্তুত। + +**NB** লাইট সিঙ্ক এখনও প্রুফ-অফ-স্টেক ইথেরিয়ামের সাথে কাজ করে না - লাইট সিঙ্কের নতুন সংস্করণ শীঘ্রই পাঠানো উচিত! + +[লাইট ক্লায়েন্ট সম্পর্কে আরও](/developers/docs/nodes-and-clients/light-clients/) + +### কনসেন্সাস লেয়ার সিঙ্ক মোড {#consensus-layer-sync-modes} + +#### অপ্টিমিস্টিক সিঙ্ক {#optimistic-sync} + +অপ্টিমিস্টিক সিঙ্ক হল একটি পোস্ট-মার্জ সিঙ্ক্রোনাইজেশন কৌশল যা অপ্ট-ইন এবং ব্যাকওয়ার্ড সামঞ্জস্যপূর্ণ হওয়ার জন্য ডিজাইন করা হয়েছে, যা এক্সিকিউশন নোডগুলিকে প্রতিষ্ঠিত পদ্ধতির মাধ্যমে সিঙ্ক করতে দেয়। এক্সিকিউশন ইঞ্জিন সম্পূর্ণরূপে যাচাই না করে _আশাবাদীভাবে_ বিকন ব্লক আমদানি করতে পারে, সর্বশেষ হেড খুঁজে পেতে পারে, এবং তারপর উপরের পদ্ধতিগুলির সাথে চেইন সিঙ্ক করা শুরু করতে পারে। তারপর, এক্সিকিউশন ক্লায়েন্ট ধরা পড়ার পরে, এটি কনসেন্সাস ক্লায়েন্টকে বিকন চেইনের লেনদেনের বৈধতা সম্পর্কে অবহিত করবে। + +[অপ্টিমিস্টিক সিঙ্ক সম্পর্কে আরও](https://github.com/ethereum/consensus-specs/blob/dev/sync/optimistic.md) + +#### চেকপয়েন্ট সিঙ্ক {#checkpoint-sync} + +একটি চেকপয়েন্ট সিঙ্ক, যা দুর্বল সাবজেক্টিভিটি সিঙ্ক নামেও পরিচিত, একটি বিকন নোড সিঙ্ক করার জন্য একটি উচ্চতর ব্যবহারকারীর অভিজ্ঞতা তৈরি করে। এটি [দুর্বল সাবজেক্টিভিটি](/developers/docs/consensus-mechanisms/pos/weak-subjectivity/) অনুমানের উপর ভিত্তি করে যা জেনেসিসের পরিবর্তে একটি সাম্প্রতিক দুর্বল সাবজেক্টিভিটি চেকপয়েন্ট থেকে বিকন চেইন সিঙ্ক করতে সক্ষম করে। চেকপয়েন্ট সিঙ্কগুলি [জেনেসিস](/glossary/#genesis-block) থেকে সিঙ্ক করার মতো একই বিশ্বাস অনুমানের সাথে প্রাথমিক সিঙ্কের সময়কে উল্লেখযোগ্যভাবে দ্রুত করে তোলে। + +বাস্তবে, এর মানে হল আপনার নোড সাম্প্রতিক চূড়ান্ত স্টেট ডাউনলোড করতে একটি দূরবর্তী পরিষেবার সাথে সংযোগ করে এবং সেই বিন্দু থেকে ডেটা যাচাই করা চালিয়ে যায়। ডেটা সরবরাহকারী তৃতীয় পক্ষ বিশ্বস্ত এবং সাবধানে বাছাই করা উচিত। + +[চেকপয়েন্ট সিঙ্ক](https://notes.ethereum.org/@djrtwo/ws-sync-in-practice) সম্পর্কে আরও + +## আরও পড়ুন {#further-reading} + +- [ইথেরিয়াম 101 - পার্ট 2 - নোড বোঝা](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _– উইল বার্নস, 13 ফেব্রুয়ারী 2019_ +- [ইথেরিয়াম ফুল নোড চালানো: সামান্য অনুপ্রাণিতদের জন্য একটি নির্দেশিকা](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– জাস্টিন লেরক্স, 7 নভেম্বর 2019_ + +## সম্পর্কিত বিষয় {#related-topics} + +- [ব্লক](/developers/docs/blocks/) +- [নেটওয়ার্ক](/developers/docs/networks/) + +## সম্পর্কিত টিউটোরিয়াল {#related-tutorials} + +- [শুধু মাইক্রোএসডি কার্ড ফ্ল্যাশ করে আপনার রাস্পবেরি পাই 4 কে একটি ভ্যালিডেটর নোডে পরিণত করুন – ইনস্টলেশন গাইড](/developers/tutorials/run-node-raspberry-pi/) _– আপনার রাস্পবেরি পাই 4 ফ্ল্যাশ করুন, একটি ইথারনেট কেবল প্লাগ ইন করুন, এসএসডি ডিস্ক সংযোগ করুন এবং রাস্পবেরি পাই 4 কে একটি সম্পূর্ণ ইথেরিয়াম নোডে পরিণত করতে ডিভাইসটি চালু করুন যা এক্সিকিউশন লেয়ার (মেইননেট) এবং / অথবা কনসেন্সাস লেয়ার (বিকন চেইন / ভ্যালিডেটর) চালায়।_