Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions docs/hyproof/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# HyProof

## HyProof: Overview

**HyProof**, aka **Hydrogen Proof** is the codename for our new **HII Seed** blockchain project. _HII Seed_ aims to push the boundaries when it comes to building and researching the socio-technical acceptability and business implications of a fully digitised UK certification infrastructure for verifiable hydrogen provenance ( green hydrogen to be more exact ), and develop an MVP-grade demonstration of the same.

As verifiable hydrogen provenance seems to be the key focus nowadays and as this seems to be a major business driver for UK exports and domestic usage, this blockchain is trying to do exactly that.

This is the opportune moment for HII-SEED to shine a light on this alternate, more trustworthy, more performant, lower cost future to
enable the UK hydrogen ecosystem.

For this proof of concept it has been decided that the consensus layer will be constructed using our in-house build **[DSCP](https://github.com/digicatapult/dscp-documentation)** ( **D**istributed-**S**upply-**C**hain-**P**latform ). However, this layer will not include the vanilla default version of DSCP but a special flavor of this platform that uses a purposely-build custom process flow.

---

## HyProof: Process Flows

The token model or better said, the the definition of the two token types plus flow restriction functions for this project can be found with proper explanations in the **[token-flows.md](./token-flows.md)** document.

The token model is also available in our Domain Specific Language ( .DSCP ) and can be found in **`dscp-hyproof-api`** repository, more exactly in **[processFlows.dscp](https://github.com/digicatapult/dscp-hyproof-api/blob/main/processFlows.dscp)**.

---

## HyProof: Service Architecture Diagram

TBD

---

## HyProof: API Flow

TBD

---

## HyProof: Data Flow

TBD

---

## HyProof: Architecture Diagram

TBD

---

## HyProof: Glossary of Terms

TBD

---


47 changes: 47 additions & 0 deletions docs/hyproof/token-flows.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# DSCP Lang Flows For HyProof

DSCP is a _domain-specific-language_ ( DSL ) for designing **[token process flows](https://github.com/digicatapult/dscp-documentation/blob/main/docs/tokenModels/language.md)**. This new way of doing flows has a compiler for automatically generating process **[guard rails](https://github.com/digicatapult/dscp-documentation/blob/main/docs/tokenModels/guardRails.md)** using the previously mentioned purpose built compiler.

The **`dscp-lang`**, tool we use for parsing token flows, can be found in the **[dscp-node](https://github.com/digicatapult/dscp-node)** repository.

To differentiate documents with code that has a high-level of abstraction from other things, let's consider using the custom file extension **`*.dscp`**.

---

## DSCP Lang Flows For HyProof: Overview

In terms of how the information that needs to be persisted in on-chain looks like, it is important explain the big picture.

The process is currently designed in such a way so that certain users can mint out of nothing, burn-and-create and burn tokens. There are two token types - (1) the first one represents NFT tokens that have no Embodied CO2 data attached to them yet and only Hydrogen amount in whatever unit we decide to use here while (2) the second one has Embodied CO2 while the hydrogen amount is removed to avoid being redundant.

Assuming a simple user flow made out of two steps (1) token **A** gets created from nothingness; (2) token **B** gets spawned from the previously one:

* Token **A** will have two key-value pairs: (A1) hydrogen owner where the owner will be an address like the one owned by Heidi the H producer, (A2) the proposed owner where the owner will be an address like the one owner by the Emma the E producer and (A3) the respective H amount.

* Token **B** will have three key-value pairs: (B1) which is basically a clone of A1, (B2) energy owner where the owner will be an address like the one owned by Emma the energy maker or any other address different than the A1 address and (B3) the embodied CO2.

---

## DSCP Lang Flows For HyProof: The Token Flows DSCP Code

The token model has been written originally in our Domain Specific Language ( DSCP DSL Lang ) and added to the API repo, as in **`dscp-hyproof-api`**, specifically, in **[processFlows.dscp](https://github.com/digicatapult/dscp-hyproof-api/blob/main/processFlows.dscp)**.

The final JSON file containing all the flow guardrail restrictions has been compiled from that file. The file has been added to the same repo, more exactly, in **[processFlows.json](https://github.com/digicatapult/dscp-hyproof-api/blob/main/processFlows.json)**.

---

## DSCP Lang Flows For HyProof: Preparing and Testing

To compile the final _token flow json_ using the _token dscp code_ as an input the **[dscp-lang](https://github.com/digicatapult/dscp-node/tree/main/tools/lang)** needs to be used, therefore a command like the following:

```sh
dscp-lang -- build -v ./processFlows.dscp -o processFlows.json
```

To create, as in, deploy the new token flows ( described in the json ) into the node's _processValidation_ set, something like the following can be used ( make sure the chain is running first ):

```sh
process-management create -h localhost -p 9944 -u //Alice -f processFlows.json # OR 127.0.0.1
```

---