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

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

Info

Publication number
CN115174493B
CN115174493B CN202210381927.9A CN202210381927A CN115174493B CN 115174493 B CN115174493 B CN 115174493B CN 202210381927 A CN202210381927 A CN 202210381927A CN 115174493 B CN115174493 B CN 115174493B
Authority
CN
China
Prior art keywords
address
queue
node
pipeline
bit coin
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.)
Active
Application number
CN202210381927.9A
Other languages
English (en)
Other versions
CN115174493A (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 CN115174493A (zh) 2022-10-11
CN115174493B true 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 (5)

* 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协议对比特币节点网络进行监测的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021196792A (ja) * 2020-06-12 2021-12-27 富士通株式会社 検出プログラム、検出方法および検出装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020105951A2 (ko) * 2018-11-20 2020-05-28 계명대학교 산학협력단 블록체인 네트워크에서의 토폴로지 조사 시스템 및 방법
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
CN115174493A (zh) 2022-10-11

Similar Documents

Publication Publication Date Title
Hao et al. Towards a trust-enhanced blockchain P2P topology for enabling fast and reliable broadcast
Tolle et al. Design of an application-cooperative management system for wireless sensor networks
CN104969213B (zh) 用于低延迟数据存取的数据流分割
Sahin et al. A discrete dynamic artificial bee colony with hyper-scout for RESTful web service API test suite generation
US9367418B2 (en) Application monitoring
Le Blond et al. Clustering in p2p exchanges and consequences on performances
CN108228432A (zh) 一种分布式链路跟踪、分析方法及服务器、全局调度器
CN115174493B (zh) 一种基于多线程管道技术的比特币节点探测方法
CN102201992B (zh) 面向流处理器并行环境的数据流通信系统及其通信方法
CN114238703A (zh) 事件流程编排方法、装置及应用
CN116304252A (zh) 一种基于图结构聚类的通信网络防诈骗方法
CN109428861A (zh) 网络通信方法及设备
Wang et al. Topological analysis of a two coupled evolving networks model for business systems
Li Design and implementation of distributed asynchronous data aided computer information interaction system
Grace et al. Overstar: An open approach to end-to-end middleware services in systems of systems
CN117995425B (zh) 医疗数据采集方法、系统及存储介质
CN115277260B (zh) 一种物联网云平台脆弱性检测方法及系统
CN117407445B (zh) 一种车联网数据平台数据存储方法、系统及存储介质
Khachumov et al. Combinatorial problem solving method by allocating resources.
CN113329076B (zh) 数据传输方法、装置及系统、计算机设备、存储介质
Saiedian et al. A complex event routing infrastructure for distributed systems
Chen et al. Schema reasoning and semantic representation for citation semantic link network
Astley et al. Achieving scalability and throughput in a publish/subscribe system
Zandberg et al. Model CBOR Serialization for Federated Learning
CN117880111A (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