মূল কনটেন্টে যান
এআই টিউটোরিয়াল

Node.js ও Telethon সেশন দিয়ে ATF Telegram Mini App স্বয়ংক্রিয় করুন

এই টিউটোরিয়ালে ATF Bot Automation v2 ইনস্টল করা, Telegram ক্রেডেনশিয়াল কনফিগার করা, Telethon সেশন লোড করা, TON ওয়ালেট তৈরি ও যাচাই করা এবং ইন্টার‌্যাক্টিভ বা স্বয়ংক্রিয়ভাবে চলা ওয়ার্কফ্লো পরিচালনা করার পদ্ধতি ব্যাখ্যা করা হয়েছে। এতে টাস্ক ওয়ার্কার, রেফারেল রেজিস্ট্রেশন, Turnstile সলভার, প্রক্সি, ড্যাশবোর্ড, উত্তোলন, পুনরায় চেষ্টা এবং প্রয়োজনীয় গোপনীয় তথ্য ব্যবস্থাপনার সতর্কতাও রয়েছে।

Node.js ও Telethon সেশন দিয়ে ATF Telegram Mini App স্বয়ংক্রিয় করুন

ATF Bot Automation v2 কী করে

ATF Bot Automation v2 হলো একটি Node.js বট, যা সক্রিয় Telethon SQLite সেশন ফাইলের মাধ্যমে ATF Telegram Mini App-এর সঙ্গে যোগাযোগ করে। কোনো স্থির query ফাইলে Telegram.WebApp.initData সংরক্ষণ করার পরিবর্তে, এটি প্রতিটি সাইকেলে নতুন Telegram WebView-এর অনুরোধ করে এবং Telegram-এর ফেরত দেওয়া নতুন initialization data ব্যবহার করে।

বটটি একাধিক অ্যাকাউন্ট সমর্থন করে এবং ATF লগইন, TON ওয়ালেট তৈরি ও যাচাই, মাইনিং ক্লেইম, ডায়নামিক টাস্ক, রেফারেল রেজিস্ট্রেশন, অ্যাকাউন্ট পরিসংখ্যান, ওয়ালেট পরিবর্তন এবং ATF উত্তোলন পরিচালনা করতে পারে। এটি প্রতিটি সাইকেলে আবার সেশন ডিরেক্টরি স্ক্যান করে, তাই সোর্স কোড পরিবর্তন না করেই নতুন যোগ করা অ্যাকাউন্ট শনাক্ত করা যায়।

প্রধান বৈশিষ্ট্য

  • প্রতিটি সাইকেলের জন্য নতুন Telegram WebView এবং Mini App initialization data।
  • Telethon SQLite সেশন ডেটাবেসে শুধু-পঠন অ্যাক্সেস; authentication key সাময়িকভাবে মেমোরিতে কপি করা হয়।
  • বাস্তব TON v4r2 mainnet ওয়ালেট ঠিকানা স্বয়ংক্রিয়ভাবে তৈরি।
  • ATF sync_wallet endpoint-এর মাধ্যমে TON Proof স্বাক্ষর এবং ওয়ালেট যাচাই।
  • যেসব অ্যাকাউন্ট সাময়িক busy বা ক্যাশড/ডিডুপ্লিকেটেড প্রতিক্রিয়া পায়, তাদের জন্য queued wallet worker।
  • eval ব্যবহার না করে Acorn দিয়ে ATF frontend configuration পার্স করে ডায়নামিক টাস্ক শনাক্তকরণ।
  • প্রতিটি সেশনের জন্য স্বতন্ত্র task worker এবং onboarding state।
  • Telegram messages.StartBot-এর মাধ্যমে রেফারেল রেজিস্ট্রেশন, যার মধ্যে Turnstile হ্যান্ডলিংও রয়েছে।
  • ATF অনুরোধের জন্য প্রতিটি অ্যাকাউন্টে আলাদা HTTP বা HTTPS proxy কনফিগারেশন।
  • লাইভ অটোমেশনের জন্য একটি Textual dashboard এবং আলাদা শুধু-পঠন পরিসংখ্যান dashboard।
  • ব্যালেন্স যাচাই, image CAPTCHA সমাধান, proxy rotation এবং উত্তোলনের ইতিহাস রিপোর্টসহ ধারাবাহিক উত্তোলন।
  • স্থিতিশীল request ID, নিয়ন্ত্রিত retry, সুশৃঙ্খল shutdown এবং লগে সংবেদনশীল মান ফিল্টারিং।

