GHG-Notary

Open-Source Implementierung von Komponenten für die Node-Red Umegebung zur beleghaften Erfassung von Emissionen beim Stromverbrauch. Basierend auf dem TyDIDs Framework für digitale Identitäten werden Belege (Zertifikate) erstellt, die in einer digitalen Brieftasche (Wallet) verwaltet werden. Die Nachhaltigkeitsberichterstattung erfolgt auf Basis von nachprüfbaren Präsentationen (Verifieable Presentations) sowie der Distributed Ledger Technology.

Installation

GHG-Notary ist ein Node-RED Modul, welches die Palette der Werkzeuge (Nodes) der IoT-Umgebung Node-RED erweitert. Die Installation erfolgt über "Palette verwalten" => Installation => "ghgnotary"

Palette verwalten

image.png

 

Installation "ghgnotary"

image.png

GHGNotary Werkezuge (Nodes):

 

image.png

image.png

image.png

 

Node-Red Einführung

Diese Seite gilt als kleine Heranführung an Node-Red und dem Umgang der GHG-Notary.

Node-Red-Einführung-1.gif

1. Flow

In diesem Flow wird der TimeStamp als simulierter Stromzähler verwendet. Da die Ausgabe werde von Typ Integer und fortlaufend sind eignet er sich hervorragend.

Durch Debug kann man sich die Inhalte des payloads in der Debug-Leiste Rechts den Payload ausgeben lassen.

Mit dem Metered-Notary erstellen wir einen Beleg über den Strombezug basierend auf den Zählerstandsgang (Abfolge der Zählerstände eines Stromzählers).  Der grüne Kasten unter dem Node zeigt uns, dass die Erstellung des Belegs erfolgreich war. Es kann eine vorhandene Wallet ausgewählt oder neu hinzugefügt werden.

2. Flow

In diesem Flow wird TimeStamp nur als Trigger/Inject genutzt. Dieser ermöglicht das manuelle Starten des Flows.

Der nächste Node Certificates holt sich alle Zertifikate, die wir in in Flow 1 in die Wallet abgelegt haben.

Mit einem weiteren Debug geben wir uns diese dann in dem Debug-Fenster aus.

In dem nächsten Schritt wird aufgezeigt, dass der Present-Node nur funktioniert, wenn diesem Zertifikate übergeben werden. Auch wenn die Wallet in dem Node angegeben wird, benötigt der Node die Übergabe von Zertifikaten, die dann für Dritte teilweise kenntlich gemacht werden.

Ähnlich funktioniert auch der Presentations-Node.

Node-Red-Einführung-2.gif

Mit dem Statistics-Node kann man sich von allen Zertifikaten in der angegebenen Wallet eine Zusammenfassung ausgeben lassen (Anzahl, sowie Summe der Treibhausgasemissionen, Stromverbrauch, Einsparungen, sowie deren öffentlichen Schlüssel/address der wallet)

Node: Aggregation

Liefert die Statistiken für eine Aggregation von Treibhausgasemissionen.

image.png

Rückgabe des Aufrufs eines Aggregation-Node ist die in der Aggregation zusammengefassten Emissionen (emissions) und vermiedenen Emissionen (savings). In der Konfiguration des Node muss die Adresse (0x...) der Aggregation angegeben werden. 

Eine Aggregation ist hier erhältlich.

Beispiel Flow

Download: 

image.png

Ausgabe
{
   "emissions":75,
   "savings":21517,
   "nfts":7,
   "owner":"0xfD61B4a551CBa21A4618b545F52c0e057B594B89"
}

Quellcode der Implementierung

Node: Certificate

Bei erfolgreicher Validierung wird das angeforderte Zertifikat/Beleg aus der GHG Wallet ausgegeben.

image.png

Als Eingabe wird der Hash eines Zertifikates im msg.payload übergeben. Ist das Zertifikat in der GHG Wallet gespeichert und valide, so wird es auf der Ausgabe im msg.payload bereitgestellt.

Beispiel Flow

Download: simple_certificate.flow.json.json

image.png

Hinweis: Zur Verwendung des Beispiels muss im Inject-Node "Certificate Hash" der Wert eines in der GHG Wallet gespeicherten Zertifikates angegeben werden. Eine Liste aller in der GHG Wallet gespeicherten Zertifikate kann mit dem Certificates Node abgerufen werden. 

