加密货币都是去中心化的应用,去中心化的基础就是P2P网络,其作用和地位不言而喻,无可替代。事实上,P2P网络不是什么新技术。但是,使用Nodejs开发的P2P网络,确实值得围观。这里,来看看Ebookcoin
的点对点网络是如何实现的。
这段代码的意思是,当区块链(后面篇章分析)加载完毕的时候(触发事件),依次将配置的节点写入数据库,如果数据库已经存在相同的记录就忽略,然后更新节点列表,触发节点加载完毕事件。
两个setImmediate
函数的调用,一个循环更新节点列表,一个循环更新节点状态。
看53行,我们知道,程序通过transport
模块的.getFromRandomPeer
方法,逐个随机的验证节点信息,并将其做删除和更新处理。如此一来,各种调用关系更加清晰,看流程图更加直观。.getFromRandomPeer
的代码:
代码很简单,重要的是理解async.retry
的用法(下篇技术分享,详细学习),该方法就是要重复调用第一个task函数20次,有正确返回结果就传给回调函数。这里,只要查到一个节点,就会传给485行的getFromPeer
函数,该函数是检验处理现存节点的核心函数,代码如下:
这里最重要的是532行,request
第三方组件的使用,请看参考链接。官方定义为简单的http客户端,功能足够强大,可以模拟浏览器访问信息,经常被用来做测试。
第二个循环调用的函数很简单,就是循环更改state
和clock
字段,主要是将禁止的状态state=0
,修改为1
,如下:
综上,整个P2P网络的读写和更新都已经清楚,回头再看活动图和类图,就更加明朗了。
本篇,重点阅读了peer.js
文件,学习了一个使用Nodejs开发的P2P网络架构,其特点是:
一旦达到一定的节点数量,就会形成一个互联互通的不死网络
。搭建在这种网络上的服务,会充满怎样的诱惑?加密货币为什么会被认为是下一代互联网?这加起来不足千行的代码,可以给我们足够多的遐想空间。
这部分代码,涉及到dblite,request,z_schema
等第三方组件,以及Ebookcoin自行实现的事件处理方法library.bus
(在app.js
文件的行),都很简单,不再分享或赘述,请自行查阅。本篇涉及的代码中,关于回调的设计很多,值得总结和研究。async
组件,被反复使用,有必须汇总一下,请关注后续的技术分享。
本系列文章即时更新,若要掌握最新内容,请关注下面的链接
【摘要】:随着云计算、互联网、大数据、P2P通信技术的快速发展,去中心化的SNS网络已经得到了广泛的普及和应用,吸引了越来越多的用户使用。论文详细地分析了去中心SNS平台功能架构,并且描述了去中心化SNS平台的关键技术,主要包括网络技术和数据库技术的快速发展。
支持CAJ、PDF文件格式,仅支持PDF格式
|
||||||||||
|
|
|
|
|
||||||||||
|
|
|||
|
一想到P2P,很多人会想到互联网金融诈骗。如号称全宇宙最大的互联网+融资租赁平台e租宝,火爆时扛起了国内P2P发展的大旗,吸纳资金额近500亿,牵涉投资人近80万人,客户遍布全国,但在2015年底因设立假标、非法集资被查封,80万投资人的资金到现在也没有着落。由此P2P一词与诈骗联系在一起。
其实,P2P本意是 Peer to Peer ,意思是:我们平级对平级交流,不再需要中心化的协调者。P2P作为一种交易结构,它的使用范围,远不限网络借贷。
P2P的本质是去中心化。用科技,取代过去必须由中心机构才能提供的“信息中介”和“信任中介”价值,从而优化交易结构,让用户自己服务自己,各方获益。
P2P 小额借贷是一种将非常小额度的资金聚集起来借贷给有资金需求人群的一种商业模型。由网络信贷公司(第三方公司、网站)作为中介平台,借助互联网、移动互联网技术提供信息发布和交易实现的网络平台,把借、贷双方对接起来实现各自的借贷需求。
P2P网络理财平台,服务对象是传统银行中不愿意做的高风险,高成本业务。因为它需要对存货双方的海量信息进行核实,操作成本高,银行业不愿弄。若得用互联网大数据分析,做好信息的精准筛选,应该是不错的项目。
互联网打破信息堵塞,让有需求想转卖的甲方与为省成本欲买二手用品的乙方直接联系,这就是阿里的闲鱼。
想买二手车的人去交易市场,因对车,对市场信息的不了解容易被中间商骗额外多付钱,而想卖车的人担心市场人员故意压价。有了瓜子二手车网,没有中间商赚差价,交易双方直接交易,更省力、更便捷。