Near Social là gì?

Giới thiệu về NEARSocial bởi mr27.near - một AI chat bot được tạo bởi founder NEARSocial
Giới thiệu về NEARSocial bởi mr27.near – một AI chat bot được tạo bởi founder NEARSocial

Near Social (trước đây được gọi là Social08) là một giao thức dữ liệu xã hội (social data protocol) được xây dựng và chạy hoàn toàn trên NEAR Protocol.

NEARSocial là dự án của Eugene, ông là một trong những early contributor của NEAR Protocol, cựu kỹ sư của Facebook và Google và hiện đang làm việc tại Proximity Labs. NearSocial khởi đầu với tầm nhìn của ông về một web mở, NEARSocial được xây dựng và chạy hoàn toàn onchain trên NEAR (tức là cả UI lẫn xử lý backend và data đều chạy trên NEAR), dự án hiện vẫn đang trong giai đoạn phát triển ban đầu nhưng cũng tạo được nhiều sự ủng hộ từ các developers đến, xây dựng và đóng góp các dapp của mình vào nền tảng. 

Trong bài viết ngày hôm nay, cùng tác giả Eugene giải thích một chút về các chuẩn schema và cách tương tác với NEARSocial. Ở cuối bài viết sẽ là đường link tham gia mini-hackahon của NEARSocial với giải thưởng 5000$ và 1000 NEAR!

Mô tả Schema

Các chuẩn dữ liệu trong SocialDB được tổ chức như một cây JSON. Quy tắc ràng buộc duy nhất chính là các key trong root phải là các ID tài khoản lưu trữ dữ liệu. Điều này được thực hiện có chủ đích, chính nhờ nó mà contract SocialDB không cần ràng buộc bất kỳ cấu trúc hoặc schema nào. Nếu không, ta phải thay đổi contract mỗi khi đổi schema. Việc kiểm soát các schema của contract có thể dẫn đến việc tập trung hóa và nhiều hạn chế kèm theo. Thay vào đó, các schema của Near Social nằm ngoài contract của SocialDB.

Hiện tại, Github là nơi bạn tìm hiểu về các chuẩn của dự án.

  • in đậm có nghĩa là key bắt buộc.
  • in nghiêng có nghĩa là key tùy chọn.
  • [account_id] có nghĩa là dynamic key là một ID tài khoản. Ví dụ: alex.near như là một key. Nó thường được sử dụng để đề cập đến tài khoản đó.

Root schema

Mỗi tài khoản phải tuân theo Root schema

Các widget

Các widget là các thành phần có thể sử dụng lại, có thể kết hợp cho Near Social. Các Widget cũng tương tự như các app/game nhỏ trong mạng xã hội Facebook (như game farm ville chẳng hạn), các widget trên NEARSocial cũng chính là các dapp được xây dựng từ cộng đồng, cho phép người dùng tương tác với nó. Ví dụ như các widget like / share/ comment hay stake NEAR trên NEARSocial. 

Bạn có thể xem và tạo các widget tại near.social.

Ví dụ: một data explorer widget cho phép bạn khám phá dữ liệu thô từ SocialDB.

NEARSocial data explorer widget
NEARSocial data explorer widget

Mã nguồn mở cùng version control

Mã nguồn của mọi widget được lưu trữ công khai trong SocialDB. Chủ sở hữu widget có khả năng nâng cấp widget bằng cách cập nhật mã nguồn. Nhưng vì SocialDB được lưu trữ trên blockchain, nên tất cả các phiên bản trước của widget cũng vẫn tồn tại. Điều này cho phép thực hiện version control tự động cho các widget

Forking

Nếu bạn đã quen thuộc với GitHub, bạn biết rằng bạn có thể fork bất kỳ repo công cộng nào để tạo phiên bản của mình. Tương tự, bạn có thể fork bất kỳ widget nào ngay từ near.social UI.

vGmTBWxcHCpWU9DFGLinJDRkzN IT SRmfDWwoDMr

Việc fork sẽ tạo một bản sao của mã nguồn widget, nhưng là bên trong tài khoản của bạn. Nó cho phép mọi người sửa đổi các widget hiện có. Sau khi bạn lưu widget mới, nó sẽ có thể được sử dụng ngay lập tức. Và dĩ nhiên mọi người cũng sẽ có thể xem hay fork phiên bản widget của bạn.

