প্রকল্প সম্পর্কে

Fuel Core হলো Fuel v2 প্রোটোকলের অফিসিয়াল Fuel ক্লায়েন্ট ইমপ্লিমেন্টেশন, যা Rust-এ একটি ফুল নোড হিসেবে লেখা। রিপোজিটরিতে নোড বাইনারি, সহায়ক ক্রেট এবং Fuel নোড বিল্ড, টেস্ট ও চালানোর টুলিং অন্তর্ভুক্ত। ## নেটওয়ার্ক সংস্করণ README-তে বিভিন্ন Fuel নেটওয়ার্কে বর্তমানে ব্যবহৃত সংস্করণ তালিকাভুক্ত: - Fuel Ignition: 0.48.1 - Testnet: 0.48.1 - Devnet: 0.48.1 রিপোজিটরিতে সোর্স থেকে Ignition নোড চালানোর জন্য v0.45.1 চেকআউট ট্যাগের উল্লেখও আছে, যা সর্বশেষ টেবিল সংস্করণ থেকে ভিন্ন হতে পারে। ## বিল্ডিং সিস্টেম প্রয়োজনীয়তার মধ্যে cmake, pkg-config, clang-এর মতো সাধারণ বিল্ড টুল এবং `wasm32-unknown-unknown` টার্গেটসহ Rust অন্তর্ভুক্ত। macOS (Homebrew), Debian (apt) এবং Arch (pacman)-এর জন্য প্ল্যাটফর্ম-নির্দিষ্ট সেটআপ কমান্ড দেওয়া আছে। বিল্ড কমান্ড: - `make build` — রিলিজ-ধাঁচের নোড বাইনারি বিল্ডের জন্য - `cargo xtask build` — ডেভেলপমেন্ট বিল্ডের জন্য, যা GraphQL স্কিমাও পুনরুৎপাদন করে ## নোড চালানো ডকুমেন্টেশন লিংক Fuel ডকসের দিকে নির্দেশ করে, যেখানে নোড অপারেটররা mainnet (Ignition) বা লোকাল নেটওয়ার্ক নোড চালাতে পারেন। `fuel-core run` দিয়ে সরাসরি নোড চালু করা যায়; উদাহরণে নন-পার্সিস্টেন্ট স্টেটের জন্য `--db-type in-memory` এবং স্বয়ংক্রিয় ব্লক প্রোডাকশন বন্ধ করতে `--poa-instant=false` ব্যবহার দেখানো হয়েছে। ডিফল্ট ডেটাবেস RocksDB, এবং in-memory মোড ব্যবহার না করলে স্টেট সংরক্ষিত থাকে। ## টেস্টিং ও কনট্রিবিউশন প্রজেক্টটি পরিবর্তন পুশ বা pull request খোলার আগে `source ci_checks.sh` চালানোর পরামর্শ দেয়। এই স্ক্রিপ্টটি টেস্টসহ সব CI চেক চালায়। এছাড়া ক্রেট প্রকাশ, পুরনো ডেটাবেস ত্রুটি (`rm -rf ~/.fuel/db`), macOS ফাইল ডেসক্রিপ্টর সীমা এবং `RUST_LOG` বা `HUMAN_LOGGING`-এর মাধ্যমে লগ লেভেল কনফিগারেশনের ট্রাবলশুটিং নোটও আছে। ## GraphQL সার্ভিস ক্লায়েন্ট কার্যকারিতা `/v1/graphql`-এ একটি GraphQL সার্ভিস এন্ডপয়েন্টের মাধ্যমে প্রকাশিত। বিল্ডের পর স্কিমা `crates/client/assets/schema.sdl`-এ পাওয়া যায়। Fuel স্পেসিফিকেশন অনুযায়ী সার্ভিসটি একটি `submit` মিউটেশন প্রত্যাশা করে, যা hex-এনকোডেড বাইনারি ফরম্যাটে একটি Transaction গ্রহণ করে। ## Docker ও Kubernetes ডিপ্লয়মেন্ট অ্যাসেট `deployment/`-এর অধীনে আছে, যেখানে একটি Dockerfile ও একটি Kubernetes ম্যানিফেস্ট রয়েছে। কমান্ডগুলো দেখায় কীভাবে Docker ইমেজ বিল্ড করতে হয় এবং Kubernetes ভলিউম, ডিপ্লয়মেন্ট ও সার্ভিস রিসোর্স তৈরি/মুছতে হয়।