এই নিবন্ধটির প্রধান চিত্রটি হ্যাকারনুনেরএআই ইমেজ জেনারেটর দ্বারা "হোয়াইটবোর্ডে ব্লকচেইন লেনদেন হ্যাশ" প্রম্পটের মাধ্যমে তৈরি করা হয়েছে।
এই নিবন্ধে আমরা গোপন ওপেন-সোর্স টুল সম্পর্কে কথা বলব যেটি সম্পর্কে কেউ জানে না যা আপনাকে আলোর গতিতে ব্লকচেইন থেকে দরকারী ডেটা অনুসন্ধান করতে দেয়।
আমরা ব্লকচেইন থেকে উপযোগী ডেটা পেতে পারে এমন নমুনা কোয়েরি দেব এবং আমরা টুলের আর্কিটেকচার সম্পর্কে কথা বলব যা এটিকে উচ্চ গতিতে বিশ্লেষণ করতে দেয়।
যদিও তার আগে, কেন আপনাকে প্রথমে ব্লকচেইন থেকে লেনদেন বিশ্লেষণ করতে হবে সে সম্পর্কে কথা বলা যাক।
কিন্তু এছাড়াও
এবং উপরের থেকে, আপনি এক্সট্রাপোলেট করতে পারেন এবং সম্পর্কে তথ্য পেতে পারেন
এবং 100+ বিভিন্ন অন্যান্য বিশ্লেষণ।
আপনি দেখতে পাচ্ছেন, আমরা বিটকয়েন বাজার সম্পর্কে যে ডেটা পেতে পারি তা লিগ্যাসি মার্কেটের তুলনায় অনেক বেশি ব্যাপক। এবং সবচেয়ে গুরুত্বপূর্ণভাবে গড় ব্যক্তি এটি অ্যাক্সেস পেতে পারেন. বিপরীতে, শুধুমাত্র হেজ তহবিল এবং ব্যাঙ্কগুলির উত্তরাধিকার বাজারে এই ধরনের ডেটা অ্যাক্সেস আছে।
তাই, বিটকয়েন ব্লকচেইনে লেনদেন বিশ্লেষণ করে কেউ বিটকয়েনের বাজারকে আরও ভালভাবে বুঝতে পারে এবং এই ডেটার উপর ভিত্তি করে আরও ভাল বিনিয়োগের সিদ্ধান্ত নিতে পারে।
তাহলে এই টুল কিভাবে কাজ করে?
BlockSci বিদ্যমান ব্লকচেইন বিশ্লেষণ সরঞ্জামগুলির তিনটি ব্যথা পয়েন্টের সমাধান করার লক্ষ্য রাখে:
দুর্বল পারফরম্যান্স হল ব্যথার বিন্দু যা ব্লকসি সবচেয়ে ভালো সমাধান করে। উদাহরণস্বরূপ, বিটকয়েন লেনদেন বিশ্লেষণ করার জন্য ব্রুট ফোর্স পদ্ধতিও কাজ করবে। আপনি আপনার কম্পিউটার/সার্ভারে একটি বিটকয়েন নোড চালাতে পারেন এবং আপনার নিজের নোডকে সরাসরি জিজ্ঞাসা করতে পারেন। কিন্তু এই পদ্ধতিটি এত ধীর যে সমস্ত 1 বিলিয়ন বিটকয়েন লেনদেন প্রক্রিয়া করতে কয়েক বছর সময় লাগতে পারে।
অন্যান্য বিদ্যমান সরঞ্জামগুলিও খারাপ কার্যকারিতার জন্য ভুগছে, বিশেষ করে যখন সাধারণ-উদ্দেশ্য গ্রাফ ডেটাবেস ব্যবহার করা হয়, যা তাদেরকে ক্রমিক প্রশ্নের জন্য শতগুণ ধীর করে দেয় এবং গ্রাফ ট্রাভার্সাল ক্যোয়ারী সহ সমস্ত প্রশ্নের জন্য যথেষ্ট ধীর করে দেয়।
BlockSci-এর নকশা মূলত এই সত্যের উপর ভিত্তি করে যে ব্লকচেইনে, অতীতের ব্লকগুলিকে পরিবর্তন করা যায় না এবং ব্লকচেইনে প্রদর্শিত সমস্ত নতুন ডেটা শুধুমাত্র যোগ করার জন্য।
এর মানে হল যে লেনদেন সংক্রান্ত ডাটাবেসের ACID বৈশিষ্ট্যগুলি অপ্রয়োজনীয়, একটি ইন-মেমরি বিশ্লেষণাত্মক ডাটাবেসকে প্রাকৃতিক পছন্দ করে তোলে। ডিস্ক স্টোরেজের পরিবর্তে মেমরি ব্যবহার করা ডেটা প্রসেসিংকে উল্লেখযোগ্যভাবে গতি দেয় যা আমাদের প্রয়োজন।
প্রকৃতপক্ষে, BlockSci গণনা সম্পাদন করতে মেমরিতে পুরো ব্লকচেইন লোড করে এবং বিতরণ করা প্রক্রিয়াকরণ পদ্ধতি এড়িয়ে যায়। ব্লকচেইন ডেটা গ্রাফ-গঠিত এবং এইভাবে কার্যকরভাবে বিভাজন করা কঠিন এই সত্য দ্বারা এটি অনুপ্রাণিত।
এর ডিজাইনারের অনুমান ছিল যে ব্লকচেইন বিশ্লেষণের জন্য একটি প্রথাগত, বিতরণকৃত লেনদেন ডেটাবেসের ব্যবহার অসীম COST (কনফিগারেশন যা একটি একক থ্রেডকে ছাড়িয়ে যায়), এই অর্থে যে সমান্তরালতার কোনো স্তর একটি অপ্টিমাইজড একক-থ্রেডেড বাস্তবায়নকে ছাড়িয়ে যেতে পারে না।
এটি বিভিন্ন কৌশলও প্রয়োগ করে যেমন হ্যাশ পয়েন্টারকে প্রকৃত পয়েন্টারে রূপান্তর করা এবং ঠিকানা ডেটার অনুলিপি করা, গতি আরও বাড়াতে এবং ডেটার আকার হ্রাস করা।
নোড থেকে ডেটা আমদানি করতে, BlockSci তার নিজস্ব উচ্চ-পারফরম্যান্স আমদানিকারক ব্যবহার করে যা সরাসরি ডিস্কের কাঁচা ডেটা পড়ে এবং JSON-RPC ইন্টারফেসে বিল্ট থেকে নয়। তারপরেও, নোড থেকে সমস্ত ডেটা আমদানি এবং সূচী করতে সাধারণত 24 ঘন্টা সময় লাগে। যদিও একবার ডেটা পার্স করা হয়, প্রকৃত বিশ্লেষণ দ্রুত হয়।
ডিস্কে ব্লকচেইনগুলি যেভাবে সংরক্ষণ করা হয় তা বিশ্লেষণ করা সহজ নয়। লেনদেন চেক করা এবং একটি বড় নেটওয়ার্কে ডেটা খোঁজার মতো অন্যান্য কাজ করার জন্য তাদের তৈরি করা হয়। এগুলি ডিস্কে একটি মৌলিক বিন্যাসে ব্লক রেখে মেমরিতে স্থান বাঁচাতেও তৈরি করা হয়। কিন্তু মেমরিতে ফিট করার জন্য আমাদের ডেটা পরিবর্তন করতে হবে, তাই BlockSci-এর একটি পার্সার রয়েছে যা এই ধাপটি পরিচালনা করতে পারে। এটি নিশ্চিত করা হয়েছিল যে এই পার্সারটি ভালভাবে অপ্টিমাইজ করা হয়েছে।
টুলটি উচ্চ গতি অর্জন করার আরেকটি উপায় হল "ব্লুম ফিল্টার অপ্টিমাইজেশন"। ব্লুম ফিল্টার হল একটি সম্ভাব্য ডেটা স্ট্রাকচার যা একটি সেটে সদস্যতা পরীক্ষা করার অনুমতি দেয়। ব্লকচেইনের প্রেক্ষাপটে, এটি সমস্ত দেখা ঠিকানা সংরক্ষণ করে এবং বিদ্যমান ঠিকানাগুলির জন্য অনুসন্ধানের সঠিকতা নিশ্চিত করে যখন অস্তিত্বহীনদের জন্য ডেটাবেস প্রশ্নের সংখ্যা কমিয়ে দেয়। এটি এই সত্যের উপর ভিত্তি করে অর্জন করা হয়েছে যে প্রায় 88% ইনপুটগুলি শেষ 4000টি ব্লকে তৈরি আউটপুট খরচ করে এবং বিটকয়েন ঠিকানাগুলির মাত্র 8.6% একাধিকবার ব্যবহার করা হয়।
সর্বশেষ সবচেয়ে গুরুত্বপূর্ণ অপ্টিমাইজেশন যা BlockSci-কে উচ্চ বিশ্লেষণের গতি অর্জন করতে দেয় তা হল ডেটা লেআউট কাঠামো যা উচ্চ বিশ্লেষণের গতি উভয়ই দেয় এবং মেমরিতে খুব বেশি টোল নেয় না।
BlockSci-এর ডেটা লেআউট উপলব্ধ ডেটাকে তিনটি বিভাগে ভাগ করে এবং একটি হাইব্রিড স্কিমে একত্রিত করে। মূল লেনদেন গ্রাফটি বেশিরভাগ বিশ্লেষণের জন্য প্রয়োজন এবং সর্বদা ইন-মেমরি লোড করা হয়, একটি সারি-ভিত্তিক বিন্যাসে সংরক্ষণ করা হয়। শুধুমাত্র একটি উপসেটের জন্য প্রয়োজনীয় স্ক্রিপ্ট এবং অতিরিক্ত ডেটা একটি হাইব্রিড (আংশিকভাবে কলাম-ভিত্তিক, আংশিকভাবে সারি-ভিত্তিক) বিন্যাসে সংরক্ষণ করা হয় এবং চাহিদা অনুযায়ী লোড করা হয়। হ্যাশ দ্বারা পৃথক লেনদেন বা ঠিকানা দেখার জন্য সূচকগুলি ডিস্কে একটি পৃথক ডাটাবেসে সংরক্ষণ করা হয়।
উপরন্তু, এটি যেখানে সম্ভব ডেটা ক্ষেত্রের জন্য নির্দিষ্ট-আকারের এনকোডিং ব্যবহার করে, রেফারেন্সের স্থানীয়তার জন্য মেমরি লেআউটকে অপ্টিমাইজ করে, দক্ষ ট্রাভার্সালের জন্য ইনপুটগুলির সাথে আউটপুট লিঙ্ক করে এবং মেমরি ম্যাপিং এবং সমান্তরালতা শেয়ার করে।
সবশেষে, এখানে একটি ক্যোয়ারী রয়েছে যা এক মিনিটের মধ্যে ফি>0.1 বিটকয়েন সহ সমস্ত লেনদেন খুঁজে পায়।
chain.blocks.txes.where(lambda tx: tx.fee > 10**7).to_list()
BlockSci হল একটি ব্লকচেইন বিশ্লেষণ টুল যা ব্লকচেইন থেকে দরকারী ডেটার বিদ্যুত-দ্রুত অনুসন্ধানের অনুমতি দেয়। বিটকয়েন লেনদেন বিশ্লেষণ করে, কেউ বাজারকে ভালোভাবে বুঝতে পারে এবং বিনিয়োগের সিদ্ধান্ত নিতে পারে।
BlockSci-এর স্থাপত্য এই সত্যের উপর ভিত্তি করে যে ব্লকচেইন ডেটা গ্রাফ-গঠিত এবং কার্যকরভাবে বিভাজন করা কঠিন, তাই এটি গণনা করার জন্য পুরো ব্লকচেইনকে মেমরিতে লোড করে। এটি গতি বাড়ানোর জন্য বিভিন্ন কৌশল প্রয়োগ করে, যার মধ্যে হ্যাশ পয়েন্টারকে প্রকৃত পয়েন্টারে রূপান্তর করা, ঠিকানা ডেটার অনুলিপি করা এবং ব্লুম ফিল্টার অপ্টিমাইজেশান ব্যবহার করা। ডেটা লেআউট কাঠামো উভয়ই উচ্চ বিশ্লেষণের গতি দেয় এবং মেমরিতে খুব বেশি টোল নেয় না।