প্রয়োজনীয়তা

প্রকল্প ইনস্টল করার আগে নিচের বিষয়গুলো প্রস্তুত করুন:

  • Node.js 22.5 বা নতুন সংস্করণ।
  • https://my.telegram.org/apps থেকে নেওয়া আপনার নিজস্ব Telegram API ID এবং API hash।
  • .session দিয়ে শেষ হওয়া অন্তত একটি সক্রিয় Telethon SQLite সেশন ফাইল।
  • Textual dashboard বা স্থানীয় Turnstile solver ব্যবহার করতে চাইলে Python 3।
নিরাপত্তা সতর্কতা: কখনও আপনার Telegram API hash, Telethon সেশন ফাইল, proxy credentials, .env বা wallets-accounts.json শেয়ার করবেন না। ওয়ালেট ফাইলটিতে প্লেইনটেক্সট mnemonic এবং private key থাকে, যা এতে সংরক্ষিত প্রতিটি ওয়ালেটের ওপর সম্পূর্ণ নিয়ন্ত্রণ দেয়।

বট ইনস্টল ও কনফিগার করুন

1. Node.js নির্ভরতা ইনস্টল করুন

প্রকল্পের root-এ PowerShell খুলে প্যাকেজগুলো ইনস্টল করুন:

npm install
Copy-Item .env.example .env

2. Telegram API credentials যোগ করুন

.env সম্পাদনা করে আপনার Telegram অ্যাপ্লিকেশনের জন্য ইস্যু করা credentials লিখুন:

TELEGRAM_API_ID=12345678
TELEGRAM_API_HASH=your_api_hash

এই credentials অবশ্যই আপনার নিজের হতে হবে। সম্পূর্ণ environment ফাইলটি version control-এ commit করবেন না।

3. Telethon সেশন যোগ করুন

সব সক্রিয় SQLite সেশন ফাইল session ডিরেক্টরিতে রাখুন। ফাইলের নামটি বটের দেখানো অ্যাকাউন্ট লেবেল হয়ে যাবে।

session/
├── account1.session
├── account2.session
└── account3.session

প্রতিটি সাইকেলে ডিরেক্টরিটি স্ক্যান করা হয়। সেশন ডেটাবেস শুধু-পঠন মোডে খোলা হয় এবং একই অ্যাকাউন্ট সেশনে অ্যাক্সেস queue করা হয়, যাতে একসঙ্গে চলা অপারেশনগুলোর মধ্যে সংঘর্ষ না ঘটে।

4. ঐচ্ছিকভাবে Textual dashboard ইনস্টল করুন

মূল অটোমেশন অপশনটি navy, violet এবং coral রঙের একটি Textual dashboard দেখাতে পারে। এর Python নির্ভরতাগুলো একবার ইনস্টল করুন:

python -m pip install -r requirements-textual.txt

Python যদি nonstandard location-এ ইনস্টল করা থাকে, তাহলে ATF_PYTHON-এ python.exe-এর সম্পূর্ণ path সেট করুন।

বট চালান

ইন্টার‌্যাক্টিভ মেনু চালু করুন:

npm start

মেনুতে নিম্নলিখিত workflow রয়েছে:

[1] Run BOT
[2] Register accounts with referral code
[3] Replace TON wallet
[4] Check account statistics
[5] Withdraw ATF
[0] Exit

মূল অটোমেশন চালান

Textual dashboard সহ Node.js worker চালু করতে 1 অপশন নির্বাচন করুন। Dashboard-এ Telegram username, level, mined ATF, ATF holdings, pending rewards, wallet state, mining status, task claim, task countdown, referral result, Team Wallet-এর বিবরণ, connection এবং cycle summary দেখানো হয়।

