diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..79b2aba1 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,9 @@ +## Checklist for Hyperledger Lab Proposal PR + +- [ ] Read [README.md](https://github.com/hyperledger-labs/hyperledger-labs.github.io/blob/master/README.md) carefully +- [ ] Make sure your changes are committed with the proper sign-off +- [ ] Use the labs name as the PR title +- [ ] Copy the short description of the proposal as the description of the PR +- [ ] Remove this checklist section +- [ ] Submit your PR and the labs stewards will review your proposal +- [ ] Ask your sponsor to confirm sponsorship by stating so in a comment to the PR diff --git a/.github/settings.yml b/.github/settings.yml new file mode 100644 index 00000000..05a2fa7f --- /dev/null +++ b/.github/settings.yml @@ -0,0 +1,14 @@ +repository: + name: hyperledger-labs.github.io + description: Hyperledger Labs + homepage: https://labs.hyperledger.org/ + default_branch: master + has_downloads: false + has_issues: true + has_projects: false + has_wiki: false + archived: false + private: false + allow_squash_merge: false + allow_merge_commit: false + allow_rebase_merge: true diff --git a/.gitignore b/.gitignore index bfba4b67..5282eed4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ .DS_Store -**/.DS_Store \ No newline at end of file +**/.DS_Store +_site/* +.jekyll-cache/* diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..09a4ed0b --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +labs.hyperledger.org \ No newline at end of file diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..0d3e5d8c --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +* @lehors @tkuhrt @trbs @vipinsun diff --git a/README.md b/README.md index 72fc4b28..5626f6d7 100644 --- a/README.md +++ b/README.md @@ -2,25 +2,40 @@ Hyperledger Labs provides a space (i.e., GitHub repos) where work can easily be started without the creation of a project. Please refer to -the [Hyperledger Labs wiki page](https://wiki.hyperledger.org/labs) +the [Hyperledger Labs wiki page](https://wiki.hyperledger.org/display/labs) for additional information. ## Process to propose a new lab -Fork the [hyperledger-labs.github.io](https://github.com/hyperledger-labs/hyperledger-labs.github.io) repository. +1. Fork the [hyperledger-labs.github.io](https://github.com/hyperledger-labs/hyperledger-labs.github.io) repository. -Fill out the [Proposal Template](https://github.com/hyperledger-labs/hyperledger-labs.github.io/blob/master/proposal-template.md) +2. Fill out the [Proposal Template](https://github.com/hyperledger-labs/hyperledger-labs.github.io/blob/master/proposal-template.md) and save it into the labs subdirectory under the name of your lab, such as mynewlab.md. It is expected that your lab repository will have the same name so keep that in mind. -Submit a Pull Request. +3. In the Proposal Template, there is an entry for sponsor(s). The sponsor(s) are responsible for reviewing the proposal. Sponsors do not have a responsibility beyond this; ongoing work like contributing code or reviews is not tied to their role as sponsors. In reviewing the proposal, the sponsor(s) make sure that the proposal is cogent, and novel (in conception, proposed execution, or interested community). +To find sponsors + a. the proposers can use their connections to existing projects and ask maintainers + b. find working groups or projects with affinities to the proposed lab and pitch the project (good to have the template already filled out) in associated channels and or mailing lists. The WG chairs emails, the maintainers contacts etc. can be found on the wiki or github. Make personal appeals if you can. + +4. Commit your changes with proper sign-off. This means that your commit +log message must contain a line that looks like the following one, +with your actual name and email address: + + Signed-off-by: John Doe + + Adding the `-s` flag to your `git commit` command will add that line +automatically. You can also add it manually as part of your commit +log message or add it afterwards with `git commit --amend -s`. + +5. Submit a Pull Request. The labs stewards will then review your proposal. ## Bringing in an existing repository -By default the Lab stewards will create a new respository for you to +By default the Lab stewards will create a new repository for you to start from but if you have an existing github repo you would like to bring to your proposed lab you have the option to request for that repo to be reused instead. This is however only possible if every diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000..417a1907 --- /dev/null +++ b/_config.yml @@ -0,0 +1,17 @@ +title: "Hyperledger Labs" +logo: "/hyperledger-logo.png" +url: "https://labs.hyperledger.org" +description: "Start here to propose a Hyperledger Lab" +show_downloads: "false" +has_children: true +has_toc: true +aux_links: + "GitHub": + - "//github.com/hyperledger-labs" + "Wiki": + - "//wiki.hyperledger.org/display/labs" + "Chat": + - "//chat.hyperledger.org/channel/labs" +# Switch next two lines for local debugging +# theme: just-the-docs +remote_theme: pmarsceill/just-the-docs diff --git a/favicon.ico b/favicon.ico new file mode 100755 index 00000000..eadfc2cd Binary files /dev/null and b/favicon.ico differ diff --git a/hyperledger-logo.png b/hyperledger-logo.png new file mode 100644 index 00000000..cdc13054 Binary files /dev/null and b/hyperledger-logo.png differ diff --git a/index.md b/index.md new file mode 100644 index 00000000..b4dba5b4 --- /dev/null +++ b/index.md @@ -0,0 +1,55 @@ +--- +layout: default +title: Labs +nav_order: 1 +has_children: true +has_toc: false +--- +[//]: # (SPDX-License-Identifier: CC-BY-4.0) + +# Hyperledger Labs + +Hyperledger Labs provides a space (i.e., GitHub repos) where work can +easily be started without the creation of a project. Please refer to +the [Hyperledger Labs wiki page](https://wiki.hyperledger.org/display/labs) +for additional information. + +## Process to propose a new lab + +1. Fork the [hyperledger-labs.github.io](https://github.com/hyperledger-labs/hyperledger-labs.github.io) repository. + +2. Fill out the [Proposal Template](https://github.com/hyperledger-labs/hyperledger-labs.github.io/blob/master/proposal-template.md) +and save it into the labs subdirectory under the name of your lab, +such as mynewlab.md. It is expected that your lab repository will have +the same name so keep that in mind. + +3. In the Proposal Template, there is an entry for sponsor(s). The sponsor(s) are responsible for reviewing the proposal. Sponsors do not have a responsibility beyond this; ongoing work like contributing code or reviews is not tied to their role as sponsors. In reviewing the proposal, the sponsor(s) make sure that the proposal is cogent, and novel (in conception, proposed execution, or interested community). +To find sponsors + a. the proposers can use their connections to existing projects and ask maintainers + b. find working groups or projects with affinities to the proposed lab and pitch the project (good to have the template already filled out) in associated channels and or mailing lists. The WG chairs emails, the maintainers contacts etc. can be found on the wiki or github. Make personal appeals if you can. + +4. Commit your changes with proper sign-off. This means that your commit +log message must contain a line that looks like the following one, +with your actual name and email address: + + Signed-off-by: John Doe + + Adding the `-s` flag to your `git commit` command will add that line +automatically. You can also add it manually as part of your commit +log message or add it afterwards with `git commit --amend -s`. + +5. Submit a Pull Request. + +The labs stewards will then review your proposal. + +## Bringing in an existing repository + +By default the Lab stewards will create a new repository for you to +start from but if you have an existing github repo you would like to +bring to your proposed lab you have the option to request for that +repo to be reused instead. This is however only possible if every +commit in your existing repo is signed-off so there is no +[DCO](https://developercertificate.org/) related issues. If that is +not the case, you will need to bring your code by squashing all of +your commits into a single first commit made against your new lab +repo with your sign-off. diff --git a/labs/SParts.md b/labs/archived/SParts.md similarity index 96% rename from labs/SParts.md rename to labs/archived/SParts.md index dcfb1808..9845d539 100644 --- a/labs/SParts.md +++ b/labs/archived/SParts.md @@ -1,3 +1,8 @@ +--- +layout: default +title: SParts +parent: Archived Labs +--- # Lab Name SParts @@ -21,4 +26,4 @@ Dan Middleton (dan.middleton@intel.com) # Pre-existing repository -There is a pre-existing public repository available at https://github.com/Wind-River/sparts. We would copy over all the code except for the /apps directory. We did not initially use the git commit sign-off option and therefore need to recommit all the code to the new repo with the sign-off option. I recommend creating a new empty repo where we can re-commit the relevant pieces using the -s option. \ No newline at end of file +There is a pre-existing public repository available at https://github.com/Wind-River/sparts. We would copy over all the code except for the /apps directory. We did not initially use the git commit sign-off option and therefore need to recommit all the code to the new repo with the sign-off option. I recommend creating a new empty repo where we can re-commit the relevant pieces using the -s option. diff --git a/labs/archived/blockchain-analyzer.md b/labs/archived/blockchain-analyzer.md new file mode 100644 index 00000000..cbaadef3 --- /dev/null +++ b/labs/archived/blockchain-analyzer.md @@ -0,0 +1,28 @@ +--- +layout: default +title: Blockchain Analyzer +parent: Archived Labs +--- +# Lab Name +Blockchain Analyzer + +# Short Description +The aim of this lab is to create a tool for visualizing and analyzing Hyperledger Fabric ledger from both operational and data-oriented aspects. It provides dashboards similar to Hyperledger Explorer, but it is applicable for data queries (e.g. medicine provenance, supply chain) as well. + +The user can inspect the data of multiple peers and multiple channels at the same time. + +A further goal of this project is to be suitable for any blockchain solution. + +# Scope of Lab + +Internship project ([Analyzing Hyperledger Fabric Ledger, Transactions and Logs using Elasticsearch and Kibana](https://wiki.hyperledger.org/display/INTERN/Analyzing+Hyperledger+Fabric+Ledger%2C+Transactions%2C+and+Logs+using+Elasticsearch+and+Kibana)) + +# Initial Committers +- https://github.com/salmanbaset +- https://github.com/balazsprehoda + +# Sponsor +- https://github.com/lehors - Member of Hyperledger TSC + +# Pre-existing repository +- https://github.com/balazsprehoda/hyperledger-elastic diff --git a/labs/archived/chaincode-analyzer.md b/labs/archived/chaincode-analyzer.md new file mode 100644 index 00000000..1f9b7cc1 --- /dev/null +++ b/labs/archived/chaincode-analyzer.md @@ -0,0 +1,34 @@ +--- +layout: default +title: Chaincode Analyzer +parent: Archived Labs +--- +# Lab Name +Chaincode Analyzer + +# Short Description +A static tool to check and detect potentially risky codes in smart contracts (a.k.a, chaincodes). + + +# Scope of Lab +The aim of Chaincode Analyzer is to provide the way to check whether the smart contracts includes potentially risky codes or not. +The tool performs static analysis on chaincode source codes written in Golang and detects potentially risky parts such as generating random values, accessing outside of blockchain networks and iteration on map object. +For more details of the tool and target risks: +https://github.com/FujitsuLaboratories/ChaincodeAnalyzer + +In Hyperledger Fabric, developers can use general purpose programming languages, such as JavaScript, Golang and Java, to implement their chaincodes. +Compared to using domain specific languages (DSLs) like Solidity of Ethereum, the efforts of implementing smart contracts are smaller since developers do not need to study new language for smart contracts. +On the other hand, there are some pitfalls when developers use general purpose programming languages for implementing smart contracts. +For instance, Solidity does not have a method to generate random value since it easily causes different states during nodes which execute the smart contract including random value generation. +Different to Solidity, general purpose programming languages such as Golang typically have a method to generate random value. +Therefore, we think there are needs for a tool to detect such blockchain related potential risks quickly. + +# Initial Committers +- https://github.com/kzhry (Kazuhiro Yamashita) +- https://github.com/Chinlying (Ence Zhou) + +# Sponsor +- https://github.com/hartm (Hart Montgomery) - Member of Hyperledger TSC + +# Pre-existing repository +- There is pre-existing public repository available at (https://github.com/FujitsuLaboratories/ChaincodeAnalyzer) as explained above. We would like to copy all the code since we did not use sign-off option. diff --git a/labs/cordentity.md b/labs/archived/cordentity.md similarity index 96% rename from labs/cordentity.md rename to labs/archived/cordentity.md index 7080ffb6..834cdc2a 100644 --- a/labs/cordentity.md +++ b/labs/archived/cordentity.md @@ -1,3 +1,8 @@ +--- +layout: default +title: Cordentity +parent: Archived Labs +--- # Lab Name Cordentity diff --git a/labs/crypto-lib.md b/labs/archived/crypto-lib.md similarity index 91% rename from labs/crypto-lib.md rename to labs/archived/crypto-lib.md index 55069d2e..591d4b3a 100644 --- a/labs/crypto-lib.md +++ b/labs/archived/crypto-lib.md @@ -1,21 +1,26 @@ -# Lab Name -crypto-lib - -# Short Description -A project for experimentation on creating shared cryptography modules for cross-project collaboration - -# Scope of Lab -The purpose of this lab is to serve as an initial launching point for what will hopefully become a shared Hyperledger cryptography library. We aim to use this lab to set up a code base and experiment with integrating cryptographic protocols between projects. - -See: https://docs.google.com/document/d/1JtFT5L-82egj6shgGXzTsNAg6_UHuMheKfsst6NS_Xo/edit?usp=sharing -for more details. - -# Initial Committers -hartm - -# Sponsor -Hart Montgomery -(Many more, see the project proposal document). - -# Pre-existing repository -No! That's why we're starting a lab. +--- +layout: default +title: crypto-lib +parent: Archived Labs +--- +# Lab Name +crypto-lib + +# Short Description +A project for experimentation on creating shared cryptography modules for cross-project collaboration + +# Scope of Lab +The purpose of this lab is to serve as an initial launching point for what will hopefully become a shared Hyperledger cryptography library. We aim to use this lab to set up a code base and experiment with integrating cryptographic protocols between projects. + +See: https://docs.google.com/document/d/1JtFT5L-82egj6shgGXzTsNAg6_UHuMheKfsst6NS_Xo/edit?usp=sharing +for more details. + +# Initial Committers +hartm + +# Sponsor +Hart Montgomery +(Many more, see the project proposal document). + +# Pre-existing repository +No! That's why we're starting a lab. diff --git a/labs/archived/ethercluster.md b/labs/archived/ethercluster.md new file mode 100644 index 00000000..00193c3d --- /dev/null +++ b/labs/archived/ethercluster.md @@ -0,0 +1,32 @@ +--- +layout: default +title: Ethercluster +parent: Archived Labs +--- +# Lab Name +Ethercluster + +# Short Description +Ethercluster is an open-source design specification for building scalable blockchain infrastructure using the latest infra-as-code tools such as Terraform, Kubernetes and Docker containers. +The Ethercluster project is seen as an open-source alternative to using Infura by having control over a cluster of nodes that can serve as part of the developers decentralized-application architecture strategy. +Website for Ethercluster is: https://www.ethercluster.com/ +Documentation for running custom Ethercluster: https://docs.ethercluster.com/ + +# Scope of Lab +Scope of the Lab is on the cloud devops infrastructure level of scaling blockchain nodes. Imagine having a scalable Kubernetes design specifications for Hyperledger Besu nodes, each running a separate network and running in multiple zones. +Scope can also be for generating scalable Proof-of-Stake node architecture that can scale as a user wants to stake on more nodes. + +# Initial Committers +- https://github.com/YazzyYaz + +# Sponsor +- https://github.com/vipinsun - Vipin Bharathan (vip@dlt.nyc) - Founder of DLT.nyc + +# Pre-existing repository + +- Design specs: https://github.com/ETCCooperative/ethercluster +- Docs: https://github.com/ETCCooperative/docs-ethercluster +- Demo-Site: https://github.com/ETCCooperative/ethercluster-site +- Terraform designs: https://github.com/ETCCooperative/ethercloud + +My main future goal with the design specs is to make a command-line application in golang that can auto-generate both the Terraform cloud design specs for ethercluster and then deploy Kubernetes architecture of Ethercluster inside those instances. diff --git a/labs/fabric-chrome-extension.md b/labs/archived/fabric-chrome-extension.md similarity index 90% rename from labs/fabric-chrome-extension.md rename to labs/archived/fabric-chrome-extension.md index 5aaf1604..682b73df 100644 --- a/labs/fabric-chrome-extension.md +++ b/labs/archived/fabric-chrome-extension.md @@ -1,3 +1,8 @@ +--- +layout: default +title: Hyperledger Fabric Chrome Extension +parent: Archived Labs +--- # Lab Name Hyperledger Fabric Chrome Extension diff --git a/labs/archived/fabric-client-flutter.md b/labs/archived/fabric-client-flutter.md new file mode 100644 index 00000000..44460e10 --- /dev/null +++ b/labs/archived/fabric-client-flutter.md @@ -0,0 +1,23 @@ +--- +layout: default +title: fabric-client-flutter +parent: Archived Labs +--- +# Lab Name +fabric-client-flutter + +# Short Description +Hyperledger Fabric client for mobile devices written in Dart. + +# Scope of Lab +The lab focuses on offline signing scheme as the frontend of Hyperledger Fabric that interacts with the fabric-server-node. The implementation of fabric-client-flutter is based on Google's Flutter framework for mobile devices. +The lab implements [[FABN-895] Fabric SDK client signing](https://docs.google.com/document/d/1gj5XB7yS-pfjpvZEUQh5lBGSIE6aQemu8A69tAYQtTc/edit#heading=h.blytbnfrd23h) for the client side. It should be used for client keystore, signing, csr generation, client request and more. + +# Initial Committers +- https://github.com/5sWind + +# Sponsor +- https://github.com/dexhunter or dixingxu@gmail.com - Hyperledger Fabric Python SDK maintainer. + +# Pre-existing repository +- https://github.com/5sWind/fabric-client-flutter diff --git a/labs/archived/fabric-consortium-management.md b/labs/archived/fabric-consortium-management.md new file mode 100644 index 00000000..0ef3c98f --- /dev/null +++ b/labs/archived/fabric-consortium-management.md @@ -0,0 +1,33 @@ +--- +layout: default +title: Hyperledger Fabric Consortium Management +parent: Archived Labs +--- +# Lab Name +Hyperledger Fabric Consortium Management + +# Short Description +Chaincode based application to manage Fabric Consortium memberships + +# Scope of Lab +Venders of Hyperledger Fabric network services can each offer their services to the customers, +when customers use different vendors, they often have problems to join an existing fabric +network due to lacking formally defined process and format of information exchanges. This +project started by Hyperleder Fabric Interop Working Group(https://wiki.hyperledger.org/display/fabric/Fabric+Interop+Working+Group) +has formally defined the organization join process based on the application chaincode and +user interface so that each organization admins can easily locate new org join request, +approve or disapprove the request and eventually allow a new organization quickly +become part of a running fabric network. + +# Initial Committers +Github IDs for the set of initial committers. +- https://github.com/litong01 +- https://github.com/dpdornseifer + + +# Sponsor +- https://github.com/christo4ferris + +# Pre-existing repository +- https://github.com/litong01/fabinterop + diff --git a/labs/fabric-docs-cn.md b/labs/archived/fabric-docs-cn.md similarity index 93% rename from labs/fabric-docs-cn.md rename to labs/archived/fabric-docs-cn.md index 03df7ea1..29a73b47 100644 --- a/labs/fabric-docs-cn.md +++ b/labs/archived/fabric-docs-cn.md @@ -1,3 +1,8 @@ +--- +layout: default +title: Fabric Docs CN +parent: Archived Labs +--- # Lab Name Fabric Docs CN diff --git a/labs/archived/fabric-docs-ml.md b/labs/archived/fabric-docs-ml.md new file mode 100644 index 00000000..9cd62ba1 --- /dev/null +++ b/labs/archived/fabric-docs-ml.md @@ -0,0 +1,28 @@ +--- +layout: default +title: Fabric Docs ML +parent: Archived Labs +--- +# Lab Name +Fabric Docs ML + +# Short Description +A project to translate the Fabric documentation into Malayalam. + +# Scope of Lab +The purpose of this lab is to translate the Fabric documentation into Malayalam. We will use this repository to sync with the latest English version of Hyperledger Fabric, starting with version 2.1. + +For subsequent releases, any update to source files will be translated in a new release base branch. Issues are used to track what to update in the changed docs. + +# Initial Committers + +- https://github.com/ODOWDAIBM + +# Sponsor + +- Arnaud Le Hors - lehors@us.ibm.com Hyperledger Technical Steering Committee Chair +- David Boswell - dboswell@linuxfoundation.org Hyperledger Director of Ecosystem + +# Pre-existing repository +**NOTE: Please refer to the README for additional information on existing repositories.**_ +- https://github.com/ODOWDAIBM/fabric-docs-ml diff --git a/labs/archived/fabric-lightweight-client.md b/labs/archived/fabric-lightweight-client.md new file mode 100644 index 00000000..f755e80b --- /dev/null +++ b/labs/archived/fabric-lightweight-client.md @@ -0,0 +1,47 @@ +--- +layout: default +title: Hyperledger Fabric Lightweight Client +parent: Archived Labs +--- +# Lab Name +Hyperledger Fabric Lightweight Client + +# Short Description +The project aims to enable lightweight (IoT) devices to act as a Lightweight (Hyperledger Fabric) +Client and communicate through a Proxy directly with the Hyperledger Fabric network. +The device implements and runs only part of the standard Fabric SDK, namely the functions needed +to form, hash, and sign the transaction proposals and transactions. The remaining part of the SDK +(communication with the endorsing and committing peers, etc.) is performed by a proxy. + + +The topic was presented at the Hyperledger Global Forum in December. +https://hgf18.sched.com/event/G8s7/sdk-proxy-hyperledger-fabric-identities-for-lightweight-iot-devices-gero-dittmann-jens-jelitto-ibm-research + +# Scope of Lab +The objective of the lab is to enable lightweight (IoT) devices to act as a Lightweight +(Hyperledger Fabric) Client and communicate through a Proxy directly with the Hyperledger Fabric network. +The solution allows the Lightweight Client to form and sign transactions with its preregistered +blockchain identity and to interact with the Hyperledger Fabric blockchain through a Proxy. + +This approach ensures that data (e.g. sensor data, access information, door lock state) that is +captured by the Lightweight Client will be wrapped and signed by the Lightweight Client, +thereby preventing non-authorized modification of the data, even by the Proxy that serves as the +interface between the device and the Hyperledger Fabric network. +The solution aims at extending the trust that is established with blockchain ledger technology +(e.g. irrefutability, immutability) all the way to the Lightweight Client. + +The Client side SDK Software (excluding any device specific crypto library) should be released as +C-code. This includes the transaction proposal and transaction forming steps of the Fabric SDK +functionality. The Open Source provisioning of the Client side SDK Software will enable providers +and users of lightweight (IoT) devices to establish device communication with Hyperledger Fabric +through the Proxy. + +# Initial Committers +- https://github.com/JensJelitto +- https://github.com/GeroDittmann + +# Sponsor +https://github.com/ale-linux - Alessandro Sorniotti - Research Stuff Member, Hyperledger Fabric Maintainer, IBM +https://github.com/lehors - Arnaud J Le Hors - Senior Technical Staff Member, Web and Blockchain Open Technologies, IBM + + diff --git a/labs/fabric-multi-channel-network-samples.md b/labs/archived/fabric-multi-channel-network-samples.md similarity index 92% rename from labs/fabric-multi-channel-network-samples.md rename to labs/archived/fabric-multi-channel-network-samples.md index 36f6218f..7053e79e 100644 --- a/labs/fabric-multi-channel-network-samples.md +++ b/labs/archived/fabric-multi-channel-network-samples.md @@ -1,3 +1,8 @@ +--- +layout: default +title: Fabric Multi Channel Network Samples +parent: Archived Labs +--- # Lab Name Fabric Multi Channel Network Samples diff --git a/labs/fabric-vms-provision.md b/labs/archived/fabric-vms-provision.md similarity index 95% rename from labs/fabric-vms-provision.md rename to labs/archived/fabric-vms-provision.md index 4f4f0b8b..b8787195 100644 --- a/labs/fabric-vms-provision.md +++ b/labs/archived/fabric-vms-provision.md @@ -1,3 +1,8 @@ +--- +layout: default +title: fabric-vms-provision +parent: Archived Labs +--- # Lab Name fabric-vms-provision diff --git a/labs/archived/gardener.md b/labs/archived/gardener.md new file mode 100644 index 00000000..97f3d0ac --- /dev/null +++ b/labs/archived/gardener.md @@ -0,0 +1,34 @@ +--- +layout: default +title: Gardener +parent: Archived Labs +--- +# Lab Name +Gardener + +# Short Description +An open source Blockchain Oracle implementation. https://gardeneroracle.io/ + +# Scope of Lab +Gardener already has some business value and you are welcome to [set it up yourself](https://gardener.readthedocs.io/en/latest/getting-started.html) or [test Gardener version deployed to Ropsten using our monitor](https://monitor.gardeneroracle.io/) + +Currently, Gardener is integrated with Ethereum. Integration with Hyperledger Fabric will be added soon. It also leverages Hexagonal Architecture (ports and adapters) which means that integrating with any other blockchain is easy. + +We also leverage `Intel SGX` . Currently, we [generate random values](https://gardener.readthedocs.io/en/latest/making-requests.html#random-datasource) in a secure way, leveraging Intel `SGX Remote Attestation` . In future, we are also planning to add `Intel SGX Sealing` to encrypt random data sent to blockchain. As a result, the only Third Trusted Party in entire RNG process will be `Intel`. + +More complete roadmap is available [here](https://github.com/orgs/EspeoBlockchain/projects/1) + +# Initial Committers +- https://github.com/kss-espeo +- https://github.com/starspire +- https://github.com/tcichowicz + +# Sponsor +- Dan Middleton dan.middleton@intel.com + +# Pre-existing repository +- https://github.com/EspeoBlockchain/gardener-server +- https://github.com/EspeoBlockchain/gardener-smart-contracts +- https://github.com/EspeoBlockchain/gardener-monitor +- https://github.com/EspeoBlockchain/gardener-sgx-enclave +- https://github.com/EspeoBlockchain/gardener-sgx-attestator diff --git a/labs/archived/index.md b/labs/archived/index.md new file mode 100644 index 00000000..72b3a2f4 --- /dev/null +++ b/labs/archived/index.md @@ -0,0 +1,10 @@ +--- +layout: default +title: Archived Labs +nav_order: 3 +has_children: true +has_toc: true +--- +[//]: # (SPDX-License-Identifier: CC-BY-4.0) + +# Hyperledger Archived Labs diff --git a/labs/archived/inter-carrier-settlements.md b/labs/archived/inter-carrier-settlements.md new file mode 100644 index 00000000..69946595 --- /dev/null +++ b/labs/archived/inter-carrier-settlements.md @@ -0,0 +1,27 @@ +--- +layout: default +title: Inter Carrier Settlements +parent: Archived Labs +--- +# Lab Name +Inter Carrier Settlements + +# Short Description +Telecom network operators worldwide open their networks to each other to enable their mutual customers to communicate across network boundaries. This practice, known as “Interconnect,” is being used among national and international operators for fixed, mobile, and Internet services. Network operators cross-charge each other for the interconnect services they offer each other’s customers. It is done through invoicing/billing and settlements. + +Blockchain-based Inter Carrier Settlements code base will help telecommunication service providers to settle cross-charging payments efficiently and quickly by reducing friction and removing intermediaries. + +# Scope of Lab +The scope of the lab is to develop a proof of concept (POC) and framework for a blockchain-based Inter Carrier Settlements solution in the known challenges between Telecom network operators. Hyperledger does not require public miners because of the inbuilt Orderer that handles the consensus, hence there is no concept of cryptocurrency in the permissioned blockchain making it suitable to comply with regulatory bodies across geographies. We have brought together a group of industry subject matter experts who are looking to collaboratively build out requirements and code to solve Telecom Operators problems. Engaging the Hyperledger Telecom SIG community will also provide a way to engage the business and technical sides of the Hyperledger community on a single effort. + +# Initial Committers +https://github.com/amanrubalibm + +https://github.com/viprat + +# Sponsor +Vipin Bharathan: - Identity WG chair email vipinsun@gmail.com + +# Pre-existing repository +We do not have a pre-existing repository + diff --git a/labs/milk-donor.md b/labs/archived/milk-donor.md similarity index 95% rename from labs/milk-donor.md rename to labs/archived/milk-donor.md index 9bbf5c77..77ccf203 100644 --- a/labs/milk-donor.md +++ b/labs/archived/milk-donor.md @@ -1,3 +1,8 @@ +--- +layout: default +title: Donor Milk Transparency and Traceability +parent: Archived Labs +--- # Lab Name Donor Milk Transparency and Traceability diff --git a/labs/archived/nephos.md b/labs/archived/nephos.md new file mode 100644 index 00000000..5ec60a6b --- /dev/null +++ b/labs/archived/nephos.md @@ -0,0 +1,26 @@ +--- +layout: default +title: Nephos +parent: Labs +--- +# Lab Name +Nephos + +# Short Description +Python library and Helm charts for deployment of Hyperledger Fabric to Kubernetes. + +# Scope of Lab +Deploying Fabric to Kubernetes is quite laborious and fraught with potential issues. Nephos provides helper functionality and end to end deployment capabilities for (initially) test and QA/POC deployments and (eventually) fully fledged production environments. + +# Initial Committers +- https://github.com/alexvicegrab +- https://github.com/nicolapaoli + +# Sponsor +Mark Wagner: chair of performance and scale WG & TSC member + +mwagner@redhat.com +Github: n1zyz + +# Pre-existing repository +- https://github.com/aidtechnology/nephos diff --git a/labs/archived/patient-consent.md b/labs/archived/patient-consent.md new file mode 100644 index 00000000..0b0b94b2 --- /dev/null +++ b/labs/archived/patient-consent.md @@ -0,0 +1,48 @@ +--- +layout: default +title: Patient Consent +parent: Archived Labs +--- +# Lab Name + +Patient Consent + +# Short Description + +Use Case Patient Data in Clinical Trials Automation with focus of Patient Consent + +# Scope of Lab + +We want to develop the integration of stakeholders in one platform, starting incrementally +with small fragments of the eco system; e.g. Clinical Studies; electronic informed consent +on a small enterprise blockchain/closed ledger system, healthcare chain ensuring secure +flows of sensitive data on the cloud with rules and governance on the Hyperledger Frameworks. +We aim to provide value to two main stakeholder groups: Pharma companies/Medtech with CROs and Patients. + +Use case realizations with two frameworks, Hyperledger Fabric and Sawtooth + +# Initial Committers + +- https://github.com/AlexZhovnuvaty +- https://github.com/asrikantiah +- https://github.com/decoskun +- https://github.com/srihari0033 +- https://github.com/jtwalker2000 +- https://github.com/pbuendia +- https://github.com/gzhovnuvaty +- https://github.com/kentydotcom + +# Sponsor + +- Vipin Bharathan , chair of Identity WG + +# Pre-existing repository + +There are no appropriate repos for now. + +Same solution will have two versions based on Fabric and Sawtooth accordingly. +For this needs two separate repos required like: + +https://github.com/hyperledger-labs/fabric-patient-consent + +https://github.com/hyperledger-labs/sawtooth-patient-consent diff --git a/labs/payments-performance-test-harness.md b/labs/archived/payments-performance-test-harness.md similarity index 97% rename from labs/payments-performance-test-harness.md rename to labs/archived/payments-performance-test-harness.md index bb3a8eef..0234801a 100644 --- a/labs/payments-performance-test-harness.md +++ b/labs/archived/payments-performance-test-harness.md @@ -1,3 +1,8 @@ +--- +layout: default +title: Payments Performance Test Harness +parent: Archived Labs +--- # Lab Name Payments Performance Test Harness. diff --git a/labs/sawtooth-healthcare.md b/labs/archived/sawtooth-healthcare.md similarity index 92% rename from labs/sawtooth-healthcare.md rename to labs/archived/sawtooth-healthcare.md index 13278cc8..09c13628 100644 --- a/labs/sawtooth-healthcare.md +++ b/labs/archived/sawtooth-healthcare.md @@ -1,3 +1,8 @@ +--- +layout: default +title: Sawtooth Healthcare +parent: Archived Labs +--- # Lab Name Sawtooth Healthcare. @@ -27,4 +32,4 @@ Richard Bloch , chair of Healthcare SIG Repo already exists: https://github.com/AlexZhovnuvaty/sawtooth-healthcare -README file is well documented - it covers most of functionality available in the repo. Some aspects to be covered later - noted in the file accordingly. \ No newline at end of file +README file is well documented - it covers most of functionality available in the repo. Some aspects to be covered later - noted in the file accordingly. diff --git a/labs/archived/sawtooth-poet2.md b/labs/archived/sawtooth-poet2.md new file mode 100644 index 00000000..efcebe7b --- /dev/null +++ b/labs/archived/sawtooth-poet2.md @@ -0,0 +1,29 @@ +--- +layout: default +title: Proof of Elapsed Time 2 +parent: Archived Labs +--- +# Lab Name +Proof of Elapsed Time 2 + +# Short Description +The Proof of Elapsed Time 2 (PoET2) is an experimental new protocol for Consensus based on PoET. The PoET2 Consensus method offers a solution to the Byzantine Generals Problem that utilizes a "trusted execution environment". + +The PoET2 Consensus protocol differs from current [Hyperledger Sawtooth PoET](https://github.com/hyperledger/sawtooth-poet). The new protocol is designed to work independent of secure timer and monotonic counters set inside Intel® Software Guard Extensions (SGX). The secure timers and monotonic counters rely on _SGX Platform Services_ to access these services from the system hardware. + +# Scope of Lab +The project provides a reference implementation that is based on a generic distributed ledger infrastructure (Hyperledger Sawtooth) and Intel® SGX. This will also act as a framework for enabling fair leader election algorithm (Proof of Elapsed Time) to the other distributed ledger infrastructure under the Hyperledger umbrella and/or for other blockchain infrastructure. + +# Initial Committers +- https://github.com/arsulegai +- https://github.com/raneja14 +- https://github.com/askmish +- https://github.com/rranjan3 +- https://github.com/manju956 + +# Sponsor +Dan Middleton (dan.middleton@intel.com) - a TSC member + +# Pre-existing repository +The PoET2 implementation consumes part of the existing Hyperledger Sawtooth PoET repository at https://github.com/hyperledger/sawtooth-poet. +We plan to complete the upload of the PoET2 in parts, by following the PR process. diff --git a/labs/solidity2chaincode.md b/labs/archived/solidity2chaincode.md similarity index 89% rename from labs/solidity2chaincode.md rename to labs/archived/solidity2chaincode.md index da259dad..bb4258a6 100644 --- a/labs/solidity2chaincode.md +++ b/labs/archived/solidity2chaincode.md @@ -1,3 +1,8 @@ +--- +layout: default +title: solidity2chaincode +parent: Archived Labs +--- # Lab Name solidity2chaincode diff --git a/labs/z-mix.md b/labs/archived/z-mix.md similarity index 92% rename from labs/z-mix.md rename to labs/archived/z-mix.md index 597c1883..a427e7cf 100644 --- a/labs/z-mix.md +++ b/labs/archived/z-mix.md @@ -1,3 +1,8 @@ +--- +layout: default +title: z-mix +parent: Archived Labs +--- # Lab Name z-mix @@ -28,4 +33,4 @@ Nathan George Hart Montgomery # Pre-existing repository -N/A. \ No newline at end of file +N/A. diff --git a/labs/avalon-sdk-py.md b/labs/avalon-sdk-py.md new file mode 100644 index 00000000..24ad3022 --- /dev/null +++ b/labs/avalon-sdk-py.md @@ -0,0 +1,22 @@ +--- +layout: default +title: Avalon SDK Python +parent: Labs +--- +# Lab Name +avalon-sdk-py + +# Short Description +avalon-sdk-py is the Python SDK for Hyperleder Avalon. + +# Scope of Lab +The scope of the lab is to develop the SDK separately from the main repository so as to ease the development and package release process.The package will be in accordance with the Enterprise Ethereum Alliance Off-Chain Trusted Compute Specification and could be installed by users for developing applications based on Avalon. + +# Initial Committers +- https://github.com/divyataori +- https://github.com/karthikamurthy +- https://github.com/hitarshi + +# Sponsor +- Dan Middleton (dan.middleton@intel.com) - a TSC member + diff --git a/labs/besu-operator.md b/labs/besu-operator.md new file mode 100644 index 00000000..5823d152 --- /dev/null +++ b/labs/besu-operator.md @@ -0,0 +1,39 @@ +--- +layout: default +title: Besu Operator +parent: Labs +--- +# Lab Name +Besu Operator + +# Short Description +Kubernetes operator to provide an easier way of packaging, deploying, and managing Hyperledger Besu network. + +# Scope of Lab +Deploying applications using plain Docker containers has many issues such as : + +1. No management layer on top of it + - If a container dies, nothing will restart it + - If a virtual machine crashes, no failure recovery +2. No monitoring, alerts, etc. +3. Not scalable, no easy way of spreading containers among VM’s + +A solution to all these is Kubernetes. Kubernetes (also known as k8s or “kube”) is an open source container orchestration platform that automates many of the manual processes involved in deploying, managing, and scaling containerized applications. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available. + +Kubernetes is a good fit for blockchain networks often running on multiple clouds and on-premise. Blockchain networks require different types of nodes - validators, bootnodes, and normal network nodes, so these arrangements can be easily configured for a particular cluster. + +Currently it's possible to deploy Besu on Kubernetes using Helm Charts or in kubectl. The purpose of the lab is to wrap everything under Kubernetes operator, so one can provide the operator the desired state of Besu, and let it reach & maintain that state. + +This lab directly affects the Hyperledger Besu Project. The basic operator structure & framework could be used to develop operators for other Hyperledger products. + +Details : [Lab Google Doc](https://docs.google.com/document/d/1GdBv62g8dsASe4QSESar5JZNzMq2gq5L5onEqJa2HFg/edit?usp=sharing) + +# Initial Committers +- https://github.com/Sumaid + +# Sponsor +- Mark Wagner (mwagner@redhat.com) - a TSC member + +# Pre-existing repository +- https://github.com/Sumaid/besu-kubernetes/tree/besuoperator/besu-operator +- [PegaSysEng/besu-kubernetes](https://github.com/PegaSysEng/besu-kubernetes) has different resources for deploying besu using helm, kubectl, etc. So I have been developing operator within a subdirectory of a forked branch of [PegaSysEng/besu-kubernetes](https://github.com/PegaSysEng/besu-kubernetes), upon shifting to hyperledger labs, besu operator can be its own repository. diff --git a/labs/blockchain-automation-framework.md b/labs/blockchain-automation-framework.md new file mode 100644 index 00000000..4165402e --- /dev/null +++ b/labs/blockchain-automation-framework.md @@ -0,0 +1,40 @@ +--- +layout: default +title: Blockchain Automation Framework +parent: Labs +--- +# Lab Name +Blockchain Automation Framework + +# Short Description +An automation framework for rapidly and consistently deploying production-ready DLT platforms + +# Scope of Lab +Blockchain Automation Framework delivers an automation framework for rapidly and consistently deploying production-ready DLT platforms to cloud infrastructure. + +![What is Blockchain Automation Framework?](./images/blockchain-automation-framework-overview.png "What is Blockchain Automation Framework?") + +Blockchain Automation Framework makes use of Ansible, Helm, and Kubernetes to deploy production DLT networks. Specifically, it makes use of Ansible for configuration of the network by DevOps Engineers. It then uses Helm charts as instructions for deploying the necessary components to Kubernetes. Kubernetes was chosen to allow for Blockchain Automation Framework to deploy the DLT networks to any cloud that supports Kubernetes. + +Blockchain Automation Framework initially supports Hyperledger Fabric and Corda. It is the intention to add support for Hyperledger Sawtooth, Hyperledger Indy and Quorum. Other DLT platforms can easily be added. + +## Hyperledger Fabric +For Hyperledger Fabric, we use the official Docker containers provided by that project. A number of different Ansible scripts will allow you to either create a new network (across clouds) or join an existing network. + +![Blockchain Automation Framework - Fabric](./images/blockchain-automation-framework-fabric.png "Blockchain Automation Framework for Hyperledger Fabric") + +## Corda +For Corda, we build Docker containers from the Corda source. A number of different Ansible scripts will allow you to either create a new network (across clouds) or join an existing network. + +![Blockchain Automation Framework - Corda](./images/blockchain-automation-framework-corda.png "Blockchain Automation Framework for Corda") + +# Initial Committers +- [tkuhrt](https://github.com/tkuhrt) +- [jonathan-m-hamilton](https://github.com/jonathan-m-hamilton) +- [petermetz](https://github.com/petermetz) + +# Sponsor +Mark Wagner (Github: [n1zyz](https://github.com/n1zyz), email: [mwagner@redhat.com](mailto:mwagner@redhat.com)) - TSC Member + +# Pre-existing repository +None diff --git a/labs/blockchain-carbon-accounting.md b/labs/blockchain-carbon-accounting.md new file mode 100644 index 00000000..ff6fd0a3 --- /dev/null +++ b/labs/blockchain-carbon-accounting.md @@ -0,0 +1,32 @@ +--- +layout: default +title: Lab Proposal Document +parent: Labs +--- +# Lab Name +blockchain-carbon-accounting + +# Short Description +CO2 emissions accounting calculations using Hyperledger Fabric + +# Scope of Lab +In recent years, consumers, businesses, and investors have become increasingly aware of climate change and are looking for positive action to stop it. For these initiatives to succeed, multiple parties including institutional investors, major corporations, supply chain partners, environmentalist groups, government regulators, and the general public must now work together, sometimes for the first time. This new collaboration in turn requires exchanging data and building trust across traditional boundaries. + +We are looking to use blockchain technology, such as Hyperledger Fabric, to create collaboration on CO2 emissions and climate change by creating an open source +framework for accounting for CO2 emissions. We believe Hyperledger Fabric could help automate data gathering at scale, maintain audit trails where no central +authorities exist, and build trust through transparency and open source. + +For more details, see [Carbon Accounting and Certification Working Group](https://wiki.hyperledger.org/display/CASIG/Carbon+Accounting+and+Certification+Working+Group) + +# Initial Committers +- https://github.com/opentaps +- https://github.com/jwickers +- https://github.com/rybalko +- https://github.com/udosson + +# Sponsor +- Artem Barger (BARTEM@il.ibm.com) - Hyperledger Fabric maintainer + +# Pre-existing repository +- https://github.com/opentaps/blockchain-carbon-accounting + diff --git a/labs/blockchain-integration-framework.md b/labs/blockchain-integration-framework.md new file mode 100644 index 00000000..18c8efbf --- /dev/null +++ b/labs/blockchain-integration-framework.md @@ -0,0 +1,50 @@ +--- +layout: default +title: Blockchain Integration Framework +parent: Labs +--- +# Lab Name +Blockchain Integration Framework + +# Short Description +A new approach to the blockchain interoperability problem + +# Scope of Lab +Define a communication model to enable permissioned blockchain ecosystems to exchange any on-chain data or custom assets (fungible/non fungible) independent of the platform (e.g. Hyperledger Fabric, Quorum, etc.) without a middleman. This lab project will implement an interoperability validator network, which is an overlay network of hand-picked actors that will validate and sign data before sharing. + +## Blockchain Interoperability Space +If you look at the Blockchain Interoperability space, several different approaches have been proposed. Among the existing contributions, we identified two main ways to solve the interoperability problem. The “connector approach” focuses on building transfer protocols for non-trusted blockchain gateways (e.g. Interledger). The “blockchain of blockchains approach” proposes a central blockchain “hub” to connect multiple blockchain “zones” together (e.g. Cosmos). + +This lab project proposes an alternative to these models, and it is designed specifically for permissioned blockchain networks + + +## Design Principles +1. Direct transfer between requestors (from different ledgers) +1. Pluggable model and components +1. Flexible requirements and data protocols +1. Leverage pre-existing roles + +## How Does It Work? +Blockchain Integration Framework introduces an “interoperability validator” overlay network for each of the interoperable blockchains. Interoperability validators are known or broadly discoverable by the ecosystem and are typically participants already taking part in the governance or consensus. Interoperability validators will collectively handle export requests from local nodes by verifying against their version of the ledger (steps 1 to 3). Each request is answered by a (configurable) minimum quorum of validator signatures necessary or rejected as fast as possible (steps 4 and 5). The network can continue working even if some of the validators are down, or not participating, but assuming the minimum quorum can be guaranteed. Messages certified by a distributed ledger’s transfer validators can be delivered by any secure off-chain communication system (step 6). A proof coming from a foreign distributed ledger can be verified against the public keys of the transfer validators of that foreign distributed ledger either locally by the recipient or using an on-chain logic –- typically smart-contracts (step 7 and 8) + +![High-Level Workflow](./images/blockchain-integration-framework-high-level-workflow.png "Interoperability between two different DLTs") + +## Future Work +* Integrate Hyperledger Indy to manage the interoperability validator identities across the different blockchains +* Implement more complex interoperability use cases. (e.g. atomic swap or asset synchronization) +* Test scalability and performance +* Integrate more platforms (e.g. Hyperledger Sawtooth, Digital Asset, etc.) +* Implement confidential communication within the overlay network. The validator network should match the confidentiality setup of the local ledger +* Replace current signature scheme by BLS to optimize the proof size (Hyperledger Ursa is a lead) + +# Initial Committers +- [tkuhrt](https://github.com/tkuhrt) +- [jonathan-m-hamilton](https://github.com/jonathan-m-hamilton) +- [petermetz](https://github.com/petermetz) +- [hugo-borne](https://github.com/hugo-borne) + +# Sponsor +[Hart Montgomery](mailto:hmontgomery@us.fujitsu.com) ([hartm](https://github.com/hartm)) - TSC member + +# Pre-existing repository +None diff --git a/labs/blockchain-verifier.md b/labs/blockchain-verifier.md new file mode 100644 index 00000000..ece90079 --- /dev/null +++ b/labs/blockchain-verifier.md @@ -0,0 +1,30 @@ +--- +layout: default +title: Blockchain Verifier +parent: Labs +--- +# Lab Name +Blockchain Verifier + +# Short Description +A tool to check and verify the integrity of ledgers and the correctness of smart contracts + +# Scope of Lab +The goal of Blockchain Verifier is to provide a tool that help auditing the blockchain-based systems. +Audits will require checks on the systems and their data to ensure that the systems are running properly. + +This tool performs basic verification on the blocks and transactions stored in the blockchain nodes, for example, Hyperledger Fabric peers, and also allows users to perform their own application-level checks on the transactions and states. +Its goal is to provide evidences for data integrity in blockchain-based systems to get ready for auditing, +and to provide framework to perform post-checks for the transactions and states. + +Details: https://docs.google.com/presentation/d/1H0jtDCYsWf-AZdoB114cpLmv-hOP1ulGC3LvqIOP6xA/edit?usp=sharing + +# Initial Committers +- https://github.com/shimos +- https://github.com/satota2 + +# Sponsor +Hart Montgomery (TSC Member, Ursa Maintainer) + +# Pre-existing repository +- https://github.com/shimos/bcverifier diff --git a/labs/business-partner-agent.md b/labs/business-partner-agent.md new file mode 100644 index 00000000..98564dcc --- /dev/null +++ b/labs/business-partner-agent.md @@ -0,0 +1,23 @@ +--- +layout: default +title: Business Partner Agent +parent: Labs +--- +# Lab Name +Business Partner Agent + +# Short Description +The Business Partner Agent allows to manage and exchange master data between organizations. + +# Scope of Lab +The Business Partner Agent is a domain-specific controller and extension for Aries Cloud Agent Python. It allows to manage and to publish public organizational master data tied to a decentralized identifier (DID) as well as to share and to request business partner specific master data and certifications. + +The project consists of a backend written in Java that provides domain-specific APIs for integration in enterprise systems, as well as a simple reference user interface. + +# Initial Committers +- https://github.com/etschelp +- https://github.com/frank-bee +- https://github.com/domwoe + +# Sponsor +- https://github.com/swcurran Co-Chair of the Aries Working Group diff --git a/labs/byzantine-config.md b/labs/byzantine-config.md new file mode 100644 index 00000000..e3a4f1c4 --- /dev/null +++ b/labs/byzantine-config.md @@ -0,0 +1,38 @@ +--- +layout: default +title: Byzantine-Config +parent: Labs +--- +# Lab Name +_Byzantine-Config_ + +# Short Description +_GUI based executable application that allows Hyperledger Fabric (HLF) configuration blocks to be viewed and updated transactions created for channel configuration, adding new organizations, and generating crypto material._ + +# Scope of Lab +_Updating a Hyperledger Fabric network configuration and adding/updating organizations requires a configuration block to be defined, signed and then executed as an update config transaction. Doing this manually with CLI tools can be complex and cumbersome. + +Byantine-config provides an executable GUI application that greatly simplifies updating and adding Organizations. It essentially automates the manual process using the CLI tools crytpogen and configtxlator. Users can connect to a HLF network, current configuration will be displayed, which can then be edited or new organziatons added. Also, crypto material for new organizations will be generated. A correctly formated update transaction protocol buffer file, will be produce that can then be executed as an update transaction in order to update the network._ + +_See [https://byzantine-tools.com](https://byzantine-tools.com) for more info._ + + +# Initial Committers +_Enter the Github IDs for the set of initial committers._ +- https://github.com/dpitt + + + +# Sponsor +- Arnaud Le Hors lehors@us.ibm.com + + +# Pre-existing repository + + **NOTE: Please refer to the README for additional information on existing repositories.**_ + + We will compress and move to Hyperledger Lab repositories. + +- https://github.com/in-the-keyhole/byzantine-config Electron built binaries +- https://github.com/in-the-keyhole/byzantine-config-source Source code + diff --git a/labs/citizens-pulse.md b/labs/citizens-pulse.md new file mode 100644 index 00000000..cf946e10 --- /dev/null +++ b/labs/citizens-pulse.md @@ -0,0 +1,72 @@ +--- +layout: default +title: Citizens Pulse +parent: Labs +--- +# Lab Name +Citizens Pulse + +# Short Description + +A fully distributed platform for state/city councils to know, share and feel the interests, pulse of citizens on their decisions. This is implemented with Hyperledger Fabric. + +# Scope of Lab + +## Introduction and Problem Statement + +Many city councils want to know the voice of citizens whenever a change is implemented. Usually when a city approves a plan, there is always a small minority affected/opposing it. The city always wants feedback from the citizens on their decisions and they never have a proper channel to do so. Though the usage of online forums are common in developed and developing countries, it is usually challenging to get public agree on a common platform as the platforms are controlled by individual companies, government bodies etc. Also, public is worried about their privacy and safety of the platform. Further, there are also situations like some NGOs who host the platform have financial challenges and hence forced to discontinue their services. + +## Proposed Solution + +In a distributed platform like Hyperledger Fabric, its possible to decentralize the ownership. This gets to a situation where the platform is by the people and for the people. Also, due to the immutable nature of Hyperledger Fabric, there is one source of truth existing in the system. The endorsement policies handle the privacy part and Certificate-Authorities provide safe and secure platform. When the Hyperledger Fabric components are shared among the NGOs/government/Universities/private-bodies, the ownership is distributed. + +## Architecture: + +### Orderers and Peers: + +Orderers and Peers are distributed and hosted across government, NGOs and private bodies. + +### Endorsement policy: + +Combination of Private data implicit collections/Key-level endorsement policies are implemented. + +### Overview + +![alt text](./images/citizens-pulse/citizens-pulse-architecture.png) + +## High-level workflow: + +1. Automatic enrollment with bank identification, some other reliable systems through CA or other means +2. Add/modify/delete opinions and votes. Note that after the voting/poll has ended, the results get public and saved in blockchain. + +## Demo + +## Installations & Bringing the Project Up + +[![asciicast](https://asciinema.org/a/nqKRe8LVBCG94SVoNy18RyiGy.svg)](https://asciinema.org/a/nqKRe8LVBCG94SVoNy18RyiGy) + +## Web User Interface + +![alt text](./images/citizens-pulse/citizens-pulse-web-demo.gif) + +## Mobile Interface + + + +# Initial Committers + +- [Hritik Gupta](https://github.com/hritikgupta) +- [Anoop Vijayan Maniankara](https://github.com/maniankara) + +# Sponsor + +[Vipin Bharathan](vipinsun@gmail.com) - Chair of the Identity Working Group + +# Pre-existing repository + +- [Hyperledger Citizens Pulse](https://github.com/maniankara/hyperledger-citizens-pulse) - **Private repository** + +## This is an extention project from Hyperledger Mentorship Program 2020. + +- Mentorship Project proposal - https://wiki.hyperledger.org/pages/viewpage.action?pageId=29036032 +- Mentorship Project plan - https://wiki.hyperledger.org/pages/viewpage.action?pageId=31202438 diff --git a/labs/convector-framework.md b/labs/convector-framework.md new file mode 100644 index 00000000..02fae471 --- /dev/null +++ b/labs/convector-framework.md @@ -0,0 +1,31 @@ +--- +layout: default +title: Convector Framework +parent: Labs +--- +# Lab Name +Convector Framework + +# Short Description +Convector is a Model/Controller fullstack JavaScript framework to improve and speed up the development experience of clean, scalable and robust Smart Contract Systems. The developer focuses on the EDApps (Enterprise Decentralized Applications) and contractual relationships of participants rather than in lower level blockchain details. + +It currently supports Hyperledger Fabric and provides tools to build fullstack TypeScript Smart Contract Systems made up of native JavaScript chaincodes, backend layers (Node.JS), and front end modules (such as AngularJS and React). + +Rather than creating new models for chaincode development, it improves the existing development lifecycle on top of Fabric's models, NodeJS backends, and front end libraries and frameworks by abstracting logic into Models and Controllers, as well providing useful tools for the developer such as local development blockchain network creation, and testing frameworks. The Frameworks also comes with pre built storage and adapter layers to support the basic flow of communication from front end to back end to blockchain, as well CouchDB querying. + +Its modular approach aims to be make Convector a cross blockchain framework, making it possible to plug in third party and own made data layers (blockchain, http libraries, etc) and adapters (Fabric's SDK, CouchDB drivers). + +# Scope of Lab +Convector Framework represents iterations of native JavaScript chaincode and smart contract systems development. Developers wanting to keep control of their code can find an easier way to bootstrap smart contract systems and integrate them to the rest of their team's development lifecycle. There are no extra components included, Convector-made code will be translated and transpiled (from TypeScript) into native and easy to explore JavaScript code that executes within Hyperledger Fabric's chaincode runtime, its resulting code can also imported into existing NodeJS backends or front end libraries and frameworks, without disrupting existing logic or modules. + +We initially created Convector because we wanted a production ready framework for fullstack JavaScript development, without changing Fabric's development model. + +# Initial Committers +- https://github.com/diestrin +- https://github.com/walmon + +# Sponsor +- https://github.com/lehors - Arnaud J Le Hors - Senior Technical Staff Member, Web and Blockchain Open Technologies, IBM + +# Pre-existing repository +- https://github.com/worldsibu/convector diff --git a/labs/dancap.md b/labs/dancap.md new file mode 100644 index 00000000..e070ac5a --- /dev/null +++ b/labs/dancap.md @@ -0,0 +1,32 @@ +--- +layout: default +title: dancap +parent: Labs +--- +# Lab Name +dancap + +# Short Description +A lab for exploring trusted execution attestation API and deployment options for Hyperledger Avalon. + +# Scope of Lab +This lab faciltates exploration of attestation options for Hyperledger Avalon and projects with +similar requirements in Hyperledger such as Fabric Private Chaincode and the PDO lab. +The lab aspires to two main goals and several related goals. There are several API / SDK options +available to TEE projects. We want to find the best fit for Avalon. Second these APIs have +infrastructure dependencies that may vary across deployment scenaries. This lab aims to find the +the most portable deployment patterns. + +The less formal goals for the lab include creating clear examples of the APIs and possibly some +utilities to facilitate testing for the availability of features in a hosted environment and or +utilities for ease of deployment into various environments. + +# Initial Committers +- https://github.com/dcmiddle + +# Sponsor +- https://github.com/EugeneYYY - Hyperledger Avalon Maintainer + +# Pre-existing repository +- https://github.com/dcmiddle/dancap + diff --git a/labs/eThaler.md b/labs/eThaler.md new file mode 100644 index 00000000..fd335f5a --- /dev/null +++ b/labs/eThaler.md @@ -0,0 +1,33 @@ +--- +layout: default +title: eThaler +parent: Labs +--- +# Lab Name +eThaler + +# Short Description +Model a sample CBDC in TTF and implement in Besu + +# Scope of Lab + +Model a sample CBDC (eThaler) in TTF (Token Taxonomy Framework) and implement as EIP 1155 or EIP 20 in Besu. A fiat token will remove one of the major hurdles for any transfer of value network, a fundamental requirement for frictionless digital capital markets. The initial plan is to come out with a PoC as soon as possible (within 6 weeks). Implement eThaler as a wholesale token. Further work may be needed to transition into a retail token. Gap analysis and a design review will be conducted before wholescale work starts, so the design can transition easily into a retail token. + + +Use the composable TTF token model and produce a eThaler definition in JSON. +Use the eThaler definition to create all artifacts using available TTF tooling. +Implement the interfaces and other properties in Besu using an implementation standard of EIP 1155 or EIP 20. + +# Initial Committers + +https://github.com/petermetz - Peter Somogyvari Accenture +https://github.com/kelly-cotton - Kelly Cotton Educator +https://github.com/vipinsun - dlt.nyc +https://github.com/mmani99 - Mani Pillai Swapshub + +# Sponsor + +- https://github.com/vipinsun - Chair of the Identity workgroup + +# Pre-existing repository +Not Applicable diff --git a/labs/easydoser.md b/labs/easydoser.md new file mode 100644 index 00000000..96fc0f37 --- /dev/null +++ b/labs/easydoser.md @@ -0,0 +1,48 @@ +--- +layout: default +title: EasyDoser +parent: Labs +--- +# Lab Name +EasyDoser + +# Short Description +Ease endorsement operations for Hyperledger Fabric. In other words, provide easy ways to read/modify endorsement policies for Hyperledger Fabric systems. + +# Scope of Lab +Endorsement policy controls the approval of a proposal to be executed at various granular levels. +In other words, this is the primary entity which is validated before a transaction is committed. +Endorsement policy can operate at two different granularities: + +_Namespace level_: They can be set for the whole namespace. +This is the default approach in which endorsement policies are specified in the chaincode definition, which is agreed to by channel members and then committed to a channel + +_Individual key level_: They can be set for individual state keys called private data collections. You can also specify an endorsement policy at the private data collection level, which would override the chaincode level endorsement policy for any keys in the private data collection. +This would further restrict which organizations can write to a private data collection. + +## EasyDoser architecture +![alt text](https://cacoo.com/diagrams/3M6r1235YWmvGCyb-1ABD5.png) + +## Start EasyDoser +[![asciicast](https://asciinema.org/a/355175.svg)](https://asciinema.org/a/355175) + +## EasyDoser frontend + + +# Initial Committers + - [Abhimanyu Shekhawat](https://github.com/Abhimanyu121) + - [Anoop Vijayan Maniankara](https://github.com/maniankara) + +# Future work +Also support other projects under Hyperledger projects umbrella + +# Sponsor +[Vipin Bharathan](vipinsun@gmail.com) - Chair of the Identity Working Group + +# Pre-existing repository + - [EasyDoser](https://github.com/maniankara/hyperledger-easydoser) - **Private repository** + +## More details +This is an extention project from hyperledger mentorship program 2020. +* Mentorship Project proposal - https://wiki.hyperledger.org/pages/viewpage.action?pageId=29035323 +* Mentorship Project plan - https://wiki.hyperledger.org/display/INTERN/Project+Plan+and+Proposal diff --git a/labs/fabex.md b/labs/fabex.md new file mode 100644 index 00000000..8d73b050 --- /dev/null +++ b/labs/fabex.md @@ -0,0 +1,44 @@ +--- +layout: default +title: Fabex +parent: Labs +--- +# Lab Name +Fabex + +# Short Description +The aim of this tool is to provide microservice which augments and index the ledger of Hyperledger Fabric and to provide additional set of complex queries APIs to extract provenance information out of the ledger. + +# Scope of Lab +Fabex exposes set of GRPC APIs to execute provenance queries over ledger data, moreover it provides an abstract DB interface allowing to integrate different DB engines, whereas out of box supported: + + - MongoDB + + - CassandraDB + +DB storage interface: + +``` +type Manager interface { + Connect() error + Insert(Tx) error + QueryBlockByHash(string) ([]Tx, error) + GetByTxId(string) ([]Tx, error) + GetByBlocknum(uint64) ([]Tx, error) + GetBlockInfoByPayload(string) ([]Tx, error) + QueryAll() ([]Tx, error) + GetLastEntry() (Tx, error) +} +``` + +This tool could be integrated and deployed as a microservice, at the same time could be compiled into stand-alone command line tool. + +# Initial Committers +- https://github.com/vadiminshakov +- https://github.com/Mikelle + +# Sponsor +- https://github.com/C0rWin - HLF maintainer + +# Pre-existing repository +- https://github.com/vadiminshakov/fabex diff --git a/labs/fabric-block-archiving.md b/labs/fabric-block-archiving.md new file mode 100644 index 00000000..42a735ef --- /dev/null +++ b/labs/fabric-block-archiving.md @@ -0,0 +1,33 @@ +--- +layout: default +title: Hyperledger Fabric Block Archiving +parent: Labs +--- +# Lab Name +Hyperledger Fabric Block Archiving + +# Short Description + +* Reduce the total amount of storage space required for an organisation to operate a Hyperledger Fabric network by archiving block data into repository. +* For organisations to operate a Hyperledger Fabric network with low resourced nodes such as a IoT edge devices. + +# Scope of Lab + +This feature is aimed primarily at Hyperledger Fabric network administrators who have been running their own network and have resource shortage problems. When considering the long term operation of service which makes use of Hyperledger Fabric as an underlying blockchain, Scalability is one of the most important factors for future business expansion while resource planning is critical in determining future capability. Calculating the required disk space is one of the key challenges faced by our partners. In the Blockchain community, there are a lot options to address this issue. In Bitcoin, Lightweight Node has already been introduced as an option for non-miners which download just the block headers so as to reduce disk space usage. Ethereum, the community has defined the Light client protocol for almost the same purpose as bitcoin's one. While in Hyperledger Fabric, there is a feature request for this issue as well. Unless this kind of feature is available, the business stakeholders will not be able to start their service in production on a large scale. This is one of the main reasons why most of the business stakeholders have considered making use of Blockchain as a Service (BaaS) managed by the cloud service providers despite it incurring more costs. + +In our proposal, Hyperledger Fabric Block Archiving, data is handled in the unit of a certain amount of chunk of blocks called blockfiles. By default in Hyperledger Fabric, each peer node in an organisation needs to store block data into the blockfiles one by one from the genesis block to the latest one. So they have the exact same series of blockfiles through all peer nodes which are connecting to the same channel. The Block Archiving uses this characteristic to realize our concept. This functionality makes redundant the notion that every peer node is required to retain all blockfiles in the local file system indefinitely. And more importantly this preserves the Blockchain characteristics even after archiving the blockfiles. By enabling the block archiving feature not all peer nodes need to keep maintaining all the blockfiles. Simply, even devices which don't have much disk space could be a peer node of the blockchain network. For example, in an IoT system, you would be able to construct a blockchain network using edge devices with attached sensors in order to store sensor data and track information. This feature will make the target areas of the blockchain system broader than ever. Therefore The Block Archiving provides new possibilities for Blockchain applications. + +Please refer to [the technical overview](https://github.com/nekia/fabric-block-archiving/blob/techoverview/BlockVault%20-%20Technical%20Overview.pdf) for more detail. + + +# Initial Committers +- [anand-jpa](https://github.com/anand-jpa) - Anand Konchery +- [chrism28](https://github.com/chrism28) - Chris Murphy +- [nekia](https://github.com/nekia) - Atsushi Neki + +# Sponsors +- https://github.com/hartm - Member of Hyperledger TSC + +# Pre-existing Repository +- https://github.com/nekia/fabric-block-archiving + diff --git a/labs/fabric-chaincode-haskell.md b/labs/fabric-chaincode-haskell.md new file mode 100644 index 00000000..2c78a52d --- /dev/null +++ b/labs/fabric-chaincode-haskell.md @@ -0,0 +1,35 @@ +--- +layout: default +title: Hyperledger Fabric Haskell Chaincode +parent: Labs +--- +# Lab Name +Hyperledger Fabric Haskell Chaincode + +# Short Description + +`fabric-chaincode-haskell` is a Haskell shim for Hyperledger Fabric to allow the authoring of smart contracts in Haskell. + +As chaincode often contains business and security critical code, it is important that the code is correct. Implications for contracts containing bugs and exploits can lead to attacks like the DAO and Parity attacks on the Ethereum blockchain, which can have significant economic impacts. Functionally pure and strongly typed languages like Haskell provide a much greater degree of confidence in correctness. `fabric-chaincode-haskell` allows the authorship of chaincode that gives a higher confidence of correctness. + +Allowing chaincode to be authored in Haskell also opens up the world of blockchain to the large and enthusiastic community of Haskell developers. + +# Scope of Lab + +This lab will focus on providing support for developers to write chaincode in Haskell. This will be done through a native Haskell Shim. We aim to provide feature parity with the existing official languages for Fabric - Go, Java and JavaScript. + +This lab will also experiment with formal verification of the shim as well as user-defined chaincode. This work was presented at [Hyperledger Global Forum 2020](https://sched.co/ZdFh) and a [recording of the talk is now available](https://www.youtube.com/watch?v=Y-vMHbH4vVI). + +# Initial Committers + +Github IDs for the initial committers. +- [nwaywood](https://github.com/nwaywood) - Nick Waywood +- [airvin](https://github.com/airvin) - Allison Irvin + +# Sponsor + +- Arnaud Le Hors (lehors@us.ibm.com) - Chair of Hyperledger TSC + +# Pre-existing repository + +- https://github.com/nwaywood/fabric-chaincode-haskell diff --git a/labs/fabric-chaincode-wasm.md b/labs/fabric-chaincode-wasm.md new file mode 100644 index 00000000..70aafad2 --- /dev/null +++ b/labs/fabric-chaincode-wasm.md @@ -0,0 +1,31 @@ +--- +layout: default +title: Hyperledger Fabric WebAssembly chaincode +parent: Labs +--- +# Lab Name +Hyperledger Fabric WebAssembly chaincode + +# Short Description +The project aims to integrate WebAssembly in Hyperledger Fabric, which will give chaincode developers a wider variety of languages to choose from when constructing their smart contracts. + - Enables user to write WASM function as smart contracts + +# Scope of Lab +This lab will be focused on the integration layer that is required to enable execution of WebAssembly functions in Hyperledger Fabric Smart Contracts. The main piece of the integration will be the WASM chaincode (WASMCC), which will be compatible with the Hyperledger Go Chaincode. + + +More information [here](https://wiki.hyperledger.org/display/INTERN/Running+Web+Assembly+Smart+Contracts+in+Fabric) +# Initial Committers +Github IDs for the set of initial committers. +- [MHBauer](https://github.com/MHBauer) - Morgan Bauer +- [guoger](https://github.com/guoger) - Jay Guo +- [swetharepakula](https://github.com/swetharepakula) - Swetha Repakula +- [kleash](https://github.com/kleash) - Shubham Aggarwal + +# Sponsors +- https://github.com/MHBauer - Maintainer +- https://github.com/guoger - Maintainer +- https://github.com/swetharepakula - Member of Hyperledger TSC + +# Pre-existing Repository +- https://github.com/kleash/fabric-chaincode-wasm diff --git a/labs/fabric-secure-chaincode.md b/labs/fabric-private-chaincode.md similarity index 86% rename from labs/fabric-secure-chaincode.md rename to labs/fabric-private-chaincode.md index ff2b055b..598f4c56 100644 --- a/labs/fabric-secure-chaincode.md +++ b/labs/fabric-private-chaincode.md @@ -1,8 +1,13 @@ +--- +layout: default +title: Hyperledger Fabric Private Chaincode +parent: Labs +--- # Lab Name -Hyperledger Fabric Secure Chaincode Execution +Hyperledger Fabric Private Chaincode # Short Description -This lab enables Secure Chaincode Execution using Intel SGX for +This lab enables the execution of chaincodes using Intel SGX for Hyperledger Fabric. The transparency and resilience gained from blockchain protocols ensure the @@ -23,7 +28,7 @@ within an enclave. Furthermore, Fabric extensions for chaincode enclave registration and transaction verification are provided. # Scope of Lab -This lab proposes an architecture to enable Secure Chaincode Execution +This lab proposes an architecture to enable Private Chaincode using Intel SGX for Hyperledger Fabric. We provide an initial proof-of-concept implementation of the proposed architecture. The main goal of this lab is to discuss and refine the proposed architecture involving diff --git a/labs/fabric-server-node.md b/labs/fabric-server-node.md new file mode 100644 index 00000000..bd596605 --- /dev/null +++ b/labs/fabric-server-node.md @@ -0,0 +1,23 @@ +--- +layout: default +title: fabric-server-node +parent: Labs +--- +# Lab Name +fabric-server-node + +# Short Description +Hyperledger Fabric REST server built with node and express. + +# Scope of Lab +The lab focuses on offline signing scheme as the backend server of Hyperledger Fabric that serves over the fabric-client-flutter's request and sends the request to Hyperledger Fabric network. The implementation of fabric-server-node is based on Hyperledger Fabric SDK for Node.js. +The lab implements [[FABN-895] Fabric SDK client signing](https://docs.google.com/document/d/1gj5XB7yS-pfjpvZEUQh5lBGSIE6aQemu8A69tAYQtTc/edit#heading=h.blytbnfrd23h) for the server side. It should be used for interacting with Hyperledger Fabric network, handling client requests and sending them to Hyperledger Fabric network, returning the responses to client, and more. + +# Initial Committers +- https://github.com/5sWind + +# Sponsor +- https://github.com/dexhunter or dixingxu@gmail.com - Hyperledger Fabric Python SDK maintainer. + +# Pre-existing repository +- https://github.com/5sWind/fabric-server-node diff --git a/labs/hyperledger-community-management-tools.md b/labs/hyperledger-community-management-tools.md index 23ec3469..37c7a5d6 100644 --- a/labs/hyperledger-community-management-tools.md +++ b/labs/hyperledger-community-management-tools.md @@ -1,3 +1,8 @@ +--- +layout: default +title: Hyperledger Community Management Tools +parent: Labs +--- # Lab Name Hyperledger Community Management Tools diff --git a/labs/hyperledger-fabric-based-access-control.md b/labs/hyperledger-fabric-based-access-control.md new file mode 100644 index 00000000..a996f6d8 --- /dev/null +++ b/labs/hyperledger-fabric-based-access-control.md @@ -0,0 +1,30 @@ +--- +layout: default +title: Hyperledger Fabric Based Access Control +parent: Labs +--- +# Lab Name +Hyperledger Fabric Based Access Control + +# Short Description +A Hyperledger Fabric Based Access Control system to mediate access control flow from centralized applications. + +# Scope of Lab +Access control systems exist to protect resources from unauthorized accesses. +Auditability plays an important role and has its importance increased when it comes to public and private administration, and can be leveraged within a blockchain-based access control system. +The goal of this project is to develop a Hyperledger Fabric Based Access Control system, to mediate access control requests from a centralized system. +This mediation aims to discourage unauthorized accesses to confidential information while decentralizing trust when it comes to access control. +This work will be focused on the implementation of a Proof-Of-Concept and effective techniques to its provisioning and deployment. + +More information [here](https://wiki.hyperledger.org/display/INTERN/Hyperledger+Fabric+Based+Access+Control) +# Initial Committers +Github IDs for the set of initial committers. +- [RafaelAPB](https://github.com/RafaelAPB/) - Rafael Belchior +- [ruychi](https://github.com/ruychi) - Rui Cruz +- [rouhani](https://github.com/sara-rouhani) - Sara Rouhani + +# Sponsor +https://github.com/ryjones + +# Pre-existing Repository + diff --git a/labs/images/blockchain-automation-framework-corda.png b/labs/images/blockchain-automation-framework-corda.png new file mode 100644 index 00000000..be280955 Binary files /dev/null and b/labs/images/blockchain-automation-framework-corda.png differ diff --git a/labs/images/blockchain-automation-framework-fabric.png b/labs/images/blockchain-automation-framework-fabric.png new file mode 100644 index 00000000..36732d80 Binary files /dev/null and b/labs/images/blockchain-automation-framework-fabric.png differ diff --git a/labs/images/blockchain-automation-framework-overview.png b/labs/images/blockchain-automation-framework-overview.png new file mode 100644 index 00000000..08987500 Binary files /dev/null and b/labs/images/blockchain-automation-framework-overview.png differ diff --git a/labs/images/blockchain-integration-framework-high-level-workflow.png b/labs/images/blockchain-integration-framework-high-level-workflow.png new file mode 100644 index 00000000..ca7c79a0 Binary files /dev/null and b/labs/images/blockchain-integration-framework-high-level-workflow.png differ diff --git a/labs/images/citizens-pulse/citizens-pulse-architecture.png b/labs/images/citizens-pulse/citizens-pulse-architecture.png new file mode 100644 index 00000000..789a0e22 Binary files /dev/null and b/labs/images/citizens-pulse/citizens-pulse-architecture.png differ diff --git a/labs/images/citizens-pulse/citizens-pulse-mob1.png b/labs/images/citizens-pulse/citizens-pulse-mob1.png new file mode 100644 index 00000000..e1f3cb70 Binary files /dev/null and b/labs/images/citizens-pulse/citizens-pulse-mob1.png differ diff --git a/labs/images/citizens-pulse/citizens-pulse-mob2.png b/labs/images/citizens-pulse/citizens-pulse-mob2.png new file mode 100644 index 00000000..51eb89d8 Binary files /dev/null and b/labs/images/citizens-pulse/citizens-pulse-mob2.png differ diff --git a/labs/images/citizens-pulse/citizens-pulse-mob3.png b/labs/images/citizens-pulse/citizens-pulse-mob3.png new file mode 100644 index 00000000..08f492d7 Binary files /dev/null and b/labs/images/citizens-pulse/citizens-pulse-mob3.png differ diff --git a/labs/images/citizens-pulse/citizens-pulse-web-demo.gif b/labs/images/citizens-pulse/citizens-pulse-web-demo.gif new file mode 100644 index 00000000..27825bbc Binary files /dev/null and b/labs/images/citizens-pulse/citizens-pulse-web-demo.gif differ diff --git a/labs/keyhole-fabric-api-gateway.md b/labs/keyhole-fabric-api-gateway.md new file mode 100644 index 00000000..d1a6cb0b --- /dev/null +++ b/labs/keyhole-fabric-api-gateway.md @@ -0,0 +1,28 @@ +--- +layout: default +title: Keyhole Fabric API Gateway +parent: Labs +--- +# Lab Name +Keyhole Fabric API Gateway + +# Short Description +Enables client access to Hyperledger Fabric blockchain network through RESTful API's. + +# Scope of Lab +Currently client applications can access HLF network Peers using the GoLang, Node, or Java SDK's. This project provides a generalized API gateway that will allow users to query, execute transactions along with querying block storage and configuration using RESTful API's. + +This project provides a ready to use solution that developers would otherwise have to implement when trying to provide web clients access to a HLF network. + +# Initial Committers +Enter the Github IDs for the set of initial committers. +- https://github.com/dpitt +- https://github.com/jaimeniswonger + + +# Sponsor + - https://github.com/vip@dlt.nyc - Chair of Identity WG + +# Pre-existing repository +If you currently have a Github repository that you wish to transfer to the Hyperledger Labs organization, please provide a link here. **NOTE: Please refer to the README for additional information on existing repositories.** +- https://github.com/in-the-keyhole/keyhole-fabric-api-gateway diff --git a/labs/minbft.md b/labs/minbft.md index a906dad0..22a1b79e 100644 --- a/labs/minbft.md +++ b/labs/minbft.md @@ -1,5 +1,9 @@ +--- +layout: default +title: MinBFT +parent: Labs +--- # Lab Name - MinBFT # Short Description diff --git a/labs/minifabric.md b/labs/minifabric.md new file mode 100644 index 00000000..5ab66fc6 --- /dev/null +++ b/labs/minifabric.md @@ -0,0 +1,42 @@ +--- +layout: default +title: Minifabric +parent: Labs +--- +# Lab Name +Minifabric + +# Short Description +Minifabric is a deployment, development, administration and learning tool for people who +would like to experience Hyperledger Fabric as a developer, administrator or Fabric deployer + +# Scope of Lab +Minifabric is designed to ease the pain of anyone who wants to try to kick start Hyperledger Fabric. It only requires Docker and works on Windows 10, Linux and OS X. It sets up a Fabric network using a single command. Once the Fabric network is up and running, one can use various Minifabric provided commands to work with chaincode, channels, and applications written for Fabric. + +Minifabric is small but it allows you to experience the full capabilities of Hyperledger Fabric. + +1. Fabric network setup and expansion such as adding new organizations +2. Channel query, create, join, channel update +3. Chaincode install, approve, instantiation, invoke, query and private data collection +4. Ledger height and block query +5. Hyperledger Explorer support and Caliper test integration +6. Node monitoring, health check and discovery +7. Completely containerized everything, never pollute your environment + + +# Initial Committers +- https://github.com/litong01 +- https://github.com/ryjones +- https://github.com/lehors +- https://github.com/aguel +- https://github.com/makkasu +- https://github.com/poweruserincary +- https://github.com/ChrisSargent + +# Sponsor + +- https://github.com/lehors + +# Pre-existing repository + +https://github.com/litong01/minifabric diff --git a/labs/modern-pharmacy-management.md b/labs/modern-pharmacy-management.md new file mode 100644 index 00000000..9b2ddeac --- /dev/null +++ b/labs/modern-pharmacy-management.md @@ -0,0 +1,25 @@ +--- +layout: default +title: Modern Pharmacy Management +parent: Labs +--- +# Lab Name +Modern Pharmacy Management + +# Short Description +This Lab will focus on leveraging blockchain to transform and modernize prescriptions management by enabling flexibility and managing fraud. + +# Scope of Lab +The scope of the lab is to develop a proof of concept (POC) for a blockchain-based presecription management solution that covers general use case in healthcare around prescriptions and its fullfilment. +This repo will have a end user application and the blockchain built using Hyperledger Fabric. The end user application using Hyperledger Composer will be created to showcase the use of POC created. + +# Initial Committers +- https://github.com/dewanz +- https://github.com/kentydotcom +- Anyone is welcome to join. + +# Sponsor +Arnaud J Le Hors lehors@us.ibm.com + +# Pre-existing repository +- None diff --git a/labs/perun.md b/labs/perun.md new file mode 100644 index 00000000..6fe09cde --- /dev/null +++ b/labs/perun.md @@ -0,0 +1,66 @@ +--- +layout: default +title: Perun +parent: Labs +--- +# Lab Name +Perun + +# Short Description + +Blockchain-agnostic State Channels framework. + +# Scope of Lab + +The Perun framework is a suite of implementations around the [Perun state +channel protocols](https://perun.network/) ([introduction +paper](https://perun.network/pdf/Perun2.0.pdf)). The Perun protocols provide +payment and general state channel functionality to all existing blockchains +that feature smart contracts. As a blockchain scalability solution, payment +and state channels reduce transaction costs and increase the system throughput +by executing incremental transactions off-chain. The Perun protocols have been +proven cryptographically secure in the UC-framework. They are +blockchain-agnostic and only rely on a blockchain's capability to execute +smart contracts. + +Currently the project consists of three main parts: + +- _go-perun_ is a Go SDK that implements the core state channel protocol in a + blockchain-agnostic fashion by following the dependency inversion principle. + For this reason, several blockchain backends can be chosen and only + blockchain-specific initializations need to be executed at program startup. + +- _perun-eth-contracts_ contains the interconnected smart contracts for the + Ethereum backend. They define the on-chain logic for channel deposits, + disputes, settlements and withdrawals. + +- _perun-node_ is a state channel node. It builds upon the go-perun SDK for + establishing and operating Perun state channels, sets up a network + for off-chain communications and provides an API interface for the user to + interact with. To start with, Ethereum payment channels are implemented. + +# Initial Committers + +- +- +- +- +- +- +- +- +- +- +- + +# Sponsor + +- - Chair of the TSC + +# Pre-existing repository + +- +- +- +- +- diff --git a/labs/pluggable-hcs.md b/labs/pluggable-hcs.md new file mode 100644 index 00000000..858b9799 --- /dev/null +++ b/labs/pluggable-hcs.md @@ -0,0 +1,26 @@ +--- +layout: default +title: Pluggable Hedera Consensus Service +parent: Labs +--- +# Lab Name +Pluggable Hedera Consensus Service + +# Short Description +The Pluggable HCS Lab demonstrates the ability of a Hyperledger Fabric network to connect to the Hedera Consensus Service running on a publicly accessible testnet. + +# Scope of Lab +This lab is designed to enable a pluggable consensus option within Hyperledger Fabric. The Hedera Consensus Service is available on the Hedera public network. +The Lab initially uses the Build Your First Network (BYFN) Hyperledger Fabric sample to connect a set of Orderers to the Hedera Consensus Service. The demo shows +the ability of HCS to deliver a set of ordered transactions from the public network to a Fabric network for block creation and propagation. + +# Initial Committers +- https://github.com/xin-hedera +- https://github.com/mikeburragejr +- https://github.com/donaldthibeau + +# Sponsor +- https://github.com/christo4ferris - Hyperledger Technical Steering Committee Member + +# Pre-existing repository +- https://github.com/hashgraph/fabric-hcs/tree/feature/hcs diff --git a/labs/private-data-objects.md b/labs/private-data-objects.md index df133bdc..fb214418 100644 --- a/labs/private-data-objects.md +++ b/labs/private-data-objects.md @@ -1,5 +1,9 @@ +--- +layout: default +title: Private Data Objects +parent: Labs +--- # Lab Name - Private Data Objects # Short Description diff --git a/labs/private-transaction-families.md b/labs/private-transaction-families.md index bc5faaa0..3e3bd316 100644 --- a/labs/private-transaction-families.md +++ b/labs/private-transaction-families.md @@ -1,5 +1,9 @@ +--- +layout: default +title: private-transaction-families +parent: Labs +--- # Lab Name - private-transaction-families # Short Description diff --git a/labs/pubsub-interop.md b/labs/pubsub-interop.md new file mode 100644 index 00000000..6f454737 --- /dev/null +++ b/labs/pubsub-interop.md @@ -0,0 +1,27 @@ +--- +layout: default +title: PubSub Interop +parent: Labs +--- +# Lab Name +PubSub Interop + +# Short Description +A blockchain interoperability solution for permissioned blockchain networks based on a publish/subscribe pattern. + +# Scope of Lab +The use of blockchains in different industries has increased dramatically in the past few years. This increase has resulted in many blockchains being created which are working in isolation from each other. In order to enable the full potential of blockchain networks, interoperability solutions are needed for transferring or sharing data across these networks. The goal of this project is to propose a solution for blockchain interoperability in permissioned blockchain networks based on a publish/subscribe pattern. In this solution, a blockchain acts as a messaging broker and keeps track of all the topics in the system. Publisher blockchains can send messages to the topics and all the subscriber blockchains will get notified of the changes in the topic as soon as a publish request is received. + +More information on the project, a detailed project plan, and the progress report of the project can be found on [the project's page in Hyperledger Wiki](https://wiki.hyperledger.org/display/INTERN/Towards+Blockchain+Interoperability+with+Hyperledger). + +# Initial Committers +- [ghaemisr](https://github.com/ghaemisr) - Sara Ghaemi +- [sara-rouhani](https://github.com/sara-rouhani) - Sara Rouhani +- [RafaelAPB](https://github.com/RafaelAPB/) - Rafael Belchior +- [ruychi](https://github.com/ruychi) - Rui Cruz + +# Sponsor +- [lehors](https://github.com/lehors) - Arnaud J Le Hors - TSC chair + +# Pre-existing Repository +None diff --git a/labs/solang.md b/labs/solang.md index a542bb0f..ff2de994 100644 --- a/labs/solang.md +++ b/labs/solang.md @@ -1,3 +1,8 @@ +--- +layout: default +title: solang +parent: Labs +--- # Lab Name solang diff --git a/labs/trustID.md b/labs/trustID.md new file mode 100644 index 00000000..8d5578f2 --- /dev/null +++ b/labs/trustID.md @@ -0,0 +1,35 @@ +--- +layout: default +title: TrustID +parent: Labs +--- +# Lab Name +TrustID + +# Short Description +Decentralized Identity solution compatible with different Hyperledger platforms. + +# Scope of Lab + +TrustID implements identity management in an alternative way to Hyperledger Fabric (as the first step, but the idea is to be compatible with other platforms). In HF identities are centralized in the CAs, so if a CA leaves the network all the users issued by this CA will be invalid. Using trustID to manage the identities it is possible to do it in a dynamic and decentralized way. Hyperledger Fabric is the first network that we have used to implement this model of identities, but in the end, it could be compatible with other platforms. And also, users that have key pairs in other blockchains could re-use it to sign transactions in Fabric. + +The solution consists of two main components: + +## Trust-sdk +This sdk abstracts all the logic of Hyperledger Fabric (or logic of other platforms could be implemented, like for example ethereum’s web3 ) and also enables the creation and management of decentralized identities. With this library is possible to create, update, revoke, import, and export identities using the DID standard from the W3C. In the end, the DID standard is used to give a global ID to the identities. + +## Chaincode - Smart contract +Due to the Hyperledger Fabric identity management, it is not compatible with this type of identities and signatures we have implemented chaincode that implements these functionalities. In the end, all the functionalities that we have commented in the documentation are modules of the same chaincode. In this case, when we create an identity in the sdk, this identity is also registered in the chaincode, storing the public key, so by nature, it will be decentralized. Every time somebody wants to perform a transaction, this transaction will be signed off-chain thanks to the sdk and in the chaincode the signature will be verified. If everything is okay, this chaincode will invoke the chaincode that the user wants +In the case of other platforms, the implementation of this component has to be analyzed. + +# Initial Committers + +- https://github.com/adlrocha - Alfonso de la Rocha +- https://github.com/mtnieto - Maria Teresa Nieto + +# Sponsor + +- Troy Ronda https://github.com/troyronda + +# Pre-existing repository +- https://github.com/telefonicablockchain/trustid diff --git a/labs/trusted-compute-framework.md b/labs/trusted-compute-framework.md new file mode 100644 index 00000000..52fd6661 --- /dev/null +++ b/labs/trusted-compute-framework.md @@ -0,0 +1,46 @@ +--- +layout: default +title: Trusted Compute Framework +parent: Labs +--- +# Lab Name +Trusted Compute Framework + +# Short Description +The Trusted Compute Framework (TCF) enables privacy in blockchain transactions, moving intensive processing from a main blockchain to improve scalability and latency, and to support attested Oracles. + +The Trusted Compute Specification was designed to help developers gain the benefits of computational trust and mitigate its drawbacks. In case of the Trusted Compute Framework a blockchain is used to enforce execution policies and ensure transaction auditability, while associated off-chain trusted compute resources execute transactions. By using trusted off-chain compute resources, a developer can accelerate throughput and improve data privacy.  + +Preservation of the integrity of execution and the enforcement +of confidentiality guarantees come through the use of a Trusted Compute (TC) option, e.g. ZKP (Zero Knowledge Proof), MPC (Multi Party Compute), or HW based TEE (Trusted Execution Environment). While the approach will work with any TC option that guarantees integrity and confidentiality for code and data, our initial implementation uses Intel@ Software Guard Extensions (SGX). + +TCF leverages the existence of a distributed ledger to + * Maintain a registry of the trusted workers (including their attestation info) + * Provide a mechanism for submitting work orders from a client(s) to a worker + * Preserve a log of work order receipts and acknowledgments + +TCF uses Off-Chain Trusted Compute Specification defined by Enterprise Ethereum Alliance (EEA) Task Force as a starting point to apply a consistant and compatible approach to all supported blockchains. + + +# Scope of Lab +This project provides several substantial advances for Hyperledger +distributed ledger platforms that expand computational trust to off-chain workload execution in a ledger independent manner + * A mechanism for off-chain workload execution that preservers privacy and improves scalability + * Attested oracles serving as a trusted source of the data generated outside of the blockchain + * Standard compliance starting with EEA Off-chain Trusted Compute Specification and extending it to other blockchains + + + +# Initial Committers + * danintel (daniel.anderson@intel.com) + * EugeneYYY (yevgeniy.y.yarmosh@intel.com) + * manojgop (manoj.gopalakrishnan@intel.com) + * srinathduraisamy (srinath.duraisamy@intel.com) + * TomBarnes (thomas.j.barnes@intel.com) + +# Sponsor +Mic Bowman (mic.bowman@intel.com) - a TSC member + +# Pre-existing repository +Existing repository is internal to Intel. It was originated from Hyperledger project Private Data Objects at https://github.com/hyperledger-labs/private-data-objects. +We plan to transfer the private TCF repository to Hyperledger GITHUB upon receiving required HL and Intel internal approvals. diff --git a/labs/umbra.md b/labs/umbra.md index a3e5fd6f..7a7b792d 100644 --- a/labs/umbra.md +++ b/labs/umbra.md @@ -1,5 +1,10 @@ +--- +layout: default +title: Umbra +parent: Labs +--- # Lab Name -Umbra -- Logo is a [tesseract](https://en.wikipedia.org/wiki/Tesseract) +Umbra # Short Description This lab is to make running Hyperledger distributed ledgers under the @@ -8,6 +13,8 @@ research internship during the summer of 2018 and seeks to provide a tool for doing research on consensus algorithms, smart contracts, scaling and other blockchain related research topics. +Logo is a [tesseract](https://en.wikipedia.org/wiki/Tesseract) + # Scope of Lab The scope is to make modifications to Shadow as well as to construct Shadow plugins for Hyperledger distributed ledgers so that they can run under diff --git a/labs/university-course-fabric.md b/labs/university-course-fabric.md new file mode 100644 index 00000000..fc2d1d44 --- /dev/null +++ b/labs/university-course-fabric.md @@ -0,0 +1,20 @@ +--- +layout: default +title: University Course Fabric +parent: Labs +--- +# Lab Name +University Course Fabric + +# Short Description +Build a university course on Hyperledger technologies, with emphasis on Hyperledger Fabric. + +# Scope of Lab +A growing part of our community is our partnership with academia. Hyperledger Fabric and other Hyperledger projects are being incorporated in to research and education in universities more and more all over the world. Hyperledger can aid the growth by preparing study materials, sample lab experiments and quizzes and tests that teach computer science students about distributed systems and consensus algorithms and cryptography. Hyperledger Umbra has streamlined the process of setting up a full Hyperledger Fabric network running on a single computer. It provides an ideal environment for students to learn Hyperledger Fabric administration as well as use it for running lab experiments and learning exercises, so it will be leveraged to teach advanced topics on Hyperledger Fabric. This project is focused on producing a "classroom-in-a-box" for an introductory computer science course on distributed systems and algorithms that can be offered to universities that wish to use Hyperledger Fabric in their curriculum. + +# Initial Committers +https://github.com/RafaelAPB (maintainer) +https://github.com/dhuseby (maintainer) + +# Sponsor +https://github.com/dhuseby diff --git a/labs/xcsi.md b/labs/xcsi.md new file mode 100644 index 00000000..e419975b --- /dev/null +++ b/labs/xcsi.md @@ -0,0 +1,26 @@ +--- +layout: default +title: xcsi +parent: Labs +--- +# Lab Name +xcsi + +# Short Description +Cross chain settlement instruction + +# Scope of Lab + +Create a cross chain settlement instruction. Many chains for issuing and trading digital assets and holding digital cash are being built. We envision a future in which chains are built on multiple platforms. To create a digital market, a chain that holds and trades assets needs to be connected to a chain accessible payment leg. Trading of assets could happen on one chain and payment could happen at a different venue. Cross chain settlement instructions are needed from the asset trading chain to the payment settlement chain. We use the short form xcsi/r. The first version contains only payment instructions. Faint inspiration comes from Swift MT 202 and ISO 20022 settlement and payment standards. We use the philosophy that interoperation between chains can happen through non-repudiable cross chain messages, which need to contain proofs. Verification, if needed, can happen through a DPKI setting and access to the sending chain. These messages are meant for asynchronous settlement between counterparties that have existing master agreements. These counterparties are enterprise participants migrating to digital markets to trade tokenised traditional or new assets. We propose an instruction as well as a response in the JSON format. The preliminary schema has been created pretty rapidly. These JSON files containing signed commitments can be detached from their respective chains as settlement can rely on master agreements between counterparties and also on credit. The message in transport and rest can be encrypted. We are transport agnostic. These features do not necessitate an atomic operation. The initial message interaction will be tested in the destination chain client interface using a REST api. The idea is to explore the space and see what can be built as a lightweight bridge mechanism by focusing on connecting the asset leg to the payment leg. + +# Initial Committers + +https://github.com/vipinsun - dlt.nyc +https://github.com/mmani99 - Mani Pillai Swapshub +https://github.com/jagadeeshtmr - Jagadeesh Babu Swapshub + +# Sponsor +- https://github.com/vipinsun - Chair of the Identity workgroup + +# Pre-existing repository +None diff --git a/proposal-template.md b/proposal-template.md index 50ac04a4..da5c3752 100644 --- a/proposal-template.md +++ b/proposal-template.md @@ -1,3 +1,8 @@ +--- +layout: default +title: Lab Proposal Document +parent: Labs +--- # Lab Name _Enter the name of your lab here._