Ausgabe (Beleg)
{
   "hash":{
      "signature":"0x558a9d229825153511c20d4242b6772c186219c2fa6787fa684dc851bf48879751a30881c8fbf554bdfcf08c30acf4d034e92a6bbd27debb45371d76dee7be3d1c",
      "payload":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
   },
   "owner":{
      "signature":"0x57309a13023882d510eaae2537433f7272dacbbef8c149f86b3365946bc55a6412ddc4c2b13823badd073548d16ff51a55a87cc2060e2c644242c7d87997fa951b",
      "payload":{
         "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
         "issuer":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
         "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
      }
   },
   "context":{
      "signature":"0xafdb01935aae5a2da5af49db2f723c1649dc8ce92913cc8521a5b587df9e8ba24a9cdd3f54514b1868b15580d0ed21d9530cca623c532c874d4addfdd5934be51c",
      "payload":""
   },
   "did":{
      "signature":"0x980692bbbe76d52be558ef4fa2b5c9ad75e04e05a5256a051e2b9e65c97889143ef3066afa908e65da0e1acac62cbf38b7308ff8a3bcc8740d23193776b2864f1c",
      "payload":{
         "url":"did:ethr:6226:0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1:0x6a2385Bae7fbc38FF23d475B9D3eB93EEFB7A843",
         "registry":"0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1",
         "uid":"0x6a2385Bae7fbc38FF23d475B9D3eB93EEFB7A843",
         "schema":"did",
         "method":"ethr:6226",
         "ghgtoken":{
            "address":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
            "certificates":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
            "savings":"0xc475EcB54601C676Ad008A7857A385a52c445244",
            "emissions":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB"
         },
         "nft":{
            "signature":"0x75d2def771a6c4c519eaab524a32075bca21add4ded8fc79319994d0fad8cff35e9345e131b92d06da395aa8031d8698f655c9b2919f26da9a4bb75e5f2d119f1b",
            "payload":{
               "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
               "tx":{
                  "nonce":2223,
                  "gasPrice":{
                     "type":"BigNumber",
                     "hex":"0x03e8"
                  },
                  "gasLimit":{
                     "type":"BigNumber",
                     "hex":"0x02a50e"
                  },
                  "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                  "value":{
                     "type":"BigNumber",
                     "hex":"0x00"
                  },
                  "data":"0xa578e29c00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb0000000000000000000000006a2385bae7fbc38ff23d475b9d3eb93eefb7a84300000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000553078336246436634466533623744324532666430373962354464353436416133303330304438664245313a3078366132333835426165376662633338464632336434373542394433654239334545464237413834330000000000000000000000",
                  "chainId":6226,
                  "v":12488,
                  "r":"0x3465a9e7b22f65b8b3c164b36de14cbd7e9f18bf64bbb106f08db746ff15645e",
                  "s":"0x0be3996026a9f5c5529deb303d27ad8345c592157fa75c597a3567fd25ef96aa",
                  "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                  "hash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                  "type":null,
                  "confirmations":0
               },
               "receipt":{
                  "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                  "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                  "contractAddress":null,
                  "transactionIndex":0,
                  "gasUsed":{
                     "type":"BigNumber",
                     "hex":"0x0291a8"
                  },
                  "logsBloom":"0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000010000002000000040000000010004000000000000000000000000000008000000000000000000000000000020000000008000240000030000000000000000000800000000001000000000000010000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800002000000000000000000000000000000000000000040000000000020000000000000002000000000000000800000100000000000000000000000000000",
                  "blockHash":"0xfa739b792fddacf6eb84a1fef7bc3f51890539beddaa0c467909694e7485d5c5",
                  "transactionHash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                  "logs":[
                     {
                        "transactionIndex":0,
                        "blockNumber":649121,
                        "transactionHash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                        "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                        "topics":[
                           "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                           "0x0000000000000000000000000000000000000000000000000000000000000000",
                           "0x00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb",
                           "0x000000000000000000000000000000000000000000000000000000000000046f"
                        ],
                        "data":"0x",
                        "logIndex":0,
                        "blockHash":"0xfa739b792fddacf6eb84a1fef7bc3f51890539beddaa0c467909694e7485d5c5"
                     },
                     {
                        "transactionIndex":0,
                        "blockNumber":649121,
                        "transactionHash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                        "address":"0xc475EcB54601C676Ad008A7857A385a52c445244",
                        "topics":[
                           "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                           "0x0000000000000000000000000000000000000000000000000000000000000000",
                           "0x0000000000000000000000006a2385bae7fbc38ff23d475b9d3eb93eefb7a843"
                        ],
                        "data":"0x0000000000000000000000000000000000000000000000000000000000000000",
                        "logIndex":1,
                        "blockHash":"0xfa739b792fddacf6eb84a1fef7bc3f51890539beddaa0c467909694e7485d5c5"
                     },
                     {
                        "transactionIndex":0,
                        "blockNumber":649121,
                        "transactionHash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                        "address":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB",
                        "topics":[
                           "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                           "0x0000000000000000000000000000000000000000000000000000000000000000",
                           "0x0000000000000000000000006a2385bae7fbc38ff23d475b9d3eb93eefb7a843"
                        ],
                        "data":"0x0000000000000000000000000000000000000000000000000000000000000000",
                        "logIndex":2,
                        "blockHash":"0xfa739b792fddacf6eb84a1fef7bc3f51890539beddaa0c467909694e7485d5c5"
                     }
                  ],
                  "blockNumber":649121,
                  "confirmations":1,
                  "cumulativeGasUsed":{
                     "type":"BigNumber",
                     "hex":"0x0291a8"
                  },
                  "effectiveGasPrice":{
                     "type":"BigNumber",
                     "hex":"0x03e8"
                  },
                  "status":1,
                  "type":0,
                  "byzantium":true
               },
               "tokenId":"0x000000000000000000000000000000000000000000000000000000000000046f"
            }
         },
         "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
      }
   },
   "metering":{
      "signature":"0x976ccbce77896d6c16687c9304b27ac04cf4e2fc6cbef500ca5f90f1601100a6498502fbe4bc442136f32abe5e77934cc7d15538bbf13105f07669483b0cd8d31c",
      "payload":{
         "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
         "counter":1673222561407,
         "time":1673222562089,
         "signature":"0x01e9b9cfe0125a988e72021d761cd81fbc390c086eba2af23dc36d63f33b6dc47f7fcd52ba04e3e1c744f8a86f064047635476291f123a9801b078e7d84d5ae01c",
         "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
      }
   },
   "presentations":{
      "type":{
         "signature":"0xa6c27697b4f526292c5728d12f28d3f41d4dd278a1e134193332b5b1f25a133b42c94d06911a81a250df0c3c11a5ed0454f6a9ede14807eb967b563ea2c1e94f1b",
         "payload":"electricity consumption from public grid",
         "$schema":"https://schema.corrently.io/tydids/type"
      },
      "context":{
         "signature":"0xafdb01935aae5a2da5af49db2f723c1649dc8ce92913cc8521a5b587df9e8ba24a9cdd3f54514b1868b15580d0ed21d9530cca623c532c874d4addfdd5934be51c",
         "payload":"",
         "$schema":"https://schema.corrently.io/tydids/context"
      },
      "location":{
         "signature":"0x0677e382a3e8b3845631506c6058beb706336ad3c142619852d5aed26a1570e6725b7ec61a4784c684aad74a6d3efbb5578f7127663d07bf8fc797f30a951b551b",
         "payload":{
            "zip":"00000",
            "city":"Landesweit (national)",
            "country":"Germany",
            "meloid":"DETESTSD133713371337133713371337",
            "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
         },
         "$schema":"https://schema.corrently.io/tydids/location"
      },
      "metering":{
         "signature":"0x10adf436e9c88dc910ad9a0631e616f47876e52fa656f3bf228856eedf6b768b5ad99d0560b7e301e0f32836e5e729ae3705ad7bfbe7e9185dc56a583bb760c91c",
         "payload":{
            "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
            "counter":1673222561407,
            "time":1673222562089,
            "signature":"0x01e9b9cfe0125a988e72021d761cd81fbc390c086eba2af23dc36d63f33b6dc47f7fcd52ba04e3e1c744f8a86f064047635476291f123a9801b078e7d84d5ae01c",
            "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
         },
         "$schema":"https://schema.corrently.io/tydids/metering"
      },
      "consumption":{
         "signature":"0x933bff8976818b95d25607729831b994e3dc477cfa7fe58c923fbc20454058ed2d260bcdd66b0a0f895c2bf231b2eedb3063e8f856278ac1737af484bdaea4cf1b",
         "payload":{
            "unit":"wh",
            "actual":0,
            "time":1673222562089,
            "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
         },
         "$schema":"https://schema.corrently.io/tydids/consumption"
      },
      "ghg":{
         "signature":"0xb7bde2b1141b923a877a9372b5722562521ed418590a266021264955e9999d9d724cbc14eea2e6f3f9367c95776c42c89cd240579e2b07aad04095845c2dc3aa1b",
         "payload":{
            "factors":{
               "unit":"g co2eq per wh",
               "actual":{
                  "grid":0.201,
                  "eco":0.201
               },
               "base":{
                  "grid":0.436
               }
            },
            "base":{
               "unit":"g co2eq",
               "grid":0
            },
            "actual":{
               "unit":"g co2eq",
               "grid":0,
               "eco":0
            },
            "saving":{
               "unit":"g co2eq",
               "grid":0
            },
            "scope":2,
            "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
         },
         "$schema":"https://schema.corrently.io/tydids/ghg"
      },
      "did":{
         "signature":"0x2970bd4d7109bebfa006951bef2fca5dcc5380ce0b18f22d7a250b3a6e06c2b66622aeea8c9a463e864259a7e262baa71d34a218450e0af143a5e8ccebb7559b1c",
         "payload":{
            "url":"did:ethr:6226:0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1:0x6a2385Bae7fbc38FF23d475B9D3eB93EEFB7A843",
            "registry":"0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1",
            "uid":"0x6a2385Bae7fbc38FF23d475B9D3eB93EEFB7A843",
            "schema":"did",
            "method":"ethr:6226",
            "ghgtoken":{
               "address":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
               "certificates":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
               "savings":"0xc475EcB54601C676Ad008A7857A385a52c445244",
               "emissions":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB"
            },
            "nft":{
               "signature":"0x75d2def771a6c4c519eaab524a32075bca21add4ded8fc79319994d0fad8cff35e9345e131b92d06da395aa8031d8698f655c9b2919f26da9a4bb75e5f2d119f1b",
               "payload":{
                  "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                  "tx":{
                     "nonce":2223,
                     "gasPrice":{
                        "type":"BigNumber",
                        "hex":"0x03e8"
                     },
                     "gasLimit":{
                        "type":"BigNumber",
                        "hex":"0x02a50e"
                     },
                     "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                     "value":{
                        "type":"BigNumber",
                        "hex":"0x00"
                     },
                     "data":"0xa578e29c00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb0000000000000000000000006a2385bae7fbc38ff23d475b9d3eb93eefb7a84300000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000553078336246436634466533623744324532666430373962354464353436416133303330304438664245313a3078366132333835426165376662633338464632336434373542394433654239334545464237413834330000000000000000000000",
                     "chainId":6226,
                     "v":12488,
                     "r":"0x3465a9e7b22f65b8b3c164b36de14cbd7e9f18bf64bbb106f08db746ff15645e",
                     "s":"0x0be3996026a9f5c5529deb303d27ad8345c592157fa75c597a3567fd25ef96aa",
                     "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                     "hash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                     "type":null,
                     "confirmations":0
                  },
                  "receipt":{
                     "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                     "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                     "contractAddress":null,
                     "transactionIndex":0,
                     "gasUsed":{
                        "type":"BigNumber",
                        "hex":"0x0291a8"
                     },
                     "logsBloom":"0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000010000002000000040000000010004000000000000000000000000000008000000000000000000000000000020000000008000240000030000000000000000000800000000001000000000000010000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800002000000000000000000000000000000000000000040000000000020000000000000002000000000000000800000100000000000000000000000000000",
                     "blockHash":"0xfa739b792fddacf6eb84a1fef7bc3f51890539beddaa0c467909694e7485d5c5",
                     "transactionHash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                     "logs":[
                        {
                           "transactionIndex":0,
                           "blockNumber":649121,
                           "transactionHash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                           "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                           "topics":[
                              "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                              "0x0000000000000000000000000000000000000000000000000000000000000000",
                              "0x00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb",
                              "0x000000000000000000000000000000000000000000000000000000000000046f"
                           ],
                           "data":"0x",
                           "logIndex":0,
                           "blockHash":"0xfa739b792fddacf6eb84a1fef7bc3f51890539beddaa0c467909694e7485d5c5"
                        },
                        {
                           "transactionIndex":0,
                           "blockNumber":649121,
                           "transactionHash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                           "address":"0xc475EcB54601C676Ad008A7857A385a52c445244",
                           "topics":[
                              "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                              "0x0000000000000000000000000000000000000000000000000000000000000000",
                              "0x0000000000000000000000006a2385bae7fbc38ff23d475b9d3eb93eefb7a843"
                           ],
                           "data":"0x0000000000000000000000000000000000000000000000000000000000000000",
                           "logIndex":1,
                           "blockHash":"0xfa739b792fddacf6eb84a1fef7bc3f51890539beddaa0c467909694e7485d5c5"
                        },
                        {
                           "transactionIndex":0,
                           "blockNumber":649121,
                           "transactionHash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                           "address":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB",
                           "topics":[
                              "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                              "0x0000000000000000000000000000000000000000000000000000000000000000",
                              "0x0000000000000000000000006a2385bae7fbc38ff23d475b9d3eb93eefb7a843"
                           ],
                           "data":"0x0000000000000000000000000000000000000000000000000000000000000000",
                           "logIndex":2,
                           "blockHash":"0xfa739b792fddacf6eb84a1fef7bc3f51890539beddaa0c467909694e7485d5c5"
                        }
                     ],
                     "blockNumber":649121,
                     "confirmations":1,
                     "cumulativeGasUsed":{
                        "type":"BigNumber",
                        "hex":"0x0291a8"
                     },
                     "effectiveGasPrice":{
                        "type":"BigNumber",
                        "hex":"0x03e8"
                     },
                     "status":1,
                     "type":0,
                     "byzantium":true
                  },
                  "tokenId":"0x000000000000000000000000000000000000000000000000000000000000046f"
               }
            },
            "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
         },
         "$schema":"https://schema.corrently.io/tydids/did"
      },
      "_all":{
         "signature":"0xa114055435fc8343fbb348a328f017adb5f8b264b4621d2acf19cb69e8072e79070e1da61ea2d686b5d08c78326425eda035780a457cf3ca195a7277143acabd1c",
         "payload":{
            "type":"electricity consumption from public grid",
            "context":"",
            "location":{
               "zip":"00000",
               "city":"Landesweit (national)",
               "country":"Germany",
               "meloid":"DETESTSD133713371337133713371337",
               "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
            },
            "metering":{
               "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
               "counter":1673222561407,
               "time":1673222562089,
               "signature":"0x01e9b9cfe0125a988e72021d761cd81fbc390c086eba2af23dc36d63f33b6dc47f7fcd52ba04e3e1c744f8a86f064047635476291f123a9801b078e7d84d5ae01c",
               "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
            },
            "consumption":{
               "unit":"wh",
               "actual":0,
               "time":1673222562089,
               "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
            },
            "ghg":{
               "factors":{
                  "unit":"g co2eq per wh",
                  "actual":{
                     "grid":0.201,
                     "eco":0.201
                  },
                  "base":{
                     "grid":0.436
                  }
               },
               "base":{
                  "unit":"g co2eq",
                  "grid":0
               },
               "actual":{
                  "unit":"g co2eq",
                  "grid":0,
                  "eco":0
               },
               "saving":{
                  "unit":"g co2eq",
                  "grid":0
               },
               "scope":2,
               "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
            },
            "_iat":1673222562146,
            "_iss":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
            "_jti":"0x6a2385Bae7fbc38FF23d475B9D3eB93EEFB7A843",
            "did":{
               "url":"did:ethr:6226:0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1:0x6a2385Bae7fbc38FF23d475B9D3eB93EEFB7A843",
               "registry":"0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1",
               "uid":"0x6a2385Bae7fbc38FF23d475B9D3eB93EEFB7A843",
               "schema":"did",
               "method":"ethr:6226",
               "ghgtoken":{
                  "address":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                  "certificates":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                  "savings":"0xc475EcB54601C676Ad008A7857A385a52c445244",
                  "emissions":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB"
               },
               "nft":{
                  "signature":"0x75d2def771a6c4c519eaab524a32075bca21add4ded8fc79319994d0fad8cff35e9345e131b92d06da395aa8031d8698f655c9b2919f26da9a4bb75e5f2d119f1b",
                  "payload":{
                     "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                     "tx":{
                        "nonce":2223,
                        "gasPrice":{
                           "type":"BigNumber",
                           "hex":"0x03e8"
                        },
                        "gasLimit":{
                           "type":"BigNumber",
                           "hex":"0x02a50e"
                        },
                        "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                        "value":{
                           "type":"BigNumber",
                           "hex":"0x00"
                        },
                        "data":"0xa578e29c00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb0000000000000000000000006a2385bae7fbc38ff23d475b9d3eb93eefb7a84300000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000553078336246436634466533623744324532666430373962354464353436416133303330304438664245313a3078366132333835426165376662633338464632336434373542394433654239334545464237413834330000000000000000000000",
                        "chainId":6226,
                        "v":12488,
                        "r":"0x3465a9e7b22f65b8b3c164b36de14cbd7e9f18bf64bbb106f08db746ff15645e",
                        "s":"0x0be3996026a9f5c5529deb303d27ad8345c592157fa75c597a3567fd25ef96aa",
                        "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                        "hash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                        "type":null,
                        "confirmations":0
                     },
                     "receipt":{
                        "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                        "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                        "contractAddress":null,
                        "transactionIndex":0,
                        "gasUsed":{
                           "type":"BigNumber",
                           "hex":"0x0291a8"
                        },
                        "logsBloom":"0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000010000002000000040000000010004000000000000000000000000000008000000000000000000000000000020000000008000240000030000000000000000000800000000001000000000000010000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800002000000000000000000000000000000000000000040000000000020000000000000002000000000000000800000100000000000000000000000000000",
                        "blockHash":"0xfa739b792fddacf6eb84a1fef7bc3f51890539beddaa0c467909694e7485d5c5",
                        "transactionHash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                        "logs":[
                           {
                              "transactionIndex":0,
                              "blockNumber":649121,
                              "transactionHash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                              "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                              "topics":[
                                 "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                                 "0x0000000000000000000000000000000000000000000000000000000000000000",
                                 "0x00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb",
                                 "0x000000000000000000000000000000000000000000000000000000000000046f"
                              ],
                              "data":"0x",
                              "logIndex":0,
                              "blockHash":"0xfa739b792fddacf6eb84a1fef7bc3f51890539beddaa0c467909694e7485d5c5"
                           },
                           {
                              "transactionIndex":0,
                              "blockNumber":649121,
                              "transactionHash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                              "address":"0xc475EcB54601C676Ad008A7857A385a52c445244",
                              "topics":[
                                 "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                                 "0x0000000000000000000000000000000000000000000000000000000000000000",
                                 "0x0000000000000000000000006a2385bae7fbc38ff23d475b9d3eb93eefb7a843"
                              ],
                              "data":"0x0000000000000000000000000000000000000000000000000000000000000000",
                              "logIndex":1,
                              "blockHash":"0xfa739b792fddacf6eb84a1fef7bc3f51890539beddaa0c467909694e7485d5c5"
                           },
                           {
                              "transactionIndex":0,
                              "blockNumber":649121,
                              "transactionHash":"0x14cd7b1c5aef88efe46d600b2bc1ddee10efb1ef0775937f40077ee0a471566d",
                              "address":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB",
                              "topics":[
                                 "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                                 "0x0000000000000000000000000000000000000000000000000000000000000000",
                                 "0x0000000000000000000000006a2385bae7fbc38ff23d475b9d3eb93eefb7a843"
                              ],
                              "data":"0x0000000000000000000000000000000000000000000000000000000000000000",
                              "logIndex":2,
                              "blockHash":"0xfa739b792fddacf6eb84a1fef7bc3f51890539beddaa0c467909694e7485d5c5"
                           }
                        ],
                        "blockNumber":649121,
                        "confirmations":1,
                        "cumulativeGasUsed":{
                           "type":"BigNumber",
                           "hex":"0x0291a8"
                        },
                        "effectiveGasPrice":{
                           "type":"BigNumber",
                           "hex":"0x03e8"
                        },
                        "status":1,
                        "type":0,
                        "byzantium":true
                     },
                     "tokenId":"0x000000000000000000000000000000000000000000000000000000000000046f"
                  }
               },
               "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
            }
         },
         "$schema":"https://schema.corrently.io/tydids/_all"
      }
   }
}

