paint-brush
BlueSky এর AT প্রোটোকলের মধ্যে একটি উঁকি আমাকে বুঝতে সাহায্য করেছে কেন এটি বিদ্যমান থাকা প্রয়োজনদ্বারা@thebojda
1,716 পড়া
1,716 পড়া

BlueSky এর AT প্রোটোকলের মধ্যে একটি উঁকি আমাকে বুঝতে সাহায্য করেছে কেন এটি বিদ্যমান থাকা প্রয়োজন

দ্বারা Laszlo Fazekas15m2025/01/11
Read on Terminal Reader
Read this story w/o Javascript

অতিদীর্ঘ; পড়তে

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

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - BlueSky এর AT প্রোটোকলের মধ্যে একটি উঁকি আমাকে বুঝতে সাহায্য করেছে কেন এটি বিদ্যমান থাকা প্রয়োজন
Laszlo Fazekas HackerNoon profile picture
0-item
1-item


2022 সালে, ইলন মাস্ক টুইটার অধিগ্রহণ করেন, যেটিকে তখন থেকে X নামে পুনঃব্র্যান্ড করা হয়েছে। গল্পের এই অংশটি ব্যাপকভাবে পরিচিত। যাইহোক, কম লোকই জানেন যে প্ল্যাটফর্মটিকে বিকেন্দ্রীকরণ করার একটি প্রকল্প টুইটারের মধ্যে রূপ নিচ্ছে। BlueSky নামে এই প্রকল্পটি 2019 সালে চালু করা হয়েছিল৷ 2021 সালের মধ্যে, এটিকে ব্লুস্কি সোশ্যাল বেনিফিট কর্পোরেশনে পরিণত করা হয়েছিল, এটি টুইটার থেকে স্বাধীনভাবে চালিয়ে যাওয়ার অনুমতি দেয়৷ কিছু উপায়ে, ব্লুস্কাইকে X এর মতো টুইটারের উত্তরসূরি হিসাবে বিবেচনা করা যেতে পারে।


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


যেহেতু BlueSky টিম ActivityPub স্ট্যান্ডার্ডের সাথে সন্তুষ্ট ছিল না, তাই তারা তাদের প্রোটোকল তৈরি করেছে, যাকে বলা হয় AT প্রোটোকল


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


এই সমাধানটির সুবিধা হল যে কোনও সিস্টেমের পক্ষে সহজেই ডেটার সত্যতা যাচাই করার ক্ষমতা বজায় রেখে সম্পূর্ণ সংগ্রহস্থল বা এর অংশগুলি অবাধে সিস্টেমের মধ্যে স্থানান্তর করা যেতে পারে।


ব্যবহারকারীরা তাদের পছন্দের ব্যক্তিগত ডেটা সার্ভারে (PDS) তাদের সংগ্রহস্থল হোস্ট করতে পারে। এই অর্থে, পিডিএস একটি ডাটাবেস সার্ভারের মতো কাজ করে। PDS এর মাধ্যমে, ব্যবহারকারীরা তাদের সংগ্রহস্থল পরিবর্তন করতে পারে এবং এটি অন্যদের কাছে অ্যাক্সেসযোগ্য করে তুলতে পারে। এর বাইরেও, পিডিএস বিস্তৃত পরিসরে অতিরিক্ত পরিষেবা প্রদান করে। এটি অন্যান্য ব্যবহারকারীদের ডেটা অ্যাক্সেস, ফিড পুনরুদ্ধার এবং আরও অনেক কিছুর অনুমতি দেয়। মূলত, PDS একটি সম্পূর্ণ কার্যকরী সোশ্যাল মিডিয়া নোড হিসাবে কাজ করে, যা ব্যবহারকারীদের নেটওয়ার্কের সাথে সংযোগ করতে সক্ষম করে।


