This is an open-source User Interface for the Lighthouse Ethereum Beacon Node and Validator Client.
The Lighthouse Book contains information for users and developers. Specifically the Lighthouse UI section of the book.
Building from source requires Node v18
and yarn
.
The electron app can be built from source by first cloning the repository and entering the directory:
$ git clone https://github.com/sigp/siren.git
$ cd siren
Once cloned, the electron app can be built and ran via the Makefile by:
$ make
alternatively it can be built via:
$ yarn
Once completed successfully the electron app can be run via:
$ yarn dev
Docker is the recommended way to run a webserver that hosts Siren and can be connected to via a web browser. We recommend this method as it established a production-grade web-server to host the application.
docker
is required to be installed with the service running.
The docker image can be built and run via the Makefile by running:
$ make docker
Alternatively, to run with Docker, the image needs to be built. From the repository directory run:
$ docker build -t siren .
Then to run the image:
$ docker run --rm -ti --name siren -p 80:80 siren
This will open port 80 and allow your browser to connect. You can choose
another local port by modifying the command. For example -p 8000:80
will open
port 8000.
To view Siren, simply go to http://localhost
in your web browser.
For development, one can spin up a local lighthouse testnet. This can be used for the UI to connect to and retrieve real-time results from a local testnet.
In order to run a local lighthouse network, lighthouse needs to be installed on the system. For detailed instructions see the Lighthouse Book.
Both lighthouse
and lcli
are required to be installed. This can be done by
cloning the Lighthouse repository, entering the cloned repository and running:
$ make
$ make install-lcli
note: you need a version of lcli that includes these changes
ganache
is also required to be installed. This can be installed via npm
or via the OS. If using npm
it can be installed as:
$ npm install ganache --global
To start a local testnet, move into the local-testnet
directory. Then run:
./start_local_testnet.sh genesis.json
This will spin up both a validator client and a beacon node. These will run in the background and can be accessed via their local http APIs.
A running local testnet can be stopped by running:
./stop_local_testnet.sh
The default settings should be sufficient for a development network useful for
testing the UI. However various configurations can be modified by modifying the
vars.env
file.
The data for a previously run testnet is stored at
./local-testnet/testnet-data
(assuming the scripts were run inside the
local-testnet
directory. Simply removing this directory and its
subdirectories will create a new testnet when running these commands again.
Logs and errors can be found in the ./local-testnet/testnet-data
directory.