গুরুত্বপূর্ণ dashboard control:

  • q: সুশৃঙ্খলভাবে থামিয়ে প্রস্থান করুন।
  • p: worker pause বা resume করুন।
  • r: সব অ্যাকাউন্টের পরিসংখ্যান parallel-এ refresh করুন।
  • c: log panel পরিষ্কার করুন।
  • PgUp এবং PgDn: লগে স্ক্রল করুন।
  • g এবং Shift+G: লগের শুরু বা শেষে যান।

dashboard_refresh_interval_minutes অনুযায়ী dashboard স্বয়ংক্রিয়ভাবে অ্যাকাউন্টের অবস্থা refresh করে; এর ডিফল্ট মান 10 মিনিট। সরাসরি চালু করতে ব্যবহার করুন:

npm run dashboard

Textual ছাড়া সাধারণ terminal log-এর জন্য চালান:

npm run start:run

Scheduler এবং non-interactive process-এর জন্যও এই command-টি উপযুক্ত entry point।

TON ওয়ালেট সেটআপ কীভাবে কাজ করে

কোনো অ্যাকাউন্ট লগইন করার পর বটটি ATF server-এর wallet_address এবং wallet_verified field পরীক্ষা করে। যাচাইকৃত কোনো ওয়ালেট না থাকলে, এটি নিচের ধাপগুলো অনুসরণ করে:

  1. মেইননেটের জন্য একটি TON v4r2 ওয়ালেট তৈরি করে।
  2. সঙ্গে সঙ্গে এর ঠিকানা, ২৪-শব্দের মেমনিক এবং প্রাইভেট কী wallets-accounts.json-এ সংরক্ষণ করে।
  3. ATF থেকে অফিসিয়াল TON Proof পেলোডের অনুরোধ করে।
  4. ATF WebApp ডোমেইনের জন্য প্রুফে স্বাক্ষর করে।
  5. প্রুফটি sync_wallet-এ পাঠায়।
  6. যাচাইকরণ সফল হওয়ার পরই নিরাপত্তা প্রশ্ন এবং মাইনিংয়ে এগিয়ে যায়।

যাচাইকরণ শুরু হওয়ার আগেই ওয়ালেটের রেকর্ড লেখা হয়। তাই সাময়িকভাবে busy প্রতিক্রিয়া পাওয়া বা কোনো অ্যাকাউন্ট স্থগিত থাকলেও নতুন তৈরি ওয়ালেট হারিয়ে যায় না।

ওয়ালেট যাচাই না হওয়া অবস্থায় ATF busy অথবা ক্যাশ করা/ডিডুপ্লিকেটেড প্রতিক্রিয়া দিলে, মূল প্রসেস wallet_busy_retry_seconds সময় পার হওয়ার পর একবার পুনরায় চেষ্টা করে; এর ডিফল্ট মান ১৫ সেকেন্ড। অ্যাকাউন্টটি তখনও ব্যস্ত থাকলে, মূল প্রসেস যাতে চলতে পারে সে জন্য সেটিকে একটি ওয়ালেট ওয়ার্কারে পাঠানো হয়।

একসঙ্গে সর্বোচ্চ wallet_worker_concurrencyটি ওয়ালেট জব চলতে পারে; ডিফল্ট মান ১০। অতিরিক্ত অ্যাকাউন্টগুলো FIFO কিউতে প্রবেশ করে। প্রতিটি সেশনের জন্য সর্বোচ্চ একটি সক্রিয় বা কিউতে থাকা ওয়ালেট ওয়ার্কার অনুমোদিত।

তৈরি করা ওয়ালেটটি একটি বাস্তব ওয়ালেট ঠিকানা, তবে অন-চেইন লেনদেনে ব্যবহার না করা পর্যন্ত এটি অন-চেইনে ডিপ্লয় করা হয় না। wallets-accounts.json নিরাপদে সংরক্ষণ করুন এবং সতর্কতার সঙ্গে ব্যাকআপ নিন। এই ফাইল যার কাছে থাকবে, সে ওয়ালেটগুলো নিয়ন্ত্রণ করতে পারবে।