Quellcode der Implementierung

 

Node: Certificates

Ausgabe einer Liste von Belegen, die in einer GHG Wallet hinterlegt sind.

image.png

Die Eingabe ist bei Verwendung des Certificates-Node irrelevant, diese dient lediglich als Trigger, um auf der Ausgabeseite einen msg.payload mit einer Liste von Belegen zu erhalten, die der GHG Wallet zugeordnet sind. Eine Validierung der Zertifikate sowie eine Überprüfung der Eigentümerschaft findet nicht statt

Beispiel Flow

Download: simple_certificates.flow.json.json

image.png

Ausgabe
[
   {
      "certificate":"0x6a2385Bae7fbc38FF23d475B9D3eB93EEFB7A843",
      "time":1673222566987,
      "wh":0,
      "emissions":0,
      "savings":0
   },
   {
      "certificate":"0xf21548440474afb51053CEEb31011d9E4a168D2D",
      "time":1673220430118,
      "wh":1337,
      "emissions":269,
      "savings":314
   }
]

Quellcode der Implementierung

Node: Event-Notary

Erstellung von Belegen für den Strombezug basierend auf Ereignissen (Beispiel: Ladevorgang eines E-Auto). 

image.png

Im Gegensatz zum Node "Metered-Notary", wird beim Event-Notary ein Stromverbrauch in Wattstunden für einen Vorgang als Eingabenachricht erwartet. Das Ergebnis ist ein digital signierter Beleg, des Zertifizierungsdienstes, welcher in der Ausgabenachricht bereitgestellt wird. Zusätzlich wird eine Kopie des Beleges in die GHG Wallet gespeichert.

Beispiel Flow

Download: simple_event-notary.flow.json.json

image.png

Dem Event-Notar Node wird als msg.payload lediglich die Zahl "1337" übergeben. Diese wird als Bezug von 1337 Wattstunden (Wh) Strom angenommen. Der Node sendet in einem ersten Schritt diese Daten an den Zertifizierungsdienst. Optional kann in der Konfiguration des Nodes eine Postleitzahl (Postal Code) angegeben werden, um dem Zertifizierungsdienst einen Hinweis über den Ort des Strombezuges mitzugeben. In einem zweiten Schritt erhält der Node ein Intermediate (=vorläufiger Beleg); überprüft das Intermediate; unterschreibt es und sendet es zum Zertifizierungsdienst. Die Rückantwort des Zertifizierungsdienst wird auf der Ausgabe als msg.payload zurückgegeben. 

Eine detaillierte Beschreibung der Belegerstellung kann der TyDIDs Blockchain basierte Nachweisführung der THG-Emission und Minderung entnommen werden. Der Node Event-Notary implementiert diesen Prozess.

