Skip to content

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

License

Notifications You must be signed in to change notification settings

roockiee/origin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


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.

Table of Contents

Packages

SDK Releases

Package Stable Canary Description
@energyweb/device-registry npm npm Library that contains information on renewable energy producing devices
@energyweb/issuer npm npm Energy Attribute Certificates Issuer Module
@energyweb/origin-backend-client npm npm Client library for interacting with the backend
@energyweb/origin-backend npm npm Example backend necessary for running Origin
@energyweb/exchange npm npm A service project hosting order book based exchange
@energyweb/utils-general npm npm Utilities

Applications, Infrastructure and Demo

Package Description
@energyweb/origin-ui UI for Origin
@energyweb/solar-simulator Solar production and consumption simulator
@energyweb/migrations 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

Installation

Make sure have latest yarn package manager installed.

yarn

Build

yarn build

Test

yarn test

Run demo

Preparation

  1. Make sure you are using Node 14.x.x
  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 -d -p 5432:5432 postgres
psql -h localhost -p 5432 -U postgres -c "CREATE DATABASE origin"
  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. For custom DB credentials, ports, db name etc refer to https://github.com/energywebfoundation/origin/tree/master/packages/origin-backend-app#development

Running

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

yarn 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-sim-${STAGE}
${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.

Key modules and components

Overview of architecture

Key repositories

This section lists key entry points to start your journey with Origin.

  1. migrations - repository with build scripts that enable easy deployment of smart contracts to EWC, Volta or a local blockchain. Often used to demo and get to know features and capabilities of Origin.
  2. origin-backend - This repository is used to act as a backend service for off-chain data storage.
  3. origin-ui - frontend of the system needed to view data stored in smart contracts (on-chain) and in the backend (off-chain). To interact with the Origin frontend you'll need MetaMask.

Other components

  1. device-registry - high-level library for creating and managing electricity producing and consuming devices.
  2. issuer - high-level library for issuing and transferring Energy Attribute Certificates.
  3. exchange - An orderbook-based exchange for trading Energy Attribute Certificates.
  4. utils-general - Contains logic for more straightforward interaction with contracts, such as watching events. It is also a base layer for other libraries to build upon. It provides a foundation for things like off-chain data storage that is universal for all entities.
  5. solar-simulator - This service simulates smart-meter readings based on example solar data from whole year in 15-mins intervals. Also allows you to generate the config based on data from public I-REC registry.

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
    • Open a pull request from your fork master branch
    • Request code reviews from @Kuzirashi, @JosephBagaric or @kosecki123
    • Once the PR is approved and the build passes, it will be merged to the master branch

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 95.8%
  • Solidity 1.7%
  • JavaScript 0.9%
  • SCSS 0.9%
  • Shell 0.3%
  • Dockerfile 0.2%
  • Other 0.2%