User Tools

Site Tools


This is an old revision of the document!

2018 Projects

Project 1: Algorithmic Dispute Resolution in Construction

  • Project Description: Construction is the second largest global industrial sector. Litigation accounts for approximately 10% of the expenditure. The industry suffers from a dysfunctional relationship between the Architects, project managers, consultants, developers, and clients. The use of Blockchain and AI technologies has been investigated by the CBC @ UCL and identifed numerous areas or themes where a disruptive effect can be achieved. Legal, in particular contracting and dispute resolution are one of the main pillars of this project.This is a phased project which will model the workflows of a major construction project, in partnership with a leading UK contractor/project management company. The aim is to identify all relevant material prior to the contract being signed, automating the discovery phase of litigation, machining the large data set down to a 'hearing bundle' and then assessing 'needs and interests' prior to an automated resolution process. This is the first phase of the project which will identify work flows and identify the relevant documents, files and other digital material and assemble them in the blockchain where authentication can take place and a 'hearing bundle' prepared .
  • Additional Information: This is a project to build a demonstrator of a project that arises out of a joint paper by Jeremy Barnett and Philip Treleaven ' Algorithmic Dispute Resolution:The automation of professional dispute resolution using AI and Blockchain Technologies' See also for full details about the CBC and for more information about smart contract and other key issues.
  • Learning Objectives: The intern will develop skills in
    • construction contracting
    • a comprehensive approach to digital information in the construction sector including BIM ( Building Information Modelling)
    • The use of AI to identify relevant documents from a large data set.
  • Expected Outcome: The intern would be expected to prepare a report on the achievements of the individual modules in the project during the course of the internship and make proposals as to how the objectives of the project could best be implemented going forward to the next stage.
  • Eduction Level: Graduate student preferred
  • Skills: Knowledge of Construction Contracting and/or coding for smart contracts
  • Level of Difficulty: Challenging
  • Preferred Hours and Length of Internship: Part-time (20 hours a week for 24 weeks starting in summer and ending in fall)
  • Mentor(s): Jeremy Barnett,

Project 2: Design Effective Operational Platform for Blockchain Management

  • Project Description: Blockchain networks, itself is a complex distributed system. There are two main challenges right now to adopt blockchain services. 1) Hard to provision, especially for enterprise scenarios with requirements on permissions, data privacy, etc. 2) Difficult to operate, due to the lack of an effective tool. This project targets to design a practical operational management platform for blockchain services based on existing codebase of Hperledger Cello, including an operator dashboard and user dashboard.
  • Additional Information:
  • Learning Objectives:
    • Work closely with community developers to learn the open-source culture and skills
    • Advanced knowledge inside the blockchain and distributed ledger areas
  • Expected Outcome:
    • Enhanced dashboard to operate the blockchain networks
    • Advanced capabilities to manage blockchain networks, including life-cycle, chaincode, permission
  • Eduction Level: Graduate student preferred
  • Skills:
    • Interested with blockchain and distributed system
    • Backend development skills including Python, Node.Js
    • Frontend skills including javascripts/css/html, experience with vue/react/jquery is a bonus
  • Level of Difficulty: Medium
  • Preferred Hours and Length of Internship: Part-time (20 hours a week for 24 weeks starting in summer and ending in fall)
  • Mentor(s): Baohua Yang,

Project 3: Extended Functionality/Support for EVM Smart Contracts and Tooling in Hyperledger Fabric

  • Project Description: Hyperledger Burrow has created an EVM implementation that is being integrated into Fabric. In initial phase, Fabric will support EVM bytecode smart contracts in a limited manner. Some of the features that need to be added include support for EVM smart contract events and extending support for the Ethereum API. The project will involve working with and understanding different blockchain platforms and being able to map their differing concepts.
  • Additional Information:
  • Learning Objectives:
    • Contributing and collaborating in an open source project
    • Being able to design and implement features from start to finish
  • Expected Outcome: Extended functionality/support for EVM smart contracts and tooling in Hyperledger Fabric.
  • Eduction Level: Graduate student or undergraduate student
  • Skills: Go knowledge, or ability to pick up languages quickly
  • Level of Difficulty: Medium
  • Preferred Hours and Length of Internship: Full-time (40 hours a week for 12 weeks during the summer) or Part-time (20 hours a week for 24 weeks starting in summer and ending in fall)
  • Mentor(s): Swetha Repakula, and Jay Guo,

