
Mạng xã hội phi tập trung Bluesky hoạt động như thế nào?
Tuyển chọn TechFlowTuyển chọn TechFlow

Mạng xã hội phi tập trung Bluesky hoạt động như thế nào?
Hiểu được atproto, chúng ta có thể hiểu được Bluesky.
Tác giả: Steve Klabnik
Biên dịch: Kurt Pan
Một trong những lý do tôi hào hứng với BlueSky là cách nó hoạt động. Trong bài viết này, tôi sẽ trình bày một số thiết kế của hệ thống và các nguyên tắc mà tôi hiểu rằng chúng dựa trên đó. Tôi không phải là thành viên của nhóm BlueSky, vì vậy đây chỉ là quan điểm cá nhân của tôi.
Chúng ta bắt đầu nào.
Tại sao BlueSky tồn tại?
Dưới đây là điều mà trang web BlueSky hiện nay nói:
Mạng xã hội quá quan trọng để bị kiểm soát bởi một vài công ty. Chúng tôi đang xây dựng một nền tảng mở cho mạng xã hội, để tất cả chúng ta đều có thể định hình tương lai của nó.
Đó là tầm nhìn lớn.
Ừ thì đúng là một ý tưởng hay, nhưng điều đó thực sự nghĩa là gì? Hiện tại, BlueSky là một ứng dụng blog vi mô, giống như Twitter và Mastodon. Làm thế nào điều này phù hợp với tầm nhìn lớn? Vâng, mặc dù BlueSky thực sự là một ứng dụng kiểu微博, nhưng đó chưa phải là toàn bộ câu chuyện: BlueSky là ứng dụng đầu tiên được tạo ra nhằm chứng minh tính khả thi của Giao thức Truyền tải Xác thực (viết tắt là AT, ATP hoặc "atproto"). BlueSky là "tòa nhà", còn atproto mới chính là "nền tảng mở cho mạng xã hội".
Một điểm cần lưu ý: BlueSky cũng là một công ty. Một số người sẽ nghi ngờ khi thấy một công ty tuyên bố "Này, chúng tôi đang xây dựng thứ gì đó quá lớn để bất kỳ công ty nào có thể kiểm soát!". Tôi nghĩ đó là một điểm khởi đầu lành mạnh, nhưng đối với tôi, câu trả lời nằm ở chính atproto.
Sự tương tác giữa hai thứ này rất quan trọng, và chúng ta sẽ bắt đầu bằng việc tìm hiểu atproto trước, rồi sau đó xem xét cách BlueSky được xây dựng dựa trên nó.
Đây có phải là tiền mã hóa không?
Điều đầu tiên chúng ta cần loại bỏ là: nếu bạn nghe thấy "Ồ, đây là một mạng phân tán tên là 'một giao thức nào đó'", bạn có thể lập tức nghĩ đến "Liệu đây có phải là tiền mã hóa không?" và cảnh báo vang lên trong đầu.
Hãy yên tâm, nó KHÔNG phải là tiền mã hóa. Nó thực sự sử dụng một vài công nghệ bắt nguồn từ lĩnh vực tiền mã hóa, nhưng đây không phải là blockchain, DAO, NFT hay bất cứ thứ gì tương tự. Chỉ đơn thuần là một chút mật mã học và cây Merkle, v.v.
Tổng quan về atproto
Phần giới thiệu của Giao thức AT nói rằng:
Giao thức Truyền tải Xác thực, hay còn gọi là atproto, là một giao thức liên kết dành cho các ứng dụng xã hội phân tán quy mô lớn.
Chúng ta hãy phân tích từng phần:
Giao thức liên kết
atproto mang tính liên kết. Điều này có nghĩa là các thành phần khác nhau của hệ thống có thể do nhiều người vận hành, và họ có thể giao tiếp với nhau.
Việc lựa chọn mô hình liên kết là một phần quan trọng để atproto thực hiện lời hứa "không thể bị kiểm soát bởi một tổ chức duy nhất". Còn có những yếu tố khác nữa, nhưng đây là một khía cạnh then chốt để giải quyết vấn đề này.
Dành cho quy mô lớn
Nếu bạn muốn mở rộng quy mô, bạn phải thiết kế với mục tiêu đó ngay từ đầu. atproto đưa ra một vài lựa chọn thú vị để phân bổ tải trọng vận hành hệ thống nhiều hơn cho các bên tham gia có khả năng xử lý tải, và ít hơn cho những bên không thể chịu nổi. Nhờ vậy, các ứng dụng chạy trên atproto có thể dễ dàng mở rộng tới lượng người dùng lớn mà không gặp vấn đề gì.
Ít nhất thì đó là hy vọng. Vài ngày trước, BlueSky đã đạt mốc 5 triệu người dùng và hoạt động ổn định hơn giai đoạn đầu của Twitter. Quy mô này chưa phải là quá lớn so với nhiều ứng dụng xã hội khác, nhưng cũng không phải là nhỏ. Chúng ta hãy chờ xem thực tế vận hành ra sao.
Ứng dụng xã hội phân tán
atproto được thiết kế để kết nối mọi người, nên nó tập trung vào các ứng dụng xã hội. Hiện tại nó hoàn toàn công khai 100%, không có tin nhắn riêng hay chức năng nhắn tin nào tương tự. Lý do là vì việc triển khai các nội dung riêng tư trong hệ thống liên kết rất phức tạp, và họ thà làm tốt nó trước, chứ không phát hành một thứ có những vấn đề nghiêm trọng kèm theo cảnh báo. Hiện tại, tốt nhất là chỉ dùng nó cho những điều bạn muốn công khai.
Các ứng dụng này là "phân tán" vì việc vận hành chúng chính là trực tiếp vận hành trên mạng. Không có "máy chủ BlueSky", chỉ có các máy chủ chạy atproto gửi tin nhắn lẫn nhau, bao gồm cả tin nhắn BlueSky và tin nhắn từ các ứng dụng khác do người dùng tạo ra.
Đó là tổng quan, nhưng cụ thể điều đó nghĩa là gì?
Trong atproto, người dùng tạo ra các bản ghi được ký bằng mật mã để xác minh danh tính tác giả. Các bản ghi này có sơ đồ gọi là Lexicon (từ điển).
Các bản ghi được lưu trữ trong kho dữ liệu. Kho dữ liệu hoạt động như một dịch vụ, cung cấp giao diện qua HTTP và WebSocket. Sau đó, chúng có thể giao tiếp và liên kết các bản ghi với nhau. Những kho này thường được gọi là PDS (Personal Data Server - Máy chủ Dữ liệu Cá nhân). Người dùng có thể tự vận hành PDS của mình, hoặc sử dụng PDS do người khác cung cấp dịch vụ lưu trữ.
Bạn có thể xây dựng ứng dụng bằng cách xem các bản ghi được lưu trữ ở nhiều nơi trong mạng và sử dụng chúng. Các dịch vụ này được gọi là chế độ xem ứng dụng (app view), vì chúng cung cấp một cách nhìn cụ thể vào thông tin được lưu trữ trong mạng. Chế độ xem này được tạo ra thông qua hệ thống Lexicon: việc xây dựng một ứng dụng nghĩa là bạn định nghĩa một Lexicon, cấu trúc hóa dữ liệu cần xử lý, rồi xem các bản ghi sử dụng Lexicon của bạn, đồng thời bỏ qua những bản ghi khác.
Nếu chỉ dừng lại ở đó, sẽ xuất hiện vấn đề mở rộng nghiêm trọng. Ví dụ, mỗi lần tôi đăng cập nhật mới trên BlueSky, tôi phải gửi bài viết của mình đến kho dữ liệu của từng người theo dõi tôi — điều này cực kỳ kém hiệu quả và khiến chi phí vận hành một kho dữ liệu phổ biến trở nên rất đắt đỏ. Để giải quyết vấn đề này, có thêm một dịch vụ bổ sung gọi là relay (trung chuyển), có nhiệm vụ tổng hợp thông tin trong mạng và truyền tải nhanh chóng, với khối lượng lớn sang các relay khác. Vì vậy trong thực tế, chế độ xem ứng dụng sẽ không xem trực tiếp các kho dữ liệu, mà xem vào các relay. Khi tôi đăng bài, kho dữ liệu của tôi sẽ không thông báo riêng lẻ tới kho dữ liệu của các người theo dõi tôi. Thay vào đó, kho dữ liệu của tôi sẽ thông báo cho relay, và những người theo dõi tôi sẽ dùng chế độ xem ứng dụng để lọc đầu ra từ relay, chỉ hiển thị bài viết từ những người họ theo dõi. Điều này thực sự có nghĩa là các relay thường rất lớn và tốn kém để vận hành, nhưng bạn có thể hình dung việc vận hành một relay nhỏ hơn, chỉ lan truyền bài viết từ một nhóm người dùng nhỏ hơn. Chúng không nhất thiết phải hiển thị mọi thứ trên mạng, tất nhiên các relay quy mô lớn hơn sẽ làm điều đó.
Dưới đây là sơ đồ dạng ASCII:

