ultralight
ultralight copied to clipboard
Ethereum Portal Network TypeScript implementation
Ultralight - A Portal Network implementation in Typescript
This monorepo comprises an implementation of the Portal Network spec and is under active development. It aspires to allow dapps, wallet providers, and any Javascript based Ethereum application to leverage the Portal Network for access to the Ethereum chain history and state.
Prerequisites
Node v20+, NPM v10+
Quick Start
Clone this repo and run npm i from the root directory. This project leverages npm workspaces so requires NPM v7 or above.
- From the
packages/clisubfolder, start the Ultralightnodejsclient -npm run devand you should see some logs like below indicating the node is starting up:
de2f8:ultralight Started JSON RPC Server address=http://localhost:8545
This will start a single instance of the Ultralight client running locally.
Connecting to the devnet (developer testnet)
- Change active folder:
cd packages/cli - Run:
npm run devnet - Client starts with the current list of bootnodes which will attempt to ping all of bootnodes in the provided default bootnode list (specified in
packages/cli/bootnodes.txt)
Additional Documentation
See the cli documentation for more specific usage of the NodeJS Ultralight client.
See the interop instructions for running Ultralight in conjunction with the Fluffy and Trin portal clients.
Development Notes
Use npm run dev in the portalnetwork library to have Typescript automatically recompile code as changes are made.
Monorepo Structure
portalnetwork
The portalnetwork library is the application layer needed to interact with the Portal Network and depends on discv5 for its networking layer
Proxy Service
This a simple nodejs server that accepts incoming websocket connections from clients running the portalnetwork module and routes their messages on to other Portal Network clients
Browser Client unmaintained
This is a currently unmaintained technical demonstration of a web application that uses the portalnetwork module to connect to the Portal Network
NodeJS Client
This is a technical demonstration of a NodeJS application that uses the portalnetwork module to connect to the Portal Network