Eingabe (msg.payload

image.png


Ausgabe
{
   "hash":{
      "signature":"0x85f7460870ca348caf60a94a766521c697b60b5c0a80da10a96b9fe6129903056b62aa5b940788523357974a3adc5e50abf2b690d03c12fe26a517dd7924c3681c",
      "payload":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
   },
   "owner":{
      "signature":"0xd73098704a6c8dfed4e6c2977f4b70f2591314fcee1ecbc733466a06788e8e84050a5f03c9fbe11be5b655219d5fcaa0692aead9e6e6d2d4bbb492c302b0e25a1b",
      "payload":{
         "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
         "issuer":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
         "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
      }
   },
   "context":{
      "signature":"0xafdb01935aae5a2da5af49db2f723c1649dc8ce92913cc8521a5b587df9e8ba24a9cdd3f54514b1868b15580d0ed21d9530cca623c532c874d4addfdd5934be51c",
      "payload":""
   },
   "did":{
      "signature":"0xa9becd0fc1c99a0b03360f60705c831bc305c1487687aff9925116be71072f386e0c9e89855e1336534081b6d5e74d6970d4a70836737968944ba9d2dea43dae1c",
      "payload":{
         "url":"did:ethr:6226:0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1:0xf21548440474afb51053CEEb31011d9E4a168D2D",
         "registry":"0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1",
         "uid":"0xf21548440474afb51053CEEb31011d9E4a168D2D",
         "schema":"did",
         "method":"ethr:6226",
         "ghgtoken":{
            "address":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
            "certificates":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
            "savings":"0xc475EcB54601C676Ad008A7857A385a52c445244",
            "emissions":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB"
         },
         "nft":{
            "signature":"0x92923d135c6e4bc15bf8d20cd985f990f98fae8ac5ee3b3fc13785c75667b48239c5f888e9fa9cc8f30d775c2f2da97da36d725a77ed81eabdf919657d6bdfbb1c",
            "payload":{
               "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
               "tx":{
                  "nonce":2199,
                  "gasPrice":{
                     "type":"BigNumber",
                     "hex":"0x03e8"
                  },
                  "gasLimit":{
                     "type":"BigNumber",
                     "hex":"0x039a6c"
                  },
                  "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                  "value":{
                     "type":"BigNumber",
                     "hex":"0x00"
                  },
                  "data":"0xa578e29c00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010d000000000000000000000000000000000000000000000000000000000000013a00000000000000000000000000000000000000000000000000000000000000553078336246436634466533623744324532666430373962354464353436416133303330304438664245313a3078663231353438343430343734616662353130353343454562333130313164394534613136384432440000000000000000000000",
                  "chainId":6226,
                  "v":12488,
                  "r":"0x35722641759b62ec2879dd41db2736e2c833fa1ab771ce7c57ead9238c1f8e03",
                  "s":"0x15041ad76a387bd30fb3206551ddbbbf6310a311215bf2b1d04d14b912c0099b",
                  "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                  "hash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                  "type":null,
                  "confirmations":0
               },
               "receipt":{
                  "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                  "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                  "contractAddress":null,
                  "transactionIndex":0,
                  "gasUsed":{
                     "type":"BigNumber",
                     "hex":"0x038340"
                  },
                  "logsBloom":"0x00000000000080000000000000000000000020000000000000000000000000000000000000000000000000000000000000002008000000000000010004000000000000000000000000008008000000000000000000000000000020000000008000240000020000000000000000000800000000001000000000000010000000000000000000000000000000000000000000000001000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000200000000000000000000000000000000020000000000000000001000000000000800000100000000000000000000000000000",
                  "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558",
                  "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                  "logs":[
                     {
                        "transactionIndex":0,
                        "blockNumber":648343,
                        "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                        "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                        "topics":[
                           "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                           "0x0000000000000000000000000000000000000000000000000000000000000000",
                           "0x00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb",
                           "0x0000000000000000000000000000000000000000000000000000000000000457"
                        ],
                        "data":"0x",
                        "logIndex":0,
                        "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                     },
                     {
                        "transactionIndex":0,
                        "blockNumber":648343,
                        "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                        "address":"0xc475EcB54601C676Ad008A7857A385a52c445244",
                        "topics":[
                           "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                           "0x0000000000000000000000000000000000000000000000000000000000000000",
                           "0x000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d"
                        ],
                        "data":"0x000000000000000000000000000000000000000000000000000000000000013a",
                        "logIndex":1,
                        "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                     },
                     {
                        "transactionIndex":0,
                        "blockNumber":648343,
                        "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                        "address":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB",
                        "topics":[
                           "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                           "0x0000000000000000000000000000000000000000000000000000000000000000",
                           "0x000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d"
                        ],
                        "data":"0x000000000000000000000000000000000000000000000000000000000000010d",
                        "logIndex":2,
                        "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                     }
                  ],
                  "blockNumber":648343,
                  "confirmations":1,
                  "cumulativeGasUsed":{
                     "type":"BigNumber",
                     "hex":"0x038340"
                  },
                  "effectiveGasPrice":{
                     "type":"BigNumber",
                     "hex":"0x03e8"
                  },
                  "status":1,
                  "type":0,
                  "byzantium":true
               },
               "tokenId":"0x0000000000000000000000000000000000000000000000000000000000000457"
            }
         },
         "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
      }
   },
   "metering":{
      "signature":"0xff554124da0b612bf4826f9fff3472b5e8636fb3f35cbdac20e2989b0fcbc6ba5012bcfb20f7e91b21c9135ce328aa45ffb189106197151621ceab90e8b77bb81b",
      "payload":{
         "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
      }
   },
   "presentations":{
      "type":{
         "signature":"0xa6c27697b4f526292c5728d12f28d3f41d4dd278a1e134193332b5b1f25a133b42c94d06911a81a250df0c3c11a5ed0454f6a9ede14807eb967b563ea2c1e94f1b",
         "payload":"electricity consumption from public grid",
         "$schema":"https://schema.corrently.io/tydids/type"
      },
      "context":{
         "signature":"0xafdb01935aae5a2da5af49db2f723c1649dc8ce92913cc8521a5b587df9e8ba24a9cdd3f54514b1868b15580d0ed21d9530cca623c532c874d4addfdd5934be51c",
         "payload":"",
         "$schema":"https://schema.corrently.io/tydids/context"
      },
      "location":{
         "signature":"0xdb8491a4dc3a9e2d90821f5de30781c744e568386ba0732a7fec6d2c75e6f308216c2c30b82b3a6301c06a1b7eb780c7447bf80152febef0ab361f6975428db11c",
         "payload":{
            "zip":"00000",
            "city":"Landesweit (national)",
            "country":"Germany",
            "meloid":"DETESTSD133713371337133713371337",
            "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
         },
         "$schema":"https://schema.corrently.io/tydids/location"
      },
      "metering":{
         "signature":"0x5a886ea9e67e4dc0c06de165e11428c819b5aee5c1673569af094d58489494565576e78b3a2efd92e2415aafa17df54b6bdccdc4e16b57853c2381638ca55b211b",
         "payload":{
            "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
         },
         "$schema":"https://schema.corrently.io/tydids/metering"
      },
      "consumption":{
         "signature":"0x6dbebebcb5aaeeb93cb9684b975f034d051e88669d7ce429237b75f3ee3b1de06c5ed3a2d3eca375f8338eff5cb0e8d14f1dc24faf2cf787d04b65993286cb1c1b",
         "payload":{
            "unit":"wh",
            "actual":1337,
            "time":1673220421200,
            "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
         },
         "$schema":"https://schema.corrently.io/tydids/consumption"
      },
      "ghg":{
         "signature":"0x7b7636b91814e44a859eeac0d2a891d5d007d5930ee01f416607ce5da39fd925248d2b24649ad22cc6a2d496023b1fc04e06198fa901fa200696fa7664333b911c",
         "payload":{
            "factors":{
               "unit":"g co2eq per wh",
               "actual":{
                  "grid":0.201,
                  "eco":0.201
               },
               "base":{
                  "grid":0.436
               }
            },
            "base":{
               "unit":"g co2eq",
               "grid":583
            },
            "actual":{
               "unit":"g co2eq",
               "grid":269,
               "eco":269
            },
            "saving":{
               "unit":"g co2eq",
               "grid":314
            },
            "scope":2,
            "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
         },
         "$schema":"https://schema.corrently.io/tydids/ghg"
      },
      "did":{
         "signature":"0x71a06d3cc23a2f7821d56ccce01d7ff3a7a30c73bf568cf9eb998f5dd4c55bb575e9321df08edf6b13c4548a38d95f9e50c6ed075d87f87a8a8cbf8957d229191c",
         "payload":{
            "url":"did:ethr:6226:0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1:0xf21548440474afb51053CEEb31011d9E4a168D2D",
            "registry":"0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1",
            "uid":"0xf21548440474afb51053CEEb31011d9E4a168D2D",
            "schema":"did",
            "method":"ethr:6226",
            "ghgtoken":{
               "address":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
               "certificates":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
               "savings":"0xc475EcB54601C676Ad008A7857A385a52c445244",
               "emissions":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB"
            },
            "nft":{
               "signature":"0x92923d135c6e4bc15bf8d20cd985f990f98fae8ac5ee3b3fc13785c75667b48239c5f888e9fa9cc8f30d775c2f2da97da36d725a77ed81eabdf919657d6bdfbb1c",
               "payload":{
                  "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                  "tx":{
                     "nonce":2199,
                     "gasPrice":{
                        "type":"BigNumber",
                        "hex":"0x03e8"
                     },
                     "gasLimit":{
                        "type":"BigNumber",
                        "hex":"0x039a6c"
                     },
                     "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                     "value":{
                        "type":"BigNumber",
                        "hex":"0x00"
                     },
                     "data":"0xa578e29c00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010d000000000000000000000000000000000000000000000000000000000000013a00000000000000000000000000000000000000000000000000000000000000553078336246436634466533623744324532666430373962354464353436416133303330304438664245313a3078663231353438343430343734616662353130353343454562333130313164394534613136384432440000000000000000000000",
                     "chainId":6226,
                     "v":12488,
                     "r":"0x35722641759b62ec2879dd41db2736e2c833fa1ab771ce7c57ead9238c1f8e03",
                     "s":"0x15041ad76a387bd30fb3206551ddbbbf6310a311215bf2b1d04d14b912c0099b",
                     "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                     "hash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                     "type":null,
                     "confirmations":0
                  },
                  "receipt":{
                     "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                     "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                     "contractAddress":null,
                     "transactionIndex":0,
                     "gasUsed":{
                        "type":"BigNumber",
                        "hex":"0x038340"
                     },
                     "logsBloom":"0x00000000000080000000000000000000000020000000000000000000000000000000000000000000000000000000000000002008000000000000010004000000000000000000000000008008000000000000000000000000000020000000008000240000020000000000000000000800000000001000000000000010000000000000000000000000000000000000000000000001000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000200000000000000000000000000000000020000000000000000001000000000000800000100000000000000000000000000000",
                     "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558",
                     "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                     "logs":[
                        {
                           "transactionIndex":0,
                           "blockNumber":648343,
                           "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                           "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                           "topics":[
                              "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                              "0x0000000000000000000000000000000000000000000000000000000000000000",
                              "0x00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb",
                              "0x0000000000000000000000000000000000000000000000000000000000000457"
                           ],
                           "data":"0x",
                           "logIndex":0,
                           "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                        },
                        {
                           "transactionIndex":0,
                           "blockNumber":648343,
                           "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                           "address":"0xc475EcB54601C676Ad008A7857A385a52c445244",
                           "topics":[
                              "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                              "0x0000000000000000000000000000000000000000000000000000000000000000",
                              "0x000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d"
                           ],
                           "data":"0x000000000000000000000000000000000000000000000000000000000000013a",
                           "logIndex":1,
                           "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                        },
                        {
                           "transactionIndex":0,
                           "blockNumber":648343,
                           "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                           "address":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB",
                           "topics":[
                              "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                              "0x0000000000000000000000000000000000000000000000000000000000000000",
                              "0x000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d"
                           ],
                           "data":"0x000000000000000000000000000000000000000000000000000000000000010d",
                           "logIndex":2,
                           "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                        }
                     ],
                     "blockNumber":648343,
                     "confirmations":1,
                     "cumulativeGasUsed":{
                        "type":"BigNumber",
                        "hex":"0x038340"
                     },
                     "effectiveGasPrice":{
                        "type":"BigNumber",
                        "hex":"0x03e8"
                     },
                     "status":1,
                     "type":0,
                     "byzantium":true
                  },
                  "tokenId":"0x0000000000000000000000000000000000000000000000000000000000000457"
               }
            },
            "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
         },
         "$schema":"https://schema.corrently.io/tydids/did"
      },
      "_all":{
         "signature":"0x8999c3c3c95f8d010691499f336243cc076af36385ed72af331099363bd6717438b845c8db6c9cbf5940490e884dbba8af602c9b46be86c12af4aee1d25e5a1e1b",
         "payload":{
            "type":"electricity consumption from public grid",
            "context":"",
            "location":{
               "zip":"00000",
               "city":"Landesweit (national)",
               "country":"Germany",
               "meloid":"DETESTSD133713371337133713371337",
               "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
            },
            "metering":{
               "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
            },
            "consumption":{
               "unit":"wh",
               "actual":1337,
               "time":1673220421200,
               "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
            },
            "ghg":{
               "factors":{
                  "unit":"g co2eq per wh",
                  "actual":{
                     "grid":0.201,
                     "eco":0.201
                  },
                  "base":{
                     "grid":0.436
                  }
               },
               "base":{
                  "unit":"g co2eq",
                  "grid":583
               },
               "actual":{
                  "unit":"g co2eq",
                  "grid":269,
                  "eco":269
               },
               "saving":{
                  "unit":"g co2eq",
                  "grid":314
               },
               "scope":2,
               "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
            },
            "_iat":1673220421256,
            "_iss":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
            "_jti":"0xf21548440474afb51053CEEb31011d9E4a168D2D",
            "did":{
               "url":"did:ethr:6226:0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1:0xf21548440474afb51053CEEb31011d9E4a168D2D",
               "registry":"0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1",
               "uid":"0xf21548440474afb51053CEEb31011d9E4a168D2D",
               "schema":"did",
               "method":"ethr:6226",
               "ghgtoken":{
                  "address":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                  "certificates":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                  "savings":"0xc475EcB54601C676Ad008A7857A385a52c445244",
                  "emissions":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB"
               },
               "nft":{
                  "signature":"0x92923d135c6e4bc15bf8d20cd985f990f98fae8ac5ee3b3fc13785c75667b48239c5f888e9fa9cc8f30d775c2f2da97da36d725a77ed81eabdf919657d6bdfbb1c",
                  "payload":{
                     "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                     "tx":{
                        "nonce":2199,
                        "gasPrice":{
                           "type":"BigNumber",
                           "hex":"0x03e8"
                        },
                        "gasLimit":{
                           "type":"BigNumber",
                           "hex":"0x039a6c"
                        },
                        "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                        "value":{
                           "type":"BigNumber",
                           "hex":"0x00"
                        },
                        "data":"0xa578e29c00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010d000000000000000000000000000000000000000000000000000000000000013a00000000000000000000000000000000000000000000000000000000000000553078336246436634466533623744324532666430373962354464353436416133303330304438664245313a3078663231353438343430343734616662353130353343454562333130313164394534613136384432440000000000000000000000",
                        "chainId":6226,
                        "v":12488,
                        "r":"0x35722641759b62ec2879dd41db2736e2c833fa1ab771ce7c57ead9238c1f8e03",
                        "s":"0x15041ad76a387bd30fb3206551ddbbbf6310a311215bf2b1d04d14b912c0099b",
                        "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                        "hash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                        "type":null,
                        "confirmations":0
                     },
                     "receipt":{
                        "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                        "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                        "contractAddress":null,
                        "transactionIndex":0,
                        "gasUsed":{
                           "type":"BigNumber",
                           "hex":"0x038340"
                        },
                        "logsBloom":"0x00000000000080000000000000000000000020000000000000000000000000000000000000000000000000000000000000002008000000000000010004000000000000000000000000008008000000000000000000000000000020000000008000240000020000000000000000000800000000001000000000000010000000000000000000000000000000000000000000000001000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000200000000000000000000000000000000020000000000000000001000000000000800000100000000000000000000000000000",
                        "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558",
                        "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                        "logs":[
                           {
                              "transactionIndex":0,
                              "blockNumber":648343,
                              "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                              "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                              "topics":[
                                 "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                                 "0x0000000000000000000000000000000000000000000000000000000000000000",
                                 "0x00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb",
                                 "0x0000000000000000000000000000000000000000000000000000000000000457"
                              ],
                              "data":"0x",
                              "logIndex":0,
                              "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                           },
                           {
                              "transactionIndex":0,
                              "blockNumber":648343,
                              "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                              "address":"0xc475EcB54601C676Ad008A7857A385a52c445244",
                              "topics":[
                                 "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                                 "0x0000000000000000000000000000000000000000000000000000000000000000",
                                 "0x000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d"
                              ],
                              "data":"0x000000000000000000000000000000000000000000000000000000000000013a",
                              "logIndex":1,
                              "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                           },
                           {
                              "transactionIndex":0,
                              "blockNumber":648343,
                              "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                              "address":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB",
                              "topics":[
                                 "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                                 "0x0000000000000000000000000000000000000000000000000000000000000000",
                                 "0x000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d"
                              ],
                              "data":"0x000000000000000000000000000000000000000000000000000000000000010d",
                              "logIndex":2,
                              "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                           }
                        ],
                        "blockNumber":648343,
                        "confirmations":1,
                        "cumulativeGasUsed":{
                           "type":"BigNumber",
                           "hex":"0x038340"
                        },
                        "effectiveGasPrice":{
                           "type":"BigNumber",
                           "hex":"0x03e8"
                        },
                        "status":1,
                        "type":0,
                        "byzantium":true
                     },
                     "tokenId":"0x0000000000000000000000000000000000000000000000000000000000000457"
                  }
               },
               "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
            }
         },
         "$schema":"https://schema.corrently.io/tydids/_all"
      }
   }
}

Quellcode der Implementierung

Node: Import CERT

Speichert den als Eingabe angegeben Beleg in die GHG-Wallet. 

image.png

Präsentationen besitzen eine eindeutige Kennung, Schema sowie ein Herausgeber (Ersteller). Das Presentations Node gibt eine Liste von Präsentationen, die bei einer Wallet hinterlegt sind als Array im msg.payload.

Beispiel Flow

Download: simple_importCert_flow.json.json

image.png

Erstellt zunächst einen neuen Beleg für das erste Wallet. Anschließend wird dieser Beleg bei der zweiten Wallet eingelesen. Bei diesem Flow erfolgt keine Übertragung des Eigentums. Es werden lediglich die Daten (Abbild des Beleges) eingelesen. Um auch das Eigentum zu übertragen, ist von der ersten Wallet zusätzlich ein Transfer  durchzuführen.

Quellcode der Implementierung

Node: Metered-Notary

Erstellung von Belegen für den Strombezug basierend auf Zählerstandsgängen (Abfloge von Zählerständen eines Stromzählers). 

image.png

Im Gegensatz zum Node "Event-Notary", werden beim Metered-Notary die Zählerstände von Ablesungen reglmäßig (zum Beispiel stündlich) in Wattstunden als Eingabenachricht erwartet. Das Ergebnis ist ein digital signierter Beleg, des Zertifizierungsdienstes, welcher in der Ausgabenachricht bereitgestellt wird. Zusätzlich wird eine Kopie des Beleges in die GHG Wallet gespeichert.

Beispiel Flow

Download: simple_metered-notary.flow.json.json

image.png

Dem Metered-Notar Node wird als msg.payload die aktuellen Millisekunden übergeben, durch wiederholten Inject (Aufruf) entsteht so ein künstlicher Zählerstandsgang in Wattstunden (Wh). Durch die Differenz von zwei Zählerständen wird eine bezogene Strommenge ermittelt. Der Node sendet in einem ersten Schritt diese Daten an den Zertifizierungsdienst. Optional kann in der Konfiguration des Nodes eine Postleitzahl (Postal Code) angegeben werden, um dem Zertifizierungsdienst einen Hinweis über den Ort des Strombezuges mitzugeben. In einem zweiten Schritt erhält der Node ein Intermediate (=vorläufiger Beleg); überprüft das Intermediate; unterschreibt es und sendet es zum Zertifizierungsdienst. Die Rückantwort des Zertifizierungsdienst wird auf der Ausgabe als msg.payload zurückgegeben. 

Eine detaillierte Beschreibung der Belegerstellung kann der TyDIDs Blockchain basierte Nachweisführung der THG-Emission und Minderung entnommen werden. Der Node Event-Notary implementiert diesen Prozess.

Eingabe (msg.payload

image.png


Ausgabe
{
   "hash":{
      "signature":"0x85f7460870ca348caf60a94a766521c697b60b5c0a80da10a96b9fe6129903056b62aa5b940788523357974a3adc5e50abf2b690d03c12fe26a517dd7924c3681c",
      "payload":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
   },
   "owner":{
      "signature":"0xd73098704a6c8dfed4e6c2977f4b70f2591314fcee1ecbc733466a06788e8e84050a5f03c9fbe11be5b655219d5fcaa0692aead9e6e6d2d4bbb492c302b0e25a1b",
      "payload":{
         "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
         "issuer":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
         "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
      }
   },
   "context":{
      "signature":"0xafdb01935aae5a2da5af49db2f723c1649dc8ce92913cc8521a5b587df9e8ba24a9cdd3f54514b1868b15580d0ed21d9530cca623c532c874d4addfdd5934be51c",
      "payload":""
   },
   "did":{
      "signature":"0xa9becd0fc1c99a0b03360f60705c831bc305c1487687aff9925116be71072f386e0c9e89855e1336534081b6d5e74d6970d4a70836737968944ba9d2dea43dae1c",
      "payload":{
         "url":"did:ethr:6226:0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1:0xf21548440474afb51053CEEb31011d9E4a168D2D",
         "registry":"0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1",
         "uid":"0xf21548440474afb51053CEEb31011d9E4a168D2D",
         "schema":"did",
         "method":"ethr:6226",
         "ghgtoken":{
            "address":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
            "certificates":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
            "savings":"0xc475EcB54601C676Ad008A7857A385a52c445244",
            "emissions":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB"
         },
         "nft":{
            "signature":"0x92923d135c6e4bc15bf8d20cd985f990f98fae8ac5ee3b3fc13785c75667b48239c5f888e9fa9cc8f30d775c2f2da97da36d725a77ed81eabdf919657d6bdfbb1c",
            "payload":{
               "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
               "tx":{
                  "nonce":2199,
                  "gasPrice":{
                     "type":"BigNumber",
                     "hex":"0x03e8"
                  },
                  "gasLimit":{
                     "type":"BigNumber",
                     "hex":"0x039a6c"
                  },
                  "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                  "value":{
                     "type":"BigNumber",
                     "hex":"0x00"
                  },
                  "data":"0xa578e29c00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010d000000000000000000000000000000000000000000000000000000000000013a00000000000000000000000000000000000000000000000000000000000000553078336246436634466533623744324532666430373962354464353436416133303330304438664245313a3078663231353438343430343734616662353130353343454562333130313164394534613136384432440000000000000000000000",
                  "chainId":6226,
                  "v":12488,
                  "r":"0x35722641759b62ec2879dd41db2736e2c833fa1ab771ce7c57ead9238c1f8e03",
                  "s":"0x15041ad76a387bd30fb3206551ddbbbf6310a311215bf2b1d04d14b912c0099b",
                  "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                  "hash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                  "type":null,
                  "confirmations":0
               },
               "receipt":{
                  "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                  "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                  "contractAddress":null,
                  "transactionIndex":0,
                  "gasUsed":{
                     "type":"BigNumber",
                     "hex":"0x038340"
                  },
                  "logsBloom":"0x00000000000080000000000000000000000020000000000000000000000000000000000000000000000000000000000000002008000000000000010004000000000000000000000000008008000000000000000000000000000020000000008000240000020000000000000000000800000000001000000000000010000000000000000000000000000000000000000000000001000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000200000000000000000000000000000000020000000000000000001000000000000800000100000000000000000000000000000",
                  "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558",
                  "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                  "logs":[
                     {
                        "transactionIndex":0,
                        "blockNumber":648343,
                        "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                        "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                        "topics":[
                           "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                           "0x0000000000000000000000000000000000000000000000000000000000000000",
                           "0x00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb",
                           "0x0000000000000000000000000000000000000000000000000000000000000457"
                        ],
                        "data":"0x",
                        "logIndex":0,
                        "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                     },
                     {
                        "transactionIndex":0,
                        "blockNumber":648343,
                        "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                        "address":"0xc475EcB54601C676Ad008A7857A385a52c445244",
                        "topics":[
                           "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                           "0x0000000000000000000000000000000000000000000000000000000000000000",
                           "0x000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d"
                        ],
                        "data":"0x000000000000000000000000000000000000000000000000000000000000013a",
                        "logIndex":1,
                        "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                     },
                     {
                        "transactionIndex":0,
                        "blockNumber":648343,
                        "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                        "address":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB",
                        "topics":[
                           "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                           "0x0000000000000000000000000000000000000000000000000000000000000000",
                           "0x000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d"
                        ],
                        "data":"0x000000000000000000000000000000000000000000000000000000000000010d",
                        "logIndex":2,
                        "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                     }
                  ],
                  "blockNumber":648343,
                  "confirmations":1,
                  "cumulativeGasUsed":{
                     "type":"BigNumber",
                     "hex":"0x038340"
                  },
                  "effectiveGasPrice":{
                     "type":"BigNumber",
                     "hex":"0x03e8"
                  },
                  "status":1,
                  "type":0,
                  "byzantium":true
               },
               "tokenId":"0x0000000000000000000000000000000000000000000000000000000000000457"
            }
         },
         "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
      }
   },
   "metering":{
      "signature":"0xff554124da0b612bf4826f9fff3472b5e8636fb3f35cbdac20e2989b0fcbc6ba5012bcfb20f7e91b21c9135ce328aa45ffb189106197151621ceab90e8b77bb81b",
      "payload":{
         "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
      }
   },
   "presentations":{
      "type":{
         "signature":"0xa6c27697b4f526292c5728d12f28d3f41d4dd278a1e134193332b5b1f25a133b42c94d06911a81a250df0c3c11a5ed0454f6a9ede14807eb967b563ea2c1e94f1b",
         "payload":"electricity consumption from public grid",
         "$schema":"https://schema.corrently.io/tydids/type"
      },
      "context":{
         "signature":"0xafdb01935aae5a2da5af49db2f723c1649dc8ce92913cc8521a5b587df9e8ba24a9cdd3f54514b1868b15580d0ed21d9530cca623c532c874d4addfdd5934be51c",
         "payload":"",
         "$schema":"https://schema.corrently.io/tydids/context"
      },
      "location":{
         "signature":"0xdb8491a4dc3a9e2d90821f5de30781c744e568386ba0732a7fec6d2c75e6f308216c2c30b82b3a6301c06a1b7eb780c7447bf80152febef0ab361f6975428db11c",
         "payload":{
            "zip":"00000",
            "city":"Landesweit (national)",
            "country":"Germany",
            "meloid":"DETESTSD133713371337133713371337",
            "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
         },
         "$schema":"https://schema.corrently.io/tydids/location"
      },
      "metering":{
         "signature":"0x5a886ea9e67e4dc0c06de165e11428c819b5aee5c1673569af094d58489494565576e78b3a2efd92e2415aafa17df54b6bdccdc4e16b57853c2381638ca55b211b",
         "payload":{
            "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
         },
         "$schema":"https://schema.corrently.io/tydids/metering"
      },
      "consumption":{
         "signature":"0x6dbebebcb5aaeeb93cb9684b975f034d051e88669d7ce429237b75f3ee3b1de06c5ed3a2d3eca375f8338eff5cb0e8d14f1dc24faf2cf787d04b65993286cb1c1b",
         "payload":{
            "unit":"wh",
            "actual":1337,
            "time":1673220421200,
            "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
         },
         "$schema":"https://schema.corrently.io/tydids/consumption"
      },
      "ghg":{
         "signature":"0x7b7636b91814e44a859eeac0d2a891d5d007d5930ee01f416607ce5da39fd925248d2b24649ad22cc6a2d496023b1fc04e06198fa901fa200696fa7664333b911c",
         "payload":{
            "factors":{
               "unit":"g co2eq per wh",
               "actual":{
                  "grid":0.201,
                  "eco":0.201
               },
               "base":{
                  "grid":0.436
               }
            },
            "base":{
               "unit":"g co2eq",
               "grid":583
            },
            "actual":{
               "unit":"g co2eq",
               "grid":269,
               "eco":269
            },
            "saving":{
               "unit":"g co2eq",
               "grid":314
            },
            "scope":2,
            "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
         },
         "$schema":"https://schema.corrently.io/tydids/ghg"
      },
      "did":{
         "signature":"0x71a06d3cc23a2f7821d56ccce01d7ff3a7a30c73bf568cf9eb998f5dd4c55bb575e9321df08edf6b13c4548a38d95f9e50c6ed075d87f87a8a8cbf8957d229191c",
         "payload":{
            "url":"did:ethr:6226:0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1:0xf21548440474afb51053CEEb31011d9E4a168D2D",
            "registry":"0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1",
            "uid":"0xf21548440474afb51053CEEb31011d9E4a168D2D",
            "schema":"did",
            "method":"ethr:6226",
            "ghgtoken":{
               "address":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
               "certificates":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
               "savings":"0xc475EcB54601C676Ad008A7857A385a52c445244",
               "emissions":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB"
            },
            "nft":{
               "signature":"0x92923d135c6e4bc15bf8d20cd985f990f98fae8ac5ee3b3fc13785c75667b48239c5f888e9fa9cc8f30d775c2f2da97da36d725a77ed81eabdf919657d6bdfbb1c",
               "payload":{
                  "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                  "tx":{
                     "nonce":2199,
                     "gasPrice":{
                        "type":"BigNumber",
                        "hex":"0x03e8"
                     },
                     "gasLimit":{
                        "type":"BigNumber",
                        "hex":"0x039a6c"
                     },
                     "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                     "value":{
                        "type":"BigNumber",
                        "hex":"0x00"
                     },
                     "data":"0xa578e29c00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010d000000000000000000000000000000000000000000000000000000000000013a00000000000000000000000000000000000000000000000000000000000000553078336246436634466533623744324532666430373962354464353436416133303330304438664245313a3078663231353438343430343734616662353130353343454562333130313164394534613136384432440000000000000000000000",
                     "chainId":6226,
                     "v":12488,
                     "r":"0x35722641759b62ec2879dd41db2736e2c833fa1ab771ce7c57ead9238c1f8e03",
                     "s":"0x15041ad76a387bd30fb3206551ddbbbf6310a311215bf2b1d04d14b912c0099b",
                     "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                     "hash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                     "type":null,
                     "confirmations":0
                  },
                  "receipt":{
                     "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                     "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                     "contractAddress":null,
                     "transactionIndex":0,
                     "gasUsed":{
                        "type":"BigNumber",
                        "hex":"0x038340"
                     },
                     "logsBloom":"0x00000000000080000000000000000000000020000000000000000000000000000000000000000000000000000000000000002008000000000000010004000000000000000000000000008008000000000000000000000000000020000000008000240000020000000000000000000800000000001000000000000010000000000000000000000000000000000000000000000001000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000200000000000000000000000000000000020000000000000000001000000000000800000100000000000000000000000000000",
                     "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558",
                     "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                     "logs":[
                        {
                           "transactionIndex":0,
                           "blockNumber":648343,
                           "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                           "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                           "topics":[
                              "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                              "0x0000000000000000000000000000000000000000000000000000000000000000",
                              "0x00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb",
                              "0x0000000000000000000000000000000000000000000000000000000000000457"
                           ],
                           "data":"0x",
                           "logIndex":0,
                           "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                        },
                        {
                           "transactionIndex":0,
                           "blockNumber":648343,
                           "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                           "address":"0xc475EcB54601C676Ad008A7857A385a52c445244",
                           "topics":[
                              "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                              "0x0000000000000000000000000000000000000000000000000000000000000000",
                              "0x000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d"
                           ],
                           "data":"0x000000000000000000000000000000000000000000000000000000000000013a",
                           "logIndex":1,
                           "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                        },
                        {
                           "transactionIndex":0,
                           "blockNumber":648343,
                           "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                           "address":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB",
                           "topics":[
                              "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                              "0x0000000000000000000000000000000000000000000000000000000000000000",
                              "0x000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d"
                           ],
                           "data":"0x000000000000000000000000000000000000000000000000000000000000010d",
                           "logIndex":2,
                           "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                        }
                     ],
                     "blockNumber":648343,
                     "confirmations":1,
                     "cumulativeGasUsed":{
                        "type":"BigNumber",
                        "hex":"0x038340"
                     },
                     "effectiveGasPrice":{
                        "type":"BigNumber",
                        "hex":"0x03e8"
                     },
                     "status":1,
                     "type":0,
                     "byzantium":true
                  },
                  "tokenId":"0x0000000000000000000000000000000000000000000000000000000000000457"
               }
            },
            "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
         },
         "$schema":"https://schema.corrently.io/tydids/did"
      },
      "_all":{
         "signature":"0x8999c3c3c95f8d010691499f336243cc076af36385ed72af331099363bd6717438b845c8db6c9cbf5940490e884dbba8af602c9b46be86c12af4aee1d25e5a1e1b",
         "payload":{
            "type":"electricity consumption from public grid",
            "context":"",
            "location":{
               "zip":"00000",
               "city":"Landesweit (national)",
               "country":"Germany",
               "meloid":"DETESTSD133713371337133713371337",
               "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
            },
            "metering":{
               "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
            },
            "consumption":{
               "unit":"wh",
               "actual":1337,
               "time":1673220421200,
               "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
            },
            "ghg":{
               "factors":{
                  "unit":"g co2eq per wh",
                  "actual":{
                     "grid":0.201,
                     "eco":0.201
                  },
                  "base":{
                     "grid":0.436
                  }
               },
               "base":{
                  "unit":"g co2eq",
                  "grid":583
               },
               "actual":{
                  "unit":"g co2eq",
                  "grid":269,
                  "eco":269
               },
               "saving":{
                  "unit":"g co2eq",
                  "grid":314
               },
               "scope":2,
               "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
            },
            "_iat":1673220421256,
            "_iss":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
            "_jti":"0xf21548440474afb51053CEEb31011d9E4a168D2D",
            "did":{
               "url":"did:ethr:6226:0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1:0xf21548440474afb51053CEEb31011d9E4a168D2D",
               "registry":"0x3bFCf4Fe3b7D2E2fd079b5Dd546Aa30300D8fBE1",
               "uid":"0xf21548440474afb51053CEEb31011d9E4a168D2D",
               "schema":"did",
               "method":"ethr:6226",
               "ghgtoken":{
                  "address":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                  "certificates":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                  "savings":"0xc475EcB54601C676Ad008A7857A385a52c445244",
                  "emissions":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB"
               },
               "nft":{
                  "signature":"0x92923d135c6e4bc15bf8d20cd985f990f98fae8ac5ee3b3fc13785c75667b48239c5f888e9fa9cc8f30d775c2f2da97da36d725a77ed81eabdf919657d6bdfbb1c",
                  "payload":{
                     "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                     "tx":{
                        "nonce":2199,
                        "gasPrice":{
                           "type":"BigNumber",
                           "hex":"0x03e8"
                        },
                        "gasLimit":{
                           "type":"BigNumber",
                           "hex":"0x039a6c"
                        },
                        "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                        "value":{
                           "type":"BigNumber",
                           "hex":"0x00"
                        },
                        "data":"0xa578e29c00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010d000000000000000000000000000000000000000000000000000000000000013a00000000000000000000000000000000000000000000000000000000000000553078336246436634466533623744324532666430373962354464353436416133303330304438664245313a3078663231353438343430343734616662353130353343454562333130313164394534613136384432440000000000000000000000",
                        "chainId":6226,
                        "v":12488,
                        "r":"0x35722641759b62ec2879dd41db2736e2c833fa1ab771ce7c57ead9238c1f8e03",
                        "s":"0x15041ad76a387bd30fb3206551ddbbbf6310a311215bf2b1d04d14b912c0099b",
                        "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                        "hash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                        "type":null,
                        "confirmations":0
                     },
                     "receipt":{
                        "to":"0x36AbF05ac533D9Bb2024A2fb00c9e3F52e4F6a50",
                        "from":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
                        "contractAddress":null,
                        "transactionIndex":0,
                        "gasUsed":{
                           "type":"BigNumber",
                           "hex":"0x038340"
                        },
                        "logsBloom":"0x00000000000080000000000000000000000020000000000000000000000000000000000000000000000000000000000000002008000000000000010004000000000000000000000000008008000000000000000000000000000020000000008000240000020000000000000000000800000000001000000000000010000000000000000000000000000000000000000000000001000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000200000000000000000000000000000000020000000000000000001000000000000800000100000000000000000000000000000",
                        "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558",
                        "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                        "logs":[
                           {
                              "transactionIndex":0,
                              "blockNumber":648343,
                              "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                              "address":"0x65297AFaf11eeAd5258A46e969c2341708e9CC59",
                              "topics":[
                                 "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                                 "0x0000000000000000000000000000000000000000000000000000000000000000",
                                 "0x00000000000000000000000048a2f735c6bc140c15109f5a8aff8010715d9ddb",
                                 "0x0000000000000000000000000000000000000000000000000000000000000457"
                              ],
                              "data":"0x",
                              "logIndex":0,
                              "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                           },
                           {
                              "transactionIndex":0,
                              "blockNumber":648343,
                              "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                              "address":"0xc475EcB54601C676Ad008A7857A385a52c445244",
                              "topics":[
                                 "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                                 "0x0000000000000000000000000000000000000000000000000000000000000000",
                                 "0x000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d"
                              ],
                              "data":"0x000000000000000000000000000000000000000000000000000000000000013a",
                              "logIndex":1,
                              "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                           },
                           {
                              "transactionIndex":0,
                              "blockNumber":648343,
                              "transactionHash":"0xb48af4752575241931521fabce913ee2f38814b79037af3bbf2ce6bd4e658736",
                              "address":"0xd37B668Ad0417EcD22472ca555a431e84afB40BB",
                              "topics":[
                                 "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                                 "0x0000000000000000000000000000000000000000000000000000000000000000",
                                 "0x000000000000000000000000f21548440474afb51053ceeb31011d9e4a168d2d"
                              ],
                              "data":"0x000000000000000000000000000000000000000000000000000000000000010d",
                              "logIndex":2,
                              "blockHash":"0x33ddbecb4fe87e13e1b9556aaf92afee7f45b6fa36ab30c5c33b0b7098ba8558"
                           }
                        ],
                        "blockNumber":648343,
                        "confirmations":1,
                        "cumulativeGasUsed":{
                           "type":"BigNumber",
                           "hex":"0x038340"
                        },
                        "effectiveGasPrice":{
                           "type":"BigNumber",
                           "hex":"0x03e8"
                        },
                        "status":1,
                        "type":0,
                        "byzantium":true
                     },
                     "tokenId":"0x0000000000000000000000000000000000000000000000000000000000000457"
                  }
               },
               "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
            }
         },
         "$schema":"https://schema.corrently.io/tydids/_all"
      }
   }
}

Quellcode der Implementierung

Node: Present

Extraktion einer überprüfbaren Präsentation eines Zertifikates. Erlaubt die teilweise Kenntlichmachung von Inhalten eines Zertifikates (Belegs) an einen Dritten.

image.png

Der Present-Node bekommt ein oder mehrere Belege und extrahiert daraus eine überprüfbare Präsentation (verifieable presentation/VP) als Ausgabe. Ein Dritter kann auf Basis der Präsentation erkennen, dass die Inhalte im Payload nicht verändert wurden und von welchem ursprünglichen Ersteller (meist Zertifizierungsdienst) die Angaben bestätigt wurden. Zudem wird ein Umschlag durch hinzugefügt, aus dem ersichtlich ist, wer die Präsentation erstellt hat. Die Konfiguration des Present Node erlaubt eine Selektion der Datenblöcke (Beispiel "ghg" für Treibhausgasemissionen), die in der Präsentation enthalten sein sollen.

Beispiel Flow

Download: simple_present.flow.json.json

image.png

Ausgabe
[
   {
      "payload":{
         "signature":"0xb7bde2b1141b923a877a9372b5722562521ed418590a266021264955e9999d9d724cbc14eea2e6f3f9367c95776c42c89cd240579e2b07aad04095845c2dc3aa1b",
         "payload":{
            "factors":{
               "unit":"g co2eq per wh",
               "actual":{
                  "grid":0.201,
                  "eco":0.201
               },
               "base":{
                  "grid":0.436
               }
            },
            "base":{
               "unit":"g co2eq",
               "grid":0
            },
            "actual":{
               "unit":"g co2eq",
               "grid":0,
               "eco":0
            },
            "saving":{
               "unit":"g co2eq",
               "grid":0
            },
            "scope":2,
            "hash":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98"
         },
         "$schema":"https://schema.corrently.io/tydids/ghg"
      },
      "issuer":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
      "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
      "iss":"did:ethr:6226:0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
      "iat":1673260521496,
      "recipient":"",
      "signature":"0x40c9449ca8bb7acadd6262a3a4903aa3efe54ad90e906616f78fa8ed7b121ac3263b11d5c4b8cbb4c60ab8df9e2527fc6fd3fe7811556cad34714c0cc18fc16e1c"
   },
   {
      "payload":{
         "signature":"0x7b7636b91814e44a859eeac0d2a891d5d007d5930ee01f416607ce5da39fd925248d2b24649ad22cc6a2d496023b1fc04e06198fa901fa200696fa7664333b911c",
         "payload":{
            "factors":{
               "unit":"g co2eq per wh",
               "actual":{
                  "grid":0.201,
                  "eco":0.201
               },
               "base":{
                  "grid":0.436
               }
            },
            "base":{
               "unit":"g co2eq",
               "grid":583
            },
            "actual":{
               "unit":"g co2eq",
               "grid":269,
               "eco":269
            },
            "saving":{
               "unit":"g co2eq",
               "grid":314
            },
            "scope":2,
            "hash":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6"
         },
         "$schema":"https://schema.corrently.io/tydids/ghg"
      },
      "issuer":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
      "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
      "iss":"did:ethr:6226:0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
      "iat":1673260521499,
      "recipient":"",
      "signature":"0x0fc170a4ab59424f47ccfa732fd39be597fc9dc27f1be14ac3c7723f2d180862286e9c8a48182f43719c0d61f2279771d11538bc516f0e2fc970e67e29862b961b"
   }
]

Quellcode der Implementierung

Node: Presentations

Liste von Präsentationen, die in einer GHG Wallet hinterlegt wurden. Diese Präsentationen sind entweder mit einem remeberVP Node oder durch Erstellung eines Beleges hinzugefügt worden. 

image.png

Präsentationen besitzen eine eindeutige Kennung, Schema sowie ein Herausgeber (Ersteller). Das Presentations Node gibt eine Liste von Präsentationen, die bei einer Wallet hinterlegt sind als Array im msg.payload.

Beispiel Flow

Download: simple_presentations.flow.json.json

image.png

Ausgabe
[
   {
      "presentation":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6",
      "time":1673260521501,
      "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
      "issuer":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
      "schema":"https://schema.corrently.io/tydids/ghg"
   },
   {
      "presentation":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98",
      "time":1673260521498,
      "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
      "issuer":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
      "schema":"https://schema.corrently.io/tydids/ghg"
   },
   {
      "presentation":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6",
      "time":1673260363088,
      "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
      "issuer":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
      "schema":"https://schema.corrently.io/tydids/ghg"
   },
   {
      "presentation":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98",
      "time":1673260363084,
      "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
      "issuer":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
      "schema":"https://schema.corrently.io/tydids/ghg"
   },
   {
      "presentation":"0xd90d0978039c34f955e0813af6c3f853ab43a891e508a3517a1c7c3929531be6",
      "time":1673260362082,
      "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
      "issuer":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
      "schema":"https://schema.corrently.io/tydids/ghg"
   },
   {
      "presentation":"0xae809bc0a0695356ec850baf96eada931b21d717fa593baa683180f36d0e4a98",
      "time":1673260362073,
      "owner":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
      "issuer":"0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
      "schema":"https://schema.corrently.io/tydids/ghg"
   }
]

Quellcode der Implementierung

Node: Received NFTs

Überwacht die Distributed Ledger Technology nach Eigentumsübertragungen eines NFT an eine andere GHG-Wallet.

image.png

Es erfolgt ein Abgleich mit dem Konsens der Distributed Ledger Technology statt, welche Belege sich im Eigentum einer Wallet finden. Diese Abfrage kann sehr lange dauern! Rückgabe im msg.payload ist ein Array mit den Kennungen der Belege.

Beispiel Flow

Download: simple_ownedNFTs_flow.json.json

image.png

Ausgabe
[
   "0xf21548440474afb51053CEEb31011d9E4a168D2D",
   "0x6a2385Bae7fbc38FF23d475B9D3eB93EEFB7A843",
   "0x8d3a5Cc45326A0cF2D64c640dc8Ae0B1ddeE5b4a",
   "0x6911A882A18f5f5eBbc6ca398EcDC1faB9D1929b",
   "0x91E24b2325A8bb2f3776D06F8Eb26A049AE2768c"
]

Quellcode der Implementierung

Node: Remember Presentation

Erlaubt das Einlesen einer Präsentation eines Dritten in eine GHG Wallet.

image.png

Eine auf der Eingabeseite gelieferte Präsentation wird in die GHG Wallet, die in der Konfiguration der Remember Presentation Node angegeben ist, abgelegt. Vor der Ablage wird eine Überprüfung der digitalen Signaturen durchgeführt, so dass sichergestellt wird, dass innerhalb der Wallet nur Präsentationen abgelegt sind, die nicht verändert sind. Nach der Ablage kann die Präsentation zum Beispiel mit einem Presentations Node abgerufen werden.

Quellcode der Implementierung

Node: Signer

Signiert eine Nachricht mit dem privaten Schlüssel einer GHG Wallet und gibt eine überprüfbaren Umschlag (Envelope) zurück mit der Nachricht.  

image.png

Mithilfe des Signer-Node kann eine Nachricht digital unterschrieben werden, sodass eine Veränderung des Nachrichteninhaltes erkannt werden kann. Diese Überprüfung erfolgt zum Beispiel mit einem Validator Node oder mit dem TyDIDs Trust-Framework.

Beispiel Flow

Download: simple_signer_and_validator.flow.json.json

image.png

Ausgabe
{
   "payload":1673224423003,
   "iss":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
   "iat":1673224423440,
   "signature":"0xc8aa11b5f9522d527fdf4b9b691ea72524d1c7df3d81b071ff52c16b18f7129610ea0622a96a35fa20d4e7ce039e9755d07ab9cfb1a038d73e3e8c4edfde7f651c"
}

Quellcode der Implementierung

Node: Statistics

Abrufen von statistischen Informationen zu den Belegen, die in einer GHG Wallet hinterlegt wurden.

image.png

Die Rückgabe des Statistics Node enthält im msg.payload eine Zusammenfassung der Daten aller von der Wallet verwalteten Zertifikate (Anzahl, sowie Summe der Treibhausgasemissionen, Stromverbrauch, Einsparungen), sowie den öffentlichen Schlüssel (Address) der Wallet. 

Beispiel Flow

Download: simple_statistics.flow.json.json

image.png

Ausgabe
{
   "certificates":{
      "count":2,
      "sums":{
         "wh":1337,
         "emissions":269,
         "savings":314
      }
   },
   "address":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb"
}

Quellcode der Implementierung

Node: Transfer (NFT)

Transferieren des Eigentums eines Beleges (NFT) an einen Dritten. Es wird eine Transaktion im Dristributed Ledger hinterlegt. Damit dies möglich ist, fallen Transaktionskosten an, die mit dem Guthaben der GHG-Wallet beglichen werden. 

image.png

Ein Transfer Node erlaubt es den Eigentumsnachweis eines Beleges an einen Dritten zu übergeben. Hierzu wird eine Transaktion auf die Distributed Ledger Technoligie geschrieben, welche mit dem Guthaben der GHG-Wallet bezahlt wird. Das aktuelle Guthaben der Wallet ist über den Node Statistics (Feld txBalance) abrufbar. Eine Transaktion verursacht etwa 55 Mio TYD an Kosten. 

Beispiel Flow

Download: simple_transfer_flow.json.json

image.png

Zunächst wird ein neuer Beleg mit dem Event-Notary Node erstellt für einen Strombezug von 1337 Wattstunden. Das Eigentum am Beleg (NFT) wird im Anschluss an einen Dritten übermittelt. Die im Zertifikat manifestierten Daten werden nicht übertragen. Hierzu ist zusätzlich beim Empfänger ein Import CERT durchzuführen.

Quellcode der Implementierung

Node: Owned NFTs

Liste der Kennungen von allen im Eigentum der GHG-Wallet befindlichen NFTs (Belege). 

image.png

Es erfolgt ein Abgleich mit dem Konsens der Distributed Ledger Technology statt, welche Belege sich im Eigentum einer Wallet finden. Diese Abfrage kann sehr lange dauern! Rückgabe im msg.payload ist ein Array mit den Kennungen der Belege.

Beispiel Flow

Download: simple_ownedNFTs_flow.json.json

image.png

Ausgabe
[
   "0xf21548440474afb51053CEEb31011d9E4a168D2D",
   "0x6a2385Bae7fbc38FF23d475B9D3eB93EEFB7A843",
   "0x8d3a5Cc45326A0cF2D64c640dc8Ae0B1ddeE5b4a",
   "0x6911A882A18f5f5eBbc6ca398EcDC1faB9D1929b",
   "0x91E24b2325A8bb2f3776D06F8Eb26A049AE2768c"
]

Quellcode der Implementierung

Node: Validator

Validiert den Umschlag einer Nachricht auf Basis des im Umschlag hinterlegten öffentlichen Schlüssels.  

image.png

Mit einem Validator-Node kann die digitale Unterschrift eines  Signer-Node überprüft werden. Es wird sichergestellt, dass der Nachrichteninhalt (Payload) nicht verändert wurde und vom Inhaber des öffentlichen Schlüssels stammt. Der Umschlag der Nachricht kann zum Beispiel mit einem Signer Node oder mit dem TyDIDs Trust-Framework erstellt werden.

Beispiel Flow

Download: simple_signer_and_validator.flow.json.json

image.png

Ausgabe
{
   "payload":1673224423003,
   "iss":"0x48a2F735c6BC140C15109f5a8AFF8010715D9ddb",
   "iat":1673224423440,
   "signature":"0xc8aa11b5f9522d527fdf4b9b691ea72524d1c7df3d81b071ff52c16b18f7129610ea0622a96a35fa20d4e7ce039e9755d07ab9cfb1a038d73e3e8c4edfde7f651c"
}

Quellcode der Implementierung

Konzept: THG neutrale Einspeisung

Stromerzeugung aus Photovoltaik, Windkraft und Wasserkraft verursachen keine Treibhausgasemissionen, die bilanziell zum Zeitpunkt der Erzeugung/Einspeisung zu berücksichtigen sind. Daher werden diese als Einsparung (Saving) bewertet. 

Wird der Zertifizierungsdienst der STROMDAO GmbH verwendet, so muss bei der Beleganfrage durch einen Event-Notary Node  oder einen Metered-Notary Node zwingend die Kontextinformation in der Konfiguration des Node gesetzt werden:

{
    "direction": "feedin"
}

Hinweis

In welcher Art die Treibhausgasemissionen, welche durch regenerative Erzeugung vermieden wurden, berücksichtigt werden, ist abhängig von der Implementierung des Zertifizierungsdienstes (Messstellenbetreiber, Energie Service Anbieter) und kann im Einzelfall abweichen. 

Berücksichtigung vermiedene Treibhausemission durch regenerative Stromerzeugung

Für jede Watt-Stunde, welche aus einer Erneuerbare Energie Anlage eingespeist wurde, musste keine konventionelle Erzeugung genutzt werden. Die vermiedene Emission berechnet sich aus der erzeugten Strommenge, multipliziert mit dem Faktor des zum Zeitpunkt der Einspeisung vorhandenen Strommixes.

 

 

Konzept: Bilanzierung Treibhausgasemission und Vermeidung

SusScope2 erlaubt eine direkte Bilanzierung (Verrechnung) der Scope 2  Emissionen für den Bereich Strom. Entsprechend werden tatsächlich angefallene Emissionen basierend auf Zählerständen den vermiedenen Emissionen durch lokale Stromerzeugung (Eigenstrom) gegenübergestellt.  Die Bilanzierung wird mithilfe einer Aggregation durchgeführt.

Beispiel: Emissionen des Stromverbrauchs gegenübergestellt zu Erzeugung

image.png

Stündlich werden zwei Stromzähler abgelesen, wobei der Zähler mit der Endung "78" ein Verbrauchszähler ist und der Zähler mit der Endung "45" Erzeugungszähler ist. Beiden Zählern wurde eine eigene Wallet zugeordnet. Für jeden Zähler getrennt wird ein Transfer zu einer Aggregation durchgeführt.

 

 

Konzept: Nutzung von Verifiable Credentials in der Nachhaltigkeitsberichterstattung

Verifiable Credentials sind digitale Zertifikate, die es einer Person ermöglichen, ihre Identität, Fähigkeiten oder Besitztümer nachzuweisen, ohne ihre persönlichen Daten preiszugeben.

Stellen wir uns vor, ein Unternehmen möchte seinen CO₂-Fußabdruck reduzieren und seine Bemühungen zur Nachhaltigkeit kommunizieren. Es möchte jedoch keine sensiblen Daten wie Zählerstände oder Zählernummern preisgeben.

Mit Verifiable Credentials kann das Unternehmen stattdessen einen digitalen Nachweis über seinen Stromverbrauch und Stromerzeugung erbringen, der von einem unabhängigen Dritten ausgestellt wurde, der die Echtheit der Daten bestätigt. Der Nachweis kann Informationen enthalten, wie beispielsweise den Gesamt-CO2-Ausstoß des Stromverbrauchs bzw. der Stromerzeugung des Unternehmens, ohne jedoch sensible Daten preiszugeben, auf deren Basis der Wert im Nachhaltigkeitsbericht basiert.

Der digitale Nachweis wird in einem Nachhaltigkeitsbericht des Unternehmens verwendet, um die Bemühungen zur CO₂-Reduktion und Nachhaltigkeit zu belegen. Andere Unternehmen, Kunden oder Investoren können die Echtheit des Nachweises überprüfen, ohne direkt auf die persönlichen Daten des Unternehmens zugreifen zu müssen.

Verifiable Credentials bieten also ein höheres Maß an Datenschutz und Sicherheit, da Sie nicht mehr Ihre sensiblen Ursprungsdaten für jede Verifizierung preisgeben müssen. Sie können auch dazu beitragen, den Prozess der Überprüfung von Echtheit und Zielerreichung zu automatisieren, was Zeit und Kosten spart.

Das folgende Beispiel zeigt die Umsetzung im Rahmen von SusScope2 beim Energie Service Anbieter in der Rolle des Zertifikatsausstellers für seinen Klienten:

image.png

In diesem Fall wird automatisiert der Zählerstand von vor 24 Stunden eines Zweirichtungszählers ausgelesen und mit dem aktuellen Zählerstand verglichen. Auf Basis dieser Information wird zunächst für den Strombezug (1_8_0) ein Zertifikat erstellt und im Anschluss für die Stromeinspeisung (2_8_0). Mit diesem Datensatz wird im letzten Schritt das Verifiable Credential ausgestellt, welches dem Klienten übermittelt werden kann.

Beispiel Ergebnis

image.png

Der zur Erstellung des Credentials genutzte Prozess (Flow) verwendet den Event-Notary Node. Die Auslesung der Stromzähler erfolgt in diesem Fall mit einem NR-Discovergy-Adapter. Es wurde bewusst kein Metered-Notary verwendet, da der Nachweis über einen genauen Stichtagszeitraum erfolgt (hier 1 Tag) zur Verwendung in einem Nachhaltigkeitsbericht und keine fortlaufende Nachweisführung für ein Monitoring.