CN115174493A - 一种基于多线程管道技术的比特币节点探测方法 - Google Patents

一种基于多线程管道技术的比特币节点探测方法 Download PDF

Info

Publication number
CN115174493A
CN115174493A CN202210381927.9A CN202210381927A CN115174493A CN 115174493 A CN115174493 A CN 115174493A CN 202210381927 A CN202210381927 A CN 202210381927A CN 115174493 A CN115174493 A CN 115174493A
Authority
CN
China
Prior art keywords
address
queue
node
pipeline
addresses
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
Application number
CN202210381927.9A
Other languages
English (en)
Other versions
CN115174493B (zh
Inventor
李锐光
徐大伟
吴阜东
朱佳伟
高家奇
马璐
严寒冰
祝烈煌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
National Computer Network and Information Security Management Center
Original Assignee
Beijing Institute of Technology BIT
National Computer Network and Information Security Management Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT, National Computer Network and Information Security Management Center filed Critical Beijing Institute of Technology BIT
Priority to CN202210381927.9A priority Critical patent/CN115174493B/zh
Publication of CN115174493A publication Critical patent/CN115174493A/zh
Application granted granted Critical
Publication of CN115174493B publication Critical patent/CN115174493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6245Modifications to standard FIFO or LIFO
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于多线程管道技术的比特币节点探测方法,设计了高效的多线程程序运行框架,开发了具备比特币协议编解码功能的可插拔管道,提出了“存储‑消费”式节点地址管理技术,大大提升了程序探测效率。

Description

一种基于多线程管道技术的比特币节点探测方法
技术领域
本发明属于区块链的技术领域,具体涉及一种基于多线程管道技术的比特币节点探测方法。
背景技术
比特币在全球蓬勃发展,当前已成为交易支付、投资理财、资本流动的重要手段。比特币网络层采用P2P架构,没有中央机构及信任中心,所有网络节点彼此对等,共同提供网络服务。探测发现比特币节点对加强比特币网络的研究和监管有着重要价值。
近几年,很多研究者开展了对比特币节点的探测研究。2013年,Joan等人在3个月中收集到87.2万个比特币节点地址。2016年,Fadhil等人在一周时间内收集到近32万个节点地址。2018年,Sehyun Park等人在37天内采集到超过100万个节点地址。以上研究都采用了仿冒比特币客户端的方法,与其它节点建立通信,并不断获取新的节点地址。
多线程技术是通过计算机软硬件实现多个相同程序(或功能)并发执行的技术,可以显著提高单机程序运行效率。管道是一种双向通信模块,具有独立、灵活、可插拔的特点,在程序中随时增加、删除,可以提升网络通信中的并行数据处理能力。本发明将多线程管道技术应用于比特币节点探测中,大大提升了单机探测程序的运行效率,实现了对比特币节点的高效采集和存储。
现有方法的主要缺点是探测效率低。现有方法的工作原理是:仿冒比特币客户端,入网后与其它网络节点建立连接,不断接收其它节点发来的PING、VERSION、ADDR、INV等交互消息,从中提取节点地址信息。同时,不断尝试与新节点建立连接,获取更多节点地址,循环往复从而完成地址信息的积累。现有方法主要依靠程序长时间运行来完成节点地址的积累,如花费3个月时间只收集到87.2万个节点地址,花费37天时间只收集到100万个节点地址,总体效率都比较低。
发明内容
有鉴于此,本发明提供了一种基于多线程管道技术的比特币节点探测方法,能够大大提升单机探测程序的运行效率,实现对比特币节点的高效采集和存储。
实现本发明的技术方案如下:
一种基于多线程管道技术的比特币节点探测方法,包括以下步骤:
步骤一、探测程序从DNSSEED获取当前正在稳定运行的比特币网络活跃节点地址;
步骤二、设计用于存储所有的比特币节点地址的队列,探测程序获取新地址后,在队尾依次存储不重复的地址,这看作是“储蓄”的过程;而读取队首地址进行探测,看作是“消费”的过程,消费后的地址的布尔值被标记为“1”;
步骤三、探测程序模拟比特币客户端,从队列中“消费”节点地址,尝试同时与目标节点建立并行多线程TCP连接;
每个TCP连接对应一条独立“管道”,在“管道”中完成消息编码、解码工作,与目标节点进行握手交互;发送消息时,管道调用编码模块,采用Socket技术将消息发送至设定IP及端口;接收消息时,管道调用解码模块,将不同消息按格式进行分类解码;
步骤四、探测程序与目标节点建立连接后,向目标节点发送GETADDR消息,请求对方返回新节点地址;探测程序接收到返回的ADDR消息后,在各独立管道中完成解码,再将提取出的地址尝试存入步骤二的队列中,不重复的地址成功存入队列,重复地址予以丢弃;
步骤五、重复步骤二~步骤四,直至不再有新地址存入队列(全网比特币地址已全部存入);这时,判断队列中的现存地址是否全部“消费”完毕(布尔值为1),如地址已全部消费,探测结束;如地址尚未全部消费,重复步骤二的“消费”操作。
进一步地,使用DNS Lookup方法,从DNSSEED获取当前正在稳定运行的比特币网络活跃节点地址。
进一步地,所述队列具有如下特点:1)先入先出;2)所有队列元素不重复,对于重复输入的IP地址,队列将予以丢弃;3)元素标记功能,对于已输出过的地址,队列设置其布尔值为“1”进行标记。
有益效果:
本发明将“储蓄-消费”式地址管理技术、高效的多线程管道技术应用于比特币节点探测中,大大提升了探测效率。在某次实验中,完成一轮探测耗时仅1.5小时,共采集到414万个节点地址,探测效率远高于之前方法。本发明取得良好效果具体表现为:
1、“储蓄-消费”式地址管理技术:通过合理设置队列数据结构,丢弃每次返回的重复数据,巧妙设计了利用布尔值对元素进行标记的“消费”机制,避免了浪费程序资源对相同节点的重复探测,大大提高了探测效率。
2、高效的多线程管道技术:采用高效的并行通信框架,可以同时建立高达数千个线程的TCP连接,与数千个目标节点建立通信交互。在独立的管道内完成比特币协议编解码,简化了对比特币消息的分析处理,在高达数千个并行的通信中避免了请求的碰撞和数据的拥塞,保证了程序的高效执行,提升了程序探测效率。
附图说明
图1为本发明探测方法流程图。
图2为本发明多线程管道框架模型示意图。
图3为本发明探测系统结构示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提出一种基于多线程管道技术的比特币节点探测方法,设计了高效的多线程程序运行框架,开发了具备比特币协议编解码功能的可插拔管道,提出了“存储-消费”式节点地址管理技术,大大提升了程序探测效率。本发明解决的主要技术问题为:
1、“储蓄-消费”式地址管理技术
2、高效的多线程管道技术
实现本发明的基本思路是从种子节点DNSSEED获取初始地址,依次与这些地址建立连接,通过GETADDR-ADDR机制获取大量地址,接着利用多线程框架同时尝试与高达数千个节点建立连接,利用GETADDR-ADDR机制获取更多新地址。如此循环往复,可以在很短时间内获取网络空间中接近全部节点地址。
如图1所示,本发明主要分为以下5个步骤:
步骤一、获取初始地址
探测程序从DNSSEED获取初始节点地址。DNSSEED是由比特币社区维护、并硬编码至客户端软件的比特币网络种子节点。它们可以自动扫描网络中活跃、稳定的节点,向请求者返回IP地址,并进行动态更新。目前比特币DNSSEED列表如下表1。
表1DNSSEED列表
Domain Name IP
1 seed.bitcoin.sipa.be 52.195.14.155
2 dnsseed.bluematt.me 81.177.196.122
3 dnsseed.bitcoin.dashjr.org 34.64.101.4
4 seed.bitcoinstats.com 83.76.247.25
5 seed.bitcoin.jonasschnelli.ch 97.123.93.185
6 seed.btc.petertodd.org 54.92.14.235
使用DNS Lookup方法,即可从DNSSEED获取当前正在稳定运行的比特币网络活跃节点IP地址,开始网络探测。
步骤二、地址管理
高效的比特币节点地址管理机制是提升探测效率的基础。本发明设计了一种队列,用以存储所有的比特币节点地址。该队列具有如下特点:1)先入先出。2)所有队列元素不重复。对重复输入的IP地址,队列将予以丢弃。3)元素标记功能。对于已输出过的地址,队列设置其布尔值为“1”进行标记。
探测程序获取新地址后,在队尾依次存储不重复的地址,这可以看作是“储蓄”的过程;而读取队首地址进行探测,可以看作是“消费”的过程。消费后地址的布尔值被标记为“1”。当队列中所有地址被“消费”后,探测结束。
我们把以上地址管理方法称为“储蓄-消费”式地址管理机制。该机制实现了对节点地址的有效管理,避免了对相同节点重复探测,很好地提高了探测效率。
步骤三、建立多线程连接
探测程序模拟比特币客户端,从队列中“消费”节点地址,尝试同时与目标节点建立并行多线程TCP连接。
每个TCP连接对应一条独立“管道”,在“管道”中完成消息编码、解码工作,与目标节点进行握手交互。发送消息时,管道调用编码模块,采用Socket技术将消息发送至设定IP及端口。接收消息时,管道调用解码模块,将不同消息按格式进行分类解码。管道机制的引用,降低了计算机分析协议时的资源消耗,避免了探测程序运行阻塞。多线程管道模型如下图2所示:
本发明的多线程通信框架,并发数量可高达数千个,大大提高了单机客户端程序与比特币网络节点的交互速度。
步骤四、接收返回消息
探测程序与目标节点建立连接后,向目标节点发送GETADDR消息,请求对方返回新节点地址。探测程序接收到返回的ADDR消息后,在各独立管道中完成解码,再将提取出的地址尝试存入步骤二的队列中。不重复的地址可以成功存入队列,重复地址予以丢弃。
步骤五、判断地址是否全部消费
重复步骤二~四大约数小时后,不再有新地址可以存入队列(全网比特币地址已全部存入)。这时,判断队列中的现存地址是否全部“消费”完毕(布尔值为1),如地址已全部消费,探测结束;如地址尚未全部消费,重复步骤二的“消费”操作。
本发明系统设计图如下图3所示。主程序是整个探测程序的核心部分,负责地址管理、多线程驱动、管道调用等重要功能。主程序批量调用IP数据库中的节点地址,通过多线程框架建立并行的多条TCP连接,每条连接建立时一个“管道”被建立。这样,程序将建立n条管道。所有消息由路由器发往外部互联网。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种基于多线程管道技术的比特币节点探测方法,其特征在于,包括以下步骤:
步骤一、探测程序从DNSSEED获取当前正在稳定运行的比特币网络活跃节点地址;
步骤二、设计用于存储所有的比特币节点地址的队列,探测程序获取新地址后,在队尾依次存储不重复的地址,这看作是“储蓄”的过程;而读取队首地址进行探测,看作是“消费”的过程,消费后的地址的布尔值被标记为“1”;
步骤三、探测程序模拟比特币客户端,从队列中“消费”节点地址,尝试同时与目标节点建立并行多线程TCP连接;
每个TCP连接对应一条独立“管道”,在“管道”中完成消息编码、解码工作,与目标节点进行握手交互;发送消息时,管道调用编码模块,采用Socket技术将消息发送至设定IP及端口;接收消息时,管道调用解码模块,将不同消息按格式进行分类解码;
步骤四、探测程序与目标节点建立连接后,向目标节点发送GETADDR消息,请求对方返回新节点地址;探测程序接收到返回的ADDR消息后,在各独立管道中完成解码,再将提取出的地址尝试存入步骤二的队列中,不重复的地址成功存入队列,重复地址予以丢弃;
步骤五、重复步骤二~步骤四,直至不再有新地址存入队列;这时,判断队列中的现存地址是否全部“消费”完毕,如地址已全部消费,探测结束;如地址尚未全部消费,重复步骤二的“消费”操作。
2.如权利要求1所述的一种基于多线程管道技术的比特币节点探测方法,其特征在于,使用DNS Lookup方法,从DNSSEED获取当前正在稳定运行的比特币网络活跃节点地址。
3.如权利要求1所述的一种基于多线程管道技术的比特币节点探测方法,其特征在于,所述队列具有如下特点:1)先入先出;2)所有队列元素不重复,对于重复输入的IP地址,队列将予以丢弃;3)元素标记功能,对于已输出过的地址,队列设置其布尔值为“1”进行标记。
CN202210381927.9A 2022-04-12 2022-04-12 一种基于多线程管道技术的比特币节点探测方法 Active CN115174493B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210381927.9A CN115174493B (zh) 2022-04-12 2022-04-12 一种基于多线程管道技术的比特币节点探测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210381927.9A CN115174493B (zh) 2022-04-12 2022-04-12 一种基于多线程管道技术的比特币节点探测方法

Publications (2)

Publication Number Publication Date
CN115174493A true CN115174493A (zh) 2022-10-11
CN115174493B CN115174493B (zh) 2023-07-14

Family

ID=83483923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210381927.9A Active CN115174493B (zh) 2022-04-12 2022-04-12 一种基于多线程管道技术的比特币节点探测方法

Country Status (1)

Country Link
CN (1) CN115174493B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020105951A2 (ko) * 2018-11-20 2020-05-28 계명대학교 산학협력단 블록체인 네트워크에서의 토폴로지 조사 시스템 및 방법
CN112134762A (zh) * 2020-09-24 2020-12-25 腾讯科技(深圳)有限公司 针对区块链网络结构的测试方法、装置、终端和存储介质
CN112235336A (zh) * 2020-07-08 2021-01-15 国家计算机网络与信息安全管理中心 一种基于协议指纹的区块链节点主动发现方法
CN112801784A (zh) * 2021-01-06 2021-05-14 中山大学 一种数字货币交易所的比特币地址挖掘方法及装置
CN113556396A (zh) * 2021-07-21 2021-10-26 厦门莲隐科技有限公司 一种通过p2p协议对比特币节点网络进行监测的方法
US20210390519A1 (en) * 2020-06-12 2021-12-16 Fujitsu Limited Storage medium, detection method, and detection device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020105951A2 (ko) * 2018-11-20 2020-05-28 계명대학교 산학협력단 블록체인 네트워크에서의 토폴로지 조사 시스템 및 방법
US20210390519A1 (en) * 2020-06-12 2021-12-16 Fujitsu Limited Storage medium, detection method, and detection device
CN112235336A (zh) * 2020-07-08 2021-01-15 国家计算机网络与信息安全管理中心 一种基于协议指纹的区块链节点主动发现方法
CN112134762A (zh) * 2020-09-24 2020-12-25 腾讯科技(深圳)有限公司 针对区块链网络结构的测试方法、装置、终端和存储介质
CN112801784A (zh) * 2021-01-06 2021-05-14 中山大学 一种数字货币交易所的比特币地址挖掘方法及装置
CN113556396A (zh) * 2021-07-21 2021-10-26 厦门莲隐科技有限公司 一种通过p2p协议对比特币节点网络进行监测的方法

