ex_wire v0.1.1 ExWire.Packet.GetBlockHeaders
Requests block headers starting from a given hash.
**GetBlockHeaders** [`+0x03`: `P`, `block`: { `P` , `B_32` }, `maxHeaders`: `P`, `skip`: `P`, `reverse`: `P` in { `0` , `1` } ]
Require peer to return a BlockHeaders message. Reply
must contain a number of block headers, of rising number when reverse is 0,
falling when 1, skip blocks apart, beginning at block block (denoted by either
number or hash) in the canonical chain, and with at most maxHeaders items.
Link to this section Summary
Functions
Given an RLP-encoded GetBlockHeaders packet from Eth Wire Protocol, decodes into a GetBlockHeaders struct
Handles a GetBlockHeaders message. We shoud send the block headers to the peer if we have them. For now, we’ll do nothing
Given a GetBlockHeaders packet, serializes for transport over Eth Wire Protocol
Link to this section Types
Link to this type
t()
t() :: %ExWire.Packet.GetBlockHeaders{block_identifier: ExWire.Packet.block_identifier, max_headers: integer, reverse: boolean, skip: integer}
Link to this section Functions
Given an RLP-encoded GetBlockHeaders packet from Eth Wire Protocol, decodes into a GetBlockHeaders struct.
Examples
iex> ExWire.Packet.GetBlockHeaders.deserialize([5, 10, 2, 1])
%ExWire.Packet.GetBlockHeaders{block_identifier: 5, max_headers: 10, skip: 2, reverse: true}
iex> ExWire.Packet.GetBlockHeaders.deserialize([<<5>>, 10, 2, 0])
%ExWire.Packet.GetBlockHeaders{block_identifier: <<5>>, max_headers: 10, skip: 2, reverse: false}
Handles a GetBlockHeaders message. We shoud send the block headers to the peer if we have them. For now, we’ll do nothing.
Examples
iex> %ExWire.Packet.GetBlockHeaders{block_identifier: 5, max_headers: 10, skip: 2, reverse: true}
...> |> ExWire.Packet.GetBlockHeaders.handle()
:ok
Given a GetBlockHeaders packet, serializes for transport over Eth Wire Protocol.
Examples
iex> %ExWire.Packet.GetBlockHeaders{block_identifier: 5, max_headers: 10, skip: 2, reverse: true}
...> |> ExWire.Packet.GetBlockHeaders.serialize
[5, 10, 2, 1]
iex> %ExWire.Packet.GetBlockHeaders{block_identifier: <<5>>, max_headers: 10, skip: 2, reverse: false}
...> |> ExWire.Packet.GetBlockHeaders.serialize
[<<5>>, 10, 2, 0]