Project 4: Hyperledger Composer Modelling Tools

  • Project Description: The Hyperledger Composer modelling language is used by both Hyperledger Composer and Accord Project Cicero as an object-oriented data description (schema) language, based on a textual domain-specific language. Both communities would benefit from improved tooling for the modelling language, including the ability to generate UML style diagrams and web-forms from class descriptions described using the Hyperledger Composer modelling language.
  • Additional Information:
    • Class Diagram Viewer or Editor: The class diagram editor could use a UML-like syntax and a suitable web framework, such as Angular2 or React, for model, view, controller logic.A more advanced editor could synchronise with the text of the Hyperledger Composer model itself — allowing the user to either edit graphically, or using the text syntax.The project can be broken down into the following milestones:1) Web viewer; 2) Web editor; and 3) Synchronise web editor with DSL text.The viewer/editor should be created as an embeddable, modular, component so it can be easily embedded in web-based tools, such as Hyperledger Composer Playground, or similar.
    • Web Form Generator: A web-form generated from model types would allow transactions to be submitted (or assets/participants created) by filling out a web-form, as opposed to submitting JSON formatted text, easing ease of use and guiding the user.The web form generator should be created to dynamically create form elements based on a root type from a Hyperledger Composer model. Some simplifying assumptions may need to be made to solve the issue of data-binding from arbitrarily complex object models to web forms.The web form generator should be an embeddable, modular, component so it can be easily embedded in web-based tools, such as Hyperledger Composer Playground, or similar.
    • More Information:
  • Learning Objectives:
    • Understand the Hyperledger Composer modelling language, and its meta-model
    • Investigate how best to bind models to web form elements such as: sliders, dropdowns, combo-boxes, text areas
    • Investigate how best to data-bind relationships, arrays and nested complex types
    • Investigate how client-side data validation can be used to enforce REGEX and domain validation constraints
    • Data description languages in general (relationships, inheritance, containment, namespaces, imports etc)
    • Graphical visualisation techniques for class diagrams and entity-relationship diagrams
    • Model-View-Controller architecture for graphical editors
    • Synchronise model and text
    • React/Angular2 component development
    • Displaying consistency errors
  • Expected Outcome:
    • Web-form Generator: A functional dynamic web component, that generates a web-form based on the fully-qualified name of a type from a Hyperledger Composer Model. A sample web application that shows the dynamic web component in action.
    • Class Diagram Editor: A functional web viewer, editor, or synchronised editor for CTO files, that can be easily embedded in a web application.
  • Eduction Level: Graduate student or undergraduate student
  • Skills: Models and meta-models (XSD, JSON Schema), Angular2 or React web development, HTML5, CSS
  • Level of Difficulty: Medium
  • Preferred Hours and Length of Internship: Full-time (40 hours a week for 12 weeks during the summer)
  • Mentor(s): Dan Selman,

Project 5: Hyperledger Fabric Chrome Extension

  • Project Description: Web browsers are a ubiquitous client interface found on almost every computer. Today, many application user interfaces are delivered through web browsers. This is beneficial to users because it gives them a familiar interface and set of interactions without the need to install additional software per application. This is also beneficial to developers because it allows them to take advantage of existing standards, frameworks, libraries, and design patterns to build their interfaces. A number of web interfaces have already been built for Hyperledger Fabric. These generally allow users to explore the blockchain or provide a method for sending and viewing transactions within the context of a specific application. There is however an issue with providing and consuming Fabric web interfaces today.The Fabric peer, or middleware that accesses a Fabric peer, and web interface must be available on the same domain due to the same origin policy built into browsers. However, we can easily imagine a case where the web interface is hosted by, but the Fabric peer is located inside an organization at does not wish to let MyCorp run their code locally because they are a SaaS business. MyCorp does not wish to share access to its Fabric network or private keys with How can this situation be resolved? A Chrome extension combined with a JavaScript API is a solution that would be mutually beneficial to both companies. A user at MyCorp would install a Chrome extension, provided by the Hyperledger Fabric community, in their Chrome browser. They would then provide the extension with access information to the Fabric network in MyCorp. This information is only shared with MyCorp’s Fabric peer. could detect the presence of the Chrome extension and interact with it through a JavaScript API. Their UI can now interact with the user’s Fabric network while credentials and transaction details do not leave MyCorp’s Fabric network.
  • Additional Information:
  • Expected Outcome: The MVP is a Fabric Chrome extension paired with a Javascript API. Users should be able to use the Chrome Extension to authenticate to a Fabric network. The Chrome Extension should provide a JavaScript API that websites call to perform the following functions
    • detect presence of extension
    • initiate a transaction
    • read blockchain data allowed by the extension
  • Eduction Level: Graduate student or undergraduate student
  • Skills:
    • JavaScript
    • Previous experience designing JavaScript APIs
    • Previous Hyperledger Fabric experience (desired, but not required)
    • Experience building a browser extension (desired, but not required)
  • Level of Difficulty: Medium
  • Preferred Hours and Length of Internship: Full-time (40 hours a week for 12 weeks during the summer)
  • Mentor(s): Sheehan Anderson, and Binh Nguyen,

Project 6: Hyperledger Fabric SDK-py

  • Project Description: Python is a popular programming language, the project will make a fabric and fabric-ca SDK python library. It will align with nodejs SDK and java SDK, encapsulate fabric underlying grpc invocation and provide convenient API for python developer. We will deprecated python 2 ASAP and will support python 3.5 and above only. Currently we almost implemented a MVP for fabric transaction flow, however we still a lot of work to do such as refine API, enhance test, create sample application. Meanwhile performance improvement also need consider. We may also can make fabric support python chaincode as well. So far we have several contributors come from China, Germany and India. We have weekly meetings and we are open for everyone who is interested.
  • Learning Objectives: For technique, intern can master python 3 programming python language, hyperledger fabric transaction flow such as transaction/block structure, grpc invocation and etc.For open source collaboration, intern can learn open source work approach and communication.
  • Expected Outcome: Make fabric SDK-py ready to use in production and create a completed sample application.
  • Eduction Level: Graduate student or undergraduate student
  • Skills: python 3; grpc; crypto
  • Level of Difficulty: Easy
  • Preferred Hours and Length of Internship: Full-time (40 hours a week for 12 weeks during the summer) or Part-time (20 hours a week for 24 weeks starting in summer and ending in fall)
  • Mentor(s): Kai Chen, or rocketchat:@grapebaba

Project 7: Hyperledger Identity WG Onboarding and Auth

Project 8: Python Library for Hypereldger-Iroha

Project 9: Running Solidity Smart Contracts on Hyperledger Fabric or Vice Versa

Project 10: UTXO Transactions in Iroha

2017 (2017 projects no longer accepting applications)

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,

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. 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,

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:
  • 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,

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,

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
  • 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, and Haitao Yue, IBM,
internship/project_ideas.1520270038.txt.gz · Last modified: 2018/03/05 17:13 by Min Yu