2017 Projects

These are 2017 projects. We're not accepting applications for these projects.

Project 1: Deploy Fabric on Kubernetes Using Cello

  • Description: Cello is a Hyperledger project used to deploy blockchain services, which can be used to easily create, manage and stop a blockchain system. Currently it supports platforms as baremetal and docker swarm. As another important orchestration tool in container world, Kubernetes is widely accepted by lots of cloud providers. The initial idea of the intern project is to add Kubernetes support for Cello.The project will enhance Cello by providing a user interface which would allow system administrators to edit their desired topology and resources of a blockchain system, generating a Kubernete config file and calling Kubernetes APIs to deploy such system.

  • Additional Information:

  • Desirable Skills:

    • Familiar with Python and golang.

    • Know about Docker and Kubernetes.

    • Fluent Mandarin will be prefered

  • Learning Objectives:

    • Knowledge of working with open source community.

    • Architecture and basic features of Cello, Fabric and Kubernetes.

    • How to design, develop and test a feature.

  • Expected Outcome: Running feature, UI and tests

  • Level of Difficulty: Medium

  • Mentor(s): Jiang Feihu, Huawei, jiangfeihu@huawei.com


Project 2: Contract-based Business Process Execution / Hyperledger as a Business Process Execution Engine

  • Description:

    • Many systems rely on process-based execution logic (banks, insurance companies, etc.). Also there are a growing number of applications where data originated from sensors and other physical data sources are transformed and processed in a workflow-like manner. BPMN is a standard for describing business processes, also extended by other standards (e.g. DMNN) to describe decision logic behind individual process steps.

    • Traditional process engines assume there is a central entity responsible for all execution/management tasks like starting a process instance, passing data (represented by tokens) among components implementing different tasks of a process (e.g. validate data, initiate an asynchronous transaction, sending a confirmation email, etc.).

    • This engine is a bottleneck in terms of performance, robustness and also assumes that a trusted central entity with no external control exists.Process monitoring tools often rely on the status of processes under execution returned by the execution engine in the form of events or log entries.

    • The aim of the internship is to create a mapping from business process execution semantics (formalized from BPMN model fragments) to smart contracts of Hyperledger. This way, Hyperledger will serve as a process execution engine. Blockchain can also serve as an audit log provider to check compliance of external executions (e.g. to verify whether a particular actor in a financial ecosystem executed its process properly).

    • The intern will perform the following suggested tasks with the help of the mentor:

      • define a subset of BPMN language which will be mapped to smart contracts

      • create sample but representative case studies which are complex enough to cover relevanr combinations of BPMN model elements

      • create test definitions (input data and required output) for these models

      • define a mapping from model elements to smart contract fragments over Hyperledger

      • create example contracts and validate the concept

      • define and create automated transformation for contract generation

      • execute and evaluate pre-defined tests to (informally) validate the correctness of the approach and the transformations

      • optional: re-use and adapt existing modelling frameworks (e.g. model.io) to serve as a “design GUI” over blockchain-based process execution

  • Additional Information:Similar research has already begun over Ethereum, see e.g., DOI: 10.1007/978-3-319-45348-4

  • Desirable Skills:

    • Ability to model things, basic understanding of business processes

    • BPMN knowledge

    • Coding experience (preferably in Java)

    • Advantage: previous knowledge in model storage/manipulation techniques (e.g. XML transformations, Eclipse EMF and related technologies)

    • Ability to read scientific papers or technology descriptions in English

    • Basic understanding of blockchain concepts

    • Solid English knowledge

    • Ability to work and make decisions individually (under supervision)

  • Learning Objectives:

    • Technical learning objectives:

    • Understanding of smart contracts and Hyperledger

    • Experience in building Hpyerledger-based applications

    • Advanced knowledge on BPMN modeling

    • Experience in formal methods (e.g. dataflow networks)

    • Model transformation/generation technologies (e.g. Xtext)

    • Understanding of business process monitoring and compliance check and their role in financial applications

    • Experience in scientific literature review

    • Mentoring will be primarily carried out remotely (e.g. Skype) with daily consultation if needed.

    • We are currently checking the possibility for officially hosting the intern.Please be advised that we expect not to be able to cover travel costs.

  • Expected Outcome:

    • Report on BPMN mapping definition, incl. example models and required behavior

    • Report on the implementation and experiments

    • Code (at a Proof of Concept level):

      • Smart contract patterns to represent BPMN behavior

      • Generator code to a)retrieve relevant information from BPMN models and b)generate the corresponding smart contracts

      • Simple execution environment where the pre-defined case study can be implemented(sample data, workload generator, test evaluator)

      • Test cases defined, executed and evaluated in order to (practically) prove the correctness of the transformation/generated smart contracts

  • Level of Difficulty: Medium

  • Mentor(s): László Gönczy, Budapest University of Technology and Economics, Department of Measurement and Information Systems, Fault Tolerant Systems Research Group, gonczy@mit.bme.hu


