CN109936601A - 一种基于WebSocket连接的区块链双工通信网络 - Google Patents
一种基于WebSocket连接的区块链双工通信网络 Download PDFInfo
- Publication number
- CN109936601A CN109936601A CN201711361517.3A CN201711361517A CN109936601A CN 109936601 A CN109936601 A CN 109936601A CN 201711361517 A CN201711361517 A CN 201711361517A CN 109936601 A CN109936601 A CN 109936601A
- Authority
- CN
- China
- Prior art keywords
- websocket
- node
- connection
- client terminal
- block chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于WebSocket连接的区块链双工通信网络,客户终端使用HTTP通信模块向节点发送WebSocket协议探测数据包;节点收到数据包后会给予回复是否支持WebSocket协议以及所支持的协议版本;客户终端收到节点反馈后根据节点返回要求调整WebSocket协议版本,并开发发送请求建立连接的数据包和心跳包;节点通过验证客户终端是否在会话池当中,并且验证客户端的合法性确定是否建立连接关系并进行应用数据传输,由于在建立Websocket连接时,心跳包与数据包是可以一起发送到节点的,所以无论用户是否稳定在线,都可以完成稳定的数据传输,而不用将难得的连接机会浪费在建立连接上,从而减少网络数据传输时间,使网络运行速度更快,数据处理更高效。
Description
技术领域
本发明涉及区块链技术领域,特别是一种基于WebSocket连接的区块链双工通信网络。
背景技术
区块链网络是整个区块链的基础,传统区块链网络基本上都采用Socket的方式,以Socket为基础的区块链网络具有的特点一是组件库丰富,很久远之前的编程语言都支持,如上世纪六七十年代的cobol、c++;二是逻辑简单开发简便,只需要关心传输内容,而不用关心底层通信逻辑;三是不同区域网络不能直接互通,需要额外的组件支持,例如GRPC。
但是因此而带来的问题有:一是对网络连接的自主控制能力较弱,意味着数据实时性,传输的效率很难控制;二是基于Socket的应用不能直接与浏览器通信,意味着以Webkit一类为核心的因够用均不能直接访问区块链网络;三是对于服务到端的主动通信能力较弱,很难建立有效的实时推送机制。
因此,为了未来区块链网络生态的更好发展,我们需要在设计上就允许任何终端类型都可以很方便的接入我们,而当下绝大多数区块链网络在提供对外服务时依然需要一个中心化的服务器,于是如何对区块链网络进行设计成为未来区块链网络建设的重要研究方向。
发明内容
本发明旨在提出一种基于WebSocket连接的区块链双工通信网络,重新定义了区块链网络,以解决部分客户终端难以接入的问题,并且可以有效提高数据的通信能力和广播效率。
一种基于WebSocket连接的区块链双工通信网络,所述客户终端通过WebSocket协议与区块链节点进行连接,客户终端与节点通过建立WebSocket连接形成双工通信的区块链网络,所述WebSocket连接过程具体包括:
步骤1、客户终端使用HTTP通信模块向节点发送WebSocket协议探测数据包;
步骤2、节点收到协议探测数据包后会给予回复是否支持WebSocket协议以及所支持的WebSocket协议版本;
步骤3、客户终端收到节点反馈后根据节点返回要求调整WebSocket协议版本,并开发发送请求建立连接的数据包和心跳包;
步骤4、节点接收到连接请求时将先判断该客户终端是否已在会话池当中,在会话池连接便建立成功,如果不在会话池就检查客户终端合法性,合法时就开始建立长连接,并保持心跳连接,心跳连接建立起来以后就开始应用数据传输,不合法的话便不建立长连接,不会进行应用数据传输。
优先选择的是,所述节点用于接受客户终端发出的数据信息并存储数据信息形成区块,若干区块之间进行连接形成区块链,并且节点可单独作为一个具有数据存储、建立连接、信息交互功能的服务器。
优先选择的是,所述节点服务器包括:
数据存储模块:用于存储节点记录数据形成区块,并与其它节点所存储的记录数据形成的区块共同组成区块链;
关系建立模块:用于和其他节点或者客户终端通过数据包与心跳包建立WebSocket连接关系;
信息交互模块:一旦节点服务器与客户终端建立长连接后,双方可以通过WebSocket关系渠道传输应用数据。
优先选择的是,所述WebSocket协议探测数据包包含连接许可验证码,所述验证码包含Sec-WebSocket-Key,当节点接收到连接许可验证码后会对验证码当中的Sec-WebSocket-Key生成对应的Sec-WebSocket-Accept的key代表连接握手成功。
优先选择的是,伴随WebSocket协议探测数据包一起发送至节点的还有心跳包,所述心跳包用于保持客户终端与节点的心跳连接。
优先选择的是,所述心跳连接是间断性的,前一个心跳连接与后一个心跳连接之间间隔的时间是1秒。
优先选择的是,所述所述客户终端与节点建立的WebSocket连接传输关系是双向互通的。
优先选择的是,所述客户终端与节点建立的WebSocket连接关系会出现客户终端因为网络不稳定而出现的掉线中断现象,但是当所述客户终端恢复访问时,只要提供心跳包即可恢复与节点的连接,之前客户终端与节点的数据传输不受此影响。
优先选择的是,所述会话池用于记录并保存节点与客户终端的交流内容与客户终端的ID地址。
优先选择的是,所述客户终端包括移动端与非移动端。
相比现有的技术方案,本发明具有以下有益效果:
(1)通过引入Websocket,除了继承Socket的优点;还能有效提高数据的通信能力和广播效率,并顺带解决了服务到端的主动通信能力;
(2)通过引入HTTP优化网络能力,并将其与Websocket有机结合起来,让区块链网络能力不仅能在节点之间提供高效互通,还能为跨区域网络、跨终端类型提供有效互通;
(3)由于在建立Websocket连接时,心跳包与数据包是可以一起发送到节点的,所以无论用户是否稳定在线,都可以完成稳定的数据传输,而不用将难得的连接机会浪费在建立连接上,从而减少网络数据传输时间,使网络运行速度更快,数据处理更高效。
附图说明
图1是本发明方案当中节点与客户终端WebSocket连接关系建立流程示意图;
图2是本发明方案节点服务器运行示意图;
图3是本发明方案节点服务器的模块组成示意图;
图4是本发明方案数据探测包内容示意图;
其中Part1是数据存储模块,Part2是关系建立模块,Part3是信息交互模块;
图5-图20是本发明方案所包含的编码内容。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详述。在此需要说明的是,下面所描述的本发明各个实施例中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
对本发明做进一步说明之前,先对本发明当中涉及到的一些专有名词稍作说明:
Websocket:WebSocket是一种自然的全双工、双向、单套接字连接。使用WebSocket,你的HTTP请求变成打开WebSocket连接(WebSocket或者WebSocket over TLS(TransportLayer Security,传输层安全性,原称“SSL”))的单一请求,并且重用从客户端到服务器以及服务器到客户端的同一连接。WebSocket减少了延迟,因为一旦建立起WebSocket连接,服务器可以在消息可用时发送它们。例如,和轮询不同,WebSocket只发出一个请求。服务器不需要等待来自客户端的请求。相似地,客户端可以在任何时候向服务器发送消息。相比轮询不管是否有可用消息,每隔一段时间都发送一个请求,单一请求大大减少了延迟。Websocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。
心跳包:心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。
参见图1可知:一种基于WebSocket连接的区块链双工通信网络,该区块链除了引用HTTP协议作为优化网络的一个手段,在设计NAAS(Node As A Service节点即服务)时,将其与Websocket有机结合起来,让区块链网络能力不仅能在节点之间提供高效互通,还能为跨区域网络、跨终端类型提供有效互通,在该网络当中,将节点可以单独作为一个服务器,除了用于接受客户终端发出的数据信息并存储数据信息形成区块,若干区块之间进行连接形成区块链,还使其具有数据存储、建立连接、信息交互功能,参加图2,具体表现为:
数据存储模块Part1:用于存储节点记录数据形成区块,并与其它节点所存储的记录数据形成的区块共同组成区块链;
关系建立模块Part2:用于和其他节点或者客户终端通过数据包与心跳包建立WebSocket连接关系;
信息交互模块Part3:一旦节点服务器与客户终端建立长连接后,双方可以通过WebSocket关系渠道传输应用数据,如图3所示:数据存储Part1、关系建立Part2、信息交互Part3三个模块之间进行数据的存储处理、传输、控制。
为了使区块链双工通信网络可以方便更多的客户终端接入,我们在区块链节点与客户终端上建立起WebSocket连接关系:
Step1首先,客户终端使用HTTP通信模块向节点发送WebSocket协议探测数据包;
Step2然后,节点收到协议探测数据包后会给予回复是否支持WebSocket协议以及所支持的WebSocket协议版本;
Step3其次,客户终端收到节点反馈后根据节点返回要求调整WebSocket协议版本,并开发发送请求建立连接的数据包和心跳包;
Step4紧接着,节点接收到连接请求时将先判断该客户终端是否已在会话池当中,在会话池连接便建立成功,如果不在会话池就检查客户终端合法性,合法时就开始建立长连接,并保持心跳连接,心跳连接建立起来以后就开始应用数据传输,不合法的话便不建立长连接,不会进行应用数据传输。
如图4所示:在数据包里面包含连接许可验证码,所述验证码包含Sec-WebSocket-Key;当节点接收到连接许可验证码后会对验证码当中的Sec-WebSocket-Key生成对应Sec-WebSocket-Accept的key代表连接握手成功。
进一步的,伴随WebSocket协议探测数据包一起发送至节点的还有心跳包,用于保持客户终端与节点的心跳连接。
进一步的,心跳连接是间断性的,前一个心跳连接与后一个心跳连接之间间隔的时间是1秒。
进一步的,在应用数据传输过程当中,客户终端与节点建立的连接关系会出现客户终端因为网络不稳定而出现的掉线中断现象,但是客户终端与节点所建立起来的会话会继续保持。
进一步的,由于心跳包与数据包可以一起发送至节点服务器,客户终端在一定时间内重新恢复访问时,只要提供心跳包即可恢复与节点的连接,应用数据传输会继续进行,所以无论客户终端是否稳定在线,都可以完成稳定的数据传输,而不用将难得的连接机会浪费在建立连接上,从而减少网络数据传输时间,使网络运行速度更快,数据处理更高效
进一步的,节点与客户终端在建立WebSocket连接过程当中生成会话池,用于记录并保存节点与客户终端的交流内容与客户终端的ID地址。
进一步的,与节点建立WebSocket连接的客户终端包括移动端与非移动端。
进一步的,一种基于WebSocket连接的区块链双工通信网络,具体编码过程包括:
(1)make an outband connection
(2)handle inbound connections
(3)handle inbound connections
以上所述,仅是本发明的较佳实施例而已,并非对本发明的技术范围作任何限制,故但凡依本发明的权利要求和说明书所做的变化或修饰,皆应属于本发明专利涵盖的范围之内。
Claims (10)
1.一种基于WebSocket连接的区块链双工通信网络,其特征在于,所述客户终端通过WebSocket协议与区块链节点进行连接,客户终端与节点通过建立WebSocket连接形成双工通信的区块链网络,所述WebSocket连接过程具体包括:
步骤1、客户终端使用HTTP通信模块向节点发送WebSocket协议探测数据包;
步骤2、节点收到协议探测数据包后会给予回复是否支持WebSocket协议以及所支持的WebSocket协议版本;
步骤3、客户终端收到节点反馈后根据节点返回要求调整WebSocket协议版本,并开发发送请求建立连接的数据包和心跳包;
步骤4、节点接收到连接请求时将先判断该客户终端是否已在会话池当中,如果不在会话池就检查客户终端合法性,合法时就开始建立长连接,并保持心跳连接,心跳连接建立起来以后就开始应用数据传输,不合法的话便不建立长连接,不会进行应用数据传输。
2.根据权利要求1所述的一种基于WebSocket连接的区块链双工通信网络,其特征在于,所述节点用于接受客户终端发出的数据信息并存储数据信息形成区块,若干区块之间进行连接形成区块链,并且节点可单独作为一个具有数据存储、建立连接、信息交互功能的服务器。
3.根据权利要求2所述的节点服务器,其特征在于,所述节点服务器包括:
数据存储模块:用于存储节点记录数据形成区块,并与其它节点所存储的记录数据形成的区块共同组成区块链;
关系建立模块:用于和其他节点或者客户终端通过数据包与心跳包建立WebSocket连接关系;
信息交互模块:一旦节点服务器与客户终端建立长连接后,双方可以通过WebSocket关系渠道传输应用数据。
4.根据权利要求1所述的一种基于WebSocket连接的区块链双工通信网络,其特征在于,所述WebSocket协议探测数据包包含连接许可验证码,所述验证码包含Sec-WebSocket-Key,当节点接收到连接许可验证码后会对验证码当中的Sec-WebSocket-Key生成对应的Sec-WebSocket-Accept的key代表连接握手成功。
5.根据权利要求1所述的一种基于WebSocket连接的区块链双工通信网络,其特征在于,伴随WebSocket协议探测数据包一起发送至节点的还有心跳包,所述心跳包用于保持客户终端与节点的心跳连接。
6.根据权利要求1所述的一种基于WebSocket连接的区块链双工通信网络,其特征在于,所述心跳连接是间断性的,前一个心跳连接与后一个心跳连接之间间隔的时间是1秒。
7.根据权利要求1所述的一种基于WebSocket连接的区块链双工通信网络,其特征在于,所述客户终端与节点建立的WebSocket连接传输关系是双向互通的。
8.根据权利要求1所述的一种基于WebSocket连接的区块链双工通信网络,其特征在于,所述客户终端与节点建立的WebSocket连接关系会出现客户终端因为网络不稳定而出现的掉线中断现象,但是当所述客户终端恢复访问时,只要提供心跳包即可恢复与节点的连接,之前客户终端与节点的数据传输不受此影响。
9.根据权利要求1所述的一种基于WebSocket连接的区块链双工通信网络,其特征在于,所述会话池用于记录并保存节点与客户终端的交流内容与客户终端的ID地址。
10.根据权利要求1所述的一种基于WebSocket连接的区块链双工通信网络,其特征在于,所述客户终端包括移动端与非移动端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711361517.3A CN109936601B (zh) | 2017-12-18 | 2017-12-18 | 一种基于WebSocket连接的区块链双工通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711361517.3A CN109936601B (zh) | 2017-12-18 | 2017-12-18 | 一种基于WebSocket连接的区块链双工通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109936601A true CN109936601A (zh) | 2019-06-25 |
CN109936601B CN109936601B (zh) | 2022-10-25 |
Family
ID=66982173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711361517.3A Active CN109936601B (zh) | 2017-12-18 | 2017-12-18 | 一种基于WebSocket连接的区块链双工通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109936601B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430216A (zh) * | 2019-08-16 | 2019-11-08 | 微位(深圳)网络科技有限公司 | 区块链节点间的通信方法及装置 |
CN111800510A (zh) * | 2020-07-07 | 2020-10-20 | 北京微步在线科技有限公司 | 基于节点间长连接的数据处理方法、装置及可读存储介质 |
CN112118266A (zh) * | 2020-09-24 | 2020-12-22 | 焦点科技股份有限公司 | 一种HTTP与WebSocket协同的分布式状态同步方法 |
CN114679486A (zh) * | 2022-03-29 | 2022-06-28 | 网易(杭州)网络有限公司 | 通信交互方法及系统、应用端、客户端、中转服务端 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355496A (zh) * | 2011-09-27 | 2012-02-15 | 中国铁道科学研究院电子计算技术研究所 | 列车车地间数据通信方法 |
CN104253783A (zh) * | 2013-06-25 | 2014-12-31 | 中国移动通信集团公司 | web应用实现代码加载方法、装置、系统及服务器 |
US20150262137A1 (en) * | 2014-03-17 | 2015-09-17 | Coinbase, Inc. | Off-block chain transactions in combination with on-block chain transactions |
CN105100954A (zh) * | 2014-05-07 | 2015-11-25 | 朱达欣 | 一种基于互联网通信及流媒体直播的交互应答系统及方法 |
CN106228446A (zh) * | 2016-05-12 | 2016-12-14 | 北京众享比特科技有限公司 | 基于私有区块链的资产交易平台系统及方法 |
CN106850745A (zh) * | 2016-12-23 | 2017-06-13 | 北京五八信息技术有限公司 | 一种实时同步方法和装置 |
CN106952124A (zh) * | 2017-03-16 | 2017-07-14 | 北京牛链科技有限公司 | 基于分布式记账的电子发票管理系统和方法 |
US20170346804A1 (en) * | 2015-06-02 | 2017-11-30 | ALTR Solutions, Inc. | Credential-free user login to remotely executed applications |
-
2017
- 2017-12-18 CN CN201711361517.3A patent/CN109936601B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355496A (zh) * | 2011-09-27 | 2012-02-15 | 中国铁道科学研究院电子计算技术研究所 | 列车车地间数据通信方法 |
CN104253783A (zh) * | 2013-06-25 | 2014-12-31 | 中国移动通信集团公司 | web应用实现代码加载方法、装置、系统及服务器 |
US20150262137A1 (en) * | 2014-03-17 | 2015-09-17 | Coinbase, Inc. | Off-block chain transactions in combination with on-block chain transactions |
CN105100954A (zh) * | 2014-05-07 | 2015-11-25 | 朱达欣 | 一种基于互联网通信及流媒体直播的交互应答系统及方法 |
US20170346804A1 (en) * | 2015-06-02 | 2017-11-30 | ALTR Solutions, Inc. | Credential-free user login to remotely executed applications |
CN106228446A (zh) * | 2016-05-12 | 2016-12-14 | 北京众享比特科技有限公司 | 基于私有区块链的资产交易平台系统及方法 |
CN106850745A (zh) * | 2016-12-23 | 2017-06-13 | 北京五八信息技术有限公司 | 一种实时同步方法和装置 |
CN106952124A (zh) * | 2017-03-16 | 2017-07-14 | 北京牛链科技有限公司 | 基于分布式记账的电子发票管理系统和方法 |
Non-Patent Citations (4)
Title |
---|
子慕大诗人: "初探和实现websocket心跳重连", 《HTTPS://WWW.CNBLOGS.COM/1WEN/P/5808276.HTML》 * |
火腿骑士: "web socket心跳包的实现方案", 《HTTPS://WWW.CNBLOGS.COM/FX2008/P/4105413.HTML》 * |
石文涛: "Html5中WebSocket协议关键技术的研究及基于WebSocket协议的实时Web通信系统的实现", 《中国优秀硕士学位论文全文数据库》 * |
范明岩: "基于WebSocket的网页即时通讯软件应用开发", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430216A (zh) * | 2019-08-16 | 2019-11-08 | 微位(深圳)网络科技有限公司 | 区块链节点间的通信方法及装置 |
CN111800510A (zh) * | 2020-07-07 | 2020-10-20 | 北京微步在线科技有限公司 | 基于节点间长连接的数据处理方法、装置及可读存储介质 |
CN112118266A (zh) * | 2020-09-24 | 2020-12-22 | 焦点科技股份有限公司 | 一种HTTP与WebSocket协同的分布式状态同步方法 |
CN112118266B (zh) * | 2020-09-24 | 2022-05-31 | 焦点科技股份有限公司 | 一种HTTP与WebSocket协同的分布式状态同步方法 |
CN114679486A (zh) * | 2022-03-29 | 2022-06-28 | 网易(杭州)网络有限公司 | 通信交互方法及系统、应用端、客户端、中转服务端 |
CN114679486B (zh) * | 2022-03-29 | 2024-05-07 | 网易(杭州)网络有限公司 | 通信交互方法及系统、应用端、客户端、中转服务端 |
Also Published As
Publication number | Publication date |
---|---|
CN109936601B (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936601A (zh) | 一种基于WebSocket连接的区块链双工通信网络 | |
Pahlevani et al. | Novel concepts for device-to-device communication using network coding | |
CN104968037B (zh) | 基于代理设备的低功耗物联网实现方法 | |
Yazar et al. | Efficient application integration in IP-based sensor networks | |
CN103250390B (zh) | 用于提供基于对象的传输协议的方法和装置 | |
CN106878926A (zh) | 一种基于低功耗蓝牙的数据传输方法、从主设备及系统 | |
CN109905409A (zh) | 基于Socket.IO的物联网网关实时双向通信系统 | |
CA2417505A1 (en) | System and method for secure dual channel communication through a firewall | |
Merani et al. | An underwater convergence layer for disruption tolerant networking | |
Palma | Enabling the maritime Internet of Things: CoAP and 6LoWPAN performance over VHF links | |
CN102546800A (zh) | 一种网关握手、通信方法、网关及Web通信系统 | |
CN102739569B (zh) | 一种用于卫星通信中的网关及其tcp性能增强的方法 | |
CN101662315B (zh) | 通信设备、通信系统以及通信方法 | |
CN107071039A (zh) | 一种私有数据云存储系统及私有数据云存储方法 | |
CN105208043A (zh) | 外网代理模块、内网代理模块、数据传输方法及系统 | |
CN107342934A (zh) | 一种基于WebSocket的混合模式移动应用实时消息推送方法及系统 | |
CN102111419A (zh) | 一种基于消息中间件的客户端自动重连方法 | |
US20240267387A1 (en) | Systems and methods for random differential relay and network coding | |
CN110233851A (zh) | 一种数据传输方法和装置 | |
CN108173851A (zh) | 一种用于空间信息网络的高效多媒体传输方法 | |
CN107835529B (zh) | 天基骨干网动态接入系统、节点、管理中心及方法 | |
WO2019136608A1 (zh) | 中继网络双工协调的方法和中继节点设备 | |
WO2022062426A1 (zh) | 中继基站的多播调度方法和装置、存储介质及电子装置 | |
Nagajothy et al. | Network lifetime enhancement in wireless sensor network using network coding | |
Alshantout et al. | Enhancing mqtt-sn performance via fountain codes in extreme conditions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210330 Address after: Room 2201, 703c, Desai science and technology building, 9789 Shennan Avenue, high tech Zone community, Yuehai street, Nanshan District, Shenzhen, Guangdong 518000 Applicant after: Benchainless Technology (Shenzhen) Co.,Ltd. Address before: 361000 unit 21, 201, building B, 86 Haijing Road, Xiamen area, China (Fujian) pilot Free Trade Zone, Xiamen City, Fujian Province Applicant before: XIAMEN INSTINCT BLOCKCHAIN TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |