Package Exports
- @lodestar/reqresp
- @lodestar/reqresp/utils
Readme
Lodestar Eth Consensus Req/Resp Protocol
This package is part of ChainSafe's Lodestar project
Typescript implementation of the Ethereum Consensus Req/Resp protocol
Usage
import {Libp2p} from "libp2p";
import {ssz} from "@lodestar/types";
import {ReqResp, ContextBytesType, Protocol, Encoding} from "@lodestar/reqresp";
import {ForkName} from "@lodestar/params";
import {Logger} from "@lodestar/utils";
async function getReqResp(libp2p: Libp2p, logger: Logger): Promise<void> {
  const reqResp = new ReqResp({libp2p, logger, metricsRegister: null});
  // Register a PONG handler to respond with caller's Ping request
  const pingProtocol: Protocol = {
    method: "ping",
    version: 1,
    encoding: Encoding.SSZ_SNAPPY,
    contextBytes: {type: ContextBytesType.Empty},
    requestSizes: ssz.phase0.Ping,
    responseSizes: () => ssz.phase0.Ping,
    handler: async function* (req) {
      yield {
        data: req.data,
        fork: ForkName.phase0,
      };
    },
  };
  reqResp.registerProtocol(pingProtocol);
}Prerequisites
What you need
You will need to go over the specification.
Getting started
- Follow the installation guide to install Lodestar.
- Quickly try out the whole stack by starting a local testnet.
Contributors
Read our contributors document, submit an issue or talk to us on our discord!
License
Apache-2.0 ChainSafe Systems