যেহেতু পিডিএস শুধুমাত্র একটি সিস্টেম যা রিপোজিটরি চালায়, ব্যবহারকারীদের তাদের রিপোজিটরি বিভিন্ন পিডিএসের মধ্যে স্থানান্তর করার বা এমনকি তাদের নিজস্ব পিডিএস পরিচালনা করার স্বাধীনতা রয়েছে। এই নমনীয়তা সিস্টেমটিকে তার স্বাধীনতা প্রদান করে।


পিডিএস-এ সঞ্চিত সংগ্রহস্থলের বিষয়বস্তু ফিড জেনারেটর দ্বারা নিরীক্ষণ করা হয়, যা নির্দিষ্ট মানদণ্ডের উপর ভিত্তি করে ফিড তৈরি করে। অন্যান্য সোশ্যাল মিডিয়া প্ল্যাটফর্মে (যেমন, Facebook) সাধারণত শুধুমাত্র একটি ফিড থাকে, কিন্তু BlueSky-এর ক্ষেত্রে ব্যবহারকারীরা কোন ফিড থেকে পোস্ট দেখতে চান তা বেছে নিতে পারেন। যদি একজন ব্যবহারকারী মনে করেন যে একটি ফিড জেনারেটর তাদের আগ্রহের সাথে প্রাসঙ্গিক পোস্টগুলি দেখাচ্ছে না, তারা যে পোস্টগুলি দেখতে চায় সেগুলি সেন্সর করছে বা সেগুলিকে ম্যানিপুলেট করার চেষ্টা করছে, তাহলে তারা কেবল একটি ভিন্ন ফিড প্রদানকারীর কাছে যেতে পারে৷


সিস্টেমের এই ঢিলেঢালা নেটওয়ার্ক এবং ভান্ডার স্থানান্তর করার সহজতা দক্ষতার ত্যাগ ছাড়াই সম্পূর্ণ স্বাধীনতা প্রদান করে। উদাহরণস্বরূপ, ক্লায়েন্টকে একাধিক উত্স থেকে পোস্ট সংগ্রহ করতে হবে না, কারণ এটি ফিড জেনারেটর এবং PDS দ্বারা পরিচালিত হয়।


এখন যেহেতু আমরা সিস্টেমের গঠন এবং প্রধান উপাদানগুলি বুঝতে পেরেছি, আসুন একটু গভীরে ডুব দিয়ে দেখি কিভাবে প্রোটোকল কাজ করে।


প্রত্যেক ব্যবহারকারীকে (এবং অন্যান্য সত্তা) একটি অনন্য বিকেন্দ্রীভূত শনাক্তকারী (DID) বরাদ্দ করা হয়। এই ডিআইডি রিপোজিটরি এবং রিপোজিটরি কমিট সাইন করার জন্য ব্যবহারকারী দ্বারা ব্যবহৃত কী জোড়ার সাথে যুক্ত। যেহেতু ডিআইডিগুলি মনে রাখা কঠিন, ব্যবহারকারীদের ডোমেন নাম দ্বারা চিহ্নিত করা হয়, যা সিস্টেমটি ডিআইডি-তে অনুবাদ করে।


উদাহরণস্বরূপ, আমার ব্যবহারকারীর নাম thebojda.bsky.social । DID এর সাথে দুটি উপায়ে লিঙ্ক করা যেতে পারে: হয় ডোমেনের TXT রেকর্ডে উপযুক্ত কী দিয়ে বা শুধুমাত্র সুপরিচিত URI-এর মাধ্যমে নির্দিষ্ট করে। এই URL এ DID অ্যাক্সেস করা যেতে পারে:


 https://thebojda.bsky.social/.well-known/atproto-did


উদাহরণস্বরূপ, আমার ডিআইডি হল: did:plc:4x7rynvskplz54p5pofj3jxa


