Skip to content

nrz123/tk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TK

前言

十多年前一次和吴琼放学一块回家的时候,她带了一个iphone4手机,我缠了她一路,中途曾经说以后要做一款社交软件。 那时候还不懂编程,不过我记得吴琼跟我说她的姐夫是学的计算机,算是我第一次听说编程吧。 后来学了计算机专业,中间曾经尝试过做一款社交软件,只是租不起服务器,买不起数据库又弄不到公网ip。 不过新的技术出现了,基于IPFS技术,解决了存储带宽等很多问题。也让我看到了制作一款社交软件的希望。

目标

本项目希望制作一个点对点无监管社交网路。 中心化的社交网络通常会有如下缺陷: 1:数据安全性得不到保障,黑客通过攻击中心服务器可以获得大量用户数据。 2:信息交流不够自由,通常会由于政策原因受到监管 3:难以保障用户隐私,软件公司会出于利益出售用户数据。 4:通常中心化社交软件适应某一区域后会难以推广。 相比之下去中心化社交软件可以很大程度上克服以上缺点

前置技术

IPFS: IPFS是一种分布式存储技术,数据被存储于FileCoin矿工处,基于冗余和经济关系来确保数据安全性,每个IPFS节点可以通过hash指针获取数据。 LIBP2P: LIBP2P属于IPFS的基础支持技术之一,通过LIBP2P解决了点对点通信问题,是IPFS分布式网络基础支撑技术。 IPNS: IPNS类似于DNS技术,可通过区块链技术将个人ID身份与HASH指针绑定。

技术原理

数据存储: 数据存于IPFS,但由于IPFS文件索引依赖于HASH值,导致当数据发生改变时HASH指针也随之改变。所以如何将个人数据和个人身份绑定就需要借助IPNS技术。用户数据所有数据被存于一个hash树中,其中叶节点存储用户数据如头像,消息,会话等。而非叶节点存储HASH指针。同时通过IPNS将用户ID与HASH树根节点HASH值绑定。

发送实时消息: 用户首先将消息保存于对应的HASH树中,然后通过LIBP2P通知对象,对方收到通知后会从IPFS中读取消息数据,同时会将发送者保存至自身会话列表中。

发送离线消息: 发送离线消息前提是本账户存在于对方的会话列表中,发送理想消息会将消息存储于hash树中,对方每次在登录时会遍历会话列表中的用户发送的消息。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published