CN117255096A - 在交换机上实现区块链系统的方法、电子设备和程序产品 - Google Patents

在交换机上实现区块链系统的方法、电子设备和程序产品 Download PDF

Info

Publication number
CN117255096A
CN117255096A CN202210658269.3A CN202210658269A CN117255096A CN 117255096 A CN117255096 A CN 117255096A CN 202210658269 A CN202210658269 A CN 202210658269A CN 117255096 A CN117255096 A CN 117255096A
Authority
CN
China
Prior art keywords
blockchain node
blockchain
switch
request
block
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.)
Pending
Application number
CN202210658269.3A
Other languages
English (en)
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.)
Dell Products LP
Original Assignee
Dell Products LP
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 Dell Products LP filed Critical Dell Products LP
Priority to CN202210658269.3A priority Critical patent/CN117255096A/zh
Priority to US17/859,315 priority patent/US11755522B1/en
Publication of CN117255096A publication Critical patent/CN117255096A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例涉及在交换机上实现区块链系统的方法、电子设备和计算机程序产品。该方法包括在交换机上建立第一区块链节点和第二区块链节点,其中第一区块链节点包括第一入口端口和第一出口端口,并且第二区块链节点包括第二入口端口和第二出口端口。该方法还包括通过交换机的用户端口从用户设备接收广播或组播请求。该方法还包括将广播或组播请求发送到第一区块链节点的第一入口端口和第二区块链节点的第二入口端口。通过本公开的实施例,能够在交换机上实现区块链系统,从而降低区块链系统的时延。此外,由于交换机的多端口提供对多个请求的并行处理,还能够提供高速率的数据传输。

Description

