`

eth_fetch

 
阅读更多
fetch的流程
1.当我们接收到NewBlockHashesMsg消息得时候,我们只收到了很多Block的hash值。 需要通过hash值来同步区块,然后更新本地区块链。 fetcher就提供了这样的功能
2.fetcher通过四个map(announced,fetching,fetched,completing )记录了announce的状态(等待fetch,正在fetch,fetch完头等待fetch body, fetch完成),并通过定时器和各种消息来对各种map里面的announce进行状态转换,announced --fetchTimer(fetch header)---> fetching --(headerFilter)--> fetched --completeTimer(fetch body)-->completing --(bodyFilter)--> enqueue --task.done--> forgetHash
3.在接收到NewBlockHashesMsg的时候,对于本地区块链还没有的区块的hash值会调用fetcher的Notify方法发送到notify通道
4.在接收到NewBlockMsg的时候会调用fetcher的Enqueue方法,这个方法会把当前接收到的区块发送到inject通道
5.header和body都收到并验证通过后,会马上广播出去
分享到:
评论

相关推荐

    STM32F4x7_ETH_LwIP_V1.1.1_LwIP_stm32_eth_well2s1_STM32F4x7_ETH_L

    STM32F4x7_ETH_LwIP_V1.1.1_LwIP_stm32_eth_well2s1_STM32F4x7_ETH_L是一个针对STM32F4x7系列微控制器的以太网(LWIP)驱动程序的实例,主要包含了基于LwIP协议栈的网络通信功能。STM32F4x7是意法半导体...

    eth_tst_t2.rar

    标题中的"eth_tst_t2.rar"表明这是一个与以太网相关的测试项目,可能是某个开发阶段的代码存档。描述中提到"ETH_RGMII 8035 源码",这揭示了该压缩包包含的是针对以太网接口RGMII(Reduced Gigabit Media ...

    eth_ocm.zip_SOPC 课件_altera eth_tse_eth_eth_ocm_sopc

    本课件"eth_ocm.zip_SOPC 课件_altera eth_tse_eth_eth_ocm_sopc"着重讲解了如何在SOPC Builder中集成以太网OCM(On-Chip Memory)核,以及相关的以太网技术。 以太网OCM核是Altera为满足高速数据传输需求而设计的...

    Python库 | eth_accounts-20191226-py2.py3-none-any.whl

    **Python库eth_accounts详解** `eth_accounts`是一个Python库,专为以太坊开发提供服务。这个库在2019年12月26日发布了适用于Python 2和3的版本,即`eth_accounts-20191226-py2.py3-none-any.whl`文件。该文件是一...

    stm32_eth_lib.7z

    STM32_ETH_Lib官方资料是一份非常宝贵的资源,它主要涵盖了基于STM32微控制器的以太网库开发知识。STM32是意法半导体(STMicroelectronics)推出的一系列高性能、低功耗的32位微控制器,广泛应用于各种嵌入式系统...

    ETH_MPI_SETUP6驱动软件.rar

    ETH_MPI_SETUP6驱动软件是专为以太网MPI接口设计的一款重要驱动程序,主要用于连接和配置基于Ethernet MPI的设备,如西门子SIMATIC S7系列的PLC(可编程逻辑控制器)。在工业自动化领域,这种驱动对于确保设备间的...

    ETH_MPI3_SETUP驱动软件.rar

    ETH_MPI3_SETUP驱动软件是专为以太网(MPI3)接口设计的一款重要驱动程序,它主要用于确保计算机系统能够正确识别并高效通信与基于MPI3协议的硬件设备。这些硬件设备通常包括工业控制器、数据采集卡或其他需要通过...

    ZC702_Eth_EMIO_GMII

    **ZC702开发板上的Eth_EMIO_GMII接口详解** ZC702是一款基于Xilinx Zynq-7000 All Programmable SoC的开发平台,广泛用于嵌入式系统的设计和验证。在ZC702上实现Eth_EMIO_GMII接口,意味着我们可以利用外部物理层...

    STM32F4x7_ETH_LwIP_V1.1.1

    STM32F4x7_ETH_LwIP_V1.1.1是一个专为基于STM32F4x7系列微控制器的嵌入式系统设计的网络堆栈解决方案。该版本着重于实现以太网通信功能,结合了低层驱动程序和轻量级IP(LwIP)协议栈。LwIP是一种开源的TCP/IP协议栈...

    eth_prot.h

    eth_prot.h

    verilog顶层ETH设计模块参考_eth_eth_verilog_

    在这个特定的项目中,"verilog顶层ETH设计模块参考_eth_eth_verilog_" 提供了一个以Verilog编写的以太网(ETH)功能模块的实现,用于数据的发送和接收。下面我们将深入探讨这个设计的核心知识点。 1. **以太网协议*...

    ETH_Web.rar_LPC1768_eth_web lpc1768

    标题中的“ETH_Web.rar_LPC1768_eth_web lpc1768”表明这是一个与基于LPC1768微控制器的以太网Web服务器相关的项目。LPC1768是一款由NXP(原飞利浦)公司生产的微控制器,属于Cortex-M3系列,广泛应用于嵌入式系统,...

    STM32F4x7_ETH_LwIP+uCOSIII

    STM32F4x7_ETH_LwIP+uCOSIII是一个基于STM32F407微控制器的项目,它整合了uCos-III实时操作系统和LwIP轻量级网络协议栈,用于实现嵌入式设备的以太网通信功能。这个项目的核心在于将强大的STM32F407处理器的性能与...

    stm32f4x7_eth_iap_stm32f4x7eth_stm32f407iap_STM32F407升级_stm32f40

    在给定的"stm32f4x7_eth_iap"项目中,我们将探讨如何利用STM32F407的以太网功能实现在线固件升级(In-Application Programming, IAP)。 在线升级是一项关键的技术,它允许设备在运行过程中更新固件,而无需物理...

    ethmac_socket_mac_eth_linux_

    在Linux中,可以使用`socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL))`创建一个原始套接字,其中`AF_PACKET`表示链路层协议,`SOCK_RAW`表示原始模式,`htons(ETH_P_ALL)`表示接收所有类型的以太网帧。 2. 以太网帧...

    eth_ocm_80_2.zip_eth_interface

    标题中的"eth_ocm_80_2.zip_eth_interface"暗示了这个压缩包可能包含与以太网(Ethernet)相关的源代码或者设计文件,特别是与一个名为“OCM”(可能是On-Chip Memory或类似的术语)的模块在80位宽度下的接口实现...

    ETH.zip_STM32F407 网络_STM32F407网络_eth单片机_stm32f407_单片机 ETH功能

    `HAL_ETH_ReadPHYRegister()`和`HAL_ETH_WritePHYRegister()`函数用于读写PHY寄存器。 3. **数据收发**:利用`HAL_ETH_Transmit()`和`HAL_ETH_Receive()`函数进行数据的发送和接收。这些函数内部包含了帧的封装和解...

    STM32F4x7_ETH_LwIP.rar

    STM32F4x7_ETH_LwIP.rar这个压缩包文件是针对STM32F4x7系列微控制器的以太网(Ethernet)通信开发资源,主要涉及了使用LwIP轻量级TCP/IP协议栈、FreeRTOS实时操作系统以及MQTT协议和pollarSSL库的集成应用。...

    PyPI 官网下载 | eth_abi-1.1.0-py3-none-any.whl

    《PyPI上的eth_abi-1.1.0-py3-none-any.whl:以太坊智能合约交互的Python库》 在区块链的世界里,以太坊作为一个开放的、去中心化的平台,允许开发者创建和运行分布式应用(DApps)以及智能合约。在Python编程环境中...

    ipnet2.rar_IPTCP_ipnet_ipnet nat rule_ipnet_eth_input_vxworks组件代

    《VxWorks 6.5 IPNet组件:深入解析IPTCP、IPNet_NAT_Rule及IPNet_ETH_Input》 VxWorks操作系统是Wind River Systems开发的一款实时操作系统(RTOS),广泛应用于各种嵌入式系统中。在VxWorks 6.5版本中,IPNet组件...

Global site tag (gtag.js) - Google Analytics