Đây là tất cả những gì bạn thực sự cần biết để hiểu cốt lõi của atproto: con người tạo ra dữ liệu, dữ liệu được chia sẻ trong mạng, và các ứng dụng có thể tương tác với dữ liệu đó.
Tuy nhiên, các loại dịch vụ khác đang được giới thiệu, và có thể sẽ có thêm nhiều loại trong tương lai. Nhưng trước khi thảo luận về chúng, chúng ta cần giải thích một vài cam kết về mặt tư tưởng để hiểu tại sao mọi thứ lại có hình dạng như hiện nay.
"Tự do ngôn luận và phạm vi tiếp cận" là gì?
Vì atproto được tạo ra một cách cố ý để phục vụ các ứng dụng xã hội, nên nó không chỉ cần xem xét việc kết nối mọi người, mà còn phải xem xét việc ngắt kết nối. Kiểm duyệt là một thành phần cốt lõi của mọi ứng dụng xã hội: "không kiểm duyệt" vẫn là một chiến lược kiểm duyệt. BlueSky thừa nhận rằng khi xử lý các vấn đề như vậy, các người dùng khác nhau sẽ có sở thích kiểm duyệt khác nhau, và việc kiểm duyệt quy mô lớn là khó khăn.
Do đó, giao thức áp dụng cách tiếp cận "tự do ngôn luận và phạm vi tiếp cận" trong kiểm duyệt. Những gì chúng ta đã mô tả cho đến nay thuộc về tầng "tự do ngôn luận". Nó chỉ quan tâm đến việc sao chép nội dung của bạn trên mạng, chứ không quan tâm đến ngữ nghĩa của nội dung đó. Các công cụ kiểm duyệt thuộc về tầng "phạm vi tiếp cận": bạn chấp nhận mọi nội dung, nhưng cung cấp phương pháp để hạn chế phạm vi tiếp cận của những nội dung bạn không muốn thấy.
Thỉnh thoảng, người ta nói BlueSky "hoàn toàn tự do ngôn luận" hoặc "không kiểm duyệt". Điều này là không chính xác. Các công cụ kiểm duyệt đã được mã hóa ngay trong giao thức, để chúng có thể được sử dụng cùng với mọi nội dung trên mạng, kể cả các ứng dụng không phải BlueSky. Hơn nữa, nó cho phép bạn lựa chọn người kiểm duyệt của riêng mình, nhờ đó bạn sẽ không bị ảnh hưởng bởi lựa chọn kiểm duyệt (hay thiếu kiểm duyệt) của người khác. Nhưng tôi đang đi hơi nhanh: hãy cùng nói về các bộ tạo luồng đăng ký và các máy dán nhãn.
Bộ tạo luồng đăng ký là gì?
Hầu hết các ứng dụng xã hội đều có khái niệm "luồng nội dung". Trong atproto, khái niệm này được tách thành một loại dịch vụ riêng biệt, gọi là bộ tạo luồng đăng ký (feed generator). Một ví dụ điển hình về luồng đăng ký là: "Máy tính ơi, hãy hiển thị các bài viết từ những người tôi theo dõi theo thứ tự thời gian ngược lại". Gần đây, các luồng đăng ký thuật toán đã trở nên phổ biến trong mạng xã hội đến mức một số người dùng không chuyên môn còn gọi chúng là "thuật toán".
Bộ tạo luồng đăng ký lấy dữ liệu khổng lồ được tạo ra bởi relay, rồi lọc và sắp xếp lại theo bất kỳ tiêu chí nào mà bộ tạo đó mong muốn, cuối cùng hiển thị cho bạn một danh sách nội dung. Sau đó, bạn có thể chia sẻ các luồng này với người dùng khác.
Lấy một ví dụ thực tế, một trong những luồng yêu thích của tôi là Quiet Posters. Luồng này hiển thị bài viết từ những người ít khi đăng bài. Điều này giúp dễ dàng theo dõi những người thường bị淹没 trong luồng chính của tôi. Có những luồng như the ‘Gram, chỉ hiển thị các bài viết có kèm hình ảnh. Hoặc My Bangers, hiển thị những bài viết phổ biến nhất của bạn.
Theo tôi, đây là một trong những tính năng vượt trội của BlueSky so với các công cụ微博khác: sự lựa chọn hoàn toàn do người dùng quyết định. Nếu tôi muốn tạo ra thuật toán riêng của mình, tôi có thể làm. Tôi có thể dễ dàng chia sẻ chúng với người khác. Nếu bạn dùng BlueSky, bạn có thể truy cập bất kỳ luồng nào trong số này và theo dõi chúng.
Luồng đăng ký là tính năng được thêm gần đây vào atproto, vì vậy mặc dù chúng đã tồn tại, nhưng chức năng có thể chưa hoàn thiện và có thể sẽ có một số thay đổi trong tương lai. Chúng ta hãy chờ xem. Theo quan sát của tôi, chúng hoạt động khá tốt, nhưng tôi chưa đi sâu vào các chi tiết kỹ thuật cấp thấp.
Máy dán nhãn là gì?
Máy dán nhãn (labeler) là một dịch vụ gắn nhãn lên nội dung hoặc tài khoản. Là người dùng, bạn có thể đăng ký một máy dán nhãn cụ thể, rồi trải nghiệm của bạn sẽ thay đổi tùy theo các nhãn trên bài viết.
Máy dán nhãn có thể thực hiện điều này theo bất kỳ cách nào nó muốn: tự động bằng cách chạy một thuật toán nào đó trên bài viết, thủ công bằng cách để một nhóm người bình chọn thích hoặc không thích, hoặc bất kỳ phương pháp nào mà người vận hành dịch vụ nhãn muốn.
Một ví dụ về dịch vụ nhãn là danh sách đen: gắn nhãn lên các bài viết do những người bạn không muốn thấy nội dung của họ viết ra. Một ví dụ khác là bộ lọc nội dung không phù hợp nơi làm việc, có thể chạy một thuật toán nào đó trên hình ảnh trong bài viết và gắn nhãn nếu cho rằng chúng chứa nội dung không phù hợp.
Hiện các nhãn đã tồn tại, nhưng tôi không tin rằng bạn hiện có thể tự vận hành một máy dán nhãn. BlueSky đang vận hành một máy như vậy, nhưng theo tôi biết thì chưa có phiên bản bên ngoài nào. Tuy nhiên, một khi họ làm điều đó, bạn có thể hình dung các cộng đồng sẽ tự vận hành dịch vụ của riêng mình, gắn bất kỳ loại nhãn nào họ muốn.
Kiểm duyệt hoạt động như thế nào trong atproto?
Kết hợp tất cả những điều trên, chúng ta có thể thấy cách kiểm duyệt hoạt động: các luồng đăng ký có thể lựa chọn chuyển đổi luồng của mình dựa trên các nhãn, hoặc các chế độ xem ứng dụng có thể lấy luồng và áp dụng các chuyển đổi bằng cách hỏi các máy dán nhãn. Những yếu tố này có thể được phối hợp linh hoạt theo sở thích.
Điều này có nghĩa là bạn không chỉ có thể lựa chọn trải nghiệm kiểm duyệt giữa các ứng dụng, mà còn có thể lựa chọn ngay trong từng ứng dụng. Muốn một luồng phù hợp nơi làm việc, nhưng lại cho phép nội dung không phù hợp trong một luồng khác? Bạn có thể làm được. Muốn tạo một danh sách đen và chia sẻ với cả thế giới? Bạn có thể làm được.
Vì các công cụ kiểm duyệt này hoạt động ở cấp độ mạng chứ không phải cấp độ ứng dụng, nên chúng thực sự tiến xa hơn các hệ thống khác. Nếu ai đó xây dựng một bản sao Instagram trên atproto, thì bạn vẫn có thể sử dụng máy dán nhãn danh sách chặn của riêng mình, vì máy dán nhãn của bạn hoạt động ở cấp độ giao thức. Chặn một người ở một nơi, và nếu muốn, bạn có thể chặn họ ở mọi nơi. Có lẽ bạn sẽ đăng ký các quyết định kiểm duyệt khác nhau cho các ứng dụng khác nhau. Tất cả đều do bạn quyết định 100%.
Mô hình này khác biệt đáng kể so với các hệ thống liên kết khác, vì bạn thực sự không có một "tài khoản" trên một "instance" nào đó như trong Mastodon. Do đó, nhiều người sẽ đặt câu hỏi như "sẽ xảy ra gì nếu instance của tôi bị cắt liên kết?", nhưng những câu hỏi này không hoàn toàn có ý nghĩa như cách chúng được đặt ra. Bạn có thể đạt được mục tiêu tương tự bằng cách chặn một nhóm người dùng dựa trên một số tiêu chí nhất định, có thể bạn không thích một PDS nào đó và muốn bỏ qua các bài viết từ PDS đó, nhưng đây là lựa chọn của riêng bạn, và chỉ riêng bạn, chứ không phải do "chủ sở hữu máy chủ" nơi tài khoản của bạn nằm quyết định.
Vậy thì, nếu bạn không có máy chủ riêng, danh tính sẽ hoạt động như thế nào?
Danh tính và khả năng di chuyển tài khoản hoạt động ra sao?
Có quá nhiều chi tiết về cách thức hoạt động của danh tính, nên tôi sẽ tập trung vào những phần tôi cho là quan trọng. Tôi cũng sẽ nhấn mạnh vào những phần gây tranh cãi, vì điều đó rất quan trọng.
Cốt lõi là, người dùng có một số định danh gọi là "định danh phi tập trung" (Decentralized Identifier) hay DID. DID của tôi trông như thế này: did:plc:3danwc67lo7obz2fmdg6jxcr. Mời bạn theo dõi! Haha, đương nhiên đây không phải là giao diện bạn thường thấy. Danh tính còn liên quan đến một handle (tên định danh), tức là một tên miền. Như mong đợi, handle của tôi là steveklabnik.com. Bạn sẽ thấy các bài viết của tôi trên BlueSky đến từ @steveklabnik.com. Hệ thống cũng hỗ trợ những người không có tên miền; nếu bạn đăng ký BlueSky, bạn có thể chọn một tên, và handle của bạn sẽ là @username.bsky.social. Tôi ban đầu đăng bài với tư cách @steveklabnik.bsky.social, sau đó chuyển sang @steveklabnik.com. Nhưng vì DID rất ổn định, nên những người theo dõi tôi không bị ảnh hưởng. Họ chỉ thấy tên handle được cập nhật trong giao diện người dùng.
Bạn có thể sử dụng tên miền làm handle bằng cách lấy DID do PDS của bạn tạo ra, rồi thêm bản ghi TXT vào DNS mà bạn dùng cho tên miền đó. Nếu bạn không thuộc tuýp người sử dụng hoặc thậm chí không biết DNS là gì, tôi rất ghen tị với bạn, nhưng bạn vẫn có thể tận dụng mối quan hệ đối tác giữa BlueSky và NameCheap để đăng ký tên miền và cấu hình nó làm handle, mà không cần bất kỳ kiến thức kỹ thuật nào. Sau đó, bạn có thể dùng tên miền của mình làm handle để đăng nhập vào ứng dụng, và mọi thứ sẽ hoạt động bình thường.
Đây cũng chính là cách BlueSky cung cấp "khả năng di chuyển tài khoản" thực sự, một phần là vì thực ra không tồn tại khái niệm "tài khoản". Người dùng với một DID nhất định sẽ ký mật mã vào nội dung họ tạo ra, và nội dung đó sau đó được sao chép trên mạng. "Tài khoản của bạn" về cơ bản không thể bị cấm, vì điều đó đòi hỏi ai đó phải ngăn bạn sử dụng một khóa mà họ thậm chí không thể truy cập. Nếu PDS của bạn gặp sự cố và bạn muốn chuyển sang một PDS mới, có một phương pháp để khôi phục lại nội dung từ chính mạng, và thông báo cho mạng biết PDS của bạn đã di chuyển. Đây là khả năng di chuyển tài khoản thực sự và có ý nghĩa, hoàn toàn khác biệt so với bất kỳ dịch vụ tương tự nào đang hoạt động ngày nay.
Tuy nhiên.
Chi tiết quyết định thành bại, và tôi cho rằng đây là một trong những phê bình có ý nghĩa hơn đối với BlueSky và atproto.
Bạn thấy đấy, có nhiều "phương pháp" để tạo DID. BlueSky hỗ trợ hai phương pháp: did:web, dựa trên tên miền. Phương pháp này có một số nhược điểm, mà tôi cá nhân vẫn chưa hoàn toàn hiểu rõ để mô tả, tôi tin rằng tôi sẽ viết sâu hơn về DID trong tương lai.
Vì những điểm yếu đó, BlueSky đã tự phát triển một phương pháp DID riêng, gọi là did:plc. plc viết tắt của "placeholder" (bộ giữ chỗ), vì mặc dù họ dự định hỗ trợ nó vô thời hạn, nhưng nó vẫn có điểm yếu. Điểm yếu này nằm ở chỗ nó yêu cầu hỏi một dịch vụ do BlueSky vận hành để phân giải thông tin chính xác. Ví dụ, đây là truy vấn của tôi. Điều này có nghĩa là BlueSky có thể cấm bạn theo cách nghiêm trọng hơn so với những gì thiết kế mạng lưới cho phép đối với các phương pháp khác, và một số người cho rằng đây là một vấn đề rất nghiêm trọng.
Vậy, liệu điểm yếu này có phải là chết người không? Tôi không nghĩ vậy. Lý do đầu tiên là, nếu bạn thực sự không muốn tham gia vào nó, bạn có thể dùng did:web. Đúng là vì những lý do khác mà nó cũng không lý tưởng; rốt cuộc đó là lý do để tạo ra did:plc. Nhưng bạn thực sự có thể giải quyết vấn đề này.
Một điểm khác là, theo quan điểm cá nhân tôi, nhóm BlueSky đã thể hiện đủ sự thấu hiểu và cảm giác không thoải mái với quyền kiểm soát ở đây, và thiết kế của hệ thống cho phép bạn chuyển sang các hệ thống tốt hơn nếu chúng được phát triển. Họ cũng nói rằng việc chuyển quyền quản trị did:plc sang một mô hình đồng thuận nào đó trong tương lai là có thể. Có lựa chọn. Ngoài ra, người khác cũng có thể vận hành dịch vụ did:plc và sử dụng dịch vụ đó (nếu họ muốn).
Cá nhân tôi cho rằng đây là ví dụ về cách quản lý thực tế, trong khi người khác lại coi đó là âm mưu xấu xa. Bạn phải tự mình phán xét.
BlueSky được xây dựng trên atproto như thế nào?
Bây giờ khi đã hiểu atproto, chúng ta có thể hiểu BlueSky. BlueSky là một ứng dụng được xây dựng trên mạng atproto. Họ vận hành một chế độ xem ứng dụng, cũng như một ứng dụng web làm việc với chế độ xem đó. Họ cũng vận hành PDS cho người dùng đăng ký qua ứng dụng web, và các relay giao tiếp với các PDS đó.
Họ đã công bố hai bộ từ điển, một là com.atproto.* và một là app.bsky.*. Cái trước là các thao tác cấp thấp mà bất kỳ ứng dụng nào trên mạng cũng cần, còn cái sau là các thao tác đặc thù của BlueSky.
Nhưng một điều tuyệt vời ở BlueSky là mục tiêu sản phẩm của họ là không ai cần biết những thứ mọt sách này để có thể sử dụng BlueSky. Không có instance nghĩa là không có bước "tôi cần chọn một instance để tạo tài khoản", và khả năng di chuyển nghĩa là nếu máy chủ của tôi gặp sự cố, tôi có thể chuyển đi mà những người theo dõi tôi chẳng hề hay biết.
Người khác có thể xây dựng ứng dụng trên atproto như thế nào?
Bạn có thể tạo một ứng dụng atproto bằng cách tạo một từ điển. Sau đó, bạn cần vận hành một chế độ xem ứng dụng để xử lý dữ liệu mạng liên quan đến từ điển của bạn, và ứng dụng của bạn sẽ cho phép mọi người ghi dữ liệu vào PDS của họ sử dụng từ điển của bạn.
Tôi cũng đang cân nhắc làm điều này. Hãy chờ xem.
Kết luận
Tốt rồi, về mặt kỹ thuật, đây là tổng quan về cách atproto và BlueSky hoạt động. Tôi nghĩ thiết kế này rất tinh tế. Hơn nữa, tôi cho rằng việc tách biệt việc chú ý đến atproto và BlueSky là rất có ý nghĩa, vì việc mạng có một "ứng dụng chủ lực" chính là lý do để sử dụng nó. Đây cũng là một dạng kiểm thử, đảm bảo rằng atproto đủ tốt để xây dựng các ứng dụng thật sự.
Tôi tin rằng trong tương lai tôi sẽ còn có nhiều điều hơn để nói về tất cả những điều này.
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