encrypted_secrets থাকা পুরোনো রেকর্ডগুলো বট প্রথমবার খোলার সময় প্লেইনটেক্সট ফরম্যাটে মাইগ্রেট করা হয়। আগের WALLET_KEYSTORE_PASSWORD শুধু এই মাইগ্রেশনের জন্য প্রয়োজন।

রেফারেল নিবন্ধন কনফিগার করুন

অপশন 2 দিয়ে নতুন অ্যাকাউন্ট নিবন্ধন করতে চাইলে config.json-এ একটি রেফারেল কোড যোগ করুন:

{
  "referral_code": "610911604"
}

ওই কোড দিয়ে আগে প্রক্রিয়াকরণ করা হয়নি এমন প্রতিটি সেশনের জন্য বট Telegram messages.StartBot কল করে, একই স্টার্ট প্যারামিটার ব্যবহার করে WebView খোলে এবং ATF লগইনের সময় ref_code পাঠায়। সফল ফলাফলটি .state/referrals.json-এ হ্যাশ হিসেবে সংরক্ষণ করা হয়, ফলে প্রতিটি সাইকেলে একই StartBot অ্যাকশন পুনরাবৃত্তি হয় না।

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

ইন্টার‌্যাক্টিভ মেনু ছাড়াই সরাসরি রেফারেল নিবন্ধন চালান:

npm run register-referral

Turnstile-এর জন্য MultiBot ব্যবহার করুন

নতুন কোনো অ্যাকাউন্ট Cloudflare Turnstile চ্যালেঞ্জ পেলে, বট ATF থেকে অফিসিয়াল site_key সংগ্রহ করে MultiBot থেকে একটি টোকেনের অনুরোধ করতে পারে। এর API কী .env-এ যোগ করুন:

MULTIBOT_API_KEY=your_api_key

ডিফল্টভাবে অ্যাকাউন্টের প্রক্সি MultiBot-এ পাঠানো হয় না। সমাধানের সময় একই প্রক্সি IP ব্যবহার করতে হলে এটি সক্রিয় করুন:

MULTIBOT_USE_ACCOUNT_PROXY=1
এই সেটিং সক্রিয় করলে অ্যাকাউন্টের প্রক্সি ঠিকানা ও শংসাপত্র MultiBot-এ পাঠানো হবে। অপশনটি ব্যবহারের আগে এই তথ্য প্রকাশের বিষয়টি বিবেচনা করুন।

স্থানীয় Turnstile solver চালান

অন্তর্ভুক্ত স্থানীয় solver শুধু 127.0.0.1:8000-এ সংযুক্ত থাকে। Windows-এ Python 3 ইনস্টল করে প্রজেক্টের রুট থেকে solver প্রস্তুত করুন:

py -3 -m venv local-solver\.venv
local-solver\.venv\Scripts\python.exe -m pip install -r local-solver\requirements.txt
local-solver\.venv\Scripts\python.exe -m camoufox fetch
cd local-solver
.venv\Scripts\python.exe api_server.py --yes

টার্মিনালটি খোলা রাখুন। অন্য একটি টার্মিনালে বট চালান, অপশন 2 নির্বাচন করুন এবং স্থানীয় solver বেছে নিন। ইন্টার‌্যাকশন ছাড়া চালানোর জন্য কনফিগার করুন:

TURNSTILE_SOLVER=local
LOCAL_TURNSTILE_SOLVER_URL=http://127.0.0.1:8000

প্রতি-অ্যাকাউন্ট ওভাররাইড প্রয়োগ করুন

কোনো কোনো সেশনের আলাদা সেটিং প্রয়োজন হলে account-overrides.example.json কপি করে account-overrides.json তৈরি করুন। উদাহরণ:

{
  "account1.session": {
    "enabled": true,
    "proxy": "http://username:password@127.0.0.1:8080",
    "ready_task_ids": ["telegram_join"]
  }
}
  • enabled সেশনটি সক্রিয় বা নিষ্ক্রিয় করে।
  • proxy ATF অনুরোধের জন্য একটি HTTP বা HTTPS প্রক্সি নির্ধারণ করে। Telegram MTProto সরাসরি সংযোগ হিসেবেই থাকে।
  • ready_task_ids এমন একবারের কাজ শনাক্ত করে, যেগুলো ম্যানুয়ালি সত্যিই সম্পন্ন হয়েছে এবং এখন বট সেগুলো ক্লেইম করতে পারে।

ওভাররাইড ফাইল, প্রক্সি, এনভায়রনমেন্ট ফাইল, ক্যাশ, স্টেট এবং সেশন ফাইলগুলো Git দ্বারা উপেক্ষিত হয়।

ডায়নামিক টাস্ক কনফিগার করুন

ATF কোনো টাস্ক-লিস্ট এন্ডপয়েন্ট প্রকাশ করে না। এর পরিবর্তে, ফ্রন্টএন্ডে index.html-এর ইনলাইন JavaScript হিসেবে tasksConfig অন্তর্ভুক্ত থাকে। বট ওই পেজ ডাউনলোড করে এবং কোডটি কার্যকর না করেই Acorn দিয়ে এর অ্যাবস্ট্র্যাক্ট সিনট্যাক্স ট্রি পার্স করে। এটি শুধু টাস্ক ID, শিরোনাম, পুরস্কার, লিংক, কুলডাউন, ন্যূনতম সময়কাল এবং ম্যানুয়াল-রিভিউ স্ট্যাটাস বের করে।

পেজটি লোড করা না গেলে বট সর্বশেষ ক্যাশ ব্যবহার করে। ফ্রন্টএন্ড বা ক্যাশ কোনোটিই পাওয়া না গেলে, হার্ড-কোড করা বিকল্প ব্যবহার করার পরিবর্তে ওই সাইকেলের জন্য টাস্ক ক্লেইম নিষ্ক্রিয় করা হয়।

config.json-এ টাস্ক মোড হিসেবে নিচের যেকোনো একটি মান সেট করুন:

  • off: টাস্ক পড়বে বা প্রক্রিয়া করবে না।
  • report: টাস্ক শুরু বা ক্লেইম না করে উপলভ্য টাস্ক দেখাবে।
  • claim_ready: start_task-এর মাধ্যমে লিংক ক্লিক নিবন্ধন করবে, যোগ্য টাস্ক শুরু করবে, প্রতিটি minSeconds সময়কাল সমান্তরালে অপেক্ষা করবে এবং প্রস্তুত হলে টাস্ক ক্লেইম করবে।

ready_task_ids-এ তালিকাভুক্ত কাজগুলো আবার শুরু না করেই ক্লেইম কিউতে প্রবেশ করে। ধারাবাহিক প্রাথমিক লগইনের পর প্রতিটি অ্যাকাউন্ট একটি স্বতন্ত্র টাস্ক ওয়ার্কার পায়। ওই অ্যাকাউন্টের কুলডাউন শেষ না হওয়া পর্যন্ত ওয়ার্কারটি অপেক্ষা করে, সার্ভারের অবস্থা পুনরায় লোড করে, প্রস্তুত কাজগুলো প্রক্রিয়া করে এবং সর্বশেষ প্রতিক্রিয়ার ভিত্তিতে পরবর্তী রান নির্ধারণ করে।

কোনো প্রস্তুত কাজ শুরু বা ক্লেইম করা না গেলে, রিট্রাই task_ready_retry_seconds দ্বারা সীমিত থাকে, যার ডিফল্ট মান 60 সেকেন্ড। এটি দ্রুত পুনরাবৃত্তির লুপ প্রতিরোধ করে। loop_interval_hours সেটিংটি শুধু মাইনিং-ক্লেইম সাইকেলে প্রযোজ্য, টাস্ক শিডিউলিংয়ে নয়।

