Near Social (antes conhecida como Social08) é um protocolo de dados sociais construído sobre o protocolo NEAR.
Únete ao canal: Telegram group @NearSocial para debates
Assista a apresentação: Near Social at NEARCON22
Explore Near Social: near.social
Links
Github: https://github.com/NearSocial
Twitter: @NearSocial_
Telegram: @NearSocial
Contrato SocialDB:
- Fonte: https://github.com/NearSocial/social-db
- Mainnet: social.near
- Testnet: v1.social08.testnet
Padrões: https://github.com/NearSocial/standards
Navegador da Near Social:
- Fonte: https://github.com/NearSocial/viewer
- Mainnet: https://near.social/
- Testnet: https://test.near.social/
Se você está procurando uma rede social baseada em Mastodon para usuários .near, veja este artigo sobre mastodon.near.social
SocialDB
SocialDB é um contrato inteligente para armazenar dados sociais no protocolo da NEAR.
- Código fonte: https://github.com/NearSocial/social-db
- API: https://github.com/NearSocial/social-db#api
- ID Da conta Testnet : v1.social08.testnet
- ID da conta Mainnet : social.near
Obtenha API
Pega uma lista de chaves e retorna um objeto JSON unido com os dados correspondentes.
- keys – uma matriz de padrões de chave a serem retornados.
Lendo um perfil da conta self.social.near
Para ler todos os campos recursivamente para um determinado caminho, adicione o sufixo **.
Retorna o objeto JSON agregado.
Lendo nomes de todas as contas com perfis
Observe que esta consulta é iterada em todas as contas e não se ajustará à exibição de gás de chamada disponível no futuro.
Chaves das API
Pega uma lista de chaves e retorna um objeto JSON unido com as chaves correspondentes à consulta.
- keys – uma matriz de padrões de chave a serem retornados.
Retorna o objeto JSON agregado.
Obtendo uma lista de widgets de contas root.near
Obtendo uma lista de contas que possuem widgets
Observe que esta consulta é iterada em todas as contas e não se ajustará à exibição de gás de chamada disponível no futuro.
Padrões
Os dados no SocialDB são organizados como uma árvore JSON simples. A única regra imposta é que as chaves na raiz são os IDs de conta que armazenam os dados. Isso é feito intencionalmente, portanto, o contrato do SocialDB não impõe nenhuma estrutura ou esquema. Caso contrário, o contrato deve ser modificado para cada mudança de esquema. O controle dos esquemas contratuais pode levar à centralização e restrições. Em vez disso, o Near Social Standards vive fora do contrato do SocialDB.
Atualmente, Standards on Github é o local especificado para os padrões, mas isso pode mudar no futuro.
Descrição do esquema
- bold significa que a chave é necessária.
- italic significa que a chave é opcional.
- [account_id] significa que a chave dinâmica é um ID de conta. Por exemplo, alex.near como uma chave. Geralmente usado para criar alguma vantagem para essa conta.
Esquema raiz
Cada conta deveria seguir o Root schema
Widgets
Widgets são componentes reutilizáveis que podem ser compostos para o Near Social.
Você pode visualizar e criar widgets em near.social.
Por exemplo, um data explorer widget permite explorar dados brutos de SocialDB.
Código aberto com controle de versão
O código-fonte de cada widget é armazenado abertamente no SocialDB. O proprietário do widget pode atualizá-lo, atualizando o código-fonte. Mas como o SocialDB é armazenado em um blockchain, todas as versões anteriores do widget também estão disponíveis. Isso permite o controle de versão automático para cada widget.
Bifurcação (Forking)
Se você está familiarizado com o GitHub, sabe que pode usar qualquer repositório público para criar sua versão local. Da mesma forma, você pode utilizar qualquer widget diretamente da IU near.social.
Forking cria uma cópia do código-fonte do widget, mas em sua conta. Ele permite que todos modifiquem os widgets existentes. Depois de salvar o novo widget, ele ficará imediatamente disponível. E agora todos podem visualizar e bifurcar sua versão do widget.
É principalmente uma questão de interface do usuário para criar solicitações tipo pull request, para que as pessoas possam mesclar alterações de outras bifurcações (forks). Atualmente, tem que ser feito manualmente.
Linguagem de programação
Os widgets são implementados em uma versão limitada do JSX (um JavaScript com ReactJS). O código é executado na Virtual Machine personalizada para criar um espaço isolado (sandbox) seguro. Isso garante que os widgets não possam acessar o armazenamento local ou as cookies.