AT প্রোটোকল পিএলসি এবং ওয়েব উভয় প্রকারের ডিআইডি সমর্থন করে। একটি ওয়েব ডিআইডি একটি সাধারণ ইউআরএল, যখন পিএলসি ডিআইডি হল AT প্রোটোকলের একটি কাস্টম স্ট্যান্ডার্ড, যা পাবলিক কী এবং কিছু অতিরিক্ত ডেটা থেকে তৈরি হয় (যারা আরও গভীরে যেতে আগ্রহী তারা এখানে এটি সম্পর্কে আরও পড়তে পারেন)।


প্রতিটি ডিআইডি একটি ডিআইডি নথির সাথে যুক্ত, যাতে ডিআইডি-র সাথে লিঙ্কযুক্ত পাবলিক কী এবং পিডিএসের URL থাকে যেখানে রিপোজিটরি হোস্ট করা হয়।


একটি ডিআইডি এই মত সমাধান করা যেতে পারে:


 https://plc.directory/did:plc:4x7rynvskplz54p5pofj3jxa


ডিআইডি নথিটি এইরকম দেখাচ্ছে:


 { "@context": [ "https://www.w3.org/ns/did/v1", "https://w3id.org/security/multikey/v1", "https://w3id.org/security/suites/secp256k1-2019/v1" ], "id": "did:plc:4x7rynvskplz54p5pofj3jxa", "alsoKnownAs": [ "at://thebojda.bsky.social" ], "verificationMethod": [ { "id": "did:plc:4x7rynvskplz54p5pofj3jxa#atproto", "type": "Multikey", "controller": "did:plc:4x7rynvskplz54p5pofj3jxa", "publicKeyMultibase": "zQ3shaNKzE66K1Kr3dmbnDwXWHh6v4nUcBmpEaK7bVktKTwfh" } ], "service": [ { "id": "#atproto_pds", "type": "AtprotoPersonalDataServer", "serviceEndpoint": "https://fibercap.us-west.host.bsky.network" } ] }


এই নথিতে, কেউ যদি নতুন PDS-এ চলে যায় তাহলে PDS URL আপডেট করতে হবে। উদাহরণস্বরূপ, আমার বর্তমান PDS https://fibercap.us-west.host.bsky.network- এ অ্যাক্সেসযোগ্য।


PDS-এর সাথে যোগাযোগ XRPC-এর মাধ্যমে করা হয়, একটি সাধারণ HTTP/JSON-ভিত্তিক প্রোটোকল। প্রতিটি কল একটি বিপরীত DNS-শৈলী নাম আছে. উদাহরণস্বরূপ, যদি আমি আমার সম্পূর্ণ সংগ্রহস্থল আনতে চাই, আমি এটি করতে পারি:


 https://fibercap.us-west.host.bsky.network/xrpc/com.atproto.sync.getRepo?did=did:plc:4x7rynvskplz54p5pofj3jxa


com.atproto.sync.getRepo পদ্ধতি রিপোজিটরি অনুসন্ধান করতে ব্যবহৃত হয়, এবং এটি একটি did প্যারামিটার আছে।


ব্লুস্কাই দল API এবং ডেটা স্ট্রাকচার সংজ্ঞায়িত করার জন্য লেক্সিকন নামে একটি JSON-ভিত্তিক বর্ণনামূলক ভাষা তৈরি করেছে। এটি JSON স্কিমার অনুরূপ এবং টাইপ-নিরাপদ ইন্টারফেস তৈরি করতে ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ, টাইপস্ক্রিপ্টের জন্য, যা প্রোটোকলের বাস্তবায়নকে সহজ করে।


নিম্নলিখিত কলটি আমার শেষ 10টি পোস্ট আনতে ব্যবহার করা যেতে পারে:


 https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed?actor=thebojda.bsky.social&limit=10