Also Published As

Publication number Publication date
CN115174493B (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
CN105989539B (zh) 一种金融交易行情获取系统以及获取方法
US8904039B1 (en) Large-scale network querying and reporting
CN109104373B (zh) 网络拥塞的处理方法、装置及系统
CN110012098A (zh) 一种web高并发访问处理系统及方法
CN101114273A (zh) 在并行计算机上执行全收集操作的方法和系统
CN111857734B (zh) 一种分布式深度学习模型平台部署及使用方法
CN109379303A (zh) 基于提升万兆以太网性能的并行化处理框架系统和方法
CN114884908B (zh) 一种数据同步方法、装置、设备及存储介质
CN113626208B (zh) 一种基于nio异步线程模型的服务器通信方法
CN114710571B (zh) 数据包处理系统
CN102201992B (zh) 面向流处理器并行环境的数据流通信系统及其通信方法
Zhou et al. TSEngine: Enable efficient communication overlay in distributed machine learning in WANs
CN115174493A (zh) 一种基于多线程管道技术的比特币节点探测方法
Zhao et al. Design and implementation of software defined hardware counters for SDN
CN107147722A (zh) 一种基于rdma通信机制的ib‑rti方法
US20050204080A1 (en) Method, system, and computer program product for dynamically selecting software buffers for aggregation according to current system characteristics
Zhang et al. Cold-start aware cloud-native service function chain caching in resource-constrained edge: a reinforcement learning approach
CN110380991A (zh) 一种IOCP机制及基于eFPGA和IOCP的物联网通信加速系统
CN112398735A (zh) 一种对报文进行批量处理的方法和装置
Li An integrated framework for wireless sensor web service and its performance analysis based on queue theory
CN118353776B (zh) 通信方法、装置、设备、介质、计算机程序产品及系统
CN115225694B (zh) 数据流传输方法、装置、设备和介质
CN114826929B (zh) 基于多实体机环境的无中心随机梯度下降方法
JP3488827B2 (ja) ネットワークシステム及びその通信方法
CN117407445B (zh) 一种车联网数据平台数据存储方法、系统及存储介质

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
GR01 Patent grant
GR01 Patent grant