2018 Projects
APPLICATION IS NOW CLOSED
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 .
-
Learning Objectives: The intern will develop skills in
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)
-
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 Hyperledger Cello, including an operator dashboard and user dashboard.
-
Learning Objectives:
Expected Outcome:
Enhanced dashboard to operate the blockchain networks
Advanced capabilities to manage blockchain networks, including life-cycle, chaincode, permission
Other open objects that align with the existing roadmap
Eduction Level: Graduate student preferred
Desirable Skills:
Interested with blockchain and distributed system
Backend development skills including Python, Node.Js. Cloud and Docker is a bonus
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)
-
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:
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)
-
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)
-
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 FabricExplorer.com, but the Fabric peer is located inside an organization at MyCorp.com. FabricExplorer.com 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 FabricExplorer.com. 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. FabricExplorer.com 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:
-
-
-
-
Chrome extension development
-
Hyperledger Fabric experienceThe intern will receive regular supervision and mentorship from engineers who have contributed to Hyperledger Fabric and are engaged in real world DLT use cases in the finance industry
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
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)
-
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)
-
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:
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)
-
Project 8: Python Library for Hypereldger-Iroha
Project Description: As of now Hyperledger-Iroha is in heavy development phase. Blockchain platform Hyperledger Iroha is designed for simple creation and management of assets. This is a distributed ledger of transactions.Here, students are expected to make fully fledge Python library for Iroha. At least they are able to solve issues mentioned there. Later, in next stage we want student to maintain the docs of Iroha. We figured out that there are many missing docs on getting started and about the internal works of Iroha. We expect student to complete the doc part along with dev work.Iroha has the following features:
Creation and management of custom complex assets, such as currencies or indivisible rights, serial numbers, patents, etc.
Management of user accounts
Taxonomy of accounts based on domains — or sub-ledgers in the system
The system of rights and verification of user permissions for the execution of transactions and queries in the system
Validation of business rules for transactions and queries in the system
Additional Information:
Learning Objectives: Interns will have following advantage on completion of project.
Complete basic understanding on Hyperledger module.
Working knowledge of Iroha
Python Wrapper making procedure
Maintaining standard docs for people around the globe
Exposure to the latest technology
Expected Outcome: Project is divided into three basic steps. First two are on code and third on docs.
Eduction Level: Graduate student or undergraduate student
Desirable Skills: Python; C++; Linux; Writing Docs
Level of Difficulty: Medium
Preferred Hours and Length of Internship: Full-time (40 hours a week for 12 weeks during the summer)
-
Project 9: Running Solidity Smart Contracts on Hyperledger Fabric or Vice Versa
Eduction Level: Graduate student or undergraduate student
Desirable Skills:
Languages: Javascript, Go
Blockchain platforms: Ethereum (basic), Hyperledger Fabric (basic)
Familiarity with tools such as ANTLR
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)
-
Project 10: Simulating Hyperledger Networks with Shadow
Project Description: The Shadow network simulation tool (
https://shadow.github.io/) is capable of running off-the-shelf software in a controlled, simulated network environment. To accomplish the task, a plugin to the Shadow simulator must be written for each piece of software run under simulation. Shadow is already being used to simulate and measure, in a lab environment, the Tor network and the Bitcoin network. This internship is focused on implementing a Shadow plugin for one of the Hyperledger blockchain platforms so that the community can run simulations and measure the performance at different scales. The data collected will guide future development as well as provide hard numbers for the performance and scalability working group to work with.
Additional Information: The Shadow network simulation tool is here:
https://shadow.github.io and from there you can follow links to examples of what was done to simulate Bitcoin and Tor networks with Shadow.
Learning Objectives:
Put into practice writing real software in the programming languages they have learned.
Gain a deep understanding of how the Hyperledger blockchains are organized at the network level.
Learn about consensus networks and how the nodes must collaborate and corroborate to always come to the same conclusion.
Experience working closely with an open source working group to implement a tool they can use to run experiments with.
Expected Outcome:
A Shadow plugin for one of the Hyperledger blockchain platforms.
A Shadow simulation configuration that successfully executes and simulates a Hyperledger blockchain network.
A post-mortem report explaining what happened during the project, what went right, and what went wrong.
A proposal–developed with the help of the Scalability and Performance working group–for a simulation experiment that can be run using the new tool. This just needs to be a detailed description (e.g. what is the scale, what is to be measured), no actual implementation is expected.
Eduction Level: Graduate student preferred
Desirable Skills:
Must be proficient in Python and at least one of C/C++/Rust.
Must be proficient with setting up software builds using CMake and/or Makefiles.
Must be proficient with Git and Github and email as collaboration tools.
Must have some understanding of the network stack and how networks are organized (e.g. IP addresses, ports, TCP/UDP, etc).
A plus if they are familiar with Docker and/or Vagrant.
Level of Difficulty: Challenging
Preferred Hours and Length of Internship: Full-time (40 hours a week for 12 weeks during the summer)
-
Project 11: Utilizing Hyperledger Fabric to Develop Supply Chain Application
Project Description: Utilize Hyperledger Fabric framework to develop food tracing application. This application needs to realize track and monitor of food's origin and transportation through collecting data from manufacturers and customers of food supply chain. Port the existing Hyperledger Sawtooth Supply Chain application (
https://github.com/hyperledger/sawtooth-supply-chain) to Hyperledger Fabric. Contribute this source code to Hyperledger Fabric’s sample repository (
https://github.com/hyperledger/fabric-samples). Write up a comparative analysis on the differences in implementing smart contracts (chaincode vs. transaction families) in the two technologies – Hyperledger Fabric and Hyperledger Sawtooth. In addition, document the steps required to convert a running application in Hyperledger Sawtooth to Hyperledger Fabric and vice versa. Time permitting develop a tool that will convert chaincode to transaction families and vice versa.
Additional Information:
Learning Objectives: Cultivate interns with block chain and hyperledger project technology through training and education. Follow project progress and research result through weekly meeting. Participate local meetups and involve in open community discussion.
Expected Outcome: Food trace application with Fabric framework and demos. Technical document and comparative analysis report between Sawtooth and Fabric. Performance analysis demo.
Eduction Level: Graduate student preferred
Desirable Skills:
Languages: Javascript, Go, Python
Blockchain platforms: Hyperledger Fabric (basic); Hyperledger Fabric (basic)
Collaboration tools: Github, Rocket Channel
Level of Difficulty: Challenging
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)
-
Project 12: UTXO Transactions in Iroha
Project Description: The unspent transaction output (UTXO) model, in contrast to the current account-based model used in Iroha, helps to enhance the privacy of transactions and also can provide benefits with respect to interoperability with other UTXO-based blockchains, such as Bitcoin. To realize the UTXO transaction model in Iroha, the task is to implement an unspent transaction output cache (for transaction verification) and support inputs and the generation of outputs for Iroha asset transfer transactions.
-
Learning Objectives: The learning objective is to understand the difference between account-based and UTXO-based transaction models for blockchain. Both of these models have different use cases and the underlying philosophies behind the models are different. By comprehending both models, the intern will have an understanding of when to apply which model to what kind of problem.
Expected Outcome: C++ source code for supporting the UTXO transaction model in Iroha
Eduction Level: Graduate student or undergraduate student
Desirable Skills: C++, understanding of basic blockchain concepts
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)
-
Previous Years