ফলাফল এই মত দেখায়:


 { "feed": [ { "post": { "uri": "at://did:plc:4x7rynvskplz54p5pofj3jxa/app.bsky.feed.post/3le3esbhaek2l", "cid": "bafyreihagjnwrkakkajkaighz6kyqww3wznvbdcqpnl4wbfnpwrr2xwmmi", "author": { "did": "did:plc:4x7rynvskplz54p5pofj3jxa", "handle": "thebojda.bsky.social", "displayName": "Laszlo Fazekas", "avatar": "https://cdn.bsky.app/img/avatar/plain/did:plc:4x7rynvskplz54p5pofj3jxa/bafkreibxd4mx7rehgkc77diautavpcota6jotzkaagp4zv2t6w3a52n7sq@jpeg", "labels": [], "createdAt": "2024-11-24T01:36:39.146Z" }, "record": { "$type": "app.bsky.feed.post", "createdAt": "2024-12-24T21:20:56.891Z", "embed": { "$type": "app.bsky.embed.external", "external": { "description": "MyETHMeta is a decentralized metadata service for Ethereum accounts. It is something like Gravatar. There are no backend servers, you fully own your data.", "thumb": { "$type": "blob", "ref": { "$link": "bafkreifoezhkdtesuhkaoqt3yml44geozu6ckg2cfffg5t5omob2bdjmo4" }, "mimeType": "image/jpeg", "size": 669185 }, "title": "MyETHMeta v2 – Some Improvements on the Gravatar for Your Ethereum Account | HackerNoon", "uri": "https://hackernoon.com/myethmeta-v2-some-improvements-on-the-gravatar-for-your-ethereum-account" } }, "facets": [ { "features": [ { "$type": "app.bsky.richtext.facet#link", "uri": "https://hackernoon.com/myethmeta-v2-some-improvements-on-the-gravatar-for-your-ethereum-account" } ], "index": { "byteEnd": 270, "byteStart": 240 } } ], "langs": [ "en" ], "reply": { "parent": { "cid": "bafyreieipk3kgwonq3h62wyadauplzgcpdgcg6pxp2776oeldcstgybwha", "uri": "at://did:plc:4x7rynvskplz54p5pofj3jxa/app.bsky.feed.post/3le3es7kzmc2l" }, "root": { "cid": "bafyreieipk3kgwonq3h62wyadauplzgcpdgcg6pxp2776oeldcstgybwha", "uri": "at://did:plc:4x7rynvskplz54p5pofj3jxa/app.bsky.feed.post/3le3es7kzmc2l" } }, "text": "MyETHMeta is a decentralized metadata service for Ethereum accounts. It is something like Gravatar, but here the metadata and your profile picture is assigned to your Ethereum address. There are no backend servers, you fully own your data. hackernoon.com/myethmeta-v2..." }, "embed": { "$type": "app.bsky.embed.external#view", "external": { "uri": "https://hackernoon.com/myethmeta-v2-some-improvements-on-the-gravatar-for-your-ethereum-account", "title": "MyETHMeta v2 – Some Improvements on the Gravatar for Your Ethereum Account | HackerNoon", "description": "MyETHMeta is a decentralized metadata service for Ethereum accounts. It is something like Gravatar. There are no backend servers, you fully own your data.", "thumb": "https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:4x7rynvskplz54p5pofj3jxa/bafkreifoezhkdtesuhkaoqt3yml44geozu6ckg2cfffg5t5omob2bdjmo4@jpeg" } }, "replyCount": 0, "repostCount": 0, "likeCount": 0, "quoteCount": 0, "indexedAt": "2024-12-24T21:21:02.466Z", "labels": [] }, "reply": {} }, {}, {}, {}, {}, {}, {}, {}, {} ] }


প্রতিটি উপাদানে একটি পোস্ট এবং এর সাথে সম্পর্কিত উত্তর রয়েছে। পূর্বে উল্লিখিত হিসাবে, প্রতিটি পোস্ট ভান্ডারে একটি রেকর্ড এবং এর নিজস্ব অনন্য শনাক্তকারী রয়েছে। প্রতিটি পোস্টকে একটি অনন্য URI বরাদ্দ করা যেতে পারে, যার মধ্যে DID, সংগ্রহের নাম এবং পোস্ট আইডি থাকে। উপরের উদাহরণে, URI দেখতে এইরকম: at://did:plc:4x7rynvskplz54p5pofj3jxa/app.bsky.feed.post/3le3esbhaek2l