Project 3: Anonymous Transactions in Iroha

  • Description: For many use cases involving distributed ledger, the ability to hide the sender and recipient of digital assets, while still being able to verify that the assets exist and are not being double spent, is required. To realize this in Hyperledger Iroha, a scheme involving secure multiparty computation or dining cryptographer (DC) networks should be implemented as a prototype and studied.

  • Additional Information: Reading the following documents might be useful: https://en.wikipedia.org/wiki/Dining_cryptographers_problemhttps://en.wikipedia.org/wiki/Oblivious_transfer

  • Desirable Skills: C++11 and above, basic knowledge of cryptography.

  • Learning Objectives:Interns can learn about applied cryptography, distributed ledgers, and managing financial assets and contracts. Our company works with many financial institutions in Japan, so it can be interesting to learn about many of the problems that financial institutions face and how to solve them using technology.

  • Expected Outcome: Prototype of anonymous transfers in Hyperledger Iroha.

  • Level of Difficulty: Difficult

  • Mentor(s): Makoto Takemiya and Bogdan Vaneev, Soramitsu, info@soramitsu.co.jp


Project 4: Preserving Privacy with Sawtooth Lake

  • Description:

    • Privacy is a very active area of research in distributed ledgers. Privacy can be considered from a number of aspects including commonly: transaction logic, assets, and transactor (user) participation.

    • Hyperledger Sawtooth Lake is a distributed ledger designed to apply across the deployment spectrum from publicly available networks to closed consortium networks. This project will explore privacy techniques applicable across that spectrum with a preference for the most difficult deployments where information is generally visible across the network.

    • The intern will work with Sawtooth Lake developers, including senior developers and researchers from Intel Corporation, to prototype new or refine existing privacy mechanisms. Mechanisms may include cryptographic techniques such as zero knowledge proofs and trusted execution such as SGX.

  • Additional Information:

  • Desirable Skills:

    • Research or development experience with anonymous credential systems

    • Graduate level understanding of Abstract Algebra

    • Fluency with at least one programming language.

    • Experience with Python will be helpful but not required

  • Learning Objectives:

    • Learning how to contribute in a large open source project.

    • Learning to define security requirements in an addressable way.

    • Learning to implement security and privacy features in distributed systems.

    • Learning state of the approaches to privacy.

  • Expected Outcome:

    • New software module or capability to provide privacy in blockchains

    • A report designing a new privacy capability for blockchains

    • Other substantive deliverable options can be discussed.

  • Level of Difficulty: Difficult

  • Mentor(s): Dan Middleton, Intel, dan.middleton@intel.com


Project 5: Design and Implement Blockchain Clustering Platform for Hyperledger

  • Description: Cello is a Hyperledger project that can manage thousands of blockchains and provide them to developers. It's designed and implemented in Python. Currently we are designing and implementing new features (e.g., better scheduling performance, better UI) to support Hyperledger Fabric, Hyperledger Sawtoothlake and Hyperledger iroha better. Anyone who's interested in Blockchain techniques, clustering, cloud computing, UI design, or Python coding, is always welcome.

  • Additional Information: Existing project is at github.com/hyperledger/cello

  • Desirable Skills:

    • For backend developers: You'd better know a little about Python. And cloud knowledge (e.g., docker, distributed system) is welcome;

    • For frontend developers: HTML+javascript, and some basic knowledge on popular frameworks, e.g., react.

  • Learning Objectives:You will learn how to work inside open-source community, the key techniques in those large-scale system (e.g., cloud computing, clustering), blockchain. It's limitless, with more effort to pay, more you will learn.

  • Expected Outcome: Hyperledger Cello with new features.

  • Level of Difficulty: Medium

  • Mentor(s): Baohua Yang, IBM,yangbaohua@gmail.com and Haitao Yue, IBM, hightallyht@gmail.com