在交换机上实现区块链系统的方法、电子设备和程序产品
技术领域
本公开的实施例涉及计算机领域,并且更具体地,涉及在交换机上实现区块链系统的方法、电子设备和计算机程序产品。
背景技术
交换机拥有总线和内部交换矩阵。交换机的各个端口都挂接在总线上,控制电路收到分组以后,处理端口会查找地址对照表以确定目的地地址,通过内部交换矩阵迅速将分组传送到目的端口。可编程交换机可以对交换机中可编程芯片进行编程,以实现自定义功能。
区块链技术利用块链式数据结构验证与存储数据,利用分布式节点共识算法生成和更新数据,利用密码学的方式保证数据传输和访问的安全。区块的存储和计算通常都在云端进行。用户对区块链的请求需要被网络中的边缘设备(例如,交换机)路由至云端。因此,造成了一定的时延。
发明内容
本公开的实施例提供了一种在交换机上实现区块链系统的方法、电子设备和计算机程序产品。
根据本公开的第一方面,提供了一种在交换机上实现区块链系统的方法。该方法包括在交换机上建立第一区块链节点和第二区块链节点,其中第一区块链节点包括第一入口端口和第一出口端口,第二区块链节点包括第二入口端口和第二出口端口。该方法还包括通过交换机的用户端口从用户设备接收广播的或组播请求。该方法还包括将广播或组播请求发送到第一区块链节点的第一入口端口和第二区块链节点的第二入口端口。
根据本公开的第二方面,还提供了一种可编程交换机。该可编程交换机包括处理单元以及存储器,所述存储器耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时使可编程交换机执行动作。动作包括在可编程交换机上建立第一区块链节点和第二区块链节点,其中第一区块链节点包括第一入口端口和第一出口端口,第二区块链节点包括第二入口端口和第二出口端口。动作还包括通过交换机的用户端口从用户设备接收广播或组播请求。动作还包括将广播或组播请求发送到第一区块链节点的第一入口端口和第二区块链节点的第二入口端口。
根据本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可执行指令,计算机可执行指令在由设备执行时使设备执行根据第一方面的方法。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其它特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了本公开的实施例能够在其中实现的示例环境的示意图;
图2示意性示出了根据本公开的示例性实现的交换机的示意图;
图3示意性示出了根据本公开的示例性实现的在交换机上实现区块链系统的方法的流程图;
图4示意性示出了根据本公开的示例性实现的获取请求类型的流程图;
图5A示意性示出了根据本公开的示例性实现的执行初始化请求的流程图;
图5B示意性示出了根据本公开的示例性实现的执行读取请求的流程图;
图5C示意性示出了根据本公开的示例性实现的执行写入请求的流程图;
图5D示意性示出了根据本公开的示例性实现的执行加入请求的流程图;
图5E示意性示出了根据本公开的示例性实现的执行离开请求的流程图;
图6示意性示出了根据本公开的示例性实现的工作证明的示意图;以及
图7示意性示出了根据本公开的示例性实现的在交换机上实现区块链系统的设备的框图。
在所有附图中,相同或相似参考数字表示相同或相似元素。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包括,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其它明确的和隐含的定义。
另外,本文所有具体数值都是示例,仅是为了帮助理解,绝无限定范围之意图。
由于计算资源和网络资源的限制,区块链系统通常都存在较大的时延,这将影响对事物数据的处理的速度。此外,在传统的云平台上实现的区块链系统中,如果想要添加区块链节点,则需要较长时间的数据同步。数据的大小和网络的速度都是影响数据同步的因素。通常,需要花费很多时间以在区块链节点之间传输数据。在区块链节点之间传输数据的同时,针对每个分组需要进行网络协议解析,封装和解封装分组也需要花费时间。传统上,事务数据由用户从用户设备上传至云端,在云端处理之后又传回用户设备。因此,减小时延很重要。此外,另一痛点是云计算资源较昂贵,并且随着用户规模和事务数据的增长,越来越多的云计算需求已经不能得到满足
为了解决上述缺点,本公开的实施例提供了一种在交换机上实现区块链系统的方案。该方案将传统在云端实现的过程转移至在交换机上实现,并且利用交换机的多端口并行处理能力来并行处理多个请求来提供数据吞吐量。由此,可以利用交换机直接处理事务数据,并且因此降低时延,提供高速率的数据传输。
图1示出了本公开的实施例能够在其中实现的示例环境100的示意图。
如图1所示,示例环境100可以包括用户设备110-1、用户设备110-2和用户设备110-3(统称为或者单独称为用户设备110)。用户设备110由用户操作。仅作为示例,用户设备110可以是个人计算机。
在环境100中,还包括交换机120-1、交换机120-2、交换机120-3和交换机120-4(统称为或者单独称为交换机120)。区块链节点可以被配置在交换机120上,并且这些交换机120之间可以被可通信地互连。用户设备110中的一个用户设备可以与交换机120中的一个交换机可通信地连接。应理解,作为示例,环境100中可以包括任何数目的用户设备和交换机。在每个交换机上配置了多个区块链节点,这些被连接起来的多个交换机组成了区块链系统。
应当理解,仅出于示例性的目的来描述示例环境100中的架构和功能,而不暗示对本公开的范围的任何限制。本公开的实施例还可以被应用到具有不同的结构和/或功能的其他环境中。
下文将结合图2至图5E详细描述根据本公开实施例的过程。为了便于理解,在下文描述中提及的具体数据均是示例性的,并不用于限定本公开的保护范围。可以理解,以下描述的实施例还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
图2示意性示出了根据本公开的示例性实现的交换机120的示意图。
如图2所述,交换机120可以具有多个端口,其中一个端口可以被配置为与用户设备110连接,该端口可以被称为用户端口210。经由用户端口210,来自用户设备110的请求可以被交换机120接收。
交换机120还包括其他的多个端口,这些多个端口可以被配置为多个输入端口和多个输出端口。例如,第一输入端口220-1和第一输出端口230-1可以被配置为逻辑地与区块链系统中的第一区块链节点240-1相连接。第二输入端口220-2和第二输出端口230-2可以被配置为逻辑地与区块链系统中的第二区块链节点240-2相连接。经由输入端口和输出端口,区块链节点可以与其他区块链节点通信。
图3示意性示出了根据本公开的示例性实现的在交换机上实现区块链系统的方法300的流程图。
在框302处,在交换机上建立第一区块链节点和第二区块链节点,其中第一区块链节点包括第一入口端口和第一出口端口,第二区块链节点包括第二入口端口和第二出口端口。例如,在交换机120上建立第一区块链节点240-1和第二区块链节点240-2,其中第一区块链节点包括第一入口端口220-1和第一出口端口230-1,第二区块链节点包括第二入口端口220-2和第二出口端口230-2。
在框304处,通过交换机的用户端口从用户设备接收广播的或组播请求。例如,通过交换机120的用户端口210从用户设备110接收广播请求。
在框306处,将广播或组播请求发送到第一区块链节点的第一入口端口和第二区块链节点的第二入口端口。例如,将广播请求发送到第一区块链节点240-1的第一入口端口220-1和第二区块链节点240-2的第二入口端口220-2。
通过执行方法300,可以直接在交换上实现区块链节点的功能,无需将请求上传至云端,因此降低了时延,提供高速率的数据传输。此外,由于交换机包括多个端口,因此可以同时执行许多并发的请求,从而提高了数据的吞吐量。
在一些实施例中,方法300还包括:可以通过交换机的用户端口从用户设备接收单播请求,将单播请求发送到第一区块链节点的第一入口端口或第二区块链节点的第二入口端口。例如,可以通过交换机120的用户端口210从用户设备120接收单播请求,将单播请求发送到第一区块链节点240-1的第一入口端口220-1或第二区块链节点240-2的第二入口端口220-2。
在一些实施例中,方法300还包括:在与交换机不同的第二交换机上建立第三区块链节点和第四区块链节点,其中第三区块链节点包括第三入口端口和第三出口端口,第四区块链节点包括第四入口端口和第四出口端口。例如,在与交换机120-1不同的第二交换机120-2上建立第三区块链节点和第四区块链节点。通过交换机120-1的所述用户端口210从所述用户设备110接收广播或组播请求。将广播或组播请求发送到第一区块链节点240-1的第一入口端口220-1、第二区块链节点240-2的第二入口端口220-2、第三区块链节点的第三入口端口、以及第四区块链节点的第四入口端口。
可以理解,广播或组播请求可以被封装在分组中,经由任何用户端口被发送至区块链系统。接收到分组的交换机可以解析分组以获取广播或组播请求。
在一些实施例中,交换机是可编程交换机,并且可编程交换机被布置在用户设备和云计算资源之间。
图4示意性示出了根据本公开的示例性实现的获取请求类型的流程图。
在框402中,分组被接收。例如,请求被封装在分组中,并且经由用户端口被接收。可以理解,这表示分组已经由区块链系统接收。
在框404中,分组被解析以获取请求的类型。例如,接收到分组的交换机可以解析分组以获取请求的类型。
在一些实施例中,请求的类型包括初始化请求,用于初始化区块链系统的配置环境。请求的类型还包括读取请求,用于从区块链系统中读取数据。请求的类型还包括写入请求,用于将来自用户的数据写入区块链系统。请求的类型还包括加入请求,用于创建新节点以加入区块链系统。并且请求的类型还包括离开请求,用于将区块链节点从区块链系统中移除
在框406中,请求被执行。例如,如果获取的请求的类型为初始化请求,则执行对应的初始化请求流程。又例如,如果获取的请求的类型为写入请求,则执行对应的写入请求流程。
图5A示意性示出了根据本公开的示例性实现的执行初始化请求的流程图。
在框A502处,封装有初始化请求的分组被接收。例如,初始化请求被封装在第一分组中,经由用户端口被交换机接收。
在框A504处,确定所请求的特定区块链节点是否被激活。如果未被激活,则前进到框A516,分组被丢弃。如果被激活,则前进到框A506。
在框A506处,确定特定区块链节点是否被初始化。如果没有被初始化,则前进到框A508。如果被初始化,则前进到框A510。
在框A508处,初始化寄存器内的参数以初始化区块链节点。
在框A510处,确定特定区块链节点是否具有初始区块(被编号为0的区块)。初始区块也被称为创世区块,是整个区块链的第一个区块,编号为0(Block#0)的区块。每一个区块的区块头都必须引用前一个区块的哈希值,因此,区块链系统诞生时必须直接生成创世区块Block#0,后续区块才能引用其哈希值放进区块头,接着就能够按照这个规则不断产生区块,连接成区块链。如果确定特定区块链节点没有初始区块,则前进到框A512。如果具有初始区块,则前进到框A514。
在框A512处,创建初始区块。
在框A514处,将初始区块组播到区块链系统中的其他区块链节点。
图5B示意性示出了根据本公开的示例性实现的执行读取请求的流程图。
在框B502处,封装有读取请求的分组被接收。例如,读取请求被封装在第二分组中,经由用户端口被交换机接收。
在框B504处,确定所请求的特定区块链节点是否被激活。如果未被激活,则前进到框B514,分组被丢弃。如果被激活,则前进到框B506。
在框B506处,确定特定区块链节点是否被初始化。如果没有被初始化,则前进到框B514。如果被初始化,则前进到框B508。
在框B508处,确定特定区块链节点是否具有初始区块。如果确定特定区块链节点没有初始区块,则前进到框B514。如果具有初始区块,则前进到框B510。
在框B510处,获取特定区块链节点中的最后的区块的信息。
在框B512处,将最后的区块的信息单播到用户设备。
图5C示意性示出了根据本公开的示例性实现的执行写入请求的流程图。
在框C502处,封装有写入请求的分组被接收。例如,写入请求被封装在第三分组中,经由用户端口被交换机接收。
在框C504处,确定所请求的特定区块链节点是否被激活。如果未被激活,则前进到框C516,分组被丢弃。如果被激活,则前进到框C506。
在框C506处,确定特定区块链节点是否被初始化。如果没有被初始化,则前进到框C516。如果被初始化,则前进到框C508。
在框C508处,确定特定区块链节点是否具有初始区块。如果确定特定区块链节点没有初始区块,则前进到框C516。如果具有初始区块,则前进到框C510。
在框C510处,确定最后的区块是否是新的。如果最后的区块不是新的,则前进到框C512。如果最后的区块是新的,则前进到框C516。
在框C512处,创建新的区块。其中,创建新的区块还包括子框C518、C520、C522、C524。
在框C514处,将新的区块的信息单播至用户。
在子框518处,计算创建的新区块的报头哈希。例如,使用时间戳、随机数和先前区块的sha256哈希。如果报头哈希满足预选设定的条件,例如关于任务困难度的条件,则前进到子框522。如果不满足关于任务困难度的条件,则前进到子框524。作为示例,关于任务困难度的条件可以包括报头哈希的前N个数字应当为0。
在子框C520处,确定报头哈希是的满足任务困难度条件。
如果在子框C520处确定满足条件,则在子框C522处,将特定区块链节点添加创建的新区块。
如果在子框C520处确定不满足条件,则在子框C524处,将重新创建区块的请求重新提交至子框518。
图5D示意性示出了根据本公开的示例性实现的执行加入请求的流程图。
在框D502处,封装有加入请求的分组被接收。例如,加入请求被封装在第四分组中,经由用户端口被交换机接收。
在框D504处,确定所请求的特定区块链节点是否被激活。如果被激活,则前进到框D512,分组被丢弃。如果未被激活,则前进到框D506。
在框D506处,激活特定区块链节点。
在框D508处,将当前区块链系统的信息同步到激活的特定区块链节点。
在框D510处,将加入结果发送给用户。
图5E示意性示出了根据本公开的示例性实现的执行离开请求的流程图。
在框E502处,封装有离开请求的分组被接收。例如,离开请求被封装在第五分组中,经由用户端口被交换机接收。
在框E504处,确定所请求的特定区块链节点是否被激活。如果被激活,则前进到框E506。如果未被激活,则前进到框E510,分组被丢弃。
在框E506处,去激活特定区块链节点。
在框E508处,将离开结果发送给用户。
图6示意性示出了根据本公开的示例性实现的工作证明的示意图。
如图6所示,为了在交换机上实现区块链系统的工作证明功能,可以在报头哈希不满足任务困难度的情况,重复提交创建新区块的请求。作为示例,该过程可以由p4语言的resubmit()函数对交换机编程来实现。
在框602处,通过交换机的入口解析器解析分组,获取区块信息和报文信息。
在框604处,由交换机的入口流水线完成区块的报头哈希计算和验证。
在框606处,原始的分组数据,以及被保留的参数值可以通过入口去解析器被重新提交至入口去解析器。在入口去解析器中,也可以实现添加区块至列表,添加对区块的计数,设置工作证明寄存器等。
通过本公开的方法可以在交换机上实现区块链系统,从而替代在云端实现区块链系统。因此可以降低数据在用户设备与云端之间传输的时延。此外,由于在交换机上就可以进行计算,因此无需传输事务数据,更进一步地减少了传输数据所需的时间。由于云端的计算任务减少,因此可以释放云端的计算资源以用于其他任务。在交换机上还可以直接解析网络协议,而无需由云端服务器参与,这一步释放了云端的计算资源。
图7示出了可以用来实施本公开的实施例的设备700的示意性框图,设备700可以是本公开的实施例所描述的设备或装置。如图7所示,设备700包括处理单元701,其可以根据存储在存储器702中的计算机程序指令来执行各种适当的动作和处理。在存储器中,还可以配置设备700操作所需的各种程序和数据,例如通过对交换机编程模块进行编程。处理单元701、存储器702通过总线703彼此相连。输入端口704和输出端口705也连接至总线703。虽然未在图7中示出,设备700还可以包括协处理器。
上文所描述的各个方法或过程可以由处理单元701来执行。例如,在一些实施例中,方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储装置(未示出)。在一些实施例中,计算机程序的部分或者全部可以被载入和/或安装到设备700上。当计算机程序被加载到存储器702并由处理单元701执行时,可以执行上文描述的方法或过程中的一个或多个步骤或动作。
在一些实施例中,以上所描述的方法和过程可以被实现为计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
本文所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言,以及常规的过程式编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使得本技术领域的其它普通技术人员能理解本文公开的各实施例。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本公开,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (15)

1.一种在交换机上实现区块链系统的方法,包括:
在所述交换机上建立第一区块链节点和第二区块链节点,其中所述第一区块链节点包括第一入口端口和第一出口端口,并且所述第二区块链节点包括第二入口端口和第二出口端口;
通过所述交换机的用户端口从用户设备接收广播或组播请求;以及
将所述广播或组播请求发送到所述第一区块链节点的所述第一入口端口和所述第二区块链节点的所述第二入口端口。
2.根据权利要求1所述的方法,所述方法还包括:
通过所述交换机的所述用户端口从所述用户设备接收单播请求;以及
将所述单播请求发送到所述第一区块链节点的所述第一入口端口或所述第二区块链节点的所述第二入口端口。
3.根据权利要求1所述的方法,所述交换机是第一交换机,所述方法还包括:
通过所述第一交换机的所述用户端口从所述用户设备接收所述广播或组播请求;以及
将所述广播或组播请求发送到所述第一区块链节点的所述第一入口端口、所述第二区块链节点的所述第二入口端口、在第二交换机上建立的第三区块链节点的第三入口端口、以及在所述第二交换机上建立的第四区块链节点的第四入口端口。
4.根据权利要求1所述的方法,其中请求的类型包括:
初始化请求,用于初始化所述区块链系统的配置环境;
读取请求,用于从所述区块链系统中读取数据;
写入请求,用于将来自用户的数据写入所述区块链系统;
加入请求,用于创建新节点以加入所述区块链系统;以及
离开请求,用于将区块链节点从所述区块链系统中移除。
5.根据权利要求4所述的方法,还包括:
响应于从所述用户设备接收到所述初始化请求:
确定所述区块链系统中的特定区块链节点是否被激活,其中所述特定区块链节点由所述初始化请求指定;
如果确定所述特定区块链节点是激活的,则确定所述特定区块链节点是否具有初始区块;
如果确定所述特定区块链节点具有所述初始区块,则将所述初始区块组播到所述区块链系统中的其他区块链节点;或者
如果确定所述特定区块链节点不具有所述初始区块,则创建所述初始区块,并且将创建的所述初始区块组播到所述区块链系统中的所述其他区块链节点。
6.根据权利要求4所述的方法,还包括:
响应于从所述用户设备接收到所述写入请求:
确定所述区块链系统中的特定区块链节点是否被激活,其中所述特定区块链节点由所述写入请求指定;
如果确定所述特定区块链节点是激活的,则确定所述特定区块链节点是否被初始化;
如果确定所述特定区块链节点被初始化,则确定所述特定区块链节点是否具有初始区块;
如果确定所述特定区块链节点具有所述初始区块,则确定所述特定区块链节点中的最后的区块是否是新的;
如果确定所述特定区块链节点中的所述最后的区块不是新的,则从所述特定区块链节点获取所述最后的区块的信息;
基于获取的所述最后的区块的所述信息,创建新区块;
计算所述新区块的报头哈希;
如果所述报头哈希满足预先确定的条件,则将所述新区块加入所述区块链节点。
7.根据权利要求1所述的方法,其中所述交换机是可编程交换机,并且所述可编程交换机被布置在所述用户设备和云计算资源之间。
8.一种交换机,包括:
处理单元;以及
存储器,所述存储器耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时执行以下动作:
在所述交换机上建立第一区块链节点和第二区块链节点,其中所述第一区块链节点包括第一入口端口和第一出口端口,并且所述第二区块链节点包括第二入口端口和第二出口端口;
通过所述交换机的用户端口从用户设备接收广播或组播请求;以及
将所述广播或组播请求发送到所述第一区块链节点的所述第一入口端口和所述第二区块链节点的所述第二入口端口。
9.根据权利要求8所述的交换机,其中所述动作还包括:
通过所述交换机的所述用户端口从所述用户设备接收单播请求;以及
将所述单播请求发送到所述第一区块链节点的所述第一入口端口或所述第二区块链节点的所述第二入口端口。
10.根据权利要求8所述的交换机,所述交换机是第一交换机,所述动作还包括:
通过所述第一交换机的所述用户端口从所述用户设备接收所述广播或组播请求;以及
将所述广播或组播请求发送到所述第一区块链节点的所述第一入口端口、所述第二区块链节点的所述第二入口端口、在第二交换机上建立的第三区块链节点的第三入口端口、以及在所述第二交换机上建立的第四区块链节点的第四入口端口。
11.根据权利要求8所述的交换机,其中请求的类型包括:
初始化请求,用于初始化所述区块链系统的配置环境;
读取请求,用于从所述区块链系统中读取数据;
写入请求,用于将来自用户的数据写入所述区块链系统;
加入请求,用于创建新节点以加入所述区块链系统;以及
离开请求,用于将区块链节点从所述区块链系统中移除。
12.根据权利要求11所述的交换机,所述动作还包括:
响应于从所述用户设备接收到所述初始化请求:
确定所述区块链系统中的特定区块链节点是否被激活,其中所述特定区块链节点由所述初始化请求指定;
如果确定所述特定区块链节点是激活的,则确定所述特定区块链节点是否具有初始区块;
如果确定所述特定区块链节点具有所述初始区块,则将所述初始区块组播到所述区块链系统中的其他区块链节点;或者
如果确定所述特定区块链节点不具有所述初始区块,则创建所述初始区块,并且将创建的所述初始区块组播到所述区块链系统中的所述其他区块链节点。
13.根据权利要求11所述的交换机,所述动作还包括:
响应于从所述用户设备接收到所述写入请求:
确定所述区块链系统中的特定区块链节点是否被激活,其中所述特定区块链节点由所述写入请求指定;
如果确定所述特定区块链节点是激活的,则确定所述特定区块链节点是否被初始化;
如果确定所述特定区块链节点被初始化,则确定所述特定区块链节点是否具有初始区块;
如果确定所述特定区块链节点具有所述初始区块,则确定所述特定区块链节点中的最后的区块是否是新的;
如果确定所述特定区块链节点中的所述最后的区块不是新的,则从所述特定区块链节点获取所述最后的区块的信息;
基于获取的所述最后的区块的所述信息,创建新区块;
计算所述新区块的报头哈希;
如果所述报头哈希满足预先确定的条件,则将所述新区块加入所述区块链节点。
14.根据权利要求8所述的交换机,其中所述交换机是可编程交换机,并且所述可编程交换机被布置在所述用户设备和云计算资源之间。
15.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在由设备执行时使所述设备执行根据权利要求1至7中任一项所述的方法。
CN202210658269.3A 2022-06-10 2022-06-10 在交换机上实现区块链系统的方法、电子设备和程序产品 Pending CN117255096A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210658269.3A CN117255096A (zh) 2022-06-10 2022-06-10 在交换机上实现区块链系统的方法、电子设备和程序产品
US17/859,315 US11755522B1 (en) 2022-06-10 2022-07-07 Method, electronic device, and computer program product for implementing blockchain system on switch

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210658269.3A CN117255096A (zh) 2022-06-10 2022-06-10 在交换机上实现区块链系统的方法、电子设备和程序产品

Publications (1)

Publication Number Publication Date
CN117255096A true CN117255096A (zh) 2023-12-19

Family

ID=87933311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210658269.3A Pending CN117255096A (zh) 2022-06-10 2022-06-10 在交换机上实现区块链系统的方法、电子设备和程序产品

Country Status (2)

Country Link
US (1) US11755522B1 (zh)
CN (1) CN117255096A (zh)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6873627B1 (en) * 1995-01-19 2005-03-29 The Fantastic Corporation System and method for sending packets over a computer network
US6813267B1 (en) * 2000-09-11 2004-11-02 Sun Microsystems, Inc. Tunable broadcast/point-to-point packet arbitration
US6987760B2 (en) * 2001-03-05 2006-01-17 International Business Machines Corporation High speed network processor
US7209476B1 (en) * 2001-10-12 2007-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus for input/output port mirroring for networking system bring-up and debug
US20030074473A1 (en) * 2001-10-12 2003-04-17 Duc Pham Scalable network gateway processor architecture
JP4464766B2 (ja) * 2004-03-03 2010-05-19 株式会社日立製作所 マルチキャスト配信制御装置
US8908686B1 (en) * 2010-12-08 2014-12-09 Juniper Networks, Inc. Distributed generation of hierarchical multicast forwarding structures
US8861400B2 (en) * 2012-01-18 2014-10-14 International Business Machines Corporation Requesting multicast membership information in a distributed switch in response to a miss event
US9112708B1 (en) * 2012-01-27 2015-08-18 Marvell Israel (M.I.S.L) Ltd. Processing multicast packets in a network device
CN110460522B (zh) * 2018-05-08 2021-11-19 华为技术有限公司 组播数据传输方法、相关装置及系统
US11159376B2 (en) * 2018-05-24 2021-10-26 International Business Machines Corporation System and method for network infrastructure analysis and convergence
WO2019240783A1 (en) * 2018-06-13 2019-12-19 Visa International Service Association Architecture for secure iot interactions
US10917448B2 (en) * 2018-06-18 2021-02-09 Electronics And Telecommunications Research Institute Method and apparatus for broadcast gateway signaling for ensuring reliability
US20220329411A1 (en) * 2021-04-13 2022-10-13 International Business Machines Corporation Blockchain processing offload to network device
US11665067B2 (en) * 2021-05-28 2023-05-30 International Business Machines Corporation Managing reconfigurations of distributed computing systems
CN113490156B (zh) * 2021-07-01 2024-03-12 腾讯科技(深圳)有限公司 多播广播业务的通信方法、装置、介质及电子设备

Also Published As

Publication number Publication date
US11755522B1 (en) 2023-09-12

Similar Documents

Publication Publication Date Title
US10521283B2 (en) In-node aggregation and disaggregation of MPI alltoall and alltoallv collectives
Allen et al. IBM PowerNP network processor: Hardware, software, and applications
US9397901B2 (en) Methods, systems, and computer readable media for classifying application traffic received at a network traffic emulation device that emulates multiple application servers
WO2018175162A1 (en) Hardware-accelerated payload filtering in secure communication
CN110609746B (zh) 管理网络系统的方法、设备和计算机可读介质
CN104283939A (zh) 灵活的流卸载
CN112291293B (zh) 任务处理方法、相关设备及计算机存储介质
CN114153778A (zh) 跨网络桥接
US9965434B2 (en) Data packet processing
CN108011850B (zh) 数据包的重组方法及装置、计算机设备及可读介质
Pacífico et al. Application layer packet classifier in hardware
Lim et al. Beehive: A Flexible Network Stack for Direct-Attached Accelerators
CN109155777A (zh) 用于处置sctp分组的方法和网络节点
US10084893B2 (en) Host network controller
US9979802B2 (en) Assembling response packets
CN117255096A (zh) 在交换机上实现区块链系统的方法、电子设备和程序产品
US20230066835A1 (en) Methods, systems and computer readable media for improving remote direct memory access performance
CN116455836A (zh) 一种智能网卡、云服务器和流量转发的方法
CN113934767A (zh) 一种数据处理的方法及装置、计算机设备和存储介质
US10237378B1 (en) Low-latency metadata-based packet rewriter
US9736080B2 (en) Determination method, device and storage medium
US11048550B2 (en) Methods, devices and computer program products for processing task
Xue et al. Packet Scheduling for Multiple‐Switch Software‐Defined Networking in Edge Computing Environment
US11290355B1 (en) Methods and systems for flow log compression and coordination
CN113206807B (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