开放式社交网络(OSN网络)之二:一个不甘被时代淘汰的中年父亲

  我们刚开始做这个项目的时候,遇到很多难题。当时我们看见公司业务下滑,于是向老板自荐了这个项目,也许是我表达能力有问题,老板很满意这套设计方案,但是就是不愿意启动项目。
  于是我们就只能慢慢看着公司的人口由100来人,变成了80号人,又变成了40号人,然后是发不起工资,然后是欠薪,然后是。。。。。。
  后来我们不愿意这个想法就此结束,我们就选择了离开公司,自主创业。当我在设计这个项目时,遭到了各种各样的质疑。也经常遭到家人的打击,“你做梦吧”,“别人都想不到,就你能想到”,“这种大事不需要你来关心”。一个中年男人的悲哀,没有人能够理解我们,活着不如狗。很多时候我被当成疯子,我也想过要放弃,这种事情可能真的不是我能做的。
  我现在有两条路可以选,去做一个美团骑手,可以维持家里生计。另一条是坚持继续项目,可能我会负债累累,也可能会以失败而告终。
  
  我有一个可爱的儿子,2岁了,不是很聪明,但特别可爱。每每看着他,我就在想象以后我的儿子是不是会跟我走同样的道路?一个大龄中年程序员,在工作中浑浑噩噩,总感觉不到自己的价值。
  我儿子并不聪明,也许以后他不能考上985,211,难道他以后只能走爸爸的老路吗?爸爸没有能力让你以后去拼爹,但是爸爸希望尽自己的一份薄力能够给你营造一个公平的环境。爸爸希望以后你能拥有去实现自己梦想的机会。于是我不顾家人的反对,坚持做了这个项目。也许我会连累家庭跟着我过苦日子,但是至少等我儿子长大的时候,我可以很自豪的告诉他,爸爸为了跟垄断战斗不曾低头过。



  闲话说完,现在来看OSN网络的整体设计。要实现所有的社交APP相互连通,有这么几种方案。
  第一种方案:让每个企业两两对接。这样的设计会导致每加入一个企业,所有的企业都会修改一次代码或者配置。每个企业至少要做n-1次适配。这种方案局部可行,但是企业一旦加入多了,就不可行。
  第二种方案:使用一个中心化的服务器来为每个企业进行适配。
这种方案在兼容性和延伸性上比第一种好,但是同样会有局限性,就是当其他的地方组织形成了一个小的团体以后,两个团体会形成不兼容,而且耗资巨大。
  第三种方案:采用目前去中心化的设计思想,设计一个相同的账户体系和协议。企业无需与所有的企业形成适配,也无需中心化服务器授权。只需要将现有的系统和我们的OSN网络做一个兼容,安装一个开源的通信小模块就可以完成和其他企业的联通。并且去中心化的设计无需担心自己的服务器受制于中心化的服务器。断开了与OSN网络的连接,也可以形成一个闭环网络,功能不受影响。
  这种方案适合于全球的社交APP联通,因此我们采用了这种设计思路,设计了全新的账户体系和协议。
  OSN网络设计的初衷是为了让所有的社交APP都能够自由使用,不设门槛。因此我们采用了p2p网络作为基础,每一个社交APP的服务器都会以一个节点的形式加入到OSN网络中。即使是其中部分节点不工作了,哪怕OSN网络中只剩余一个节点,也不会影响OSN网络的运转。
具体的细节请见我们在github上公布的开放式社交网络通信协议。



  “开放式社交网络(OSN网络)”是一个开源项目,我们在设计的时候考虑到要让所有的公司都能轻易的加入和离开网络,对企业是免费的。
  目前我们的团队是一个不盈利的组织,目前还非常弱小,我们非常的期待各式的人才,包括研发、翻译、市场、运营、FA等等人才能够加入我们团队。同时也希望能够筹集到一些费用资助我们继续研发这个项目。
