Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/golemfactory/yagna-service-erigon
Erigon (formely Turbo-Geth) node as a Golem long running service
https://github.com/golemfactory/yagna-service-erigon
golem ya-runtime
Last synced: about 1 month ago
JSON representation
Erigon (formely Turbo-Geth) node as a Golem long running service
- Host: GitHub
- URL: https://github.com/golemfactory/yagna-service-erigon
- Owner: golemfactory
- License: gpl-3.0
- Created: 2021-05-14T11:44:51.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-06-29T11:44:27.000Z (over 2 years ago)
- Last Synced: 2024-10-08T10:03:42.665Z (4 months ago)
- Topics: golem, ya-runtime
- Language: TypeScript
- Homepage:
- Size: 1010 KB
- Stars: 1
- Watchers: 6
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Erigolem
Erigon node as a Golem serviceThe purpose of this example is to demonstrate building a Golem service using a dedicated, self-contained runtime. It features an Ethereum network client, Erigon (f.k.a. Turbo-geth) started on provider nodes on user's demand. Interaction with the service, once it's running and its location and credentials have been passed to the requestor, is *not* facilitated by Golem though.
---
The application consist of three major components:
1. **User interface** (`client/`)
A browser-based interface written in TypeScript using [React](https://reactjs.org/). It allows the end user to interact with the application, i.e. start an Erigon node after authenticating with their [Metamask](https://metamask.io/) wallet, and later manage their node(s).
2. **Requestor server** (`requestor/`)
A Python application developed using [Quart](https://pgjones.gitlab.io/quart/) and [yapapi-service-manager](https://github.com/golemfactory/yapapi-service-manager). It acts both as an HTTP server (handling requests from the user interface), and as a requestor agent (submitting tasks to the Golem network).
3. **Erigon runtime** (`ya-runtime-erigon/`)
A dedicated, self-contained runtime created with [ya-runtime-sdk](https://github.com/golemfactory/ya-runtime-sdk). It is a Rust binary wrapping [Erigon](https://github.com/ledgerwatch/erigon) service itself so that it can be orchestrated by yagna daemon. The runtime also controls the access to the service by managing [Nginx](https://www.nginx.com/) configuration.---
To use the application locally, run `docker-compose up` and open [http://localhost:8000](). You can provide your own subnet by setting up the `SUBNET_TAG` environment variable. The default `docker-compose.yml` config starts the requestor server and frontend. To start the network checker as well, include `-f network-checker.yml`.
Instructions how to run client and e2e tests are [here](https://github.com/golemfactory/yagna-service-erigon/blob/master/client/README.md).
Instructions how to run and test the requestor server are [here](https://github.com/golemfactory/yagna-service-erigon/blob/master/requestor/README.md).Full project documentation can be found in the [Golem handbook](https://handbook.golem.network/requestor-tutorials/service-development/service-example-2-managed-erigon).