নিরাপদে TON Wallet প্রতিস্থাপন করুন

প্রতিস্থাপনের প্রয়োজন হতে পারে এমন ওয়ালেটের জন্য সেশন স্ক্যান করতে অপশন 3 নির্বাচন করুন, অথবা ইন্টার‌্যাক্টিভ টার্মিনাল থেকে npm run replace-wallets চালান। wallets-accounts.json-এ ইতিমধ্যে বৈধ মেমনিক এবং প্রাইভেট কী থাকা অ্যাকাউন্টগুলো বাদ দেওয়া হয়।

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

  • ওয়ালেট প্রতিস্থাপন করতে y লিখুন।
  • এড়িয়ে যেতে Enter চাপুন অথবা n লিখুন।
  • বাকি স্ক্যান বাতিল করতে q লিখুন।

অনুমোদনের পর sync_wallet এবং TON Proof-এর মাধ্যমে ATF পরমাণুভাবে আপডেট করার আগে নতুন ওয়ালেট ও মেমনিক সংরক্ষণ করা হয়। আগের ওয়ালেটের অন-চেইন সম্পদ স্থানান্তর করা হয় না। ব্যস্ত প্রতিস্থাপনগুলো replacement_pending হিসেবে সংরক্ষিত হয় এবং স্ক্যানের পর সর্বোচ্চ পাঁচজন ওয়ার্কার সেগুলো পুনরায় চেষ্টা করে। অপূর্ণ প্রতিস্থাপন পুনরায় শুরু করতে আবার অপশন 3 চালান।

অ্যাকাউন্টের পরিসংখ্যান অডিট করুন

অপশন 4, অথবা npm run stats, একটি শুধু-পঠনযোগ্য অডিট ড্যাশবোর্ড খোলে। এটি নতুন করে লগইন করে, sync_wallet কল করে এবং get_withdraw_history পড়ে। সমসাময়িকতা stats_worker_concurrency দ্বারা নিয়ন্ত্রিত এবং সর্বোচ্চ পাঁচজন ওয়ার্কারে সীমাবদ্ধ।

ড্যাশবোর্ডে ব্যবহারকারীর নাম, ওয়ালেট ঠিকানা, ATF হোল্ডিংস, মাইন করা ব্যালান্স, ব্যান অবস্থা, ঝুঁকি স্কোর, যোগ্য DEX ক্রয়ের অবস্থা, অপেক্ষমাণ উত্তোলন, সর্বশেষ উত্তোলনের অবস্থা এবং masked_auto_fraud থেকে FRAUD MASK দেখানো হয়। উত্তোলনের অবস্থাগুলোর মধ্যে রয়েছে NONE, PENDING, APPROVED, KYC/VERIFY, FAILED এবং UNAVAILABLE। KYC অবস্থা এবং ফ্রড মাস্ক পৃথক সংকেত।

আবার অডিট চালাতে r চাপুন অথবা বের হতে q চাপুন।

ATF উত্তোলন

অপশন 5 অ্যাকাউন্টগুলো ধারাবাহিকভাবে প্রক্রিয়া করে এবং শুরু করার আগে একবার নিশ্চিতকরণ চায়, কারণ প্রতিটি উত্তোলন অনুরোধের জন্য সার্ভার 70 ATF চার্জ করে।

প্রতিটি অ্যাকাউন্টের জন্য বট:

  1. নতুন সেশন দিয়ে লগইন করে mined_balance এবং pending_reward পড়ে।
  2. অপেক্ষমাণ পুরস্কার থাকলে তা ক্লেইম করে।
  3. মাইন করা ব্যালান্স হালনাগাদ করতে আবার লগইন করে।
  4. ব্যালান্স 500 ATF-এর কম হলে অথবা ওয়ালেট যাচাইকৃত না হলে অ্যাকাউন্টটি এড়িয়ে যায়।
  5. যোগ্য সম্পূর্ণ মাইন করা ব্যালান্সকে চার দশমিক ঘরে নামিয়ে আনে।
  6. ছবির CAPTCHA সমাধান করে উত্তোলন জমা দেয়।
  7. উত্তোলনের ইতিহাস পড়ে সর্বশেষ উপলভ্য অবস্থা জানায়।

