etclabscore / jade-service-runner

👟 Jade Service Runner
https://jade.builders/
Apache License 2.0
16 stars 8 forks source link
etclabscore-tooling ethereum-classic

Jade Service Runner - A JSON-RPC Service Manager

CircleCI branch
<img src="https://codecov.io/gh/etclabscore/jade-service-runner/branch/master/graph/badge.svg" />
<img alt="Dependabot status" src="https://api.dependabot.com/badges/status?host=github&repo=etclabscore/jade-service-runner" />
<a target="_blank" href="https://discord.gg/S9AT3X2"><img alt="Chat on Discord" src="https://img.shields.io/badge/chat-on%20discord-7289da.svg" /></a>
<img alt="npm" src="https://img.shields.io/npm/dt/@etclabscore/jade-service-runner.svg" />
<img alt="GitHub release" src="https://img.shields.io/github/release/etclabscore/jade-service-runner.svg" />
<img alt="GitHub commits since latest release" src="https://img.shields.io/github/commits-since/etclabscore/jade-service-runner/latest.svg" />

Jade Service Runner

An awesome JSON-RPC service manager!
View Demo · Report Bug · Request Feature

Table of Contents

About The Project

Service Runner is an opinionated JSON-RPC service manager, that provides daemonization, installation, and discovery for JSON-RPC based services.

Service Runner helps developers gain access to a user's locally run services. It provides users with a management and installation tool, that allows developers to discover services and reliably request access to those services.

Better dApp Development

Service Runner improves the dApp development cycle, by reducing the number of steps required for running services that are local to the user, in addition to associated with relying on locally running JSON-RPC services. To do this effectively, Jade Service Runner supports the following:

Supported Services

Currently it supports core-geth with the following environments:

Getting Started

Prerequisites

Installation

Install via npm package

npm install -g @etclabscore/jade-service-runner

Install the JavaScript client:

npm install @etclabscore/jade-service-runner-client

Then require it into any module.

const { ServiceRunner } = require("@etclabscore/jade-service-runner-client");
const ERPC = require("@etclabscore/ethereum-json-rpc");
const serviceRunner = new ServiceRunner({ transport: { type: "http", port: 8002, host: "localhost" } });
const serviceName = "core-geth";
const successful = await serviceRunner.installService(serviceName, "1.11.2");
if (successful === false) throw new Error("Service not installed")
const serviceConfig = serviceRunner.start(serviceName, "1.11.2", "kotti");
const erpc = new ERPC(serviceConfig);
erpc.getBalance("0x0DEADBEEF");

To run the jade-service-runner:

jade-service-runner

Usage

JSON-RPC API Documentation

You can view the API documentation here.

Extending services

You can extend jade-service-runner with your own configuration via the command line interface

jade-service-runner -c extended-jade-service-runner-config.json

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

How to contribute, build and release are outlined in CONTRIBUTING.md, BUILDING.md and RELEASING.md respectively. Commits in this repository follow the CONVENTIONAL_COMMITS.md specification.

License

Apache License 2.0

Resources