এর অর্থ হল পোস্টটি আমার ডিআইডির সাথে সম্পর্কিত সংগ্রহস্থলে, app.bsky.feed.post সংগ্রহের মধ্যে অবস্থিত এবং এর আইডি হল 3le3esbhaek2l


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


আরেকটি উল্লেখযোগ্য দিক হল thumb বিভাগ, যা পোস্টের সাথে যুক্ত একটি চিত্রকে বোঝায়। এটি একটি ব্লব-টাইপ অবজেক্ট যা কোনো সংগ্রহের অন্তর্গত নয়। সিস্টেমটি ব্লব হিসাবে বড় ফাইল (যেমন ছবি, ভিডিও ইত্যাদি) সংরক্ষণ করে, যা তাদের হ্যাশ (সিআইডি) ব্যবহার করে পৃথক রেকর্ডে (যেমন, পোস্ট) উল্লেখ করা যেতে পারে।


রিপোজিটরি এবং রেকর্ডের গঠন গভীরভাবে দেখতে আগ্রহীদের জন্য, গো-রেপো-এক্সপোর্ট টুলটি বেশ কার্যকর হতে পারে। এই ছোট প্রোগ্রামটির সাহায্যে, আপনি সম্পূর্ণ ব্যবহারকারী সংগ্রহস্থল ডাউনলোড করতে পারেন এবং JSON ফর্ম্যাটে একটি ডিরেক্টরিতে সংগ্রহ এবং তাদের রেকর্ডগুলি বের করতে পারেন। এটি আপনাকে BlueSky কীভাবে ডেটা সঞ্চয় করে তা দেখতে দেয়।


তথ্যের আরেকটি ভালো উৎস হল Chrome DevTools। https://bsky.app ওয়েবসাইটে, আপনি স্পষ্টভাবে API কলগুলি এবং ক্লায়েন্ট পক্ষ কীভাবে PDS-এর সাথে যোগাযোগ করে তা দেখতে পারেন৷


এবং, অবশ্যই, অফিসিয়াল ডকুমেন্টেশন আছে. AT প্রোটোকল এবং BlueSky-এর চমৎকার ডকুমেন্টেশন রয়েছে এবং GitHub- এ আপনি ক্লায়েন্ট এবং সার্ভার উভয় পক্ষের জন্য উদাহরণের পাশাপাশি সোর্স কোড খুঁজে পেতে পারেন।


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


BlueSky-এর বর্তমানে আনুমানিক 20-30 মিলিয়ন ব্যবহারকারী রয়েছে, যা X (Twitter) এর ব্যবহারকারী বেসের তুলনায় ফ্যাকাশে, তবে এটি এখনও উল্লেখযোগ্য। ভবিষ্যৎ কী হবে, তা নিশ্চিত করে কেউ বলতে পারে না। ফেডারেটেড নেটওয়ার্ক একটি বড় সুবিধা, এবং টুইটার বা ফেসবুকের মতো একটি বিশ্বব্যাপী যোগাযোগ প্ল্যাটফর্মের মালিক হওয়া একটি সত্তার পক্ষে খুব বেশি ক্ষমতা কিনা তা নিয়ে তীব্র বিতর্ক রয়েছে। ব্লুস্কাই একদিন তার প্রতিযোগীদের ছাড়িয়ে যেতে পারে এমন সম্ভাবনা আমি পুরোপুরি উড়িয়ে দেব না। ভাল ফিড জেনারেটর এবং কার্যকর কমিউনিটি বিল্ডিংয়ের সাথে, এটি অর্জনযোগ্য। যাই হোক না কেন, এই প্রকল্পে মনোযোগ দেওয়া এবং এটি কীভাবে কাজ করে তা বোঝা মূল্যবান।