{"id":39104075,"url":"https://github.com/eigerco/lightray","last_synced_at":"2026-01-17T19:19:46.313Z","repository":{"id":216502142,"uuid":"721526580","full_name":"eigerco/lightray","owner":"eigerco","description":"Celestia light node that can run in the browser","archived":false,"fork":false,"pushed_at":"2024-08-12T15:07:38.000Z","size":28831,"stargazers_count":2,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-07T07:33:21.875Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eigerco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-21T08:46:05.000Z","updated_at":"2024-08-29T09:09:53.000Z","dependencies_parsed_at":"2024-03-29T13:29:23.244Z","dependency_job_id":"bd925f42-acf8-45e1-ad9f-dcf522d148b6","html_url":"https://github.com/eigerco/lightray","commit_stats":null,"previous_names":["eigerco/celestia-go-wasm-example","eigerco/lightray"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eigerco/lightray","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigerco%2Flightray","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigerco%2Flightray/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigerco%2Flightray/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigerco%2Flightray/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eigerco","download_url":"https://codeload.github.com/eigerco/lightray/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigerco%2Flightray/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28516743,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:55:29.170Z","status":"ssl_error","status_checked_at":"2026-01-17T18:55:03.375Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-17T19:19:45.360Z","updated_at":"2026-01-17T19:19:46.254Z","avatar_url":"https://github.com/eigerco.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LightRay: Celestia Light Node for Web Browsers\n\nLightRay introduces a significant enhancement within the Celestia ecosystem, enabling a browser-compatible version of the Celestia light node through WebAssembly. This development features a web service that facilitates easy hosting of the Celestia node, providing users with the capability to directly operate a Celestia light node from their web browser interface.\n\n## Connectivity and Compatibility\n\nTo engage with the Celestia network, users must utilize secure WebTransport addresses. It is important to highlight that the LightRay Wasm Node is specifically designed for Google Chrome compatibility, ensuring a seamless experience for users of this browser.\n\n## Node Functionality and Limitations\n\nIn adapting to the unique environment of web browsers, LightRay focuses on light node functionalities, acknowledging the inherent limitations of browser-based operations. Notably, the browser context restricts the ability to accept incoming connections, leading to the omission of several services including gateway and RPC functionalities, admin state management, blob services, as well as metrics and tracing capabilities.\n\nDespite these adjustments, LightRay maintains crucial functionalities such as header synchronization, Data Availability Sampling (DAS), and a Fraud detection service, demonstrating its commitment to delivering essential blockchain services within the constraints of a web browser platform.\n\n# Installation Instructions\n\nTo get started with a manual installation, follow these steps:\n\n## Running Locally with Docker\n\n1. **Clone the repository**:  \n   Run the following command to clone the repository to your local machine and navigate to the project directory:\n   ```bash\n   git clone git@github.com:eigerco/lightray.git \u0026\u0026 cd lightray\n   ```\n\n2. **Build and start the application**:  \n   Move into the Docker directory and execute the Docker Compose command to build and start the application:\n   ```bash\n   cd docker \u0026\u0026 docker-compose -f docker-compose.yaml up --build\n   ```\n\n## Running Locally with Bootstrapper Using Docker\n\n1. **Clone the repository**:  \n   Clone the repository to your local machine and navigate to the project directory:\n   ```bash\n   git clone git@github.com:eigerco/lightray.git \u0026\u0026 cd lightray\n   ```\n\n2. **Set up your public IP address**:  \n   Ensure that your public IP address can accept TCP and UDP connections on port `6060`. This requires setting up port forwarding and creating appropriate firewall rules.\n\n3. **Configure the bootstrapper**:  \n   Open the `./docker/bootstrapper-config.json` file and replace `\u003cyour-public-ip\u003e` with your actual public IP address.\n\n4. **Build and start the application with Bootstrapper**:  \n   Navigate to the Docker directory and run Docker Compose, using the `docker-compose-with-bootstrapper.yaml` file:\n   ```bash\n   cd docker \u0026\u0026 docker-compose -f docker-compose-with-bootstrapper.yaml up --build\n   ```\n\n## Web service\nThe web service functions as the host and instantiation point for the LightRay node. \nIt leverages IndexedDB for persistent data storage and key management, ensuring durability and security for both the data store and the keystore components.\n\n### User Interface\n\nThe UI offers a minimalistic interface for interacting with the LightRay node. It supports operations such as starting and stopping the node, connecting to the network, and clearing the database cache. Developed using Svelte, the UI features include:\n\n- **Clear Database Button**: This button purges all data within the database.\n- **Connect Button**: Initiates the light node and establishes a connection to the network, enabling participation in the network activities.\n- **Stop Button**: Safely stops the node's operation, ensuring a graceful shutdown of activities.\n- **Bootstrap Addresses Text Field**: Allows for manual configuration of bootstrap node addresses, each entered on a new line. Alternatively, the default address provided by the bootstrapper service can be used for convenience. Please note that only secure web transport bootstrappers are supported!\n- **Runtime Logs Section**: Offers a minimalist logging view, presenting essential outputs like \"Node started\" and \"Node stopped.\" For in-depth logging, users are directed to consult the console logs.\n- **Status Section**: Displays critical node information including the peer ID, synchronization headers, latest block information, and details on connected peers for operational insight.\n\n## Bootstrapper\n\nThe Bootstrapper service operates in conjunction with our web application, featuring a key endpoint, `/bootstrap-peers`, that interacts seamlessly with the Celestia network. Upon the web application's initialization, this endpoint is invoked to fetch the addresses of bootstrap nodes from Celestia. It is important to note that only secure WebTransport addresses are utilized to ensure the integrity and security of the communication. These secure addresses are subsequently supplied to the node at the commencement of its operation, facilitating its secure integration into the network.\n\n# Demo\nExperience the capabilities of the LightRay web service firsthand by visiting [https://lightray.eiger.co/](https://lightray.eiger.co/).\n\n# Contributors\nLightRay is the fruit of collaboration between [Celestia](https://celestia.org/) and [Eiger](https://www.eiger.co/).\n\n## About [Eiger](https://www.eiger.co)\n\nWe are engineers. We contribute to various ecosystems by building low level implementations and core components. We are core contributors to Celestia because we believe in the modular stack and Celestia's data availability offering. Check out [Lumina](https://github.com/eigerco/lumina) our other light node in Rust.\n\nContact us at hello@eiger.co\nFollow us on [X/Twitter](https://x.com/eiger_co)\n\n# LICENSE\nLightRay is made available under the Apache 2.0 License, reflecting our commitment to open-source collaboration and innovation. For detailed licensing information, refer to the [LICENSE](./LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feigerco%2Flightray","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feigerco%2Flightray","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feigerco%2Flightray/lists"}