- 浏览: 761683 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
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都收到并验证通过后,会马上广播出去
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都收到并验证通过后,会马上广播出去
发表评论
-
EVM操作码
2023-01-25 10:33 2902.栈和内存操作码 2.1 POP:取出栈顶元素 2.2 PU ... -
eth_内存池
2022-02-28 11:09 3411.先验证交易大小,类型,签名,最小gas等 2.尝试把有效交 ... -
布隆过滤器在eth上的应用
2022-02-19 09:34 363设置一个非常大的位图,对数据做多种hash,如果每种hash的 ... -
rlpx节点之间的加密链路
2022-02-11 08:55 301RLPx使用了(Perfect Forward Secrecy ... -
MPT树
2022-02-02 17:38 192每一个以太坊的区块头包含三颗MPT树,分别是 交易树 收据树 ... -
evm
2021-12-23 19:21 176EVM 不是基于寄存器的,而是基于栈的,因此所有的计算都在一个 ... -
eth的三棵树
2020-11-01 08:49 295交易Merkle树,state Merkle树和收据Merkl ... -
truffle
2020-10-19 09:46 1931.编译 truffle compile --all 2.部 ... -
eth常用操作
2019-12-16 20:01 3051.添加节点 admin.addPeer("enod ... -
eth hd钱包
2019-12-06 10:07 539熵(128位)→助记词(12个)→种子(512位)→私钥→公钥 ... -
eth中文注释版
2019-11-27 08:56 432https://github.com/yinchengtsin ... -
以太坊常用命令
2019-11-24 09:34 168开启挖矿:geth --mine -
以太坊P2P网络
2018-12-17 20:51 3401.节点采用RLPx的发现协议DHT(Distributed ... -
以太坊叔块
2018-12-17 20:44 456叔块:符合难度条件,但区块里的交易不被确认的区块,是当前链接区 ... -
Casper
2018-10-21 09:47 3911.将Casper的应用逻辑通过智能合约来实现,记账权归属于& ... -
雷电网络
2018-10-20 08:27 456雷电网络(Raiden Network):是一个基于以太坊的链 ... -
ERC721
2018-10-19 07:57 449NFT:Non-fungible Token不可替代的代币 最 ... -
智能合约
2018-09-26 07:25 408智能合约是一种计算机协议,这类协议一旦制定和部署就能实现自我执 ... -
ENS
2018-09-20 07:47 421ENS:以太坊域名服务:是建立在以太坊区块链上的分布式,开放的 ... -
交易的流程
2018-09-19 07:37 3841.用户A发起交易,请求被传向对等节点B 2.节点B同步交易 ...
相关推荐
STM32F4x7_ETH_LwIP_V1.1.1_LwIP_stm32_eth_well2s1_STM32F4x7_ETH_L是一个针对STM32F4x7系列微控制器的以太网(LWIP)驱动程序的实例,主要包含了基于LwIP协议栈的网络通信功能。STM32F4x7是意法半导体...
标题中的"eth_tst_t2.rar"表明这是一个与以太网相关的测试项目,可能是某个开发阶段的代码存档。描述中提到"ETH_RGMII 8035 源码",这揭示了该压缩包包含的是针对以太网接口RGMII(Reduced Gigabit Media ...
本课件"eth_ocm.zip_SOPC 课件_altera eth_tse_eth_eth_ocm_sopc"着重讲解了如何在SOPC Builder中集成以太网OCM(On-Chip Memory)核,以及相关的以太网技术。 以太网OCM核是Altera为满足高速数据传输需求而设计的...
**Python库eth_accounts详解** `eth_accounts`是一个Python库,专为以太坊开发提供服务。这个库在2019年12月26日发布了适用于Python 2和3的版本,即`eth_accounts-20191226-py2.py3-none-any.whl`文件。该文件是一...
STM32_ETH_Lib官方资料是一份非常宝贵的资源,它主要涵盖了基于STM32微控制器的以太网库开发知识。STM32是意法半导体(STMicroelectronics)推出的一系列高性能、低功耗的32位微控制器,广泛应用于各种嵌入式系统...
ETH_MPI_SETUP6驱动软件是专为以太网MPI接口设计的一款重要驱动程序,主要用于连接和配置基于Ethernet MPI的设备,如西门子SIMATIC S7系列的PLC(可编程逻辑控制器)。在工业自动化领域,这种驱动对于确保设备间的...
ETH_MPI3_SETUP驱动软件是专为以太网(MPI3)接口设计的一款重要驱动程序,它主要用于确保计算机系统能够正确识别并高效通信与基于MPI3协议的硬件设备。这些硬件设备通常包括工业控制器、数据采集卡或其他需要通过...
**ZC702开发板上的Eth_EMIO_GMII接口详解** ZC702是一款基于Xilinx Zynq-7000 All Programmable SoC的开发平台,广泛用于嵌入式系统的设计和验证。在ZC702上实现Eth_EMIO_GMII接口,意味着我们可以利用外部物理层...
STM32F4x7_ETH_LwIP_V1.1.1是一个专为基于STM32F4x7系列微控制器的嵌入式系统设计的网络堆栈解决方案。该版本着重于实现以太网通信功能,结合了低层驱动程序和轻量级IP(LwIP)协议栈。LwIP是一种开源的TCP/IP协议栈...
eth_prot.h
在这个特定的项目中,"verilog顶层ETH设计模块参考_eth_eth_verilog_" 提供了一个以Verilog编写的以太网(ETH)功能模块的实现,用于数据的发送和接收。下面我们将深入探讨这个设计的核心知识点。 1. **以太网协议*...
标题中的“ETH_Web.rar_LPC1768_eth_web lpc1768”表明这是一个与基于LPC1768微控制器的以太网Web服务器相关的项目。LPC1768是一款由NXP(原飞利浦)公司生产的微控制器,属于Cortex-M3系列,广泛应用于嵌入式系统,...
STM32F4x7_ETH_LwIP+uCOSIII是一个基于STM32F407微控制器的项目,它整合了uCos-III实时操作系统和LwIP轻量级网络协议栈,用于实现嵌入式设备的以太网通信功能。这个项目的核心在于将强大的STM32F407处理器的性能与...
在给定的"stm32f4x7_eth_iap"项目中,我们将探讨如何利用STM32F407的以太网功能实现在线固件升级(In-Application Programming, IAP)。 在线升级是一项关键的技术,它允许设备在运行过程中更新固件,而无需物理...
在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"暗示了这个压缩包可能包含与以太网(Ethernet)相关的源代码或者设计文件,特别是与一个名为“OCM”(可能是On-Chip Memory或类似的术语)的模块在80位宽度下的接口实现...
`HAL_ETH_ReadPHYRegister()`和`HAL_ETH_WritePHYRegister()`函数用于读写PHY寄存器。 3. **数据收发**:利用`HAL_ETH_Transmit()`和`HAL_ETH_Receive()`函数进行数据的发送和接收。这些函数内部包含了帧的封装和解...
STM32F4x7_ETH_LwIP.rar这个压缩包文件是针对STM32F4x7系列微控制器的以太网(Ethernet)通信开发资源,主要涉及了使用LwIP轻量级TCP/IP协议栈、FreeRTOS实时操作系统以及MQTT协议和pollarSSL库的集成应用。...
《PyPI上的eth_abi-1.1.0-py3-none-any.whl:以太坊智能合约交互的Python库》 在区块链的世界里,以太坊作为一个开放的、去中心化的平台,允许开发者创建和运行分布式应用(DApps)以及智能合约。在Python编程环境中...
《VxWorks 6.5 IPNet组件:深入解析IPTCP、IPNet_NAT_Rule及IPNet_ETH_Input》 VxWorks操作系统是Wind River Systems开发的一款实时操作系统(RTOS),广泛应用于各种嵌入式系统中。在VxWorks 6.5版本中,IPNet组件...