ImageToTextTask সলভারের জন্য .env-এ একটি 2Captcha কী যোগ করুন:

TWOCAPTCHA_API_KEY=your_api_key

জমা দেওয়ার আগে বট ফ্রন্টএন্ডের নির্ধারিত 1.2 থেকে 2 সেকেন্ডের জিটার প্রয়োগ করে। CAPTCHA-এর উত্তর ব্যর্থ বা প্রত্যাখ্যাত হলে নতুন চ্যালেঞ্জের অনুরোধ করা হয়, withdraw_captcha_max_attempts-এর সর্বোচ্চ মান তিন এবং সার্ভারের attempts_left-এর মধ্যে যেটি কম, ততবার পর্যন্ত।

retry_after_seconds প্রতিক্রিয়া, উত্তোলন লক বা সার্ভারের প্রচেষ্টা শেষ হয়ে গেলে ওই অ্যাকাউন্টের জন্য রিট্রাই বন্ধ হয়। সরাসরি উত্তোলন চালাতে:

npm run withdraw

উত্তোলনের জন্য প্রক্সি ব্যবহার করুন

proxy.txt বা proxies.txt-এ প্রক্সি থাকলে, উত্তোলন মোড পুরো ব্যাচের জন্য একটি ইউনিক পুল তৈরি করে। প্রতিটি প্রক্সি ব্যর্থ হলেও মাত্র একবার নির্বাচিত হতে পারে এবং ওই ব্যাচে অন্য কোনো অ্যাকাউন্টে পুনরায় বরাদ্দ করা হয় না।

লগইন, পুরস্কার ক্লেইম, ব্যালান্স হালনাগাদ, CAPTCHA সংগ্রহ, জমা দেওয়া বা ইতিহাস সংগ্রহের সময় নেটওয়ার্ক ত্রুটি হলে অ্যাকাউন্টটি পরবর্তী অব্যবহৃত, সুস্থ প্রক্সিতে ঘুরিয়ে দেওয়া হয়। প্রক্সি পুল থাকলে উত্তোলন নীরবে সরাসরি IP-তে ফিরে যায় না। ডুপ্লিকেট অ্যাকশনের ঝুঁকি কমাতে ঘোরানোর সময় ক্লেইম ও উত্তোলন অনুরোধের ID অপরিবর্তিত থাকে।

প্রতি অ্যাকাউন্টের জন্য অন্তত একটি ইউনিক প্রক্সি এবং রিট্রাইয়ের জন্য অতিরিক্ত প্রক্সি দিন। পুল শেষ হয়ে গেলে বর্তমান অ্যাকাউন্ট ব্যর্থ হয় এবং পরবর্তী অ্যাকাউন্ট দিয়ে প্রক্রিয়া চলতে থাকে।

উন্নত নির্ভরযোগ্যতা ও নিরাপত্তা টিপস

  • স্টোরেজ যথাযথভাবে সুরক্ষিত না হলে wallets-accounts.json শেয়ার করা বা সিঙ্ক করা অবস্থানের বাইরে রাখুন।
  • ওয়ালেট প্রতিস্থাপন বা ইনস্টলেশন সরানোর আগে নিরাপদে ওয়ালেটের সিক্রেট ব্যাকআপ করুন।
  • শুধু ম্যানুয়ালি সম্পন্ন করা কাজের জন্য ready_task_ids ব্যবহার করুন।
  • মনে রাখবেন, অ্যাকাউন্ট প্রক্সি ATF HTTP অনুরোধে প্রভাব ফেলে, সরাসরি Telegram MTProto সংযোগে নয়।
  • ব্যবহৃত ও ব্যর্থ প্রক্সি একটি ব্যাচের মধ্যে পুনর্ব্যবহার করা হয় না, তাই পর্যাপ্ত সংখ্যক স্বতন্ত্র উত্তোলন প্রক্সি কনফিগার করুন।
  • সুশৃঙ্খলভাবে বন্ধ করতে Ctrl+C ব্যবহার করুন। বট সংযোগগুলো পরিষ্কার করে এবং বন্ধের সংকেত পাওয়ার পর আর কোনো অ্যাকাউন্ট শুরু করে না।
  • প্রতি-অ্যাকাউন্টের সারাংশ পর্যালোচনা করুন, যেখানে success, partial এবং failed ফলাফল আলাদা করে দেখানো হয়।

