User Tools

Site Tools


internship:project_ideas

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
internship:project_ideas [2018/03/05 17:13]
Min Yu
internship:project_ideas [2018/03/25 03:46] (current)
Min Yu
Line 1: Line 1:
-==== 2018 Projects ====+====== 2018 Projects ====== 
 + ​[[internship:​how_to_apply|APPLICATION IS NOW CLOSED]]
  
 **Project 1: Algorithmic Dispute Resolution in Construction** **Project 1: Algorithmic Dispute Resolution in Construction**
Line 10: Line 11:
   ***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.   ***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   ***Eduction Level:** Graduate student preferred
-  ***Skills:​** Knowledge of Construction Contracting and/or coding for smart contracts+  ***Desirable ​Skills:** Knowledge of Construction Contracting and/or coding for smart contracts
   ***Level of Difficulty:​** Challenging   ***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)   ***Preferred Hours and Length of Internship:​** Part-time (20 hours a week for 24 weeks starting in summer and ending in fall)
Line 19: Line 20:
 ---- ----
 **Project 2: Design Effective Operational Platform for Blockchain Management** **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. +  ***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. 
-  ***Additional Information:​** [[https://​github.com/​hyperledger/​cello]]+  ***Additional Information:​** [[https://​github.com/​hyperledger/​cello ​| Project repo]],​[[https://​jira.hyperledger.org/​projects/​CE/​issues/​CE-188?​filter=allopenissues | Available TODO features]]
   ***Learning Objectives:​** ​   ***Learning Objectives:​** ​
-        *Work closely with community developers to learn the open-source culture and skills+        *Work closely with community ​experts and developers to learn the open-source culture and skills
         *Advanced knowledge inside the blockchain and distributed ledger areas         *Advanced knowledge inside the blockchain and distributed ledger areas
   ***Expected Outcome:**   ***Expected Outcome:**
         *Enhanced dashboard to operate the blockchain networks         *Enhanced dashboard to operate the blockchain networks
         *Advanced capabilities to manage blockchain networks, including life-cycle, chaincode, permission         *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   ***Eduction Level:** Graduate student preferred
-  ***Skills:​**+  ***Desirable ​Skills:**
         *Interested with blockchain and distributed system         *Interested with blockchain and distributed system
-        *Backend development skills including Python, Node.Js+        *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         *Frontend skills including javascripts/​css/​html,​ experience with vue/​react/​jquery is a bonus
   ***Level of Difficulty:​** Medium   ***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)   ***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, [[yangbaohua@gmail.com]]+  ***Mentor(s):​** ​[[yangbaohua@gmail.com | Baohua Yang]], [[hightallyht@gmail.com ​| Haitao Yue]] [[ litong01@us.ibm.com | Tong Li]]
  
  
Line 48: Line 50:
   ***Expected Outcome:** Extended functionality/​support for EVM smart contracts and tooling in Hyperledger Fabric.   ***Expected Outcome:** Extended functionality/​support for EVM smart contracts and tooling in Hyperledger Fabric.
   ***Eduction Level:** Graduate student or undergraduate student   ***Eduction Level:** Graduate student or undergraduate student
-  ***Skills:​** Go knowledge, or ability to pick up languages quickly+  ***Desirable ​Skills:** Go knowledge, or ability to pick up languages quickly
   ***Level of Difficulty:​** Medium   ***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)   ***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)
Line 78: Line 80:
         * Class Diagram Editor: A functional web viewer, editor, or synchronised editor for CTO files, that can be easily embedded in a web application.         * 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   ***Eduction Level:** Graduate student or undergraduate student
-  ***Skills:​** Models and meta-models (XSD, JSON Schema), Angular2 or React web development,​ HTML5, CSS+  ***Desirable ​Skills:** Models and meta-models (XSD, JSON Schema), Angular2 or React web development,​ HTML5, CSS
   ***Level of Difficulty:​** Medium   ***Level of Difficulty:​** Medium
   ***Preferred Hours and Length of Internship:​** Full-time (40 hours a week for 12 weeks during the summer)   ***Preferred Hours and Length of Internship:​** Full-time (40 hours a week for 12 weeks during the summer)
