Home

Awesome

ExWire CircleCI

Elixir Client for RLPx, DevP2P and Eth Wire Protocol.

Installation

If available in Hex, the package can be installed by adding ex_wire to your list of dependencies in mix.exs:

def deps do
  [{:ex_wire, "~> 0.1.2"}]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/ex_wire.

Usage

For the time being, this can be used to sync the block chain from a given network (currently defaulted to Ropsten).

You can run iex -S mix and you should see:

12:59:23.818 [debug] [Network] [6ce059...1acd9d] Established outbound connection with 13.84.180.240, sending auth.

12:59:23.858 [debug] [Network] Sending EIP8 Handshake to 13.84.180.240

12:59:23.884 [debug] [Network] [6ce059...1acd9d] Sending raw data message of length 388 byte(s) to 13.84.180.240

12:59:23.886 [debug] [Sync] Requesting block 0

...

12:59:24.496 [debug] [Packet] Peer sent 1 header(s)

12:59:24.540 [debug] [Block Queue] Verified block and added to new block tree

12:59:24.540 [debug] [Sync] Requesting block 1

12:59:24.541 [info]  [Network] [6ce059...1acd9d] Sending packet Elixir.ExWire.Packet.GetBlockHeaders to 13.84.180.240

12:59:24.593 [debug] [Network] [6ce059...1acd9d] Got packet Elixir.ExWire.Packet.BlockHeaders from 13.84.180.240

12:59:24.593 [debug] [Packet] Peer sent 1 header(s)

12:59:24.595 [debug] [Block Queue] Verified block and added to new block tree

In the future, we will continue to grow and built out a proper syncing ability. It's likely the proper interface (with CLI tools) will not be this module directly, but instead a general CLI which calls into this module.