项目的整体框架和协议已经设计完成,演示demo也开发完成,近期将会开源到GitHub(https://github.com/OpenBPI/osnw/)上。我的联系方式:微信13147084703,电话13696107809。

原文地址:https://www.cnblogs.com/osnw/p/12034440.html

时间: 2024-10-12 14:50:04

开放式社交网络(OSN网络)之二:一个不甘被时代淘汰的中年父亲的相关文章

开放式社交网络(OSN网络)之八:企业现有系统接入OSN网络的解决方案客户端篇

  企业现有系统已经有了自己的完整体系,要完成“跨界通信”需要在用户终端和服务器端进行一定的适配.   客户端适配需要做的工作包括:生成OSN账户.添加跨界好友.发送和接收跨界消息. 生成OSN账户 客户端现有的账户体系需要与OSN账户做一个映射. OSN账户是ECDSA公钥的散列组合,ECDSA采用Prime256V1曲线. 账号标志头:OSN 账号主体:base58编码字符串,base58编码与bitcoin一致.以后的所有base58都使用此编码. 账号主体二进制定义: |字段尺寸|描述|

开放式社交网络(OSN网络)之五:宏观隐私保护与反大数据

我们提的这两个概念与当今社会的很有理念是相违背的.如果觉得隐私保护不重要的朋友,请越过这篇文章.  现在很多人都在提隐私保护的问题,在中国复杂的国情下,隐私该如何保护?我们来看几个问题.  第一,假设一家企业将用户的隐私泄露了,会有多大的影响?由于互联网行业有头部企业,即使隐私泄露了,因为没有其他替代产品,因此隐私泄露对企业的影响并不大,等风声一过该干什么还得继续干什么.  第二,用户的数据到底是归用户所有还是企业所有?很多人都以为那应该是归我所有,但是实际上你的数据归公司所有,比如腾讯的隐私申

Linux网络编程(二)

服务套和客户机的信息函数 1.字节转换函数 在网络上面有着许多类型的机器,这些机器在表示数据的字节顺序是不同的, 比如i386芯片是低字节在内存地址的低端,高字节在高端,而alpha芯片却相反. 为了统一起来,在Linux下面,有专门的字节转换函数. unsigned long int htonl(unsigned long int hostlong)     unsigned short int htons(unisgned short int hostshort)     unsigned

winform网络编程(二)

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump

通用js函数集锦<来源于网络> 【二】

通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json方法10.extend方法11.类型判断的方法 数组方法集 Angela.array = { //# 数组方法 // index, 返回位置! 不存在则返回 -1: index: function (t, arr) { //# 返回当前值所在数组的位置 if (arr.indexOf) { return ar

安卓第八天笔记--网络编程二

安卓第八天笔记--网络编程二 1.网络图片查看器 /** * 网络图片查看器 * 1.获取输入的URL地址,判断是否为空 * 2.建立子线程,获取URl对象new URL(path) * 3.打开连接获取HttpURLConnection conn = (HttpURLConnection) url.openConnection(); * 4.设置连接超时时间conn.setConnectionTimeOut(5000)毫秒 * 5.设置请求方式setRequestMethod * GET或者P

网络编程(二)

网络编程(二)    >>>思维导图>>>中二青年 基于TCP协议的Socket套接字 server端 import socket sk = socket.socket() sk.bind(('127.0.0.1',8898)) # 把地址绑定到套接字 sk.listen() # 监听链接 conn,addr = sk.accept() # 接受客户端链接 ret = conn.recv(1024) # 接收客户端信息 print(ret) # 打印客户端信息 conn

网络学习二

端口转发:端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端口. 端口转发一般常常用于虚拟机与宿主机之间通信时使用.最经常用的如:通过linux的ssh方式通信,本机端口转发连接VMware虚拟机. DMZ:DMZ可以理解为一个不同于外网或内网的特殊网络区域,DMZ内通常放置一些不含机密信息的公用服务器,比如Web.Mail.FTP等. DMZ区服务器与内网区.外网区的通信是经过网络

php通过cURL下载网络上面的一个HTTPS的资源

<?php /** * php通过cURL下载网络上面的一个HTTPS的资源 * 案例:从google的CDN上下载jquery- v1.7.1 */ $curlobj = curl_init(); // 初始化 curl_setopt($curlobj, CURLOPT_URL, "https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js");// 设置访问网页的URL curl_setopt($curlo