প্রকল্পটি allowed_hosts-এর মাধ্যমে API ও WebApp-এর গন্তব্য সীমাবদ্ধ করে এবং HTTPS বাধ্যতামূলক করে। এটি স্বয়ংক্রিয়ভাবে HTTP রিডাইরেক্ট অনুসরণ করে না। HTTP 401 ও 403 প্রতিক্রিয়ার ক্ষেত্রে পুনরায় চেষ্টা করা হয় না, আর HTTP 429 ও 5xx প্রতিক্রিয়ায় জিটারসহ এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করা হয়।

পুনরায় চেষ্টার সময় অনুরোধের আইডি অপরিবর্তিত থাকে, যাতে সার্ভার পুনরাবৃত্ত অ্যাকশনগুলোকে ইডেম্পোটেন্ট হিসেবে বিবেচনা করতে পারে। কুলডাউন এবং already claimed-এর মতো ব্যবসায়িক প্রতিক্রিয়াগুলোকে নেটওয়ার্ক ব্যর্থতা হিসেবে গণ্য করা হয় না। ATF লগইনের সময় বারবার ব্যর্থ হওয়া প্রক্সিগুলো সাময়িকভাবে কোয়ারেন্টাইনে রাখা হয় এবং বট নীরবে সরাসরি IP-তে পরিবর্তিত হয় না।

সেশন টোকেন, ইনিশিয়ালাইজেশন ডেটা, হ্যাশ এবং প্রক্সি পাসওয়ার্ড লগ থেকে গোপন করা হয়। স্থায়ী ডিভাইস আইডিগুলো প্রতি Telegram ID-এর জন্য .state/device-ids.json-এ সংরক্ষণ করা হয়। বট প্রতিটি সাইকেলে config.json, সেশন, প্রক্সি এবং অ্যাকাউন্ট ওভাররাইডও পুনরায় লোড করে।

মাইনিংয়ের জন্য নিরাপত্তা প্রশ্ন প্রয়োজন হলে স্বীকৃত মৌলিক গাণিতিক সমস্যা স্বয়ংক্রিয়ভাবে সমাধান করা হয়। অজানা ফরম্যাট হলে ম্যানুয়াল টার্মিনাল ইনপুটে ফিরে যায়।

ইনস্টলেশন যাচাই করুন

সেটআপ বা কনফিগারেশন পরিবর্তনের পর প্রকল্পের যাচাই ও টেস্ট চালান:

npm run check
npm test

উপসংহার

ATF Bot Automation v2 নতুন Telegram WebView প্রমাণীকরণকে মাল্টি-অ্যাকাউন্ট ATF অটোমেশন, TON ওয়ালেট যাচাই, ডায়নামিক টাস্ক, রেফারেল, অ্যাকাউন্ট অডিটিং এবং নিয়ন্ত্রিত উত্তোলনের সঙ্গে সমন্বয় করে। বৈধ Telethon সেশন ও সুরক্ষিত Telegram ক্রেডেনশিয়াল দিয়ে শুরু করুন, অল্পসংখ্যক অ্যাকাউন্ট ব্যবহার করে মূল ওয়ার্কফ্লো যাচাই করুন এবং wallets-accounts.json-কে অত্যন্ত মূল্যবান গোপন তথ্য হিসেবে বিবেচনা করুন, কারণ এতে তৈরি করা প্রতিটি ওয়ালেটে সরাসরি প্রবেশাধিকার রয়েছে।