Phần lớn người dùng có nhu cầu dùng UI để tạo ra một pull request, để cho phép mọi người có thể merge các thay đổi từ những fork khác. Tuy nhiên hiện tại thì việc này vẫn còn phải được thực hiện thủ công.

Ngôn ngữ lập trình

Các widget được triển khai trong một phiên bản giới hạn của JSX (JavaScript với ReactJS).

Code được thực thi trong máy ảo trong môi trường sandbox. Điều này đảm bảo các widget không thể truy cập local storage hoặc cookie của trình duyệt.

Link dự án

Xem bài thuyết trình về Near Social tại NEARCON22

Khám phá Near Social: near.social

Github: https://github.com/NearSocial

Twitter: @NearSocial_

Telegram: @NearSocial

SocialDB Contract:

Standards: https://github.com/NearSocial/standards

Near Social Explorer:

Nếu bạn đang tìm kiếm một mạng xã hội dựa trên Mastodon (Một dịch vụ mạng xã hội mã nguồn mở) cho người dùng .near, hãy xem bài viết về mastodon.near.social

SocialDB

SocialDB là một hợp đồng thông minh để lưu trữ dữ liệu mạng xã hội trên NEAR.

Get API

Lấy danh sách các key và trả về một đối tượng joined JSON với dữ liệu phù hợp.

Đọc một profile của tài khoản self.social.near

Để đọc đệ quy tất cả các trường của một đường dẫn đã cho, hãy thêm hậu tố **

near view social.near get '{"keys":["self.social.near/profile/**"]}''

Trả về đối tượng aggregated JSON

{

  "self.social.near": {

    "profile": {

      "name": "Near Social",

      "image": {

        "ipfs_cid": "bafkreiej5new6k7bzlaaapuc7fgjlwaoqqw2qgzvilbmdankmfxw7siw6q"

      },

      "linktree": {

        "twitter": "NearSocial_",

        "github": "NearSocial",

        "telegram": "NearSocial",

        "website": "near.social"

      }

    }

  }

}
Đọc tên của tất cả tài khoản cùng với các profile

Lưu ý rằng truy vấn này sẽ lặp trên tất cả các tài khoản và sẽ không phù hợp với chế độ available view call gas trong tương lai.

env NEAR_ENV=mainnet near view social.near get ‘{“keys”:[“*/profile/name”]}’

{

  "mob.near": {

    "profile": {

      "name": "Eugene The Dream"

    }

  },

  "nearcondemo.near": {

    "profile": {

      "name": "Very Berry Demo Acc"

    }

  },

  "zavodil.near": {

    "profile": {

      "name": "Vadim"

    }

  },

  ................................

 

  "kuzu.near": {

    "profile": {

      "name": "Joinairdrops"

    }

  },

  "goldich.near": {

    "profile": {

      "name": "MAG"

    }

  }

}

Keys API

Lấy danh sách các key và trả về một đối tượng joined JSON với các key khớp với truy vấn.

pub fn keys(self, keys: Vec<String>) -> Value;

  • keys – một array của các key pattern cần trả về.

Trả về đối tượng aggregated JSON.

Lấy danh sách các widget của các tài khoản root.near

env NEAR_ENV=mainnet near view social.near keys ‘{“keys”:[“root.near/widget/*”]}”

{

  "root.near": {

    "widget": {

      "AllProfilesWithGithub": true,

      "Egg": true,

      "TotalAccountsCount": true

    }

  }

}
Lấy danh sách các tài khoản có các widget

env NEAR_ENV=mainnet near view social.near keys ‘{“keys”:[“*/widget”]}’

Lưu ý rằng truy vấn này lặp trên tất cả các tài khoản và sẽ không phù hợp với chế độ available view call gas trong tương lai.

{

  "mob.near": {

    "widget": true

  },

  "nearcondemo.near": {

    "widget": true

  },

  "zavodil.near": {

    "widget": true

  },

 

  ................................

 

  "elektromania.near": {

    "widget": true

  },

  "kn00t.near": {

    "widget": true

  }
}

Tham gia mini-hackathon với NEARSocial!

NEARSocial đang tổ chức một mini-hackathon với giải thưởng 5000$ cùng 1000 NEAR, tham gia tại đây: https://hack.near.social/

https://twitter.com/NearSocial_/status/1622690510631538703

Cộng đồng Hệ sinh thái NEAR tại Việt Nam

0 0 đánh giá
Article Rating