• Stars
    star
    104
  • Rank 330,604 (Top 7 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

🚧 Documentation available at https://energy-web-foundation-origin.readthedocs-hosted.com/en/latest/ 🚧

Table of Contents

Packages

SDK Releases

Package Stable Canary Description
@energyweb/origin-device-registry-api npm npm Generic implementation of API working with Origin device registry
@energyweb/origin-device-registry-irec-local-api npm npm API for local version of I-REC compatible registry
@energyweb/origin-energy-api npm npm API for Smart meter reads
@energyweb/origin-organization-irec-api npm npm API for I-REC based organizations
@energyweb/origin-backend npm npm Example backend necessary for running Origin
@energyweb/issuer npm npm Energy Attribute Certificates Issuer Module
@energyweb/issuer-api npm npm NestJS module for interacting with renewable energy certificates
@energyweb/issuer-irec-api npm npm NestJS module for interacting with renewable energy certificates with IREC connectivity
@energyweb/exchange npm npm A service project hosting order book based exchange
@energyweb/exchange-irec npm npm A service project hosting order book based I-REC specific exchange
@energyweb/exchange-core npm npm Generic EACs order book product and matching
@energyweb/exchange-core-irec npm npm An IREC based EACs product and matching
@energyweb/exchange-io-erc1888 npm npm ERC1888 withdwaral/deposit processing for exchange
@energyweb/utils-general npm npm General Utilities
@energyweb/origin-ui-core npm npm React components library for building Origin marketplace user interface
@energyweb/origin-ui-localization npm npm Localization library for building Origin marketplace user interface
@energyweb/origin-ui-theme npm npm Material-UI theme configuration and styling utilities
@energyweb/origin-ui-utils npm npm UI general utilities

Applications, Infrastructure and Demo

Package Description
@energyweb/origin-backend-irec-app Bootstrap project for Origin API that uses I-REC API connection
@energyweb/origin-ui Root of UI for Origin
@energyweb/migrations-irec Deployment and configuration utilities

Packages types

Origin monorepo produce 3 types of the packages that are meant to be used in different use-cases:

Stable

Stable Origin SDK packages are created during release branch build.

Install using yarn add @energyweb/{package}

Canary

Canary packages are created during master branch builds. Canary reflects current state of the master branch, they should be a working versions considers as alpha

Install using yarn add @energyweb/{package}@canary

Preview

Preview packages are built on a special preview branch, this is mostly used as interal tool for tests, demos, discussions.

Install using yarn add @energyweb/{package}@preview

Preparation

  1. Make sure you are using Node 14.x.x
  2. Make sure have latest @microsoft/rush package manager installed.
npm install -g @microsoft/rush
  1. Make sure you have Java runtime installed
  2. Install Postgres 12.x+ and create a new database named origin.

We recommend using Docker based setup as follows (requires psql command line tool installed):

docker pull postgres
docker run --name origin-postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=origin -d -p 5432:5432 postgres
  1. Make sure you have created a .env file in the root of the monorepo and that all necessary variables are set. Use .env.example as an example of how the .env file should look.

  2. Create InfluxDB to store smart meter readings

docker run --rm --env-file ./.env -v $PWD/influxdb-local:/var/lib/influxdb influxdb:1.8 /init-influxdb.sh

Run the InfluxDB instance

docker run --name energy-influxdb --env-file ./.env -d -p 8086:8086 -v $PWD/influxdb-local:/var/lib/influxdb -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb:1.8
  1. For custom DB credentials, ports, db name etc refer to https://github.com/energywebfoundation/origin/tree/master/packages/apps/origin-backend-irec-app#development

Installation

rush update

Build

rush build

Test

rush test:e2e

Run demo

After you have the .env file created, installed dependencies (rush install) and build completed (rush build) run the following command:

rush run:origin

Visit the UI at: http://localhost:3000.

Heroku environment provisioning

For fast deployment to Heroku you can run the available script provision-heroku-origin

PREFIX=<name> STAGE=<stage> TEAM=<team> ./provision-heroku-origin.sh

Naming convention is for apps:

${PREFIX}-origin-ui-${STAGE}
${PREFIX}-origin-api-${STAGE}

For e.g in order to create ptt-origin-ui-stable run the script with:

PREFIX=ptt STAGE=stable TEAM=<team> ./provision-heroku-origin.sh

Note: This script assumes that Heroku CLI tool is installed and your are logged in https://devcenter.heroku.com/articles/heroku-cli

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request

More Repositories

1

ew-did-registry

TypeScript
36
star
2

paper

The Energy Web Chain: Accelerating the Energy Transition with an Open-Source, Decentralized Blockchain Platform
30
star
3

switchboard-dapp

Energy Web Switchboard UI
TypeScript
28
star
4

ewc-system-contracts

Infrastructure contracts for EnergyWeb Chain (EWC) live launch
JavaScript
23
star
5

iam-client-lib

TypeScript library to be used within decentralised applications for authentication and authorisation using DIDs (Decentralised Identifiers) and VCs (Verifiable Credentials)
TypeScript
19
star
6

authority-node

The Energy Web Blockchain Authority Node
Shell
15
star
7

passport-did-auth

Node.js Passport authentication and authorisation strategy using DIDs(Decentralised Identifiers) and VCs(Verifiable Credentials)
TypeScript
15
star
8

challenge

Energy Web Innovation Challenge
14
star
9

ew-link-origin

The EWF-link origin app integrates green energy assets to the coo smart-contracts.
Python
13
star
10

staking-pool

TypeScript
13
star
11

ssi-hub

Hub for decentralised Identity and Access Management
TypeScript
12
star
12

ew-link-bond

Energy data interface for blockchain smart contracts
Python
12
star
13

iam-client-examples

Example web applications which demonstrate the usage of iam-client-lib with passport-did-auth
TypeScript
9
star
14

ocn-tools

Contains common tools for aiding development of applications built on top of the OCN. It is possible to run a mock E-Mobility Service Provider (MSP) or Charge Point Operator (CPO) with these tools.
TypeScript
9
star
15

zero

TypeScript
8
star
16

ssi

This repository provides sample Self-Sovereign-Identity (SSI) wallet applications and libraries to enable these apps. These are currently provided for demonstration purposes.
TypeScript
7
star
17

origin-247-sdk

TypeScript
7
star
18

secretstore-js

EnergyWeb's SecretStore JS client
TypeScript
6
star
19

iam-contracts

EnergyWeb IAM smart contracts and client code
TypeScript
6
star
20

ewx-marketplace

6
star
21

drec-origin

DREC
TypeScript
5
star
22

ocn-node

Kotlin
5
star
23

energy-api

TypeScript
5
star
24

secretstore-contracts

Secret Store permissioning/service contracts collection and cl tool
JavaScript
5
star
25

ocn-bridge

Open Charging Network Bridge (mirror of https://bitbucket.org/shareandcharge/ocn-bridge).
TypeScript
5
star
26

precise-proofs

EWF Origin's proof-of-concept precise proofs implementation and demos
TypeScript
5
star
27

solidity-deployer

Automation tool to easily deploy smart contracts.
Python
4
star
28

did-auth-proxy

TypeScript
4
star
29

ewc-rosetta

EW Chain Rosetta
TypeScript
4
star
30

worker-contract

Collection of packages from Energyweb to create Green Proof applications.
TypeScript
4
star
31

ewc-validator-node-install-scripts

EWC and Volta affiliate validator node installation scripts
Shell
4
star
32

ev-dashboard-client

Client apps and packages for assets participating in the EV registry and EV dashboard
TypeScript
3
star
33

dsb

TypeScript
3
star
34

ewf-rpc

Shell
3
star
35

generic-microservices-helm

Generic Helm Chart for Deployments
Smarty
3
star
36

ewf-genesis-generator

EWF's chain genesis JSON generator
JavaScript
3
star
37

EWFRepositoryTemplate

Scaffolding for documentation
3
star
38

ew-market-lib

TypeScript
3
star
39

ocn-registry

Java
3
star
40

ddhub-client-gateway

TypeScript
3
star
41

origin-integration-example

An example Origin SDK integration project
JavaScript
3
star
42

staking-ui

Staking UI
SCSS
3
star
43

engie-solar-crowdfunding

TypeScript
3
star
44

smart-contract-bdd

TypeScript
3
star
45

ew-credentials

Contracts and client code for EnergyWeb IAM roles
TypeScript
3
star
46

ewf-chainspec

EWF official chainspec repository
3
star
47

ew-utils-demo

Demo of Origin's release B
TypeScript
2
star
48

ewc-balance-viewer

EWC and Volta holding balance checker
TypeScript
2
star
49

ewc-node-control

C#
2
star
50

ewc-telemetry-signer

C#
2
star
51

shared-configs

Repository for shared dev configs at EWF
JavaScript
2
star
52

ew-link-elocity

Python
2
star
53

ew-origin-ui

TypeScript
2
star
54

ens-ui

JavaScript
2
star
55

elia-evmi-ocn-app

The OCN App interface for the Elia EVMI Dashboard
TypeScript
2
star
56

ew-user-registry-contracts

TypeScript
2
star
57

EWT-Ticker-IoT

EnergyWebToken(EWT) and Bitcoin(BTC) Price Ticker that runs on < $10 IoT development board
C
2
star
58

local-tobalaba-network

Setting up a local tobalaba-like network with ease
Shell
2
star
59

ddhub-message-broker

Java
2
star
60

staking-pool-ui

Staking Pool UI
TypeScript
2
star
61

ocn-node-archived

Open Charging Network Node (mirror of https://bitbucket.org/shareandcharge/ocn-node). Check the wiki for more information, here: https://github.com/energywebfoundation/ocn-node/wiki.
Kotlin
1
star
62

ew-user-registry-lib

TypeScript
1
star
63

ocn-tools-staging

TypeScript
1
star
64

ddhub-messagebroker-helm

Smarty
1
star
65

snapshot-block-calculator

Code to generate the block at which a snapshot will be taken
Rust
1
star
66

dsb-client-gateway-helm

Repository with a Helm chart for dsb-client-gateway application
Smarty
1
star
67

dsb-client-python

Python
1
star
68

sample-go-app

Sample application written in Go
Smarty
1
star
69

ute-issuer-api

TypeScript
1
star
70

snc-demo

TypeScript
1
star
71

ew-erc-test-contracts

TypeScript
1
star
72

ewc-telemetry-ingress

C#
1
star
73

ew-link-energyapi-server-v3

Python
1
star
74

iam-org-creator

TypeScript
1
star
75

sonnen-edis-poc-ui

TypeScript
1
star
76

ew-asset-registry-lib

TypeScript
1
star
77

ew-utils-testbackend

TypeScript
1
star
78

on-chain-role-check

A simple utility to check whether or not a DID address has a role in ClaimManager
TypeScript
1
star
79

discrete-scurve-calculator

Discrete S curve calculator for blockrewards
Java
1
star
80

greenproofs-worker-guide

Shell
1
star
81

origin-nvenergy-poc

TypeScript
1
star
82

ew-utils-general-lib

TypeScript
1
star
83

secretstore-py

Python package for Parity's SecretStore RPC API and sessions
Python
1
star
84

snapshot-seed-registration

Smart contract to register the block whose hashes we will be using as a snapshot seed
TypeScript
1
star
85

ewf-token-bridge

EWF Token Bridge node installation scripts
HTML
1
star
86

sonnen-edis-example-calls

Example calls library for sonnen-edis pilot
JavaScript
1
star
87

ddhub_gateway_client_lib

Python
1
star
88

wrapped-native

ERC-20 wrapped native tokens of EWF
JavaScript
1
star
89

ew-market-matcher

TypeScript
1
star
90

ew-asset-registry-lib-sonnen

TypeScript
1
star
91

zero-protocol-labs

TypeScript
1
star
92

gsn-template

Template that displays a simple smart contract running a gas relay
TypeScript
1
star
93

volta-system-contracts

Infrastructure contracts for Volta
JavaScript
1
star
94

ew-origin

Origin app
JavaScript
1
star
95

der-census

Census of all the Renewable Energy Production sites around the world
TypeScript
1
star
96

system-design-spec-live

System requirements specification document
TeX
1
star
97

elia-evmi-dashboard

Infra config and test scripts for Elia EVMI Dashboard
JavaScript
1
star
98

ew-helper-demo

TypeScript
1
star
99

ew-origin-frontend

TypeScript
1
star
100

dsb-messagebroker-helm

DSB messagebroker helmchart repository
Smarty
1
star