Line 85: Line 87:
 ---- ----
 **Project 5: Hyperledger Fabric Chrome Extension** **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.+  ***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:​**   ***Additional Information:​**
         *The proposed project is similar to MetaMask for Ethereum which has proven to be very popular. See [[https://​metamask.io]] and [[https://​github.com/​MetaMask/​faq/​blob/​master/​DEVELOPERS.md]]         *The proposed project is similar to MetaMask for Ethereum which has proven to be very popular. See [[https://​metamask.io]] and [[https://​github.com/​MetaMask/​faq/​blob/​master/​DEVELOPERS.md]]
Line 91: Line 93:
         *Hyperledger Fabric: [[https://​github.com/​hyperledger/​fabric]]         *Hyperledger Fabric: [[https://​github.com/​hyperledger/​fabric]]
         *Hyperledger Node.js SDK: [[https://​github.com/​hyperledger/​fabric-sdk-node]]         *Hyperledger Node.js SDK: [[https://​github.com/​hyperledger/​fabric-sdk-node]]
-        ​**Chrome extension development+        *Chrome extension development
         *JavaScript API design         *JavaScript API design
         *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         *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
Line 99: Line 101:
         *read blockchain data allowed by the extension         *read blockchain data allowed by the extension
   ***Eduction Level:** Graduate student or undergraduate student   ***Eduction Level:** Graduate student or undergraduate student
-  ***Skills:​** ​+  ***Desirable ​Skills:​** ​
         *JavaScript         *JavaScript
         *Previous experience designing JavaScript APIs         *Previous experience designing JavaScript APIs
Line 115: Line 117:
   ***Expected Outcome:** Make fabric SDK-py ready to use in production and create a completed sample application.   ***Expected Outcome:** Make fabric SDK-py ready to use in production and create a completed sample application.
   ***Eduction Level:** Graduate student or undergraduate student   ***Eduction Level:** Graduate student or undergraduate student
-  ***Skills:​** python 3; grpc; crypto+  ***Desirable ​Skills:** python 3; grpc; crypto
   ***Level of Difficulty:​** Easy   ***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)   ***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)
Line 123: Line 125:
 ---- ----
 **Project 7: Hyperledger Identity WG Onboarding and Auth** **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:​** ​
 +        * iPython Getting Started Guide: currently in testing - will update this when ready
 +        * Anoncreds:
 +             ​*[[https://​github.com/​hyperledger/​indy-node/​blob/​master/​design/​anoncreds.md]]
 +             ​*[[https://​github.com/​hyperledger/​indy-node/​blob/​master/​docs/​relationship-diagram.png]]
 +             ​*[[http://​dl.ifip.org/​db/​conf/​idman/​idman2013/​CamenischDLNPP13.pdf]]
 +             ​*[[https://​docs.google.com/​document/​d/​1XEfaOinOTIU9RgtP-GlXQAbOoW8z-oR5aWJDoQdftZ4/​edit?​usp=sharing]] ​
 +        * Decentralized Identifiers:​
 +             ​*[[https://​github.com/​WebOfTrustInfo/​rebooting-the-web-of-trust-fall2017/​blob/​master/​draft-documents/​did-primer.md]]
 +             ​*[[https://​w3c-ccg.github.io/​did-spec/​]]
 +  ***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, [[vyacheslav.gudkov@dsr-company.com]] and Kyle Den Harto, [[kyle.denhartog@evernym.com]]
 +
 ---- ----
 **Project 8: Python Library for Hypereldger-Iroha** **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:​**
 +        *[[https://​github.com/​hyperledger/​iroha-python]]
 +        *[[https://​github.com/​hyperledger/​iroha]]
 +        *[[https://​github.com/​hyperledger]]
 +  ***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.
 +        *Stage 1. Do a setup on Iroha on local system. send some PR to few of the issues like https://​github.com/​hyperledger/​iroha/​issues/​774
 +        *Stage 2. Make python wrapper. You can use following repo https://​github.com/​hyperledger/​iroha-python/​issues
 +        *Stage 3. Make doc to get quick start
 +  ***Eduction Level:** Graduate student or undergraduate student
 +  ***Desirable Skills:** Python; <​nowiki>​C++</​nowiki>;​ 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)
 +  ***Mentor(s):​** Ankit Raj, [[ankitblockchain3@gmail.com]]
 +
 ---- ----
 **Project 9: Running Solidity Smart Contracts on Hyperledger Fabric or Vice Versa** **Project 9: Running Solidity Smart Contracts on Hyperledger Fabric or Vice Versa**
----- +  ***Project Description:​** Presently, blockchains provide different mechanisms for writing “smart contracts” aka chain code. In Hyperledger Fabric, one can write the smart contract in Go lang or Javascript, and deploy it on appropriate peers. Writing chain code in Go lang can be a bit challenging for some developers. Thus, Hyperledger Composer provides a Javascript-based approach for writing smart contracts. Similarly, public blockchains such as Ethereum provide a Javascript-like mechanism (Solidity) for writing smart contracts. However, one cannot use smart contracts written for Hyperledger Fabric to Solidity and vice versa; these have to be rewritten. You will develop a translator that will translate the Solidity code into Javascript or equivalent that can be deployed and instantiated into a Hyperledger Fabric deployment. You will then run the code in both environments and show that it produces equivalent results. For Ethereum, you will use their private network setting. You will take the fabric-samples repository that contains samples for various Hyperledger Fabric samples, and write the corresponding Solidity code. Then using your tool, you can “compile” the Solidity code into chain code for Hyperledger Fabric. Your tool can generate either Javascript (for Composer), or Go code as the translated chain code. You will at least write four non-trivial contracts in Solidity, translate them using your program, deploy them into Hyperledger Fabric, and show the execution. Fabric samples repository: [[https://​github.com/​hyperledger/​fabric-samples]] 
-**Project 10UTXO Transactions ​in Iroha**+  ***Additional Information:** There are various Solidity parsers available that can be used as a start. However, they are still a developmental version. 
 +        *[[https://​github.com/​ConsenSys/​solidity-parser]] 
 +        *[[https://​github.com/​federicobond/​solidity-parser-antlr]] 
 +  ***Learning Objectives:​**  
 +        *The intern is expected to become an expert ​in the writing of smart contracts (chain code) on various blockchain platforms. The intern will learn similarities and differences between smart contracts for different blockchain platforms, and document key insights which will be useful for the wider community. 
 +        ​*I expect to use a Slack or equivalent where the intern will document their progress daily. I have used Slack with interns in the past and have found it to be a useful way to track daily progress. I also expect to schedule some calls during the initial phase of the project to explain the project and to get the intern going. 
 +        *It is expected that the intern will be a self-starter who is motivated to learn various smart contract languages. 
 +  ***Expected Outcome:**  
 +        *The expected outcome will be a tool that can translate Solidity smart contracts into chain code for execution on Hyperledger Fabric. 
 +        *In addition, a report on the challenges encountered and resolution is also expected. The report can be on github. 
 +        ​*Upon successful completion, the intern is expected to create a YouTube video of the project. ​
  
 +  ***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)
 +  ***Mentor(s):​** Salman A. Baset, IBM Blockchain, [[sabaset@us.ibm.com]]
  
 ---- ----
-==== 2017 (2017 projects no longer accepting applications) ====  +**Project ​10Simulating Hyperledger Networks with Shadow** 
----- +  ***Project ​Description:​** ​The Shadow network simulation tool ([[https://​shadow.github.io/​]]) ​is capable of running off-the-shelf software in controlledsimulated 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 lab environment,​ the Tor network ​and the Bitcoin networkThis 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
-**Project ​1:** **Deploy Fabric on Kubernetes Using Cello** +  ***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. 
-  * **Description:​ ** Cello is a Hyperledger project used to deploy blockchain serviceswhich can be used to easily create, manage ​and stop blockchain system. Currently it supports platforms as baremetal ​and docker swarmAs 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+  ***Learning Objectives:**  
-  * **Additional Information:​** ​ +        *Put into practice writing real software in the programming languages they have learned
-        * Cello:https://github.com/​hyperledger/​cello +        *Gain a deep understanding of how the Hyperledger blockchains are organized at the network level. 
-        * Kubernetes:​https://​github.com/​kubernetes/​kubernetes +        *Learn ​about consensus networks ​and how the nodes must collaborate and corroborate to always come to the same conclusion.  
-  * **Desirable Skills:**  +        * Experience working closely with an open source working group to implement a tool they can use to run experiments with. 
-        * Familiar with Python and golang+  ***Expected Outcome:**  
-        * Know about Docker ​and Kubernetes+        *A Shadow plugin for one of the Hyperledger blockchain platforms
-        * Fluent Mandarin will be prefered +        *A Shadow simulation configuration that successfully executes ​and simulates a Hyperledger blockchain network. 
-  * **Learning Objectives:** +        *A post-mortem report explaining what happened during the project, what went right, and what went wrong
-        * Knowledge ​of working with open source community+        * A proposal--developed with the help of the Scalability ​and Performance working group--for ​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
-        * Architecture ​and basic features of CelloFabric ​and Kubernetes+  ***Eduction Level:** Graduate student preferred 
-        * How to design, develop ​and test feature+  ***Desirable Skills:**  
-  * **Expected Outcome: **Running featureUI and tests +        *Must be proficient in Python and at least one of C/<​nowiki>​C++</​nowiki>/​Rust. 
-  * **Level of Difficulty: **Medium +        *Must be proficient with setting up software builds using CMake and/or Makefiles. 
-  * **Mentor(s):​ **Jiang Feihu, Huawei, [[jiangfeihu@huawei.com|jiangfeihu@huawei.com]]+        *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 addressesports, 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) 
 +  ***Mentor(s):​** ​David Huseby, [[dhuseby@linuxfoundation.org]]
  
 ---- ----
-**Project ​2:** **Contract-based Business Process Execution ​ / Hyperledger ​as a Business Process Execution Engine** +**Project ​11Utilizing ​Hyperledger ​Fabric to Develop Supply Chain Application** 
-  * **Description:​ **  +  ***Project ​Description:​** ​Utilize Hyperledger Fabric framework to develop food tracing applicationThis application needs to realize track and monitor ​of food's origin and transportation through collecting ​data from manufacturers ​and customers of food supply chainPort the existing Hyperledger Sawtooth Supply Chain application ​([[https://​github.com/​hyperledger/​sawtooth-supply-chain]]) to Hyperledger FabricContribute 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 SawtoothIn addition, document ​the steps required ​to convert ​running application in Hyperledger Sawtooth ​to Hyperledger ​Fabric and vice versaTime permitting develop a tool that will convert chaincode ​to transaction families and vice versa
-      * 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 mannerBPMN is a standard for describing business processes, also extended by other standards ​(e.g. DMNN) to describe decision logic behind individual process steps. +  ***Additional Information:​** 
-      * Traditional process engines assume there is a central entity responsible for all execution/​management tasks like starting a process instance, ​ passing data (represented by tokensamong components ​implementing ​different tasks of a process ​(e.g. validate data, initiate an asynchronous ​transaction, sending a confirmation email, etc.)+        *[[https://​github.com/​hyperledger/​sawtooth-supply-chain]] 
-      * 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. +        *[[https://github.com/​hyperledger/​fabric-samples]] 
-      * The aim of the internship is to create ​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)+  ***Learning Objectives:** Cultivate interns with block chain and hyperledger project technology through training and education. Follow project progress and research ​result through weekly meetingParticipate local meetups and involve in open community discussion.  
-      * The intern will perform the following suggested tasks with the help of the mentor: +  ***Expected Outcome:** Food trace application with Fabric framework and demos. Technical document and comparative analysis report between Sawtooth and Fabric. Performance analysis demo. 
-         * define a subset of BPMN language which will be mapped to  smart contracts +  ***Eduction Level:** Graduate student preferred 
-         create sample but representative case studies which are complex enough to cover relevanr combinations of BPMN model elements +  ***Desirable Skills:**  
-         create test definitions (input data and required output) for these models +        *LanguagesJavascript, Go, Python 
-         define a mapping from model elements to smart contract fragments over Hyperledger +        *Blockchain platforms: ​Hyperledger ​Fabric ​(basic); Hyperledger Fabric ​(basic
-         create example contracts and validate the concept +        *Collaboration tools: Github, Rocket Channel 
-         define and create automated transformation for contract generation +  ***Level of Difficulty:** Challenging 
-         ​execute and evaluate pre-defined tests to (informally) validate the correctness of the approach and the transformations ​ +  ***Preferred Hours and Length ​of Internship:** Full-time (40 hours week for 12 weeks during the summeror Part-time (20 hours a week for 24 weeks starting in summer ​and ending ​in fall
-         ​optionalre-use and adapt existing modelling frameworks (e.g. model.io) to serve as a "​design GUI" over blockchain-based process execution +  ***Mentor(s):​** ​Leon Liang, [[liangyl1987@hotmail.com]] 
-  * **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) +
-        * Advantageprevious 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 (practicallyprove 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|gonczy@mit.bme.hu]]+
  
 ---- ----
-**Project ​3:** **Anonymous ​Transactions in Iroha** +**Project ​12UTXO Transactions in Iroha** 
-  * **Description:​ **For many use cases involving distributed ledgerthe ability ​to hide the sender and recipient of digital assetswhile still being able to verify that the assets exist and are not being double spentis required. To realize ​this in Hyperledger ​Iroha, ​a scheme involving secure multiparty computation or dining cryptographer ​(DCnetworks should be implemented as a prototype ​and studied+  ***Project ​Description:​** ​The unspent transaction output (UTXO) modelin contrast ​to the current account-based model used in Irohahelps to enhance ​the privacy of transactions ​and also can provide benefits with respect to interoperability with other UTXO-based blockchainssuch 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
-  * **Additional Information:​** ​Reading the following documents might be useful: ​             ​https://en.wikipedia.org/​wiki/​Dining_cryptographers_problem ​ https://en.wikipedia.org/wiki/Oblivious_transfer +  ***Additional Information:​** ​[[https://bitcoin.org/en/glossary/unspent-transaction-output]] 
-  * **Desirable Skills:** C++11 and abovebasic knowledge ​of cryptography+  ***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 modelsthe intern will have an understanding ​of when to apply which model to what kind of problem
-  * **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:** <​nowiki>​C++</​nowiki>​ source code for supporting ​the UTXO transaction model in Iroha 
-  * **Expected Outcome: **Prototype ​of anonymous transfers in Hyperledger Iroha. +  ***Eduction Level:** Graduate student or undergraduate student 
-  * **Level of Difficulty: **Difficult +  ***Desirable Skills:** <​nowiki>​C++</​nowiki>,​ understanding ​of basic blockchain concepts 
-  * **Mentor(s):​ **Makoto Takemiya ​and Bogdan Vaneev, Soramitsu, [[info@soramitsu.co.jp]] ​   +  ***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):​** Makoto Takemiya, [[takemiya@soramitsu.co.jp]]
  
 ---- ----
-**Project 4:** **Preserving Privacy with Sawtooth Lake** +==== Previous Years ==== 
-  * **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:​** +
-        * Code: https://​github.com/​hyperledger/​sawtooth-core +
-        * Docs: http://​intelledger.github.io/​ +
-        * Relevant Papers: +
-          * https://​eprint.iacr.org/​2009/​095.pdf +
-          * http://​connection.mit.edu/​wp-content/​uploads/​sites/​29/​2014/​12/​Anonymous-Identities-for-Permissioned-Blockchains2.pdf  +
-  * **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** +  ​[[internship/project_ideas/2017 2017]]
-  * **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|yangbaohua@gmail.com]] and Haitao Yue, IBM, [[hightallyht@gmail.com|hightallyht@gmail.com]] +
- +
internship/project_ideas.1520270038.txt.gz · Last modified: 2018/03/05 17:13 by Min Yu