V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
rockxie
V2EX  ›  奇思妙想

去中心化的SNS工具

  •  
  •   rockxie · 2012-06-30 20:12:47 +08:00 · 7721 次点击
    这是一个创建于 4564 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近关注BITCOIN,发现这种P2P的方式的确很有魅力。

    去中心化的SNS工具,不用专门建立服务器,用户承担一定的数据存储服务。

    是否也可以做出这样一个工具,可以用来像FACEBOOK那样,发布自己的文字,和别人聊天,发布照片?

    所有人都有一个加密之后的联系地址——唯一性(类似钱包地址)。

    为了解决同步数据量过大的问题,可以让朋友之间相互存储数据,这样,只要网络上还有人存储了你的数据,不论在哪里都不会消失。

    当加对方为好友之后,就会自动将对方的所有数据(博文,照片,好友的地址)下载到本地。

    考虑到体积的问题,也可以有选择的保存。

    即时通信就如同是给对方打钱一样,对方可以很快收到消息。(这部分内容可以选择本地保存或者上传到网络。)

    大家推演一下其中的难度和实现方式
    40 条回复    1970-01-01 08:00:00 +08:00
    that5
        1
    that5  
       2012-06-30 20:19:11 +08:00
    存储,就这一点就行不通啊。
    Hyperion
        2
    Hyperion  
       2012-06-30 20:22:35 +08:00
    P2P方式? ...
    rockxie
        3
    rockxie  
    OP
       2012-06-30 20:24:31 +08:00
    @that5 存储只存储好友的数据,应该可以接受。还可以考虑压缩存储。BTC每次都要爬完整个网络的数据呢。

    @Hyperion 是的,就是类似BTC
    for4
        4
    for4  
       2012-06-30 20:26:57 +08:00
    第一念头是"会很耗电"
    rockxie
        5
    rockxie  
    OP
       2012-06-30 20:43:27 +08:00
    @for4 这个又不是btc,怎么会很耗电? btc耗电是故意的。
    Hyperion
        6
    Hyperion  
       2012-06-30 21:00:27 +08:00
    @rockxie P2P社交表示不看好... P2P的微博和论坛, 毕竟网络承载的只是文字信息而已, 这社交系统......

    不敢想象= =+
    levn
        7
    levn  
       2012-06-30 21:02:43 +08:00
    每个人都开个服务端就行了。同步数据干嘛。
    deerlamp
        8
    deerlamp  
       2012-06-30 21:08:31 +08:00
    diaspora
    that5
        9
    that5  
       2012-06-30 21:11:38 +08:00
    @rockxie 简单的事情复杂化了
    killpanda
        10
    killpanda  
       2012-06-30 21:16:07 +08:00
    假如未来手机,可以作为一个类似服务器的平台,让每个人和随便播电话一样访问其他人的「页面」,那么P2P社交工具也不是不可能的。
    lentrody
        11
    lentrody  
       2012-06-30 21:25:32 +08:00
    只发图,不说话
    Alcar
        12
    Alcar  
       2012-06-30 21:26:36 +08:00
    我以前有个胡思乱想的想法,就是每个人以blog为基础,通过类似于rss的方法(当然现在的rss是不行的)互相关注,增加好友就像增加一个rss订阅一样,这样也实现了去中心化...
    rockxie
        13
    rockxie  
    OP
       2012-06-30 21:32:38 +08:00
    @deerlamp 这个项目的确是最接近这个的。不过没开放注册。


    @lentrody 日本的? 貌似是论坛形式?
    rockxie
        14
    rockxie  
    OP
       2012-06-30 21:33:34 +08:00
    @Alcar 那样会需要自己架设服务器,对于普通用户来说门槛。

    P2p还可以加密,保密,防止监听。
    levn
        15
    levn  
       2012-06-30 21:41:29 +08:00
    听说过opera unite吗。

    tor网络里好像能提供web服务吧。
    lentrody
        16
    lentrody  
       2012-06-30 21:46:37 +08:00
    @rockxie 加密P2P软件perfect dart,只是附带个类似公告牌的东西,没有实时性
    jasl
        17
    jasl  
       2012-07-01 00:01:54 +08:00
    diaspora似乎是的https://github.com/diaspora/diaspora/
    Linxing
        18
    Linxing  
       2012-07-01 02:22:35 +08:00
    个人觉得可行性存在,但是安全性问题是个大问题..隐私....用户量..
    chengxiao
        19
    chengxiao  
       2012-07-01 02:32:07 +08:00
    这是简化社交方式还是在复杂化?感觉违背了社交的意愿啊~
    MartianZ
        20
    MartianZ  
       2012-07-01 03:35:43 +08:00
    这个好多人提出来过了

    首先会很麻烦,违背了sns的初衷,安全性虽然可以得到很大的提高,但是对于普通的用户,那些不在意安全、用360杀毒的用户来说,优点几乎就没了。

    所以不太可能全面推广,小众范围内或许可行
    jybox
        21
    jybox  
       2012-07-01 13:01:37 +08:00
    比特币网络也有些问题,就是网络规模(订单数量)大了之后,客户端之间的流量会多到无法承受,这点上有很多专家分析过了...

    其实,我也在酝酿一个去中心化的即时通讯,我感觉,难点主要在于好友之间的发现上,发现好友是关键,一旦发现了,两者建立连接,就干什么都可以了。更复杂的,比如组建“群”,等等。

    还有就是投票的问题,很多地方都需要投票。比如,我们不可能用一个HASH串做用户名,需要有一个机制把可以记忆的用户名与HASH对应起来,这时,判断用户名的归属就需要投票了。
    比特币选择了让每一笔交易经过每一个客户端,这样就不会出现交易丢失的情况了,但是也造成了上文提到的效率问题。
    我们需要一种可靠的、分布式的投票方式——我还没啥好主意
    jybox
        22
    jybox  
       2012-07-01 13:07:54 +08:00
    关于每个人都充当存储服务,存储好友的信息:

    如果存储的是双方的聊天记录、对方的公开日志和消息。可能没什么不妥,还会方便离线阅读。
    但如果是经过加密的、与自己无关、私密的内容呢?不是每个人都愿意替别人存储吧?
    人家不可能24小时在线,所以数据必须冗余地存储,必须要去存储于自己无关的数据。

    我还有个不太成熟的想法:
    开发各种插件,例如Dropbox、快盘,等等网盘的插件,用户可以自由选择。也有插件可以架设在自己的Web服务器或VPS上。
    利用它们来存储自己的数据。
    用户可以自由地从它们之间切换,这样应该也可以说是去中心化吧..
    rockxie
        23
    rockxie  
    OP
       2012-07-01 13:33:03 +08:00
    @jybox 看了一下你的零毫秒,不知道第一个版本是否已经释放出来了?

    我觉得前期功能多少并不重要,重要的是将它做出来。
    有什么问题也不重要,重要的还是先做出来,后期可以慢慢进行改进。

    看到你在论坛上纠结于界面,这点前期完全没有必要。QQ当年界面一样惨不忍睹。
    ryon
        24
    ryon  
       2012-07-01 13:36:00 +08:00
    http://pagecookery.com/
    有这样的概念。:D相互关注博主,会自动更新
    anyliz
        25
    anyliz  
       2012-07-01 14:18:47 +08:00
    这样数据的安全性不好吧,即使是加密的,应该也有方法破解,何况客户端本身要看数据,除非的话加密和服务器端结合起来,验证做在服务器端。
    其实数据丢失的问题,如果一个人的好友较少,那么他的数据丢失的可能性也越大吧。
    流量方面其实是依赖客户端方面的上行流量,流量方面的问题上面有人说到了。
    另外分析下这样做有什么好处?
    减少带宽和服务器开支?这样做无非是将成本分摊到每个客户端头上了。
    防止封锁?统一的端口本身很好封的,协议也不例外吧。
    jybox
        26
    jybox  
       2012-07-01 15:04:48 +08:00
    @rockxie 你怎么找到我的零毫秒的........

    情况比较乱,听我细细说,在写去中心化的即时通讯(3.0版本)之前,我要先写两个中心化的即时通讯(1.0版本和2.0版本)来练手,现在1.0已经完成了,但是实在惨不忍睹。2.0正在写

    同时现在也在做去中心化(3.0版本)的调研,解决一些理论问题。
    chuck911
        27
    chuck911  
       2012-07-01 15:07:06 +08:00
    说的就是OStatus
    jybox
        28
    jybox  
       2012-07-01 15:08:43 +08:00
    @anyliz 加密算法选择得当,密钥长到一定程度,就可以认为是无法破解的了...

    关于端口,很好办啊。每个人都可以使用随机的版本号啊。你在首次使用时,程序内置一组比较稳定的服务器IP和端口,通过他们连接到网络,然后在本地缓存使用过程中遇到的其他客户端的IP和端口。供下一次登录时连接。

    即使“内置的一组比较稳定的服务器”被封锁了,你也只需要向其他用户索要一个正在运转的客户端的IP和端口就可以。

    比特币网络就是这样的。
    rockxie
        29
    rockxie  
    OP
       2012-07-01 16:07:26 +08:00
    @jybox 从你的域名进去的,下载了客户端,不过登录不上。 可以聊聊啊,我对你的3.0版本很感兴趣。
    jybox
        30
    jybox  
       2012-07-01 16:18:41 +08:00
    @rockxie 能下载到的那是1.0,中心化的,功能很烂,现在服务器被我关掉了......

    过几天就期末考试了,等放暑假的。既然你感兴趣,以后我有什么进展都在这里发一下好了。
    luztak
        31
    luztak  
       2012-07-01 17:00:49 +08:00
    @jybox 看来看过BTC原理啊.不错哟.
    delectate
        32
    delectate  
       2012-07-01 17:35:23 +08:00   ❤️ 1
    行了,大家都散了吧。去中心化只是梦想。比特币也是意淫。

    先不说数据安全性,就说数据存储吧,你们知道fb存储了多少数据吗?假如说只和好友同步,那好友的信息怎么才能即时到达?信息的延迟性是显而易见的。

    其次是好友,没有node列表,你怎么去发现?去中心化im也不可能。之所以要中心化,是因为要审查,还有各种协议的弱点、内网通信。而且好友列表也只能中心服务器去获取;如果是每个人都保存一份,且不论安全性,就是数据体积,再压缩也不是pc可以承受的。
    jybox
        33
    jybox  
       2012-07-02 23:08:08 +08:00
    @delectate 每个人的数据量不是很大的,你不能看总量啊
    delectate
        34
    delectate  
       2012-07-02 23:14:59 +08:00
    @jybox ,每个人 的数据量都要随着sns的扩大而倍增。仅算好友列表的,已经十分庞杂。而其他数据更是不可想象,图片、视频、音乐都是重头。数据的延迟性更不可估量。

    手机版的,怎么应对高能耗?
    jybox
        35
    jybox  
       2012-07-02 23:21:16 +08:00
    @delectate 数据存储参见22楼,可以自己存储到网盘/自己的服务器上。虽然有点违背去中心化,但是至少自己有选择余地。

    关于手机:可以构建有层次的网络,像手机这种计算能力很低的终端,可以不参与网络转发等工作。有其他有计算能力的节点协助通讯。当然,选择协助的节点的过程是随机的。
    delectate
        36
    delectate  
       2012-07-02 23:24:54 +08:00
    @jybox ,你还是没有发现问题根源。

    我一直强调信息的实时性。因为延迟是最不能接受的,尤其是对于fb这样的sns,还有qq这样的im。你不想发个微博一天没有转发,看记录才发现卡在某个关键节点吧?或者qq发一句,从来没有回应……

    电骡之所以没问题,是因为文件发布了就永久存活,不怕。
    delectate
        37
    delectate  
       2012-07-02 23:26:36 +08:00
    电骡发布文件,也需要simplecd这样的索引站,和kad的搜索,不然很那做到实时。
    jybox
        38
    jybox  
       2012-07-02 23:28:35 +08:00
    @delectate 实时性有些困难,但是不是不可能解决..
    delectate
        39
    delectate  
       2012-07-03 00:01:37 +08:00
    @jybox ,不过还需要一个中心服务器push信息了。有些违背初衷。

    楼主的想法是好的,不过前提是,很困难实现。也许你的网络环境很好,但是还有拨号上网的,甚至还有只能uc浏览器上网的,不可不考虑。
    firsthym
        40
    firsthym  
       2012-08-01 14:13:03 +08:00
    对于用户来说,这完全是透明的,剩下的只有技术人员的YY了 -- 仅仅是吐槽。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2651 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 06:32 · PVG 14:32 · LAX 22:32 · JFK 01:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.