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
  • Desirable 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
  • Desirable 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
  • Desirable 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
  • Desirable 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
  • Desirable 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
  • Desirable 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 Description: The Hyperledger Identity WG Intern will be mentored by members of the Identity WG / Hyperledger Indy Maintainers and accomplish 2 main tasks: learn and develop an iPython notebooks for onboarding new community members and a browser-based authentication app using decentralized identifiers in Hyperledger Indy. This bachelors-level internship has two core goals: experience and contribution.
    • Experience:The Identity WG Intern will create interoperable, open-source code that will educate new and existing Hyperledger community members. Creating an iPython notebook and code sample will be based on their own onboarding into Hyperledger and Indy, using what they have learned in the process and helping the community by identifying what would be more effective in a better onboarding experience.For browser-based authentication with DIDs, Interns will learn critical professional development skills, from working in GIT to understanding the structure of well-formed code, to developing their own tests and proper documentation best practices.
    • Contribution:Through developing both projects ( iPython notebooks / code samples and browser-based authentication with DIDs), the Intern will be making an important contributions to future Hyperledger community members onboarding efforts, the Indy codebase and the entire decentralized identity ecosystem.
  • Additional Information:
  • Learning Objectives: The Intern will be mentored by two of the lead maintainers on the project, Vyachslava Gudkov and TSC member, Nathan George with a possible third mentor from the Indy Maintainer. The Identity WG Intern will have the following learning objectives:
    • Collaboration on, editing and finalization of a POA (Plan of Attack) for the iPython notebook onboarding module
    • Collaboration on and finalization of a POA (Plan of Attack) for the browser-based authentication pilot with DIDs
    • Understanding, implementation and deployment of code using W3C standards-compliant DIDs and DID Docs
    • Professional experience working with a distributed, global team (11+ time-zones)
    • Professional experience working within a distributed and Agile development environment/team
    • Learning to work with GitHub in an active project
    • Learning how to use and create tests as a professional developer
    • Learning how to professionally document the code they create
  • Expected Outcome:
    • iPython onboarding notebook-based agent (reference agent for Indy)
    • Web-based Auth within Indy SDK
  • Eduction Level: Graduate student or undergraduate student
  • Desirable Skills: Rust; Python
  • 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): Vyachslava Gudkov, and Kyle Den Harto,

Project 8: Python Library for Hypereldger-Iroha

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.1520275747.txt.gz · Last modified: 2018/03/05 18:49 by Min Yu