diff --git a/docs/hyproof/index.md b/docs/hyproof/index.md new file mode 100644 index 0000000..db999e3 --- /dev/null +++ b/docs/hyproof/index.md @@ -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 + +--- + + diff --git a/docs/hyproof/token-flows.md b/docs/hyproof/token-flows.md new file mode 100644 index 0000000..5cab8d1 --- /dev/null +++ b/docs/hyproof/token-flows.md @@ -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 +``` + +---