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-lclinote: 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.jsonThis 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.shThe 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.